@makaio/framework 1.0.0-dev-1787670559522 → 1.0.0-dev-1788258714339

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 (528) hide show
  1. package/README.md +2 -0
  2. package/dist/.makaio-build.json +2 -2
  3. package/dist/{account-identity-DGpXd8h_.mjs → account-identity-B3vLwm9O.mjs} +1 -1
  4. package/dist/adapter-Dz1fX5Wa.mjs +1 -0
  5. package/dist/adapter-subsystem/index.d.mts +118 -76
  6. package/dist/adapter-subsystem/index.mjs +1 -1
  7. package/dist/adapters/claude/index.d.mts +5 -5
  8. package/dist/adapters/config/index.d.mts +1 -1
  9. package/dist/adapters/config/index.mjs +1 -1
  10. package/dist/adapters/index.d.mts +73 -53
  11. package/dist/adapters/index.mjs +6 -6
  12. package/dist/adapters/node.d.mts +1 -1
  13. package/dist/adapters/node.mjs +1 -1
  14. package/dist/adapters/stream-session/index.mjs +1 -1
  15. package/dist/{artifact-k3veR4Yx.mjs → artifact-Btbuib48.mjs} +1 -1
  16. package/dist/attach-error-Cb3GbeKe.mjs +1 -0
  17. package/dist/{auth-A1K_7q-8.mjs → auth-C6tVtaOX.mjs} +1 -1
  18. package/dist/{authority-state-bootstrap-YwtEImIB.mjs → authority-state-bootstrap-CLYus369.mjs} +1 -1
  19. package/dist/{automation-trigger-CuSdQwir.mjs → automation-trigger-ByjNlClm.mjs} +1 -1
  20. package/dist/bus/index.d.mts +22 -4
  21. package/dist/bus/index.mjs +1 -1
  22. package/dist/{bus-CqgrphNE.mjs → bus-D6NoBhIV.mjs} +1 -1
  23. package/dist/bus-UgFdHybD.mjs +1 -0
  24. package/dist/caller-owned-adapter-stub-C1M7FKrv.mjs +1 -0
  25. package/dist/{canonical-model-DJASlL4m.mjs → canonical-model-DXOvCaVg.mjs} +1 -1
  26. package/dist/capabilities-BUwuA7XX.mjs +1 -0
  27. package/dist/capability-j3NekkIu.mjs +1 -0
  28. package/dist/{client-BL5__WT0.mjs → client-BkznbdsO.mjs} +1 -1
  29. package/dist/clients/index.d.mts +1 -1
  30. package/dist/clients/index.mjs +1 -1
  31. package/dist/clients/managed-install.d.mts +1 -1
  32. package/dist/clients/managed-install.mjs +1 -1
  33. package/dist/code-execution/worker-entry.d.mts +21 -0
  34. package/dist/code-execution/worker-entry.mjs +1 -0
  35. package/dist/code-execution-Ckmn8OZu.mjs +1 -0
  36. package/dist/code-execution-CweDSWco.mjs +1 -0
  37. package/dist/code-execution-DqkQjKa1.mjs +1 -0
  38. package/dist/{compression-BbttSqm8.mjs → compression-CtgeVLpP.mjs} +1 -1
  39. package/dist/{config-namespace-CyzeLWSg.mjs → config-namespace-CjWvw8ij.mjs} +1 -1
  40. package/dist/{context-resolution-ya9TXKg-.d.mts → context-resolution-CW4OtPrS.d.mts} +3 -3
  41. package/dist/contracts/adapter/index.d.mts +3 -3
  42. package/dist/contracts/adapter/index.mjs +1 -1
  43. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  44. package/dist/contracts/artifact/index.d.mts +2 -2
  45. package/dist/contracts/artifact/index.mjs +1 -1
  46. package/dist/contracts/auth/index.d.mts +2 -2
  47. package/dist/contracts/auth/index.mjs +1 -1
  48. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  49. package/dist/contracts/automation-trigger/index.mjs +1 -1
  50. package/dist/contracts/canonical-model/index.d.mts +1 -1
  51. package/dist/contracts/canonical-model/index.mjs +1 -1
  52. package/dist/contracts/capabilities/index.d.mts +1 -1
  53. package/dist/contracts/capabilities/index.mjs +1 -1
  54. package/dist/contracts/client/index.d.mts +2 -2
  55. package/dist/contracts/client/index.mjs +1 -1
  56. package/dist/contracts/code-execution/index.d.mts +2 -0
  57. package/dist/contracts/code-execution/index.mjs +1 -0
  58. package/dist/contracts/common/index.d.mts +1 -1
  59. package/dist/contracts/config/index.d.mts +1 -1
  60. package/dist/contracts/config/index.mjs +1 -1
  61. package/dist/contracts/extension/index.d.mts +5 -5
  62. package/dist/contracts/extension/index.mjs +1 -1
  63. package/dist/contracts/facet/index.d.mts +1 -1
  64. package/dist/contracts/facet/index.mjs +1 -1
  65. package/dist/contracts/harness/index.d.mts +1 -1
  66. package/dist/contracts/harness/index.mjs +1 -1
  67. package/dist/contracts/host/index.d.mts +1 -1
  68. package/dist/contracts/host/index.mjs +1 -1
  69. package/dist/contracts/index.d.mts +57 -47
  70. package/dist/contracts/index.mjs +1 -1
  71. package/dist/contracts/materialization/index.d.mts +3 -3
  72. package/dist/contracts/materialization/index.mjs +1 -1
  73. package/dist/contracts/model-registry/index.d.mts +1 -1
  74. package/dist/contracts/model-registry/index.mjs +1 -1
  75. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  76. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  77. package/dist/contracts/platform/index.d.mts +1 -1
  78. package/dist/contracts/platform/index.mjs +1 -1
  79. package/dist/contracts/provider/index.d.mts +2 -2
  80. package/dist/contracts/provider/index.mjs +1 -1
  81. package/dist/contracts/reaction/index.d.mts +1 -1
  82. package/dist/contracts/reaction/index.mjs +1 -1
  83. package/dist/contracts/session/index.d.mts +3 -3
  84. package/dist/contracts/session/index.mjs +1 -1
  85. package/dist/contracts/shared/index.d.mts +3 -3
  86. package/dist/contracts/shared/index.mjs +1 -1
  87. package/dist/contracts/skill/index.d.mts +1 -1
  88. package/dist/contracts/skill/index.mjs +1 -1
  89. package/dist/contracts/telemetry/index.d.mts +1 -1
  90. package/dist/contracts/telemetry/index.mjs +1 -1
  91. package/dist/contracts/timeout/index.d.mts +1 -1
  92. package/dist/contracts/timeout/index.mjs +1 -1
  93. package/dist/contracts/toast/index.mjs +1 -1
  94. package/dist/contracts/variant/index.d.mts +1 -1
  95. package/dist/contracts/variant/index.mjs +1 -1
  96. package/dist/contracts/worker-node/index.d.mts +1 -1
  97. package/dist/contracts/worker-node/index.mjs +1 -1
  98. package/dist/contracts/workflow/index.d.mts +2 -2
  99. package/dist/contracts/workflow/index.mjs +1 -1
  100. package/dist/{contribution-BB5bjx3f.d.mts → contribution-CUHLVLsT.d.mts} +2 -2
  101. package/dist/core/index.d.mts +25 -2
  102. package/dist/{definition-CDg-Jq1T.mjs → definition-BH4QLGLI.mjs} +1 -1
  103. package/dist/{definition-BYgHlmMw.d.mts → definition-DyGImhyi.d.mts} +1 -1
  104. package/dist/{detached-extension-handle-DKd17UB6.mjs → detached-extension-handle-D0aI0pJA.mjs} +1 -1
  105. package/dist/drizzle/0034_m_msha1388.sql +41 -0
  106. package/dist/drizzle/0035_m_mshgj6x7.sql +40 -0
  107. package/dist/drizzle/0036_m_msivwbgm.sql +1 -0
  108. package/dist/drizzle/0037_runtime_instance_incarnation_counter.sql +6 -0
  109. package/dist/drizzle/meta/_journal.json +28 -0
  110. package/dist/event-B8ELuk6k.mjs +1 -0
  111. package/dist/{execution-attempt-repository-DFyAnchJ.d.mts → execution-attempt-repository-BJ2W6wwx.d.mts} +1 -1
  112. package/dist/{execution-target-ByNwZh5-.mjs → execution-target-H0RWV7Py.mjs} +1 -1
  113. package/dist/{extension-DUmibvMk.mjs → extension-Bfkr2DBs.mjs} +1 -1
  114. package/dist/{extension-DMdmj9gi.mjs → extension-Cz39YNXy.mjs} +1 -1
  115. package/dist/{extension-discovery-Fhps4icD.d.mts → extension-discovery-Dhu3WplO.d.mts} +9 -1
  116. package/dist/{filesystem-service-FAtd9gWH.mjs → filesystem-service-CiUw0YN5.mjs} +1 -1
  117. package/dist/framework-packages-BHgul8Kl.mjs +1 -0
  118. package/dist/git/index.mjs +2 -2
  119. package/dist/{globby-BBLuT_vy.mjs → globby-QBDqstzq.mjs} +1 -1
  120. package/dist/handlers-BsHAFtye.mjs +57 -0
  121. package/dist/{harness-KxbWGL4I.mjs → harness-YQ2ewID9.mjs} +1 -1
  122. package/dist/{hook-responses-uCXAICTU.d.mts → hook-responses-9Ywsqzzq.d.mts} +1 -1
  123. package/dist/identity-OjRlG6dZ.mjs +1 -0
  124. package/dist/{index-Bl7KWFod.d.mts → index-4KJ6IDE7.d.mts} +7 -7
  125. package/dist/{index-CfiCJPP6.d.mts → index-B0VO0rAl.d.mts} +1 -1
  126. package/dist/{index-DI7-tIL3.d.mts → index-B0yMCJW8.d.mts} +39 -14
  127. package/dist/{index-BQprJNA_.d.mts → index-B9V3T4EQ.d.mts} +4 -4
  128. package/dist/{index-CqQYgsbB.d.mts → index-BNzUyVwV.d.mts} +513 -170
  129. package/dist/{index-CM75k-Ff.d.mts → index-BkbnC65b.d.mts} +189 -17
  130. package/dist/index-Bqk0pJBQ2.d.mts +138 -0
  131. package/dist/{index-CER64zYO.d.mts → index-BqlCDBfc.d.mts} +15 -15
  132. package/dist/{index-C-JzEkqs.d.mts → index-C146Eq_J.d.mts} +535 -1801
  133. package/dist/{index-e4Txan9i.d.mts → index-C3lu_fy5.d.mts} +76 -76
  134. package/dist/{index-C__EQfKa.d.mts → index-CIEycZrt.d.mts} +1 -1
  135. package/dist/{index-DxYDRoDE2.d.mts → index-CMekqu_D.d.mts} +28 -8
  136. package/dist/{index-nydhGvXa.d.mts → index-CPRQ4dWX.d.mts} +0 -23
  137. package/dist/{index-BSQ30wYP.d.mts → index-CPi0UpRh.d.mts} +1 -1
  138. package/dist/{index-BMVZs6pm.d.mts → index-CYjgoYeX.d.mts} +3 -3
  139. package/dist/{index-CSN_0sCo.d.mts → index-CmwAJ8-5.d.mts} +1 -1
  140. package/dist/index-Cny5RvjO.d.mts +800 -0
  141. package/dist/index-DHnSLGP4.d.mts +268 -0
  142. package/dist/{index-cPqSpWQC.d.mts → index-DJ2KgJDJ2.d.mts} +12 -12
  143. package/dist/index-DQ8o3JGi.d.mts +132 -0
  144. package/dist/index-DWBkiiXH.d.mts +18 -0
  145. package/dist/{index-B0xJgTi-.d.mts → index-DWkFkvRn2.d.mts} +7 -7
  146. package/dist/{index-1UcQWrZy.d.mts → index-DXqG0r3o.d.mts} +155 -155
  147. package/dist/index-Dg11JxKZ.d.mts +496 -0
  148. package/dist/{index-BtdK8HeH.d.mts → index-OG402CBI.d.mts} +43 -168
  149. package/dist/json-value-BBZ6uGwc.mjs +1 -0
  150. package/dist/json-value-DPqb-SJ8.d.mts +177 -0
  151. package/dist/kernel/cli/index.d.mts +2 -2
  152. package/dist/kernel/cli/index.mjs +1 -1
  153. package/dist/kernel/cli/register.d.mts +1 -1
  154. package/dist/kernel/cli/register.mjs +1 -1
  155. package/dist/kernel/cli/schemas.mjs +1 -1
  156. package/dist/kernel/extension/index.d.mts +1 -1
  157. package/dist/kernel/extension/index.mjs +1 -1
  158. package/dist/kernel/index.d.mts +5 -5
  159. package/dist/kernel/index.mjs +1 -1
  160. package/dist/kernel/namespace/index.d.mts +1 -1
  161. package/dist/kernel/namespace/index.mjs +1 -1
  162. package/dist/kernel/observability/index.d.mts +1 -1
  163. package/dist/kernel/observability/index.mjs +1 -1
  164. package/dist/kernel/providers/index.d.mts +1 -1
  165. package/dist/kernel/providers/index.mjs +1 -1
  166. package/dist/kernel/window/index.d.mts +1 -1
  167. package/dist/kernel/window/index.mjs +1 -1
  168. package/dist/{lib-CnOAtohU.mjs → lib-BpGvHZye.mjs} +2 -2
  169. package/dist/{lib-B_rJ6r0T.mjs → lib-Cm-uEoC1.mjs} +1 -1
  170. package/dist/{load-extensions-DUpaMQ7G.d.mts → load-extensions-BQoXaHhR.d.mts} +1 -1
  171. package/dist/{load-extensions-CW9uzNR5.mjs → load-extensions-DG5LvPyM.mjs} +1 -1
  172. package/dist/{materialization-CcpCDhXh.mjs → materialization-lVd9_-jr.mjs} +1 -1
  173. package/dist/mcp-http-server/index.mjs +1 -1
  174. package/dist/model-DrzPt3ou.mjs +1 -0
  175. package/dist/{namespace-B7bntOB8.mjs → namespace-BL7lHlmg.mjs} +1 -1
  176. package/dist/{namespace-BgEiY7r1.d.mts → namespace-BNp7n_gu.d.mts} +3 -3
  177. package/dist/{namespace-DSlfFhB1.d.mts → namespace-BRuHzhPo.d.mts} +154 -2
  178. package/dist/{namespace-ChnRTUG4.d.mts → namespace-C06lJSuj.d.mts} +6 -6
  179. package/dist/{namespace-C6CVEGH8.d.mts → namespace-DknCutQZ.d.mts} +50 -0
  180. package/dist/namespace-sCPb79-7.mjs +1 -0
  181. package/dist/{native-session-supervisor-fZYPUk0-.mjs → native-session-supervisor-LKio8XZn.mjs} +1 -1
  182. package/dist/node/bus-server/index.d.mts +1 -1
  183. package/dist/node/bus-server/index.mjs +1 -1
  184. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  185. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  186. package/dist/npm-package-name-DuTYVICk.mjs +1 -0
  187. package/dist/orchestrator-shared-BGlN-m-V.mjs +1 -0
  188. package/dist/{orchestrator-shared-B-KRW1Z0.d.mts → orchestrator-shared-CNHSImNY.d.mts} +9 -10
  189. package/dist/ownership-memory-handler-BpGdR_uG.mjs +1 -0
  190. package/dist/ownership-recovery-guard-DyW5vGBr.mjs +1 -0
  191. package/dist/{package-ypz4rKvn.mjs → package-B01gmu75.mjs} +1 -1
  192. package/dist/{package-Bf3hyuzs.d.mts → package-BNFTUFLB.d.mts} +2 -2
  193. package/dist/package-DttKA9wN.mjs +1 -0
  194. package/dist/{package-CddkNbZI.mjs → package-JtjbO-Oi.mjs} +1 -1
  195. package/dist/package.json +1 -1
  196. package/dist/{profile-BtznZlq3.mjs → profile-N5qGUpF0.mjs} +1 -1
  197. package/dist/{provider-context-Dh-VOOYF.mjs → provider-context-CG42JlP9.mjs} +1 -1
  198. package/dist/{provider-context-BrLZYnDW.mjs → provider-context-zTDSH2x9.mjs} +1 -1
  199. package/dist/{reaction-BS0k4eNN.mjs → reaction-D3TNwPK8.mjs} +1 -1
  200. package/dist/{registry-BO_bOoky.mjs → registry-Dk12tAfv.mjs} +1 -1
  201. package/dist/{resolved-DMByz1_2.mjs → resolved-sq8RXNDf.mjs} +1 -1
  202. package/dist/rules/index.d.mts +1 -1
  203. package/dist/rules/index.mjs +1 -1
  204. package/dist/rules/schemas.d.mts +1 -1
  205. package/dist/rules/schemas.mjs +1 -1
  206. package/dist/runtime-bun/index.mjs +1 -1
  207. package/dist/runtime-node/code-execution/index.d.mts +3 -0
  208. package/dist/runtime-node/code-execution/index.mjs +1 -0
  209. package/dist/runtime-node/extension-discovery.d.mts +2 -2
  210. package/dist/runtime-node/extension-discovery.mjs +1 -1
  211. package/dist/runtime-node/extension-validation.d.mts +1 -1
  212. package/dist/runtime-node/extension-validation.mjs +1 -1
  213. package/dist/runtime-node/index.d.mts +6 -4
  214. package/dist/runtime-node/index.mjs +24 -24
  215. package/dist/runtime-node/makaio-config.d.mts +1 -1
  216. package/dist/runtime-node/makaio-config.mjs +1 -1
  217. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  218. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  219. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  220. package/dist/{schema-DKTzriEY.d.mts → schema-B3Pf7JP7.d.mts} +250 -3
  221. package/dist/{schema-DBG7Jq5_.mjs → schema-Dq-7si8u.mjs} +1 -1
  222. package/dist/{schemas-DSkBOdx_.mjs → schemas-BfO5jkrL.mjs} +1 -1
  223. package/dist/{schemas-B7zo7Zcx.d.mts → schemas-C1mxTfd7.d.mts} +60 -4
  224. package/dist/schemas-C3kyQWGf.mjs +1 -0
  225. package/dist/{schemas-B3bfVYcL.d.mts → schemas-CF8QwRqt.d.mts} +2 -0
  226. package/dist/{schemas-DZH9lpxs.d.mts → schemas-OWvBn7AH.d.mts} +4 -4
  227. package/dist/{schemas-CsjN7cmM.mjs → schemas-QWDnauKX.mjs} +1 -1
  228. package/dist/schemas-TK29KWx-.mjs +1 -0
  229. package/dist/schemas-_2Syo_01.mjs +1 -0
  230. package/dist/scoped-bus-DoPmCJeM.mjs +1 -0
  231. package/dist/{selection-7Ku8DBnh.mjs → selection-DL3ric7K.mjs} +1 -1
  232. package/dist/services/adapter-runtime/index.d.mts +4 -4
  233. package/dist/services/adapter-runtime/index.mjs +1 -1
  234. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  235. package/dist/services/adapter-runtime/schemas.d.mts +2 -2
  236. package/dist/services/adapter-runtime/schemas.mjs +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.mjs +1 -1
  245. package/dist/services/capability/index.d.mts +3 -2
  246. package/dist/services/capability/index.mjs +1 -1
  247. package/dist/services/code-execution/index.d.mts +2 -0
  248. package/dist/services/code-execution/index.mjs +1 -0
  249. package/dist/services/codebase/index.d.mts +2 -2
  250. package/dist/services/codebase/namespace.d.mts +1 -1
  251. package/dist/services/codebase/schemas.d.mts +1 -1
  252. package/dist/services/compression/index.d.mts +2 -2
  253. package/dist/services/compression/namespace.d.mts +1 -1
  254. package/dist/services/compression/schemas.d.mts +1 -1
  255. package/dist/services/context-rules/index.d.mts +1 -1
  256. package/dist/services/context-rules/index.mjs +1 -1
  257. package/dist/services/execution-target/index.d.mts +3 -3
  258. package/dist/services/execution-target/index.mjs +1 -1
  259. package/dist/services/execution-target/namespace.d.mts +1 -1
  260. package/dist/services/execution-target/namespace.mjs +1 -1
  261. package/dist/services/execution-target/schemas.d.mts +1 -1
  262. package/dist/services/execution-target/schemas.mjs +1 -1
  263. package/dist/services/filesystem/index.d.mts +1 -1
  264. package/dist/services/filesystem/index.mjs +1 -1
  265. package/dist/services/filesystem/namespace.d.mts +6 -6
  266. package/dist/services/filesystem/schemas.d.mts +3 -3
  267. package/dist/services/git/namespace.d.mts +18 -0
  268. package/dist/services/git/namespace.mjs +1 -1
  269. package/dist/services/git/schemas.d.mts +10 -1
  270. package/dist/services/git/schemas.mjs +1 -1
  271. package/dist/services/harness/index.d.mts +3 -3
  272. package/dist/services/harness/index.mjs +1 -1
  273. package/dist/services/index.d.mts +159 -59
  274. package/dist/services/index.mjs +1 -1
  275. package/dist/services/log-import/browser.d.mts +2 -2
  276. package/dist/services/log-import/index.d.mts +2 -2
  277. package/dist/services/log-import/log-import.d.mts +1 -1
  278. package/dist/services/log-import/log-import.mjs +1 -1
  279. package/dist/services/log-import/namespace.mjs +1 -1
  280. package/dist/services/log-import/schemas.mjs +1 -1
  281. package/dist/services/materialization/index.d.mts +1 -1
  282. package/dist/services/materialization/index.mjs +1 -1
  283. package/dist/services/model-registry/index.d.mts +1 -1
  284. package/dist/services/model-registry/index.mjs +1 -1
  285. package/dist/services/preferences/index.d.mts +2 -2
  286. package/dist/services/preferences/schemas.d.mts +1 -1
  287. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  288. package/dist/services/provider-context/index.d.mts +1 -1
  289. package/dist/services/provider-context/index.mjs +1 -1
  290. package/dist/services/provider-runtime/index.mjs +1 -1
  291. package/dist/services/session/handlers/index.d.mts +1 -1
  292. package/dist/services/session/handlers/index.mjs +1 -1
  293. package/dist/services/session/index.d.mts +10 -10
  294. package/dist/services/session/index.mjs +1 -1
  295. package/dist/services/session/messages/namespace.d.mts +1 -1
  296. package/dist/services/session/messages/namespace.mjs +1 -1
  297. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  298. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  299. package/dist/services/session/session-events/namespace.d.mts +1 -1
  300. package/dist/services/session/session-events/namespace.mjs +1 -1
  301. package/dist/services/session/storage/namespace.d.mts +1 -1
  302. package/dist/services/session/storage/schema.d.mts +2 -2
  303. package/dist/services/session/storage/schema.mjs +1 -1
  304. package/dist/services/session/testing/index.d.mts +22 -1
  305. package/dist/services/session/testing/index.mjs +38 -14
  306. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  307. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  308. package/dist/services/session/turns/namespace.d.mts +1 -1
  309. package/dist/services/session/turns/namespace.mjs +1 -1
  310. package/dist/services/session-editor/index.d.mts +1 -1
  311. package/dist/services/session-editor/index.mjs +1 -1
  312. package/dist/services/settings/index.d.mts +3 -3
  313. package/dist/services/settings/index.mjs +1 -1
  314. package/dist/services/settings/namespace.mjs +1 -1
  315. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  316. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  317. package/dist/services/settings/storage/index.d.mts +3 -3
  318. package/dist/services/settings/storage/index.mjs +1 -1
  319. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  320. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  321. package/dist/services/subagent/index.d.mts +1 -1
  322. package/dist/services/subagent/index.mjs +1 -1
  323. package/dist/services/subagent-template/index.d.mts +2 -2
  324. package/dist/services/subagent-template/namespace.d.mts +1 -1
  325. package/dist/services/subagent-template/schemas.d.mts +1 -1
  326. package/dist/services/tool-approval/index.d.mts +1 -1
  327. package/dist/services/tool-approval/index.mjs +1 -1
  328. package/dist/services/tools/index.d.mts +1 -1
  329. package/dist/services/tools/index.mjs +1 -1
  330. package/dist/services/tray-menu/index.d.mts +3 -3
  331. package/dist/services/tray-menu/index.mjs +1 -1
  332. package/dist/services/tray-menu/namespace.d.mts +1 -1
  333. package/dist/services/tray-menu/schemas.d.mts +1 -1
  334. package/dist/services/turn/index.d.mts +1 -1
  335. package/dist/services/turn/namespace.d.mts +1 -1
  336. package/dist/services/workflow-transitions/index.d.mts +1 -1
  337. package/dist/services/workflow-transitions/index.mjs +1 -1
  338. package/dist/session-BOpTI79g.mjs +1 -0
  339. package/dist/session-CXOPk3yg.mjs +95 -0
  340. package/dist/{shared-BFVuCDPx.mjs → shared-B9AWRm9A.mjs} +1 -1
  341. package/dist/{skill-C1D51nhh.mjs → skill-DGNtc_ww.mjs} +1 -1
  342. package/dist/{src-xbmzokNe.mjs → src-BmSQ3rlz.mjs} +1 -1
  343. package/dist/storage/drizzle/client.d.mts +1 -1
  344. package/dist/storage/drizzle/client.mjs +1 -1
  345. package/dist/storage/drizzle/index.d.mts +41 -2
  346. package/dist/storage/drizzle/index.mjs +1 -1
  347. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  348. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  349. package/dist/storage/handlers/index.d.mts +1 -1
  350. package/dist/storage/handlers/index.mjs +1 -1
  351. package/dist/tool-approval-service-BFDOFUGC.mjs +1 -0
  352. package/dist/{tools-DxwHox1a.mjs → tools-DWKWX3eV.mjs} +1 -1
  353. package/dist/{transition-C_Ka6b0-.d.mts → transition-DXmCUq6w.d.mts} +6 -6
  354. package/dist/{types-BNjPhj_a.d.mts → types-CtDGkyLx2.d.mts} +1 -1
  355. package/dist/types-Cwza95hS.mjs +1 -0
  356. package/dist/{types-CwvN4uN2.d.mts → types-DcxBYlPA.d.mts} +3018 -38
  357. package/dist/types-DnK6Wa_Y.d.mts +260 -0
  358. package/dist/{types-ClpEaoAm.d.mts → types-OKJCOjme.d.mts} +24 -4
  359. package/dist/ui-components/index.d.mts +4 -4
  360. package/dist/ui-kernel/index.d.mts +1 -1
  361. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  362. package/dist/utils/index.d.mts +22 -1
  363. package/dist/utils/index.mjs +2 -2
  364. package/dist/utils/project-manifest.mjs +1 -1
  365. package/dist/{version-BfNnVAGr.mjs → version-BYeVh1pI.mjs} +1 -1
  366. package/dist/{view-builder-KYsPqV-5.d.mts → view-builder-k82f5KFd.d.mts} +4 -4
  367. package/dist/{visibility-Dl1o2I01.mjs → visibility-DtDLRBdr.mjs} +1 -1
  368. package/dist/worker-node-CjuQb9hl.mjs +1 -0
  369. package/dist/{worker-node-DJ41Tr-F.mjs → worker-node-Dtf9ilsR.mjs} +1 -1
  370. package/dist/workflow-C4mck_NW.mjs +1 -0
  371. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  372. package/dist/workflow-engine/index.d.mts +103 -103
  373. package/dist/workflow-engine/index.mjs +1 -1
  374. package/dist/workflow-engine/package.d.mts +1 -1
  375. package/dist/workflow-engine/package.mjs +1 -1
  376. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  377. package/dist/workflow-engine/testing/index.d.mts +2 -2
  378. package/dist/workflow-engine/testing/index.mjs +1 -1
  379. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  380. package/dist/workflow-engine/testing/sqlite.mjs +1 -1
  381. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  382. package/dist/{workflow-transitions-DM0fN_eP.mjs → workflow-transitions-c_VQbyV0.mjs} +1 -1
  383. package/dist/workflow-worker-aNbdgqml.mjs +1 -0
  384. package/package.json +18 -1
  385. package/dist/adapter-BkdJaOOG.mjs +0 -1
  386. package/dist/agent-namespace-D51PODFf.mjs +0 -1
  387. package/dist/attach-error-BSlc7JfL.mjs +0 -1
  388. package/dist/bus-BIj0_aG6.mjs +0 -1
  389. package/dist/capabilities-Bqckjh7G.mjs +0 -1
  390. package/dist/capability-service-CJHNkjvm.mjs +0 -1
  391. package/dist/event-DR8U9Efx.mjs +0 -1
  392. package/dist/framework-packages-D_2hBZ-p.mjs +0 -1
  393. package/dist/handlers-2yd00VEq.mjs +0 -57
  394. package/dist/identity-DC3Pk0ps.mjs +0 -1
  395. package/dist/index-OsbtyMgx2.d.mts +0 -98
  396. package/dist/json-value-C1RGgS0a.d.mts +0 -72
  397. package/dist/json-value-D57aJhVn.mjs +0 -1
  398. package/dist/model-ZH3L1dPW.mjs +0 -1
  399. package/dist/namespace-CxrOLeeP.mjs +0 -1
  400. package/dist/orchestrator-shared-CTCZc6Vl.mjs +0 -1
  401. package/dist/ownership-memory-handler-Bblp93YC.mjs +0 -1
  402. package/dist/schemas-BqD8LlQw.mjs +0 -1
  403. package/dist/schemas-CvHFbzdy.mjs +0 -1
  404. package/dist/schemas-DplrlAyR.mjs +0 -1
  405. package/dist/scoped-bus-ClwTWqX8.mjs +0 -1
  406. package/dist/session-BMy2kRpX.mjs +0 -90
  407. package/dist/session-Cipx34j6.mjs +0 -1
  408. package/dist/tool-approval-service-BVgN9Q1r.mjs +0 -1
  409. package/dist/worker-node-BDOYPEpi.mjs +0 -1
  410. package/dist/workflow-Hzc5jlnV.mjs +0 -1
  411. package/dist/workflow-worker-DARC7UZl.mjs +0 -1
  412. /package/dist/{adapter-auth-runtime-D9Lnl7cc.mjs → adapter-auth-runtime-DHHppU4f.mjs} +0 -0
  413. /package/dist/{adapter-binding-B-FBoCys.d.mts → adapter-binding-CATvmGuz.d.mts} +0 -0
  414. /package/dist/{ajv-L5fKxaia.mjs → ajv-krzJXh1X.mjs} +0 -0
  415. /package/dist/{attempt-record-codec-DaFLKR5C.mjs → attempt-record-codec-BYfYkj4M.mjs} +0 -0
  416. /package/dist/{await-trigger-ph1S0zVI.mjs → await-trigger-Bkg2BQfg.mjs} +0 -0
  417. /package/dist/{base-orchestrator-D9u4NyiM.d.mts → base-orchestrator-B4YW6z_Q.d.mts} +0 -0
  418. /package/dist/{index-Ol9RBB0W2.d.mts → capability-service-BW1-teFU.d.mts} +0 -0
  419. /package/dist/{client-4ihewPUm.d.mts → client-BG0WX5Vz.d.mts} +0 -0
  420. /package/dist/{client-binary-version-verifier-DJajc_Ff.mjs → client-binary-version-verifier-0lCKZOTg.mjs} +0 -0
  421. /package/dist/{client-binary-version-verifier-jDDZ64Ah.d.mts → client-binary-version-verifier-lcv83Hq3.d.mts} +0 -0
  422. /package/dist/{clients-namespace-DFWuUawf.d.mts → clients-namespace-DLAjOTTb.d.mts} +0 -0
  423. /package/dist/{config-namespace-D1kyZj0B.d.mts → config-namespace-CH7sJZ4f.d.mts} +0 -0
  424. /package/dist/{create-static-mount-9tnGpIeK.mjs → create-static-mount-DxuixuLZ.mjs} +0 -0
  425. /package/dist/{cross-spawn-BIgueAqr.mjs → cross-spawn-CZygZJMH.mjs} +0 -0
  426. /package/dist/{cursor-storage-ROWfiTh1.mjs → cursor-storage-bsc9lZKk.mjs} +0 -0
  427. /package/dist/{definition-DB-kKc0d.d.mts → definition-BrgzUuFk.d.mts} +0 -0
  428. /package/dist/{definitions-CF6YmEhL.mjs → definitions-CRpdnHYM.mjs} +0 -0
  429. /package/dist/{descriptor-to-package-BecVCopf.mjs → descriptor-to-package-CcjdoWP4.mjs} +0 -0
  430. /package/dist/{drizzle-CPv3vdTE.mjs → drizzle-Bzc-OGVI.mjs} +0 -0
  431. /package/dist/{esm-CBFWM8u_.mjs → esm-i-S5TW72.mjs} +0 -0
  432. /package/dist/{extension-context-DzB7ydM3.d.mts → extension-context-QmFuHdq5.d.mts} +0 -0
  433. /package/dist/{extension-namespace-B554RmCp.mjs → extension-namespace-QoTTwKPt.mjs} +0 -0
  434. /package/dist/{extension-package-provenance-Dh_-Z-tE.mjs → extension-package-provenance-aYrZuS4W.mjs} +0 -0
  435. /package/dist/{facet-DVsW12iF.mjs → facet-BnMh7Jyc.mjs} +0 -0
  436. /package/dist/{filesystem-service-Cm2RHKBa.d.mts → filesystem-service-ZJ43SbBi.d.mts} +0 -0
  437. /package/dist/{handler-Bqlk-6BY.mjs → handler-DF1fVDpf.mjs} +0 -0
  438. /package/dist/{host-k5yoyKHg.mjs → host-B-_ntOMH.mjs} +0 -0
  439. /package/dist/{index--atUpi5l2.d.mts → index-8NdPPzUh2.d.mts} +0 -0
  440. /package/dist/{index-DwLRZscE.d.mts → index-8y4hT9WL.d.mts} +0 -0
  441. /package/dist/{index-C7HcDpHE.d.mts → index-B-3I98nw.d.mts} +0 -0
  442. /package/dist/{index-BcvqDfcN.d.mts → index-B2Y1Wvbh.d.mts} +0 -0
  443. /package/dist/{index-BRCrFirq.d.mts → index-B4svZC6L.d.mts} +0 -0
  444. /package/dist/{index-CQuRTeRa.d.mts → index-B5dP8rj6.d.mts} +0 -0
  445. /package/dist/{index-CRmE88hi.d.mts → index-BC-6qNeo.d.mts} +0 -0
  446. /package/dist/{index-CxSSdIZz.d.mts → index-BFWvT0NG.d.mts} +0 -0
  447. /package/dist/{index-DP3o_13U.d.mts → index-BM56936c.d.mts} +0 -0
  448. /package/dist/{index-BVcQcphK.d.mts → index-BMRB9yhF.d.mts} +0 -0
  449. /package/dist/{index-bIe_57cL.d.mts → index-BTEJfzjE.d.mts} +0 -0
  450. /package/dist/{index-DgOfgjx3.d.mts → index-BfV8U4XX.d.mts} +0 -0
  451. /package/dist/{index-DBadVauL.d.mts → index-BmevAPME2.d.mts} +0 -0
  452. /package/dist/{index-OADt3xlS.d.mts → index-BuMsrli0.d.mts} +0 -0
  453. /package/dist/{index-BJAB-BW_.d.mts → index-C4V8Pmi4.d.mts} +0 -0
  454. /package/dist/{index-aoxdnhJ42.d.mts → index-CL0Jo1b92.d.mts} +0 -0
  455. /package/dist/{index-CvW9_SzR.d.mts → index-CVpaGijY.d.mts} +0 -0
  456. /package/dist/{index-E4SET1AA.d.mts → index-CmbkCxj-.d.mts} +0 -0
  457. /package/dist/{index-BgGe9WZz.d.mts → index-CqdMbYmR.d.mts} +0 -0
  458. /package/dist/{index-BeENojSx2.d.mts → index-DgspOUa72.d.mts} +0 -0
  459. /package/dist/{index-42UdYStR.d.mts → index-Ek4y8M9J2.d.mts} +0 -0
  460. /package/dist/{index-Beo_Ik8-.d.mts → index-VzLAV0Yt.d.mts} +0 -0
  461. /package/dist/{index-BSbGB23v.d.mts → index-jxPncqWZ2.d.mts} +0 -0
  462. /package/dist/{index-Bqm0ahTQ.d.mts → index-kzIjbrS02.d.mts} +0 -0
  463. /package/dist/{index-BJMezANn.d.mts → index-l01zsChf.d.mts} +0 -0
  464. /package/dist/{index-CK3f0bAL.d.mts → index-pvX-BIpr2.d.mts} +0 -0
  465. /package/dist/{jsonl-transport-Bp_6pB2a.mjs → jsonl-transport-Cyyh5Wje.mjs} +0 -0
  466. /package/dist/{lib-Bwdd2m81.mjs → lib-BqV8hYtk.mjs} +0 -0
  467. /package/dist/{model-registry-yURX738J.mjs → model-registry-C9rFu3kV.mjs} +0 -0
  468. /package/dist/{model-registry-Y854mUml.mjs → model-registry-Cixxx2jv.mjs} +0 -0
  469. /package/dist/{modes-DmUsjHdV.mjs → modes-DwsJ3yVl.mjs} +0 -0
  470. /package/dist/{namespace-ByP1Iipi.d.mts → namespace-B0ftHlK3.d.mts} +0 -0
  471. /package/dist/{namespace-C1D77w7U.d.mts → namespace-BGRHcrmp.d.mts} +0 -0
  472. /package/dist/{namespace-Bi3CmYQy.d.mts → namespace-BUYDmd0r.d.mts} +0 -0
  473. /package/dist/{namespace-CkBbNFSU.mjs → namespace-BW3Bfu9h.mjs} +0 -0
  474. /package/dist/{namespace-DX1Ec15L.d.mts → namespace-BdAK0lD8.d.mts} +0 -0
  475. /package/dist/{namespace-Dgg0uoe6.d.mts → namespace-CPG6u60N.d.mts} +0 -0
  476. /package/dist/{namespace-BusZERU8.d.mts → namespace-CVFaZv8x.d.mts} +0 -0
  477. /package/dist/{namespace-yREpGJgG.d.mts → namespace-DBO1OzYB.d.mts} +0 -0
  478. /package/dist/{namespace-CrDlawqu.d.mts → namespace-DOezqDti.d.mts} +0 -0
  479. /package/dist/{namespace-CfIW0hpQ.mjs → namespace-DiwqpB-c.mjs} +0 -0
  480. /package/dist/{namespace-s2y_NFKf.d.mts → namespace-DqZweTbX.d.mts} +0 -0
  481. /package/dist/{namespace-CFjdyNXG.mjs → namespace-Du0accdE.mjs} +0 -0
  482. /package/dist/{namespace-BFqkUTJp.mjs → namespace-NXm_zvL1.mjs} +0 -0
  483. /package/dist/{namespace-B9FEGuEu.mjs → namespace-jVTsuZHX.mjs} +0 -0
  484. /package/dist/{namespace-DwZwGXgF.d.mts → namespace-l-HG1rLF.d.mts} +0 -0
  485. /package/dist/{namespace-DbNWsPFY.mjs → namespace-tjoxekmf.mjs} +0 -0
  486. /package/dist/{out-DrhwCgqM.mjs → out-8bOYN6EF.mjs} +0 -0
  487. /package/dist/{package-CBdvjyyZ.mjs → package-EGTn-Ng1.mjs} +0 -0
  488. /package/dist/{packages-FBv3fAOR.mjs → packages-Bp124-gx.mjs} +0 -0
  489. /package/dist/{packages-N3-2Kl-Y.d.mts → packages-CxPMEg8D.d.mts} +0 -0
  490. /package/dist/{platform-BrsMv_S3.mjs → platform-CxyYPrkf.mjs} +0 -0
  491. /package/dist/{provider-operation-DJ_TLZFf.d.mts → provider-operation-DbdyFwNm.d.mts} +0 -0
  492. /package/dist/{providers-CCcn4Ndp.mjs → providers-C-eekMxD.mjs} +0 -0
  493. /package/dist/{providers-namespace-DeJBh6MP.d.mts → providers-namespace-CfZKp-C0.d.mts} +0 -0
  494. /package/dist/{quick-lru-uwB0hP-y.mjs → quick-lru-CCEnf7y6.mjs} +0 -0
  495. /package/dist/{schema-jIapW8Kb.mjs → schema-C0opCPww.mjs} +0 -0
  496. /package/dist/{schema-introspection-C1wvklj9.mjs → schema-introspection-6-r_KEJQ.mjs} +0 -0
  497. /package/dist/{schemas-CeUI2i5j.d.mts → schemas-B50oWBuj.d.mts} +0 -0
  498. /package/dist/{schemas-CD0wOQxx.d.mts → schemas-B6Q-qdmn.d.mts} +0 -0
  499. /package/dist/{schemas-DgwEVUt-.mjs → schemas-B8hKbBwI.mjs} +0 -0
  500. /package/dist/{schemas-sMoRnBdZ.d.mts → schemas-BGvkTiCx.d.mts} +0 -0
  501. /package/dist/{schemas-BNdiVBWh.mjs → schemas-BivbWRkG.mjs} +0 -0
  502. /package/dist/{schemas-Cg-Kwp8c.d.mts → schemas-ChmQldVH.d.mts} +0 -0
  503. /package/dist/{schemas-VbB1FTxx.d.mts → schemas-D7ScxLrf.d.mts} +0 -0
  504. /package/dist/{schemas-DvMbcABQ.d.mts → schemas-Dd0po67F.d.mts} +0 -0
  505. /package/dist/{schemas-Cv3rR9Sz.d.mts → schemas-Pe892GgN.d.mts} +0 -0
  506. /package/dist/{schemas-qA279_j_.d.mts → schemas-bfZNpl0B.d.mts} +0 -0
  507. /package/dist/{schemas-mLpOfMoN.mjs → schemas-scyC2tFF.mjs} +0 -0
  508. /package/dist/{semver-DTXuyLcK.mjs → semver-BI7kTNsY.mjs} +0 -0
  509. /package/dist/{server-lifecycle-DKx_fWlq.mjs → server-lifecycle-B_OZnoe-.mjs} +0 -0
  510. /package/dist/{server-lifecycle-C_8iKgat.d.mts → server-lifecycle-L8zja8t8.d.mts} +0 -0
  511. /package/dist/{session-lineage-D5E142LU.d.mts → session-lineage-bUkd3fqx.d.mts} +0 -0
  512. /package/dist/{shared-schemas-aahW97QW.mjs → shared-schemas-CQ6blrEW.mjs} +0 -0
  513. /package/dist/{src-DHqsl5Pg.mjs → src-BacfeiI4.mjs} +0 -0
  514. /package/dist/{storage-namespace-Dz2jsssp.mjs → storage-namespace-BZce8kkW.mjs} +0 -0
  515. /package/dist/{storage-namespace-Tf3P5yJ5.d.mts → storage-namespace-YmE8XCCL.d.mts} +0 -0
  516. /package/dist/{storage-namespace-definition-CDef0E20.mjs → storage-namespace-definition-Cca-zwXU.mjs} +0 -0
  517. /package/dist/{supports-color-i7OTnKcZ.mjs → supports-color-SV_FgSN2.mjs} +0 -0
  518. /package/dist/{telemetry-BvCBUjFg.mjs → telemetry-BqoC87F-.mjs} +0 -0
  519. /package/dist/{timeout-B0nYjLc8.mjs → timeout-DVlN2Zhy.mjs} +0 -0
  520. /package/dist/{tray-menu-service-Deo6yyP8.mjs → tray-menu-service-eVVxgPLc.mjs} +0 -0
  521. /package/dist/{types-xCdGghb2.d.mts → types-BlB23n4f.d.mts} +0 -0
  522. /package/dist/{types-CNS55jvt.d.mts → types-DdpSEmTO.d.mts} +0 -0
  523. /package/dist/{types-Ce6LL25v.d.mts → types-tyv0B605.d.mts} +0 -0
  524. /package/dist/{ui-config-BIyGzMNL.mjs → ui-config-B35GloSX.mjs} +0 -0
  525. /package/dist/{variant-B4uWdxW7.mjs → variant-Dwnge3J_.mjs} +0 -0
  526. /package/dist/{window-registry-CoBJq3u4.mjs → window-registry-CKiMJjId.mjs} +0 -0
  527. /package/dist/{window-registry-BLtVx3Iw.d.mts → window-registry-Pcf35cac.d.mts} +0 -0
  528. /package/dist/{zod-json-schema-BAGAFfCN.mjs → zod-json-schema-Dixc-B1T.mjs} +0 -0
@@ -1,4 +1,4 @@
1
- import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as ee,O as te,P as ne,Q as re,R as ie,S as m,U as ae,V as oe,W as se,X as ce,Y as le,Z as ue,_ as de,a as fe,at as pe,b as me,c as he,ct as h,et as ge,f as _e,h as ve,i as ye,it as be,j as xe,k as g,l as Se,m as Ce,n as we,nt as Te,o as Ee,ot as De,p as Oe,q as ke,r as Ae,rt as je,st as Me,tt as Ne,u as Pe,v as Fe,w as Ie,x as Le,y as _,z as Re}from"./authority-state-bootstrap-YwtEImIB.mjs";import{assertWorkflowTriggerPayload as ze,compileWorkflowTriggerBindingFilter as Be}from"./workflow-engine/workflow-trigger-binding-consumer.mjs";import{SerialLane as Ve}from"@makaio/framework/utils";import{ArtifactSubjects as He,AutomationTriggerSubjects as Ue,CRON_AUTOMATION_TRIGGER_KIND as We,EXECUTION_LIST_DEFAULT_LIMIT as Ge,EXECUTION_LIST_MAX_LIMIT as v,EXECUTION_LIST_MIN_LIMIT as y,EXTERNAL_EXECUTION_ID_PREFIX as b,ExecutionsByArtifactRefsQuerySchema as Ke,JsonPatchOperationSchema as qe,JsonValueSchema as Je,SessionSubjects as Ye,WORKFLOW_CANCELLED_REASON as x,WorkLogFrameEntrySchema as Xe,WorkerNodeSubjects as Ze,WorkflowAutomationTriggerBindingSchema as Qe,WorkflowError as S,WorkflowErrorCode as $e,WorkflowNamespace as et,WorkflowRunContextSchema as tt,WorkflowRunResultSchema as nt,WorkflowStepTypeSchema as rt,WorkflowSubjects as C,createWorkflowCancelSubject as it,createWorkflowDelegateResultFinalizerNamespace as at,createWorkflowFinalizerNamespace as ot,dep as st,extensionToken as ct,serializeArtifactRef as lt,walkWorkflowDefinition as ut}from"@makaio/framework/contracts";import{BaseService as dt}from"@makaio/framework/service-base";import{defineDialectSchema as ft,executeTransaction as w,getDatabaseDialect as pt,registerDrizzleHandlers as mt,resolveSchema as T,serializeDatabaseOperation as E}from"@makaio/framework/storage/drizzle";import{and as D,asc as O,count as k,desc as A,eq as j,getTableColumns as ht,gte as gt,isNotNull as _t,isNull as M,lt as vt,lte as yt,notInArray as bt,or as xt,sql as N,sum as P}from"drizzle-orm";import{SessionToken as St}from"@makaio/framework/services";import{AutomationTriggerBindingRuntimeToken as Ct}from"@makaio/framework/services/automation-trigger";const wt=ne.postgres,Tt=se.postgres,Et=l.postgres,Dt=d.postgres,Ot=ce.postgres,kt=ie.postgres,At=u.postgres,jt=be.postgres,Mt=ge.postgres,Nt=re.postgres,Pt=Te.postgres,Ft=n.postgres,It=c.postgres,Lt=De.postgres,F=ft({workflowDefinitions:ee,workflowExecutions:ae,workflowExecutionFrames:o,workflowGateInstances:s,workflowStepSpans:le,workflowExecutionLinks:f,workflowRunContexts:ke,worklogSummaries:je,worklogFrameEntries:e,worklogArtifactWrites:ue,worklogGateEvents:Ne,workflowExecutionState:Re,workflowExecutionStateEvents:oe,workflowFinalizations:pe},{workflowDefinitions:wt,workflowExecutions:Tt,workflowExecutionFrames:Et,workflowGateInstances:Dt,workflowStepSpans:Ot,workflowExecutionLinks:kt,workflowRunContexts:At,worklogSummaries:jt,worklogFrameEntries:Mt,worklogArtifactWrites:Nt,worklogGateEvents:Pt,workflowExecutionState:Ft,workflowExecutionStateEvents:It,workflowFinalizations:Lt});function I(e){return e.type===`global`?{scopeType:`global`,scopeKind:``,scopeId:``}:e.type===`external`?{scopeType:`external`,scopeKind:e.kind,scopeId:e.id}:{scopeType:e.type,scopeKind:``,scopeId:e.id}}function L(e){switch(e.scopeType){case`global`:return{type:`global`};case`external`:if(!e.scopeKind||!e.scopeId)throw Error(`Invalid external workflow scope row: scopeKind and scopeId are required`);return{type:`external`,kind:e.scopeKind,id:e.scopeId};case`workspace`:case`session`:if(!e.scopeId)throw Error(`Invalid ${e.scopeType} workflow scope row: scopeId is required`);return{type:e.scopeType,id:e.scopeId};default:{let t=e.scopeType;throw Error(`Unknown scope type: ${String(t)}`)}}}function Rt(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=I(t);return[j(e.scopeType,n),j(e.scopeKind,r),j(e.scopeId,i)]}function R(e){return{id:e.id,name:e.name,description:e.description??void 0,root:e.root,inputSchema:e.inputSchema??void 0,configSchema:e.configSchema??void 0,outputSchema:e.outputSchema??void 0,state:e.state??void 0,artifact:e.artifact??void 0,triggers:e.triggers??void 0,scope:L(e),canvasLayout:e.canvasLayout??void 0,source:e.source??void 0,executableSource:e.executableSource??void 0,requirements:e.requirements??void 0,successFinalizerId:e.successFinalizerId??void 0}}function zt(e,t){let n=I(e.scope);return{id:e.id,name:e.name??e.id,root:e.root,description:e.description??null,inputSchema:e.inputSchema??null,configSchema:e.configSchema??null,outputSchema:e.outputSchema??null,state:e.state??null,artifact:e.artifact??null,triggers:e.triggers??null,canvasLayout:e.canvasLayout??null,source:e.source??null,executableSource:e.executableSource??null,requirements:e.requirements??null,successFinalizerId:e.successFinalizerId??null,createdAt:t,updatedAt:t,...n}}function Bt(e,t){let{workflowDefinitions:n}=T(t,F),r=ht(n),i=e.on(p.get,async e=>{let r=await t.select().from(n).where(j(n.id,e.payload.id)).limit(1);e.setResult({workflow:r[0]?R(r[0]):null})}),a=e.on(p.set,async i=>{let a=i.payload.workflow,o=Date.now(),s=zt(a,o),c=await E(t,async()=>{let e=await t.insert(n).values(s).onConflictDoNothing({target:n.id}).returning();if(e.length>0)return{kind:`created`,row:e[0]};let[i]=await t.update(n).set({name:s.name,root:s.root,updatedAt:o,createdAt:N`COALESCE(${r.createdAt}, ${o})`,description:s.description===null?N`${r.description}`:s.description,inputSchema:s.inputSchema===null?N`${r.inputSchema}`:s.inputSchema,configSchema:s.configSchema===null?N`${r.configSchema}`:s.configSchema,outputSchema:s.outputSchema===null?N`${r.outputSchema}`:s.outputSchema,state:s.state,artifact:s.artifact===null?N`${r.artifact}`:s.artifact,triggers:s.triggers===null?N`${r.triggers}`:s.triggers,canvasLayout:s.canvasLayout===null?N`${r.canvasLayout}`:s.canvasLayout,source:s.source===null?N`${r.source}`:s.source,executableSource:s.executableSource,requirements:s.requirements,successFinalizerId:s.successFinalizerId,...I(a.scope)}).where(j(n.id,a.id)).returning();return i?{kind:`updated`,row:i}:void 0});c&&await e.emit(c.kind===`created`?h.definition.created:h.definition.updated,R(c.row)),i.setResult({id:a.id})}),o=e.on(p.delete,async r=>{let i=(await E(t,()=>t.delete(n).where(j(n.id,r.payload.id)).returning())).length>0;i&&await e.emit(h.definition.deleted,{id:r.payload.id}),r.setResult({deleted:i})}),s=e.on(p.list,async e=>{let r=e.payload,i=r.scope?Rt(n,r.scope):[],a=i.length>0?await t.select().from(n).where(D(...i)):await t.select().from(n);e.setResult({workflows:a.map(R)})});return()=>{i(),a(),o(),s()}}function Vt(e){return{frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId??void 0,status:e.status,attempt:e.attempt,iteration:e.iteration??void 0,branchKey:e.branchKey??void 0,...e.outputPresent?{output:e.output}:{},error:e.error??void 0,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0}}function Ht(e,t){return{frameId:t.frameId,executionId:e,nodeId:t.nodeId,nodeType:t.nodeType,path:t.path,parentFrameId:t.parentFrameId??null,status:t.status,attempt:t.attempt,iteration:t.iteration??null,branchKey:t.branchKey??null,output:t.output===void 0?null:t.output,outputPresent:t.output!==void 0,error:t.error??null,startedAt:t.startedAt??null,completedAt:t.completedAt??null}}function Ut(e,t){let{workflowExecutionFrames:n}=T(t,F),r=e.on(p.setFrame,async e=>{let{executionId:r,frame:i}=e.payload;if(!g(e,r))throw Error(`Unauthorized: caller is not permitted to write frames for execution: ${r}`);let a=Ht(r,i);await E(t,()=>t.insert(n).values(a).onConflictDoUpdate({target:n.frameId,set:a})),e.setResult({frameId:i.frameId})}),i=e.on(p.getFrame,async e=>{let r=await t.select().from(n).where(j(n.frameId,e.payload.frameId)).limit(1);e.setResult({frame:r[0]?Vt(r[0]):null})}),a=e.on(p.listFrames,async e=>{if(!g(e,e.payload.executionId))throw Error(`Unauthorized: caller is not permitted to list frames for execution: ${e.payload.executionId}`);let r=await t.select().from(n).where(j(n.executionId,e.payload.executionId)).orderBy(O(n.startedAt),O(n.frameId));e.setResult({frames:r.map(Vt)})});return()=>{r(),i(),a()}}function Wt(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function z(e){return{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??void 0,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs??null,...e.resumeDataPresent?{resumeData:e.resumeData}:{},...e.reason===null?{}:{reason:e.reason},createdAt:e.createdAt,resolvedAt:e.resolvedAt??void 0}}function B(e){return{id:Wt(e),executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??null,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs,resumeData:e.resumeData===void 0?null:e.resumeData,reason:e.reason??null,resumeDataPresent:e.resumeData!==void 0,createdAt:e.createdAt,resolvedAt:e.resolvedAt??null}}function Gt(e,t,n,r){if(e===void 0&&t===void 0)throw Error(`Either executionId or status is required to list gate instances.`);let i=n??Ge;if(!Number.isInteger(i)||i<y||i>v)throw Error(`Gate instance list limit must be an integer between ${y} and ${v}.`);return{resolvedLimit:i,predicates:[...e===void 0?[]:[j(r.executionId,e)],...t===void 0?[]:[j(r.status,t)]]}}function Kt(e,t){let{workflowExecutions:n,workflowGateInstances:r}=T(t,F),i=e.on(p.setGateInstance,async e=>{let n=e.payload.gate;if(!g(e,n.executionId))throw Error(`Unauthorized: caller is not permitted to write gates for execution: ${n.executionId}`);let i=B(n);await E(t,()=>t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i})),e.setResult({id:i.id})}),a=e.on(p.resolveWaitingGateInstance,async e=>{let n=e.payload.gate,i=B(n),a=await E(t,()=>t.update(r).set(i).where(D(j(r.id,i.id),j(r.status,`waiting`))).returning({id:r.id}));e.setResult({accepted:a.length===1})}),o=e.on(p.getGateInstance,async e=>{let{executionId:n,nodeId:i,frameId:a}=e.payload;if(!g(e,n))throw Error(`Unauthorized: caller is not permitted to read gates for execution: ${n}`);let o=[j(r.executionId,n),j(r.nodeId,i)];a!==void 0&&o.push(j(r.frameId,a));let s=await t.select().from(r).where(D(...o)).limit(1);e.setResult({gate:s[0]?z(s[0]):null})}),s=e.on(p.listGateInstances,async e=>{let{executionId:n,status:i,limit:a}=e.payload,{resolvedLimit:o,predicates:s}=Gt(n,i,a,r),c=await t.select().from(r).where(D(...s)).orderBy(A(r.createdAt),A(r.id)).limit(o);e.setResult({gates:c.map(z)})}),c=e.on(p.listPausedGateTimeouts,async e=>{let i=await t.select({gate:r}).from(r).innerJoin(n,j(r.executionId,n.id)).where(D(j(r.status,`waiting`),j(n.status,`paused`),_t(r.timeoutMs)));e.setResult({gates:i.map(e=>z(e.gate))})});return()=>{i(),a(),o(),s(),c()}}function qt(e){return{executionId:e.executionId,frameId:e.frameId,stepId:e.stepId,stepType:e.stepType,status:e.status,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,inputTokens:e.inputTokens??void 0,outputTokens:e.outputTokens??void 0,estimatedCost:e.estimatedCost??void 0,toolCallCount:e.toolCallCount??void 0,input:e.input??void 0,output:e.output??void 0}}function Jt(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function Yt(e,t){let{workflowStepSpans:n,workflowExecutionLinks:r}=T(t,F),i=e.on(p.setSpan,async e=>{let{span:r}=e.payload;if(!g(e,r.executionId))throw Error(`Unauthorized: caller is not permitted to write spans for execution: ${r.executionId}`);await E(t,()=>t.insert(n).values(r).onConflictDoUpdate({target:[n.executionId,n.frameId],set:r})),e.setResult({id:`${r.executionId}:${r.frameId}`})}),a=e.on(p.listSpans,async e=>{let r=await t.select().from(n).where(j(n.executionId,e.payload.executionId)).orderBy(O(n.startedAt),O(n.stepId),O(n.frameId));e.setResult({spans:r.map(qt)})}),o=e.on(p.setExecutionLink,async e=>{let{link:n}=e.payload;await E(t,()=>t.insert(r).values(n).onConflictDoUpdate({target:[r.sourceExecutionId,r.targetExecutionId],set:n})),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),s=e.on(p.listExecutionLinks,async e=>{let{sourceExecutionId:n,targetExecutionId:i}=e.payload;if(n===void 0&&i===void 0)throw Error(`Either sourceExecutionId or targetExecutionId is required to list execution links.`);let a=[...n===void 0?[]:[j(r.sourceExecutionId,n)],...i===void 0?[]:[j(r.targetExecutionId,i)]],o=t.select().from(r).where(D(...a));e.setResult({links:(await o).map(Jt)})});return()=>{i(),a(),o(),s()}}function V(e,t){return t===null?pt(e)===`postgres`?N`'null'::jsonb`:N`'null'`:t}function Xt(e){switch(e.kind){case`path`:return{sourceKind:`path`,sourcePath:e.path,sourceFilename:null,sourceCode:null};case`source`:return{sourceKind:`source`,sourcePath:null,sourceFilename:e.filename,sourceCode:e.source};case`definition`:return{sourceKind:`definition`,sourcePath:null,sourceFilename:null,sourceCode:null}}}function Zt(e){switch(e.sourceKind){case`path`:if(!e.sourcePath)throw Error(`Invalid run context row: sourcePath required for kind=path`);return{kind:`path`,path:e.sourcePath};case`source`:if(!e.sourceFilename)throw Error(`Invalid run context row: sourceFilename required for kind=source`);return{kind:`source`,filename:e.sourceFilename,source:e.sourceCode??``};case`definition`:return{kind:`definition`,workflowId:e.workflowId};default:throw Error(`Unknown run context source kind: ${String(e.sourceKind)}`)}}function Qt(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:Zt(e),definitionSnapshot:e.definitionSnapshot??void 0,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode,...e.artifactRef===null?{}:{artifactRef:e.artifactRef},scope:L(e),...e.dispatchMetadata===null?{}:{dispatchMetadata:e.dispatchMetadata},cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy??`wait-in-process`,...e.terminalAuthority===null?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===null?{}:{materializationSpec:e.materializationSpec}}}function $t(e){let t=Xt(e.source),n=I(e.scope);return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,...t,definitionSnapshot:e.definitionSnapshot??null,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode??`immediate`,artifactRef:e.artifactRef??null,dispatchMetadata:e.dispatchMetadata??null,...n,cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??null,materializationSpec:e.materializationSpec??null}}async function en(e,t,n){let r=$t(t);await e.insert(n).values(r).onConflictDoUpdate({target:n.executionId,set:r})}function tn(e,t){let{workflowRunContexts:n,workflowExecutionState:r,workflowExecutionStateEvents:i}=T(t,F),a=e.on(p.setRunContext,async e=>{let a=e.payload.runContext,o=e.payload.initialState;await w(t,async e=>{if(await en(e,a,n),o===void 0)return;let s=Date.now(),c=V(t,o);await e.insert(r).values({executionId:a.executionId,sequence:0,value:c,updatedAt:s}).onConflictDoNothing(),await e.insert(i).values({executionId:a.executionId,sequence:0,patch:[],value:c,createdAt:s}).onConflictDoNothing()}),e.setResult({executionId:a.executionId})}),o=e.on(p.getRunContext,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(j(n.executionId,r)),a=i[0]?Qt(i[0]):null;e.setResult({runContext:a})});return()=>{a(),o()}}async function nn(e,t,n){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=T(e,F),a=Date.now(),o=V(e,n);await w(e,async e=>{await e.insert(r).values({executionId:t,sequence:0,value:o,updatedAt:a}).onConflictDoNothing(),await e.insert(i).values({executionId:t,sequence:0,patch:[],value:o,createdAt:a}).onConflictDoNothing()})}async function rn(e,t){let{workflowExecutionState:n}=T(e,F),r=(await e.select().from(n).where(j(n.executionId,t)).limit(1))[0];return r?{executionId:r.executionId,sequence:r.sequence,value:r.value}:null}async function an(e,t){let{workflowExecutionState:n,workflowExecutionStateEvents:r}=T(e,F),i=Date.now(),a=V(e,t.nextValue);return w(e,async e=>{let o=(await e.select().from(n).where(j(n.executionId,t.executionId)).limit(1))[0];if(!o)throw Error(`no workflow state for execution ${t.executionId}`);if(t.expectedSequence===void 0)throw Error(`expectedSequence is required to patch workflow state`);let s=o.sequence+1,c=te(o.value,t.nextValue);if((await e.update(n).set({sequence:s,value:a,updatedAt:i}).where(D(j(n.executionId,t.executionId),j(n.sequence,t.expectedSequence))).returning()).length===0)throw Error(`state sequence conflict: expected ${String(t.expectedSequence)}, got ${String(o.sequence)}`);return await e.insert(r).values({executionId:t.executionId,sequence:s,patch:c,value:a,createdAt:i}),{executionId:t.executionId,sequence:s,patch:c,value:t.nextValue}})}function on(e,t){let n=e.on(p.initializeState,async e=>{let{executionId:n,initialValue:r}=e.payload;await nn(t,n,r),e.setResult({})}),r=e.on(p.getState,async e=>{let{executionId:n}=e.payload,r=await rn(t,n);e.setResult({state:r})}),i=e.on(p.patchState,async e=>{let{executionId:n,expectedSequence:r,nextValue:i}=e.payload,a=await an(t,{executionId:n,expectedSequence:r,nextValue:i});e.setResult(a)});return()=>{n(),r(),i()}}function sn(e){return{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName??void 0,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,totalInputTokens:e.totalInputTokens??void 0,totalOutputTokens:e.totalOutputTokens??void 0,totalEstimatedCost:e.totalEstimatedCost??void 0,error:e.error??void 0,failedNodeId:e.failedNodeId??void 0}}async function cn(e,t){let{worklogSummaries:n}=T(e,F);await e.insert(n).values(t).onConflictDoNothing()}async function ln(e,t){let{worklogSummaries:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.executionId,set:un(t),setWhere:bt(n.status,[`completed`,`failed`,`cancelled`])})}function un(e){return{workflowId:e.workflowId,workflowName:e.workflowName,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt,durationMs:e.durationMs,error:e.error,failedNodeId:e.failedNodeId}}async function H(e,t){let{worklogSummaries:n}=T(e,F),r=await e.select().from(n).where(j(n.executionId,t)).limit(1);return r[0]?sn(r[0]):null}async function dn(e,t={}){let{worklogSummaries:n}=T(e,F),{workflowId:r,status:i,limit:a=50,offset:o=0}=t,s=[...r===void 0?[]:[j(n.workflowId,r)],...i===void 0?[]:[j(n.status,i)]],c=s.length>0?D(...s):void 0,[l,u]=await Promise.all([e.select().from(n).where(c).orderBy(A(n.startedAt)).limit(a).offset(o),e.select({count:k()}).from(n).where(c)]);return{items:l.map(sn),total:u[0]?.count??0}}async function fn(e,t){let{worklogFrameEntries:n}=T(e,F);await e.insert(n).values(t).onConflictDoNothing()}async function pn(e,t){let{worklogFrameEntries:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.frameId,set:t,setWhere:bt(n.status,[`completed`,`failed`,`skipped`,`cancelled`])})}async function U(e,t){let{worklogFrameEntries:n}=T(e,F);return(await e.select().from(n).where(j(n.frameId,t)).limit(1))[0]??null}async function mn(e,t){let n=await U(e,t);return n===null?null:Xe.parse({executionId:n.executionId,frameId:n.frameId,nodeId:n.nodeId,nodeType:n.nodeType,path:n.path,status:n.status,attempt:n.attempt,iteration:n.iteration??void 0,branchKey:n.branchKey??void 0,startedAt:n.startedAt??void 0,completedAt:n.completedAt??void 0,durationMs:n.durationMs??void 0,inputTokens:n.inputTokens??void 0,outputTokens:n.outputTokens??void 0,estimatedCost:n.estimatedCost??void 0,error:n.error??void 0})}async function hn(e,t){let{worklogArtifactWrites:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}function gn(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function W(e,t){let{worklogGateEvents:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}async function _n(e,t){let{worklogGateEvents:n}=T(e,F);return(await e.select().from(n).where(j(n.id,t)).limit(1))[0]??null}function G(e,t,n){return`${e}:${t}:${n}`}async function vn(e,t,n){let[r]=await e.update(t).set({totalInputTokens:t.totalInputTokens}).where(j(t.executionId,n)).returning();return r}async function yn(e,t,n){let[r]=await e.select({totalInputTokens:P(t.inputTokens),totalOutputTokens:P(t.outputTokens),totalEstimatedCost:P(t.estimatedCost),measuredInputTokens:k(t.inputTokens),measuredOutputTokens:k(t.outputTokens),measuredCosts:k(t.estimatedCost)}).from(t).where(j(t.executionId,n));return{totalInputTokens:Number(r?.totalInputTokens??0),totalOutputTokens:Number(r?.totalOutputTokens??0),totalEstimatedCost:Number(r?.totalEstimatedCost??0),hasMeasurements:Number(r?.measuredInputTokens??0)>0||Number(r?.measuredOutputTokens??0)>0||Number(r?.measuredCosts??0)>0}}function bn(e){return e.hasMeasurements}async function xn(e,t,n,r){await e.update(t).set({totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost}).where(j(t.executionId,n))}async function Sn(e,t,n,r){let i=N`coalesce((select sum(${n.inputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,a=N`coalesce((select sum(${n.outputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,o=N`coalesce((select sum(${n.estimatedCost}) from ${n} where ${n.executionId} = ${r}), 0)`,s=N`exists(
1
+ import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as ee,O as te,P as ne,Q as re,R as ie,S as m,U as ae,V as oe,W as se,X as ce,Y as le,Z as ue,_ as de,a as fe,at as pe,b as me,c as he,ct as h,et as ge,f as _e,h as ve,i as ye,it as be,j as xe,k as g,l as Se,m as Ce,n as we,nt as Te,o as Ee,ot as De,p as Oe,q as ke,r as Ae,rt as je,st as Me,tt as Ne,u as Pe,v as Fe,w as Ie,x as Le,y as _,z as Re}from"./authority-state-bootstrap-CLYus369.mjs";import{assertWorkflowTriggerPayload as ze,compileWorkflowTriggerBindingFilter as Be}from"./workflow-engine/workflow-trigger-binding-consumer.mjs";import{SerialLane as Ve}from"@makaio/framework/utils";import{ArtifactSubjects as He,AutomationTriggerSubjects as Ue,CRON_AUTOMATION_TRIGGER_KIND as We,EXECUTION_LIST_DEFAULT_LIMIT as Ge,EXECUTION_LIST_MAX_LIMIT as v,EXECUTION_LIST_MIN_LIMIT as y,EXTERNAL_EXECUTION_ID_PREFIX as b,ExecutionsByArtifactRefsQuerySchema as Ke,JsonPatchOperationSchema as qe,JsonValueSchema as Je,SessionSubjects as Ye,WORKFLOW_CANCELLED_REASON as x,WorkLogFrameEntrySchema as Xe,WorkerNodeSubjects as Ze,WorkflowAutomationTriggerBindingSchema as Qe,WorkflowError as S,WorkflowErrorCode as $e,WorkflowNamespace as et,WorkflowRunContextSchema as tt,WorkflowRunResultSchema as nt,WorkflowStepTypeSchema as rt,WorkflowSubjects as C,createWorkflowCancelSubject as it,createWorkflowDelegateResultFinalizerNamespace as at,createWorkflowFinalizerNamespace as ot,dep as st,extensionToken as ct,serializeArtifactRef as lt,walkWorkflowDefinition as ut}from"@makaio/framework/contracts";import{BaseService as dt}from"@makaio/framework/service-base";import{defineDialectSchema as ft,executeTransaction as w,getDatabaseDialect as pt,registerDrizzleHandlers as mt,resolveSchema as T,serializeDatabaseOperation as E}from"@makaio/framework/storage/drizzle";import{and as D,asc as O,count as k,desc as A,eq as j,getTableColumns as ht,gte as gt,isNotNull as _t,isNull as M,lt as vt,lte as yt,notInArray as bt,or as xt,sql as N,sum as P}from"drizzle-orm";import{SessionToken as St}from"@makaio/framework/services";import{AutomationTriggerBindingRuntimeToken as Ct}from"@makaio/framework/services/automation-trigger";const wt=ne.postgres,Tt=se.postgres,Et=l.postgres,Dt=d.postgres,Ot=ce.postgres,kt=ie.postgres,At=u.postgres,jt=be.postgres,Mt=ge.postgres,Nt=re.postgres,Pt=Te.postgres,Ft=n.postgres,It=c.postgres,Lt=De.postgres,F=ft({workflowDefinitions:ee,workflowExecutions:ae,workflowExecutionFrames:o,workflowGateInstances:s,workflowStepSpans:le,workflowExecutionLinks:f,workflowRunContexts:ke,worklogSummaries:je,worklogFrameEntries:e,worklogArtifactWrites:ue,worklogGateEvents:Ne,workflowExecutionState:Re,workflowExecutionStateEvents:oe,workflowFinalizations:pe},{workflowDefinitions:wt,workflowExecutions:Tt,workflowExecutionFrames:Et,workflowGateInstances:Dt,workflowStepSpans:Ot,workflowExecutionLinks:kt,workflowRunContexts:At,worklogSummaries:jt,worklogFrameEntries:Mt,worklogArtifactWrites:Nt,worklogGateEvents:Pt,workflowExecutionState:Ft,workflowExecutionStateEvents:It,workflowFinalizations:Lt});function I(e){return e.type===`global`?{scopeType:`global`,scopeKind:``,scopeId:``}:e.type===`external`?{scopeType:`external`,scopeKind:e.kind,scopeId:e.id}:{scopeType:e.type,scopeKind:``,scopeId:e.id}}function L(e){switch(e.scopeType){case`global`:return{type:`global`};case`external`:if(!e.scopeKind||!e.scopeId)throw Error(`Invalid external workflow scope row: scopeKind and scopeId are required`);return{type:`external`,kind:e.scopeKind,id:e.scopeId};case`workspace`:case`session`:if(!e.scopeId)throw Error(`Invalid ${e.scopeType} workflow scope row: scopeId is required`);return{type:e.scopeType,id:e.scopeId};default:{let t=e.scopeType;throw Error(`Unknown scope type: ${String(t)}`)}}}function Rt(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=I(t);return[j(e.scopeType,n),j(e.scopeKind,r),j(e.scopeId,i)]}function R(e){return{id:e.id,name:e.name,description:e.description??void 0,root:e.root,inputSchema:e.inputSchema??void 0,configSchema:e.configSchema??void 0,outputSchema:e.outputSchema??void 0,state:e.state??void 0,artifact:e.artifact??void 0,triggers:e.triggers??void 0,scope:L(e),canvasLayout:e.canvasLayout??void 0,source:e.source??void 0,executableSource:e.executableSource??void 0,requirements:e.requirements??void 0,successFinalizerId:e.successFinalizerId??void 0}}function zt(e,t){let n=I(e.scope);return{id:e.id,name:e.name??e.id,root:e.root,description:e.description??null,inputSchema:e.inputSchema??null,configSchema:e.configSchema??null,outputSchema:e.outputSchema??null,state:e.state??null,artifact:e.artifact??null,triggers:e.triggers??null,canvasLayout:e.canvasLayout??null,source:e.source??null,executableSource:e.executableSource??null,requirements:e.requirements??null,successFinalizerId:e.successFinalizerId??null,createdAt:t,updatedAt:t,...n}}function Bt(e,t){let{workflowDefinitions:n}=T(t,F),r=ht(n),i=e.on(p.get,async e=>{let r=await t.select().from(n).where(j(n.id,e.payload.id)).limit(1);e.setResult({workflow:r[0]?R(r[0]):null})}),a=e.on(p.set,async i=>{let a=i.payload.workflow,o=Date.now(),s=zt(a,o),c=await E(t,async()=>{let e=await t.insert(n).values(s).onConflictDoNothing({target:n.id}).returning();if(e.length>0)return{kind:`created`,row:e[0]};let[i]=await t.update(n).set({name:s.name,root:s.root,updatedAt:o,createdAt:N`COALESCE(${r.createdAt}, ${o})`,description:s.description===null?N`${r.description}`:s.description,inputSchema:s.inputSchema===null?N`${r.inputSchema}`:s.inputSchema,configSchema:s.configSchema===null?N`${r.configSchema}`:s.configSchema,outputSchema:s.outputSchema===null?N`${r.outputSchema}`:s.outputSchema,state:s.state,artifact:s.artifact===null?N`${r.artifact}`:s.artifact,triggers:s.triggers===null?N`${r.triggers}`:s.triggers,canvasLayout:s.canvasLayout===null?N`${r.canvasLayout}`:s.canvasLayout,source:s.source===null?N`${r.source}`:s.source,executableSource:s.executableSource,requirements:s.requirements,successFinalizerId:s.successFinalizerId,...I(a.scope)}).where(j(n.id,a.id)).returning();return i?{kind:`updated`,row:i}:void 0});c&&await e.emit(c.kind===`created`?h.definition.created:h.definition.updated,R(c.row)),i.setResult({id:a.id})}),o=e.on(p.delete,async r=>{let i=(await E(t,()=>t.delete(n).where(j(n.id,r.payload.id)).returning())).length>0;i&&await e.emit(h.definition.deleted,{id:r.payload.id}),r.setResult({deleted:i})}),s=e.on(p.list,async e=>{let r=e.payload,i=r.scope?Rt(n,r.scope):[],a=i.length>0?await t.select().from(n).where(D(...i)):await t.select().from(n);e.setResult({workflows:a.map(R)})});return()=>{i(),a(),o(),s()}}function Vt(e){return{frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId??void 0,status:e.status,attempt:e.attempt,iteration:e.iteration??void 0,branchKey:e.branchKey??void 0,...e.outputPresent?{output:e.output}:{},error:e.error??void 0,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0}}function Ht(e,t){return{frameId:t.frameId,executionId:e,nodeId:t.nodeId,nodeType:t.nodeType,path:t.path,parentFrameId:t.parentFrameId??null,status:t.status,attempt:t.attempt,iteration:t.iteration??null,branchKey:t.branchKey??null,output:t.output===void 0?null:t.output,outputPresent:t.output!==void 0,error:t.error??null,startedAt:t.startedAt??null,completedAt:t.completedAt??null}}function Ut(e,t){let{workflowExecutionFrames:n}=T(t,F),r=e.on(p.setFrame,async e=>{let{executionId:r,frame:i}=e.payload;if(!g(e,r))throw Error(`Unauthorized: caller is not permitted to write frames for execution: ${r}`);let a=Ht(r,i);await E(t,()=>t.insert(n).values(a).onConflictDoUpdate({target:n.frameId,set:a})),e.setResult({frameId:i.frameId})}),i=e.on(p.getFrame,async e=>{let r=await t.select().from(n).where(j(n.frameId,e.payload.frameId)).limit(1);e.setResult({frame:r[0]?Vt(r[0]):null})}),a=e.on(p.listFrames,async e=>{if(!g(e,e.payload.executionId))throw Error(`Unauthorized: caller is not permitted to list frames for execution: ${e.payload.executionId}`);let r=await t.select().from(n).where(j(n.executionId,e.payload.executionId)).orderBy(O(n.startedAt),O(n.frameId));e.setResult({frames:r.map(Vt)})});return()=>{r(),i(),a()}}function Wt(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function z(e){return{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??void 0,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs??null,...e.resumeDataPresent?{resumeData:e.resumeData}:{},...e.reason===null?{}:{reason:e.reason},createdAt:e.createdAt,resolvedAt:e.resolvedAt??void 0}}function B(e){return{id:Wt(e),executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??null,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs,resumeData:e.resumeData===void 0?null:e.resumeData,reason:e.reason??null,resumeDataPresent:e.resumeData!==void 0,createdAt:e.createdAt,resolvedAt:e.resolvedAt??null}}function Gt(e,t,n,r){if(e===void 0&&t===void 0)throw Error(`Either executionId or status is required to list gate instances.`);let i=n??Ge;if(!Number.isInteger(i)||i<y||i>v)throw Error(`Gate instance list limit must be an integer between ${y} and ${v}.`);return{resolvedLimit:i,predicates:[...e===void 0?[]:[j(r.executionId,e)],...t===void 0?[]:[j(r.status,t)]]}}function Kt(e,t){let{workflowExecutions:n,workflowGateInstances:r}=T(t,F),i=e.on(p.setGateInstance,async e=>{let n=e.payload.gate;if(!g(e,n.executionId))throw Error(`Unauthorized: caller is not permitted to write gates for execution: ${n.executionId}`);let i=B(n);await E(t,()=>t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i})),e.setResult({id:i.id})}),a=e.on(p.resolveWaitingGateInstance,async e=>{let n=e.payload.gate,i=B(n),a=await E(t,()=>t.update(r).set(i).where(D(j(r.id,i.id),j(r.status,`waiting`))).returning({id:r.id}));e.setResult({accepted:a.length===1})}),o=e.on(p.getGateInstance,async e=>{let{executionId:n,nodeId:i,frameId:a}=e.payload;if(!g(e,n))throw Error(`Unauthorized: caller is not permitted to read gates for execution: ${n}`);let o=[j(r.executionId,n),j(r.nodeId,i)];a!==void 0&&o.push(j(r.frameId,a));let s=await t.select().from(r).where(D(...o)).limit(1);e.setResult({gate:s[0]?z(s[0]):null})}),s=e.on(p.listGateInstances,async e=>{let{executionId:n,status:i,limit:a}=e.payload,{resolvedLimit:o,predicates:s}=Gt(n,i,a,r),c=await t.select().from(r).where(D(...s)).orderBy(A(r.createdAt),A(r.id)).limit(o);e.setResult({gates:c.map(z)})}),c=e.on(p.listPausedGateTimeouts,async e=>{let i=await t.select({gate:r}).from(r).innerJoin(n,j(r.executionId,n.id)).where(D(j(r.status,`waiting`),j(n.status,`paused`),_t(r.timeoutMs)));e.setResult({gates:i.map(e=>z(e.gate))})});return()=>{i(),a(),o(),s(),c()}}function qt(e){return{executionId:e.executionId,frameId:e.frameId,stepId:e.stepId,stepType:e.stepType,status:e.status,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,inputTokens:e.inputTokens??void 0,outputTokens:e.outputTokens??void 0,estimatedCost:e.estimatedCost??void 0,toolCallCount:e.toolCallCount??void 0,input:e.input??void 0,output:e.output??void 0}}function Jt(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function Yt(e,t){let{workflowStepSpans:n,workflowExecutionLinks:r}=T(t,F),i=e.on(p.setSpan,async e=>{let{span:r}=e.payload;if(!g(e,r.executionId))throw Error(`Unauthorized: caller is not permitted to write spans for execution: ${r.executionId}`);await E(t,()=>t.insert(n).values(r).onConflictDoUpdate({target:[n.executionId,n.frameId],set:r})),e.setResult({id:`${r.executionId}:${r.frameId}`})}),a=e.on(p.listSpans,async e=>{let r=await t.select().from(n).where(j(n.executionId,e.payload.executionId)).orderBy(O(n.startedAt),O(n.stepId),O(n.frameId));e.setResult({spans:r.map(qt)})}),o=e.on(p.setExecutionLink,async e=>{let{link:n}=e.payload;await E(t,()=>t.insert(r).values(n).onConflictDoUpdate({target:[r.sourceExecutionId,r.targetExecutionId],set:n})),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),s=e.on(p.listExecutionLinks,async e=>{let{sourceExecutionId:n,targetExecutionId:i}=e.payload;if(n===void 0&&i===void 0)throw Error(`Either sourceExecutionId or targetExecutionId is required to list execution links.`);let a=[...n===void 0?[]:[j(r.sourceExecutionId,n)],...i===void 0?[]:[j(r.targetExecutionId,i)]],o=t.select().from(r).where(D(...a));e.setResult({links:(await o).map(Jt)})});return()=>{i(),a(),o(),s()}}function V(e,t){return t===null?pt(e)===`postgres`?N`'null'::jsonb`:N`'null'`:t}function Xt(e){switch(e.kind){case`path`:return{sourceKind:`path`,sourcePath:e.path,sourceFilename:null,sourceCode:null};case`source`:return{sourceKind:`source`,sourcePath:null,sourceFilename:e.filename,sourceCode:e.source};case`definition`:return{sourceKind:`definition`,sourcePath:null,sourceFilename:null,sourceCode:null}}}function Zt(e){switch(e.sourceKind){case`path`:if(!e.sourcePath)throw Error(`Invalid run context row: sourcePath required for kind=path`);return{kind:`path`,path:e.sourcePath};case`source`:if(!e.sourceFilename)throw Error(`Invalid run context row: sourceFilename required for kind=source`);return{kind:`source`,filename:e.sourceFilename,source:e.sourceCode??``};case`definition`:return{kind:`definition`,workflowId:e.workflowId};default:throw Error(`Unknown run context source kind: ${String(e.sourceKind)}`)}}function Qt(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:Zt(e),definitionSnapshot:e.definitionSnapshot??void 0,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode,...e.artifactRef===null?{}:{artifactRef:e.artifactRef},scope:L(e),...e.dispatchMetadata===null?{}:{dispatchMetadata:e.dispatchMetadata},cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy??`wait-in-process`,...e.terminalAuthority===null?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===null?{}:{materializationSpec:e.materializationSpec}}}function $t(e){let t=Xt(e.source),n=I(e.scope);return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,...t,definitionSnapshot:e.definitionSnapshot??null,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode??`immediate`,artifactRef:e.artifactRef??null,dispatchMetadata:e.dispatchMetadata??null,...n,cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??null,materializationSpec:e.materializationSpec??null}}async function en(e,t,n){let r=$t(t);await e.insert(n).values(r).onConflictDoUpdate({target:n.executionId,set:r})}function tn(e,t){let{workflowRunContexts:n,workflowExecutionState:r,workflowExecutionStateEvents:i}=T(t,F),a=e.on(p.setRunContext,async e=>{let a=e.payload.runContext,o=e.payload.initialState;await w(t,async e=>{if(await en(e,a,n),o===void 0)return;let s=Date.now(),c=V(t,o);await e.insert(r).values({executionId:a.executionId,sequence:0,value:c,updatedAt:s}).onConflictDoNothing(),await e.insert(i).values({executionId:a.executionId,sequence:0,patch:[],value:c,createdAt:s}).onConflictDoNothing()}),e.setResult({executionId:a.executionId})}),o=e.on(p.getRunContext,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(j(n.executionId,r)),a=i[0]?Qt(i[0]):null;e.setResult({runContext:a})});return()=>{a(),o()}}async function nn(e,t,n){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=T(e,F),a=Date.now(),o=V(e,n);await w(e,async e=>{await e.insert(r).values({executionId:t,sequence:0,value:o,updatedAt:a}).onConflictDoNothing(),await e.insert(i).values({executionId:t,sequence:0,patch:[],value:o,createdAt:a}).onConflictDoNothing()})}async function rn(e,t){let{workflowExecutionState:n}=T(e,F),r=(await e.select().from(n).where(j(n.executionId,t)).limit(1))[0];return r?{executionId:r.executionId,sequence:r.sequence,value:r.value}:null}async function an(e,t){let{workflowExecutionState:n,workflowExecutionStateEvents:r}=T(e,F),i=Date.now(),a=V(e,t.nextValue);return w(e,async e=>{let o=(await e.select().from(n).where(j(n.executionId,t.executionId)).limit(1))[0];if(!o)throw Error(`no workflow state for execution ${t.executionId}`);if(t.expectedSequence===void 0)throw Error(`expectedSequence is required to patch workflow state`);let s=o.sequence+1,c=te(o.value,t.nextValue);if((await e.update(n).set({sequence:s,value:a,updatedAt:i}).where(D(j(n.executionId,t.executionId),j(n.sequence,t.expectedSequence))).returning()).length===0)throw Error(`state sequence conflict: expected ${String(t.expectedSequence)}, got ${String(o.sequence)}`);return await e.insert(r).values({executionId:t.executionId,sequence:s,patch:c,value:a,createdAt:i}),{executionId:t.executionId,sequence:s,patch:c,value:t.nextValue}})}function on(e,t){let n=e.on(p.initializeState,async e=>{let{executionId:n,initialValue:r}=e.payload;await nn(t,n,r),e.setResult({})}),r=e.on(p.getState,async e=>{let{executionId:n}=e.payload,r=await rn(t,n);e.setResult({state:r})}),i=e.on(p.patchState,async e=>{let{executionId:n,expectedSequence:r,nextValue:i}=e.payload,a=await an(t,{executionId:n,expectedSequence:r,nextValue:i});e.setResult(a)});return()=>{n(),r(),i()}}function sn(e){return{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName??void 0,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,totalInputTokens:e.totalInputTokens??void 0,totalOutputTokens:e.totalOutputTokens??void 0,totalEstimatedCost:e.totalEstimatedCost??void 0,error:e.error??void 0,failedNodeId:e.failedNodeId??void 0}}async function cn(e,t){let{worklogSummaries:n}=T(e,F);await e.insert(n).values(t).onConflictDoNothing()}async function ln(e,t){let{worklogSummaries:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.executionId,set:un(t),setWhere:bt(n.status,[`completed`,`failed`,`cancelled`])})}function un(e){return{workflowId:e.workflowId,workflowName:e.workflowName,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt,durationMs:e.durationMs,error:e.error,failedNodeId:e.failedNodeId}}async function H(e,t){let{worklogSummaries:n}=T(e,F),r=await e.select().from(n).where(j(n.executionId,t)).limit(1);return r[0]?sn(r[0]):null}async function dn(e,t={}){let{worklogSummaries:n}=T(e,F),{workflowId:r,status:i,limit:a=50,offset:o=0}=t,s=[...r===void 0?[]:[j(n.workflowId,r)],...i===void 0?[]:[j(n.status,i)]],c=s.length>0?D(...s):void 0,[l,u]=await Promise.all([e.select().from(n).where(c).orderBy(A(n.startedAt)).limit(a).offset(o),e.select({count:k()}).from(n).where(c)]);return{items:l.map(sn),total:u[0]?.count??0}}async function fn(e,t){let{worklogFrameEntries:n}=T(e,F);await e.insert(n).values(t).onConflictDoNothing()}async function pn(e,t){let{worklogFrameEntries:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.frameId,set:t,setWhere:bt(n.status,[`completed`,`failed`,`skipped`,`cancelled`])})}async function U(e,t){let{worklogFrameEntries:n}=T(e,F);return(await e.select().from(n).where(j(n.frameId,t)).limit(1))[0]??null}async function mn(e,t){let n=await U(e,t);return n===null?null:Xe.parse({executionId:n.executionId,frameId:n.frameId,nodeId:n.nodeId,nodeType:n.nodeType,path:n.path,status:n.status,attempt:n.attempt,iteration:n.iteration??void 0,branchKey:n.branchKey??void 0,startedAt:n.startedAt??void 0,completedAt:n.completedAt??void 0,durationMs:n.durationMs??void 0,inputTokens:n.inputTokens??void 0,outputTokens:n.outputTokens??void 0,estimatedCost:n.estimatedCost??void 0,error:n.error??void 0})}async function hn(e,t){let{worklogArtifactWrites:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}function gn(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function W(e,t){let{worklogGateEvents:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}async function _n(e,t){let{worklogGateEvents:n}=T(e,F);return(await e.select().from(n).where(j(n.id,t)).limit(1))[0]??null}function G(e,t,n){return`${e}:${t}:${n}`}async function vn(e,t,n){let[r]=await e.update(t).set({totalInputTokens:t.totalInputTokens}).where(j(t.executionId,n)).returning();return r}async function yn(e,t,n){let[r]=await e.select({totalInputTokens:P(t.inputTokens),totalOutputTokens:P(t.outputTokens),totalEstimatedCost:P(t.estimatedCost),measuredInputTokens:k(t.inputTokens),measuredOutputTokens:k(t.outputTokens),measuredCosts:k(t.estimatedCost)}).from(t).where(j(t.executionId,n));return{totalInputTokens:Number(r?.totalInputTokens??0),totalOutputTokens:Number(r?.totalOutputTokens??0),totalEstimatedCost:Number(r?.totalEstimatedCost??0),hasMeasurements:Number(r?.measuredInputTokens??0)>0||Number(r?.measuredOutputTokens??0)>0||Number(r?.measuredCosts??0)>0}}function bn(e){return e.hasMeasurements}async function xn(e,t,n,r){await e.update(t).set({totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost}).where(j(t.executionId,n))}async function Sn(e,t,n,r){let i=N`coalesce((select sum(${n.inputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,a=N`coalesce((select sum(${n.outputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,o=N`coalesce((select sum(${n.estimatedCost}) from ${n} where ${n.executionId} = ${r}), 0)`,s=N`exists(
2
2
  select 1 from ${n}
3
3
  where ${n.executionId} = ${r}
4
4
  and (${n.inputTokens} is not null
@@ -1,5 +1,5 @@
1
- import { l as ProviderOperationOwnershipRecord, o as ProviderOperationClaimDecision, s as ProviderOperationMutationDecision } from "./provider-operation-DJ_TLZFf.mjs";
2
- import { A as RecoverableAttemptRecord, C as ProvisioningClaimDecision, D as RecordProviderOperationUncertaintyInput, E as RecordInfrastructureFailureInput, M as TakeOverProviderOperationInput, O as RecordProvisionerIncarnationLostInput, S as ProvisioningAbsenceDecision, T as RecordAllocationTerminatedInput, a as BeginProvisioningInput, b as PendingAttemptAbandonmentDecision, f as ExecutionAttemptOutcomeDecision, h as ExecutionAttemptRepository, i as AllocationTerminationDecision, j as RenewProviderOperationClaimInput, k as RecordProvisioningAbsentInput, n as AllocationRefEvolution, o as DiscoveredAllocationDecision, p as ExecutionAttemptRecord, r as AllocationRefEvolutionDecision, t as AllocationRecordingDecision, v as HandoffProviderOperationInput, w as RecordAllocationInput, x as ProvisionerIncarnationLossDecision, y as InfrastructureFailureDecision } from "./execution-attempt-repository-DFyAnchJ.mjs";
1
+ import { l as ProviderOperationOwnershipRecord, o as ProviderOperationClaimDecision, s as ProviderOperationMutationDecision } from "./provider-operation-DbdyFwNm.mjs";
2
+ import { A as RecoverableAttemptRecord, C as ProvisioningClaimDecision, D as RecordProviderOperationUncertaintyInput, E as RecordInfrastructureFailureInput, M as TakeOverProviderOperationInput, O as RecordProvisionerIncarnationLostInput, S as ProvisioningAbsenceDecision, T as RecordAllocationTerminatedInput, a as BeginProvisioningInput, b as PendingAttemptAbandonmentDecision, f as ExecutionAttemptOutcomeDecision, h as ExecutionAttemptRepository, i as AllocationTerminationDecision, j as RenewProviderOperationClaimInput, k as RecordProvisioningAbsentInput, n as AllocationRefEvolution, o as DiscoveredAllocationDecision, p as ExecutionAttemptRecord, r as AllocationRefEvolutionDecision, t as AllocationRecordingDecision, v as HandoffProviderOperationInput, w as RecordAllocationInput, x as ProvisionerIncarnationLossDecision, y as InfrastructureFailureDecision } from "./execution-attempt-repository-BJ2W6wwx.mjs";
3
3
  import { IMakaioBus } from "@makaio/framework/bus";
4
4
  import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
5
5
  import { IWorkflowRunner, LoopGateHandler, MakaioNodeExtension, StationHandler, StepRunnerBusAuth, StepRunnerPlatformDefaults, WorkerMaterializationSpec, WorkflowDefinition, WorkflowExecution, WorkflowRunContext, WorkflowRunResult } from "@makaio/framework/contracts";
@@ -0,0 +1 @@
1
+ import{CapabilitySubjects as e,extensionToken as t}from"@makaio/framework/contracts";import{BaseService as n}from"@makaio/framework/service-base";var r=class extends n{providers=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(e.register,e=>{this.handleRegister(e.payload)}),this.registerHandler(e.unregister,e=>{this.handleUnregister(e.payload)}),this.registerHandler(e.listProviders,e=>{let{capabilityId:t}=e.payload,n=this.getProviders(t);e.setResult({providers:n.map(e=>({id:e.id,displayName:e.displayName,providerKey:e.providerKey}))})}),this.registerHandler(e.validate,async e=>{let{capabilityId:t}=e.payload,n=await this.validateAll(t);e.setResult({results:n})})}handleRegister(e){let{capabilityId:t}=e,n=e.provider,r=this.providers.get(t)??[],i=r.findIndex(e=>e.id===n.id);if(i>=0){r[i]=n;return}r.push(n),this.providers.set(t,r)}handleUnregister(e){this.unregisterProvider(e.capabilityId,e.providerId)}unregisterProvider(e,t){let n=this.providers.get(e);if(!n)return;let r=n.filter(e=>e.id!==t);if(r.length===0){this.providers.delete(e);return}this.providers.set(e,r)}getProviders(e){return this.providers.get(e)??[]}hasProviders(e){let t=this.providers.get(e);return t!==void 0&&t.length>0}getCapabilities(){return[...this.providers.keys()]}async validateAll(e){let t=this.getProviders(e);return Promise.all(t.map(async e=>{if(e.validate){let t=await e.validate();return{id:e.id,...t}}return{id:e.id,valid:!0}}))}onDestroy(){this.providers.clear()}clear(){this.providers.clear()}};const i=t(`capability`),a={name:i.name,displayName:`Capability`,version:`0.1.0`,critical:!0,create:e=>new r(e.bus)};export{a as n,r,i as t};
@@ -1 +1 @@
1
- import{SessionStorageSubjects as e}from"./services/session/storage/namespace.mjs";import{ExecutionTargetSubjects as t}from"./services/execution-target/namespace.mjs";import{r as n}from"./attach-error-BSlc7JfL.mjs";import{MakaioBus as r}from"@makaio/framework/bus";import{AdapterSubjects as i,AgentSubjects as a,DEFAULT_CONSTRAINTS as o,SessionSubjects as s,SpawnSubagentRpcRequestSchema as c,SubagentConfigSchema as l,SubagentError as u,SubagentErrorCode as d,SubagentSubjects as f,dep as p,extensionToken as m}from"@makaio/framework/contracts";import{BaseService as h}from"@makaio/framework/service-base";import{RuntimeProviderContextResolutionError as g,resolveRuntimeProviderContext as _}from"@makaio/framework/services/provider-context";function v(e,t){return`${e}:${t}`}function y(e,t){return e?.authenticated!==!0||!e.id?!1:e.kind===`workflow-execution`?!0:t.size===0?!1:t.has(v(e.kind,e.id))}var b=class{maxSize;items=[];constructor(e=50){this.maxSize=e}push(e){this.items.push(e),this.items.length>this.maxSize&&this.items.shift()}toArray(){return[...this.items]}get length(){return this.items.length}clear(){this.items=[]}};const x=[`completed`,`failed`,`cancelled`];function S(e){return x.includes(e)}var C=class{constraints;subagents=new Map;awaiters=new Map;constructor(e){this.constraints=e}track(e){let t=Date.now(),n={subagentId:e.subagentId,parentSessionId:e.parentSessionId,childSessionId:void 0,status:`spawning`,config:e.config,depth:e.depth,progressUpdates:new b(50),toolObservations:[],completedTurnUsage:new Map,completedTurnSuccess:new Map,toolCallIds:new Set,startTime:t,lastActivityAt:t};return this.subagents.set(e.subagentId,n),n}setChildSessionId(e,t){let n=this.subagents.get(e);n&&(n.childSessionId=t,n.lastActivityAt=Date.now())}markStarted(e){let t=this.subagents.get(e);t&&t.status===`spawning`&&this.applyStatus(t,`running`)}get(e){return this.subagents.get(e)}getByChildSessionId(e){return[...this.subagents.values()].find(t=>t.childSessionId===e)}recordTurnStarted(e,t){let n=this.getByChildSessionId(e);n===void 0||S(n.status)||(n.activeTurnId=t,n.lastActivityAt=Date.now())}recordTurnCompleted(e,t){let n=this.getByChildSessionId(e);n===void 0||S(n.status)||(n.activeTurnId===t&&(n.activeTurnId=void 0),n.lastActivityAt=Date.now())}recordToolObservation(e,t,n){let r=this.getByChildSessionId(e);if(!(r===void 0||S(r.status))){if(n!==void 0){if(r.toolCallIds.has(n))return;r.toolCallIds.add(n)}r.toolObservations.push(t),r.lastActivityAt=Date.now()}}getAllNonTerminal(){let e=[];for(let t of this.subagents.values())S(t.status)||e.push(t);return e}countActiveBySession(e){let t=0;for(let n of this.subagents.values())n.parentSessionId===e&&!S(n.status)&&t++;return t}countTotalActive(){let e=0;for(let t of this.subagents.values())S(t.status)||e++;return e}updateStatus(e,t){let n=this.subagents.get(e);n&&this.applyStatus(n,t)}applyStatus(e,t){let n=Date.now();e.status=t,e.lastActivityAt=n,S(t)&&(e.activeTurnId=void 0,e.endTime=n)}addProgress(e,t){let n=this.subagents.get(e);n&&(n.progressUpdates.push(t),n.lastActivityAt=Date.now())}setPendingRequest(e,t){let n=this.subagents.get(e);if(!n)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);if(n.pendingRequest)throw new u(d.REQUEST_PENDING,`Cannot call request_input while another request is pending`);if(n.completionCandidate!==void 0)throw new u(d.INVALID_STATE,`Cannot request input while completion is pending`);n.pendingRequest=t,n.status=`waiting_input`,n.lastActivityAt=Date.now()}resolvePendingRequest(e,t){let n=this.subagents.get(e);n?.pendingRequest&&(n.pendingRequest.resolver(t),n.pendingRequest=void 0,n.lastActivityAt=Date.now(),n.status===`waiting_input`&&(n.status=`running`))}markCompleted(e,t,n,r){let i=this.subagents.get(e);if(!i)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);if(S(i.status))throw new u(d.ALREADY_TERMINAL,`Subagent already in terminal state: ${i.status}`);this.applyStatus(i,`completed`),i.result=t,i.summary=n,i.completionSource=r,this.resolveAwaiters(e)}recordCompletionCandidate(e,t,n,r,i){let a=this.subagents.get(e);if(!a)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);let o=a.completionCandidate;if(o!==void 0){if(o.turnId===t&&o.result===n&&o.summary===r&&o.source===i)return;throw new u(d.INVALID_STATE,`Conflicting subagent completion candidate`)}if(S(a.status))throw new u(d.ALREADY_TERMINAL,`Subagent already in terminal state: ${a.status}`);if(a.pendingRequest!==void 0)throw new u(d.INVALID_STATE,`Cannot complete while an input request is pending`);a.completionCandidate={turnId:t,result:n,summary:r,source:i},a.status=`completing`,a.lastActivityAt=Date.now()}recordCompletedTurn(e,t,n,r=!0,i){let a=this.subagents.get(e);a===void 0||S(a.status)||(a.completedTurnUsage.has(t)||(a.completedTurnUsage.set(t,n===void 0?void 0:{total:{...n.total},...n.byAgent===void 0?{}:{byAgent:Object.fromEntries(Object.entries(n.byAgent).map(([e,t])=>[e,{...t}]))}}),a.completedTurnSuccess.set(t,{success:r,...i!==void 0&&{error:i}})),a.lastActivityAt=Date.now())}finalizeCompletionIfReady(e){let t=this.subagents.get(e);if(!t)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);if(S(t.status))return!1;let n=t.completionCandidate;if(n===void 0||!t.completedTurnUsage.has(n.turnId))return!1;let r=t.completedTurnSuccess.get(n.turnId);if(r?.success===!1)return this.markFailed(e,r.error??`child turn failed`),!0;let i=this.freezeUsage(t);return this.applyStatus(t,`completed`),t.result=n.result,t.summary=n.summary,t.completionSource=n.source,t.usage=i,this.resolveAwaiters(e),!0}freezeUsage(e){let t=0,n=0,r=0,i=!1;for(let a of e.completedTurnUsage.values())a!==void 0&&(i=!0,t+=a.total.inputTokens,n+=a.total.cachedInputTokens??0,r+=a.total.outputTokens);return Object.freeze({...i?{inputTokens:t,cachedInputTokens:n,outputTokens:r}:{},toolCallCount:e.toolCallIds.size})}markFailed(e,t){let n=this.subagents.get(e);!n||S(n.status)||(this.applyStatus(n,`failed`),n.error=t,this.resolveAwaiters(e))}markCancelled(e){let t=this.subagents.get(e);return!t||S(t.status)?!1:(this.applyStatus(t,`cancelled`),t.pendingRequest&&=(t.pendingRequest.resolver(null),void 0),this.resolveAwaiters(e),!0)}addAwaiter(e,t){let n=this.awaiters.get(e)??[];n.push(t),this.awaiters.set(e,n)}removeAwaiter(e,t){let n=this.awaiters.get(e);if(!n)return!1;let r=n.indexOf(t);return r===-1?!1:(n.splice(r,1),n.length===0&&this.awaiters.delete(e),!0)}resolveAwaiters(e){let t=this.subagents.get(e),n=this.awaiters.get(e);if(!n||!t)return;let r={status:t.status,result:t.result,error:t.error,completionSource:t.completionSource,usage:t.usage,toolObservations:[...t.toolObservations]};for(let e of n)e(r);this.awaiters.delete(e)}cleanup(){let e=Date.now(),t=0;for(let[n,r]of this.subagents)S(r.status)&&r.endTime&&e-r.endTime>this.constraints.stateRetentionMs&&(this.subagents.delete(n),t++);return t}sweepHung(e){if(e<=0)return 0;let t=Date.now(),n=0;for(let r of this.subagents.values())S(r.status)||r.status!==`spawning`&&r.status!==`waiting_input`&&r.status!==`hung`&&t-r.lastActivityAt>=e&&(r.status=`hung`,r.lastActivityAt=t,n++);return n}};async function w(e,t,n){let r=n?.trim();if(r)return r;let{session:i}=await e.request(s.get,{sessionId:t});return(i?.agents.find(e=>e.agentId===i.leadAgentId)??i?.agents[0])?.adapterName?.trim()}function T(e,t){let n=e.manager.get(t.subagentId);if(!n)throw Error(`Subagent not found: ${t.subagentId}`);return{status:n.status,childSessionId:n.childSessionId,pendingRequest:n.pendingRequest?{messageId:n.pendingRequest.messageId,question:n.pendingRequest.question,context:n.pendingRequest.context}:void 0,progress:n.progressUpdates.toArray(),result:n.result,summary:n.summary,error:n.error,usage:n.usage}}async function E(e,t){let{parentSessionId:n,config:r,depth:i,spawningToolCallId:a}=t,{constraints:o}=e.manager,s=Math.min(r.maxDepth??o.maxDepth,o.maxDepth);if(i>s)throw new u(d.DEPTH_EXCEEDED,`Maximum subagent depth (${s}) exceeded`);if(e.manager.countActiveBySession(n)>=o.maxConcurrentPerSession)throw new u(d.SESSION_LIMIT,`Maximum concurrent subagents per session (${o.maxConcurrentPerSession}) reached`);if(e.manager.countTotalActive()>=o.maxTotalActive)throw new u(d.GLOBAL_LIMIT,`Maximum total active subagents (${o.maxTotalActive}) reached`);let c=await w(e.bus,n,r.adapterName);if(!c)throw new u(d.ADAPTER_NOT_ALLOWED,`adapterName is required for subagent spawn when parent session has no inheritable adapter`);if(o.allowedAdapters.length>0&&!o.allowedAdapters.includes(c))throw new u(d.ADAPTER_NOT_ALLOWED,`Adapter '${c}' is not allowed`);if(r.model&&o.allowedModels.length>0&&!o.allowedModels.includes(r.model))throw new u(d.MODEL_NOT_ALLOWED,`Model '${r.model}' is not allowed`);let l={...r,adapterName:c},p=crypto.randomUUID();return e.manager.track({subagentId:p,parentSessionId:n,config:l,depth:i}),await e.bus.emit(f.spawned,{subagentId:p,parentSessionId:n,task:l.task,config:l,depth:i,...e.executionOwnerId!==void 0&&{executionOwnerId:e.executionOwnerId},...a!==void 0&&{spawningToolCallId:a}}),{subagentId:p,status:`spawning`}}async function D(e,t){let{subagentId:n,timeoutMs:r}=t,i=e.manager.get(n);if(!i)throw Error(`Subagent not found: ${n}`);if([`completed`,`failed`,`cancelled`].includes(i.status))return{status:i.status,result:i.result,error:i.error,completionSource:i.completionSource,toolObservations:[...i.toolObservations],usage:i.usage};if(i.status===`waiting_input`&&i.pendingRequest)return{status:`waiting_input`,pendingRequest:{messageId:i.pendingRequest.messageId,question:i.pendingRequest.question,context:i.pendingRequest.context}};let a=r??e.manager.constraints.defaultAwaitTimeoutMs;return new Promise(t=>{let r=!1,i,o=e=>{r||(r=!0,i&&clearTimeout(i),t({status:e.status,result:e.result,error:e.error,pendingRequest:e.pendingRequest,completionSource:e.completionSource,toolObservations:e.toolObservations,usage:e.usage}))};e.manager.addAwaiter(n,o),a>0&&(i=setTimeout(()=>{r||(r=!0,e.manager.removeAwaiter(n,o),t({status:`timeout`}))},a))})}async function O(e,t){let{subagentId:n,content:r,inResponseTo:i}=t,a=e.manager.get(n);if(!a)throw Error(`Subagent not found: ${n}`);if(a.status===`spawning`)throw new u(d.INVALID_STATE,`Cannot send to a subagent before startup completes`);if(a.completionCandidate!==void 0)throw new u(d.INVALID_STATE,`Cannot send to a subagent while completion is pending`);let o=!1;return i&&a.pendingRequest?.messageId===i&&(e.manager.resolvePendingRequest(n,r),o=!0),await e.bus.emit(f.toChild,{subagentId:n,messageId:crypto.randomUUID(),content:r,inResponseTo:i}),{sent:!0,resolvedPending:o}}async function k(e,t){let{subagentId:n,reason:r}=t,i=e.manager.markCancelled(n);return i&&await e.bus.emit(f.cancelled,{subagentId:n,reason:r??`Killed by parent`}),{killed:i}}async function A(e,t){let{subagentId:n,update:r,percentComplete:i}=t;if(!e.manager.get(n))throw Error(`Subagent not found: ${n}`);let a=i===void 0?r:`[${i}%] ${r}`;return e.manager.addProgress(n,a),await e.bus.emit(f.toParent,{subagentId:n,messageId:crypto.randomUUID(),type:`progress`,content:a}),{reported:!0}}async function j(e,t){let{subagentId:n,question:r,context:i,timeoutMs:a}=t,o=e.manager.get(n);if(!o)throw Error(`Subagent not found: ${n}`);if(o.completionCandidate!==void 0)throw new u(d.INVALID_STATE,`Cannot request input while completion is pending`);let s=crypto.randomUUID(),c=a??e.manager.constraints.defaultRequestTimeoutMs,l=!1,p,m,h=new Promise(e=>{m=e});e.manager.setPendingRequest(n,{messageId:s,question:r,context:i,resolver:e=>{l||(l=!0,p&&clearTimeout(p),m(e===null?{responded:!1,timedOut:!0}:{responded:!0,response:e,timedOut:!1}))}}),c>0&&(p=setTimeout(()=>{l||e.manager.resolvePendingRequest(n,null)},c));let g=e.bus.emit(f.toParent,{subagentId:n,messageId:s,type:`request_input`,content:r,context:i}).then(()=>({published:!0}),e=>({published:!1,error:e})),_=await Promise.race([h.then(e=>({response:e})),g]);if(`response`in _)return _.response;if(!_.published)throw e.manager.resolvePendingRequest(n,null),_.error;return h}async function M(e,t){let{sessionId:n,turnId:r,result:i,summary:a}=t,o=e.manager.getByChildSessionId(n);if(o===void 0)throw new u(d.NOT_FOUND,`No subagent owns this child session`);if(o.status===`completed`||o.status===`failed`||o.status===`cancelled`)throw new u(d.ALREADY_TERMINAL,`Subagent already in terminal state: ${o.status}`);let s=o.activeTurnId;if(s===void 0)throw new u(d.INVALID_STATE,`No active turn exists for this child session`);if(r!==void 0&&r!==s)throw new u(d.INVALID_STATE,`Completion turn does not match the active child turn`);return e.manager.recordCompletionCandidate(o.subagentId,s,i,a,`tool`),await e.onCompletionCandidate?.(o.subagentId),{completed:!0}}function N(e,t){let{parentSessionId:n}=t;return{subagents:e.manager.getAllNonTerminal().filter(e=>e.parentSessionId===n).map(e=>({subagentId:e.subagentId,task:e.config.task,status:e.status}))}}function P(e,t,n,r){return{kind:`adapter`,adapterName:e,...n!==void 0&&{providerContext:n},...t.model!==void 0&&{model:t.model},...t.reasoningEffort!==void 0&&{reasoningEffort:t.reasoningEffort},...t.systemPrompt!==void 0&&{systemPrompt:t.systemPrompt},...t.adapterConfig!==void 0&&{adapterConfig:t.adapterConfig},...r!==void 0&&{cwd:r},...t.tools!==void 0&&{allowedTools:t.tools},...t.disallowedTools!==void 0&&{disallowedTools:t.disallowedTools},...t.allowedDirectories!==void 0&&{allowedDirectories:t.allowedDirectories}}}async function F(e,t){let{subagentId:n,adapterName:r,config:i,sessionId:a,task:o,targetWorkingDirectory:c,assertAdmission:l}=t,u=i.providerContext;if(u?.state===`resolved`&&i.providerConfigId!==void 0&&i.providerConfigId!==u.providerConfigId)throw Error(`Subagent providerConfigId "${i.providerConfigId}" does not match its resolved provider context "${u.providerConfigId}".`);if(u?.state===`unresolved`&&i.providerConfigId!==void 0)throw new g(`provider-context-unresolved`,r,i.providerConfigId);let d=u??(i.providerConfigId?await _(e,{adapterName:r,providerConfigId:i.providerConfigId}):void 0);await e.request(s.agent.attachResolved,{sessionId:a,role:`lead`,initialMessage:o,source:`system`,assertInitialMessageAdmission:()=>{try{l()}catch{throw Error(`Subagent startup was cancelled before initial task admission: ${n}`)}},...i.responseSchema!==void 0&&{responseSchema:i.responseSchema},...i.harnessId!==void 0&&{harnessId:i.harnessId},agent:P(r,i,d,c)},{timeout:0})}const I={id:`system:local`,name:`Local`,description:`Default local process execution`,type:`local`,scope:`default`,enabled:!0,createdAt:Date.now(),updatedAt:Date.now()};var L=class extends Error{code;constructor(e){super(`Subagent failure finalization failed (${e}).`),this.code=e,this.name=`SubagentFailureFinalizationError`}},R=class extends h{delegationAllowSet;requestHandlerPriority;executionOwnerId;manager;pendingChildSessionClose=new Set;spawningExecutions=new Set;constructor(e=r,t=o,n=new Set,i=0,a=crypto.randomUUID()){super(e),this.delegationAllowSet=n,this.requestHandlerPriority=i,this.executionOwnerId=a,this.manager=new C(t)}grantDelegation(e,t){this.delegationAllowSet.add(`${e}:${t}`)}revokeDelegation(e,t){this.delegationAllowSet.delete(`${e}:${t}`)}onInit(){this.registerHandler(f.spawned,async e=>{e.payload.executionOwnerId!==void 0&&e.payload.executionOwnerId!==this.executionOwnerId||this.handleSpawned(e.payload).catch(e=>{console.error(`[SubagentService] handleSpawned error:`,e)})}),this.registerHandler(f.execute,async e=>{if(!this.isRemoteDelegationAllowed(e))return;let t=await this.handleExecute(e.payload);e.setResult(t)}),this.registerHandler(f.toChild,async e=>{await this.handleToChild(e.payload)}),this.registerHandler(f.completed,async e=>{await this.handleCompleted(e.payload.subagentId)}),this.registerHandler(f.cancelled,async e=>{await this.handleCancelled(e.payload.subagentId)}),this.registerHandler(i.session.closed,e=>{this.handleAdapterSessionClosed(e.payload.sessionId)}),this.registerHandler(a.complete,async e=>{await this.handleAgentComplete(e.payload)}),this.registerHandler(s.turn.completed,async e=>{await this.handleSessionTurnCompleted(e.payload)}),this.registerHandler(s.turn.started,e=>{this.handleSessionTurnStarted(e.payload)}),this.registerHandler(a.tool.completed,e=>{e.payload._import||e.payload.sessionId===void 0||e.payload.success===void 0||this.manager.recordToolObservation(e.payload.sessionId,{toolName:e.payload.toolName,outcome:e.payload.success?`success`:`failure`,...e.payload.success===!0&&e.payload.artifactResult!==void 0?{artifact:e.payload.artifactResult}:{}},e.payload.toolCallId)}),this.registerRpcHandlers(),this.wirePeriodicSweep()}wirePeriodicSweep(){let{inactivityTimeoutMs:e,sweepIntervalMs:t}=this.manager.constraints;if(t<=0)return;let n=setInterval(()=>{let t=this.manager.sweepHung(e);t>0&&console.warn(`[SubagentService] Swept ${t} hung subagent(s) due to inactivity`),this.manager.cleanup()},t);this.addCleanup(()=>clearInterval(n))}registerRpcHandlers(){let e={manager:this.manager,bus:this.bus,executionOwnerId:this.executionOwnerId,onCompletionCandidate:e=>this.finalizeSubagentIfReady(e)};this.registerHandler(f.getStatus,t=>{let n=T(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.spawn,async t=>{if(!this.isRemoteDelegationAllowed(t))return;let n=await E(e,c.parse(t.payload));t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.await,async t=>{let n=await D(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.send,async t=>{let n=await O(e,t.payload);t.setResult(n)}),this.registerHandler(f.kill,async t=>{let n=await k(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.reportProgress,async t=>{let n=await A(e,t.payload);t.setResult(n)}),this.registerHandler(f.requestInput,async t=>{let n=await j(e,t.payload);t.setResult(n)}),this.registerHandler(f.completeTask,async t=>{let n=await M(e,t.payload);t.setResult(n)}),this.registerHandler(f.listBySession,t=>{let n=N(e,t.payload);t.setResult(n)})}onDestroy(){this.pendingChildSessionClose.clear(),this.spawningExecutions.clear()}async handleSpawned(e){let{subagentId:t,parentSessionId:n,task:r,spawningToolCallId:i}=e,a=this.manager.get(t);if(!(a&&a.status!==`spawning`)&&!this.spawningExecutions.has(t)){this.spawningExecutions.add(t);try{return await this.executeSpawned(e,n,r,i)}finally{this.spawningExecutions.delete(t)}}}async executeSpawned(e,n,r,i){let{subagentId:a}=e,o=()=>this.shouldAbortSpawn(this.manager.get(a)?.status),s=l.parse({...e.config,task:r}),c=s.adapterName?.trim();if(!c)return this.failSpawn(a,n,`adapter_start`,`Subagent spawn requires a non-empty adapterName`);this.manager.get(a)||this.manager.track({subagentId:a,parentSessionId:n,config:s,depth:e.depth??1});let u,d;try{d=await this.buildExecutionTargetResolutionParams(n,s.executionTargetId);let e=await this.bus.requestOptional(t.resolve,d),r;if(e.handled)r=e.data.executionTarget;else if(d.executionTargetId!=null)throw Error(`Execution target resolver unavailable for explicit target '${d.executionTargetId}'`);else r=I;if(r.type!==`local`)return this.failSpawn(a,n,`adapter_start`,`Execution target type '${r.type}' is not yet supported for subagents`);u=d.executionTargetId??void 0}catch(e){return this.failSpawn(a,n,`adapter_start`,e)}let f;try{f=await this.createChildSessionForSpawn(a,n,s,u,d,i)}catch(e){return this.failSpawn(a,n,`session_create`,e)}if(!o())return this.attachSpawnedSubagent({subagentId:a,parentSessionId:n,adapterName:c,config:s,sessionId:f,task:r,targetWorkingDirectory:d.targetWorkingDirectory,shouldAbort:o})}async attachSpawnedSubagent(e){let{subagentId:t,parentSessionId:r,adapterName:i,config:a,sessionId:o,task:s,targetWorkingDirectory:c,shouldAbort:l}=e;try{await F(this.bus,{subagentId:t,adapterName:i,config:a,sessionId:o,task:s,targetWorkingDirectory:c,assertAdmission:()=>{if(this.shouldAbortSpawn(this.manager.get(t)?.status))throw Error(`startup cancelled`)}})}catch(e){if(l())return;let i=n(e);return this.failSpawn(t,r,i?.stage===`initial_message`?`agent_start`:`adapter_start`,e)}l()||this.manager.markStarted(t)}async createChildSessionForSpawn(e,t,n,r,i,a){let{sessionId:o}=await this.bus.request(s.create,this.buildChildSessionCreatePayload(t,n,r,i.targetWorkingDirectory,a));return this.manager.setChildSessionId(e,o),this.pendingChildSessionClose.has(e)&&await this.closeChildSession(e),o}async failSpawn(e,t,n,r){let i=r instanceof Error?r:Error(String(r));this.manager.markFailed(e,i.message);let[a,o]=await Promise.allSettled([this.manager.get(e)?.childSessionId===void 0?Promise.resolve():this.requestChildSessionClose(e),this.emitExecutionFailed(e,t,n,i)]),s=[];if(a.status===`rejected`&&s.push(new L(`child-session-close-failed`)),o.status===`rejected`&&s.push(new L(`failure-publication-failed`)),s.length>0)throw AggregateError([i,...s],`Subagent spawn failed and failure finalization also failed.`);return i.message}async buildExecutionTargetResolutionParams(t,n){if(n!==void 0)return{executionTargetId:n};let{session:r}=await this.bus.request(e.get,{sessionId:t});if(!r)throw Error(`Parent session not found: ${t}`);return{...r.executionTargetId!==void 0&&{executionTargetId:r.executionTargetId},...r.targetWorkingDirectory!==void 0&&{targetWorkingDirectory:r.targetWorkingDirectory}}}buildChildSessionCreatePayload(e,t,n,r,i){return{branchKind:`subagent`,parentSessionId:e,contextInheritance:t.contextMode===`fork`?`parent-history`:`none`,...n!==void 0&&{executionTargetId:n},...r!==void 0&&{targetWorkingDirectory:r},...i!==void 0&&{spawningToolCallId:i}}}async handleExecute(e){let t=l.parse({...e.config,task:e.task});this.manager.track({subagentId:e.subagentId,parentSessionId:e.parentSessionId,config:t,depth:e.depth});let n=await this.handleSpawned({subagentId:e.subagentId,parentSessionId:e.parentSessionId,task:e.task,config:t,depth:e.depth});return n?{success:!1,error:n}:{success:!0}}async handleToChild(e){let{subagentId:t,content:n}=e,r=this.manager.get(t);if(!r){console.warn(`[SubagentService] No subagent found: ${t}`);return}if(!r.childSessionId){console.warn(`[SubagentService] No child session for subagent: ${t}`);return}try{await this.bus.request(s.sendMessage,{sessionId:r.childSessionId,message:n,source:`system`})}catch(e){console.error(`[SubagentService] Failed to route message to child session:`,e)}}async handleCompleted(e){await this.closeChildSession(e)}async handleCancelled(e){await this.closeChildSession(e)}async closeChildSession(e){try{await this.requestChildSessionClose(e)}catch{console.error(`[SubagentService] Failed to close child session for subagent ${e}:`,new L(`child-session-close-failed`))}}async requestChildSessionClose(e){let t=this.manager.get(e);if(t){if(!t.childSessionId){this.pendingChildSessionClose.add(e);return}this.pendingChildSessionClose.delete(e),await this.bus.request(s.close,{sessionId:t.childSessionId})}}shouldAbortSpawn(e){return e===void 0||e===`completed`||e===`failed`||e===`cancelled`}handleAdapterSessionClosed(e){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e){console.warn(`[SubagentService] Adapter session closed for subagent ${t.subagentId}: ${e}`),this.manager.markFailed(t.subagentId,`adapter-session-closed`);return}}async handleAgentComplete(e){let{sessionId:t,turnId:n,outcome:r,message:i,error:a}=e;if(!(!t||!n))for(let e of this.manager.getAllNonTerminal()){if(e.childSessionId!==t)continue;if((e.config.completion??`tool`)!==`turn`||e.status===`waiting_input`)return;let o=r??`completed`;if(o===`completed`)try{this.manager.recordCompletionCandidate(e.subagentId,n,i??``,void 0,`turn`),await this.finalizeSubagentIfReady(e.subagentId)}catch{return}else if(o===`error`)try{this.manager.recordCompletionCandidate(e.subagentId,n,a??`child turn failed`,void 0,`turn`),await this.finalizeSubagentIfReady(e.subagentId)}catch{return}return}}async handleSessionTurnCompleted(e){if(e.ingestionMarker!==`backfill`){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e.sessionId){if(this.manager.recordTurnCompleted(e.sessionId,e.turnId),this.manager.recordCompletedTurn(t.subagentId,e.turnId,e.usage,e.success,e.error),t.completionCandidate?.turnId!==e.turnId)return;await this.finalizeSubagentIfReady(t.subagentId);return}}}handleSessionTurnStarted(e){e.ingestionMarker!==`backfill`&&this.manager.recordTurnStarted(e.sessionId,e.turnId)}async finalizeSubagentIfReady(e){if(!this.manager.finalizeCompletionIfReady(e))return;let t=this.manager.get(e);await this.bus.emit(f.completed,{subagentId:e,success:t?.status===`completed`,...t?.status===`completed`?{result:t.summary?`${t.summary}\n\n${t.result??``}`:t?.result,usage:t.usage}:{error:t?.error??`child turn failed`}})}isRemoteDelegationAllowed(e){return e.origin.local||y(e.transport?.peer,this.delegationAllowSet)}async emitExecutionFailed(e,t,n,r){let i=r instanceof Error?r.message:String(r);await this.bus.emit(f.executionFailed,{subagentId:e,parentSessionId:t,phase:n,error:i})}};const z=m(`subagent-service`);function B(e=0){return{name:z.name,displayName:`Subagent Service`,version:`0.1.0`,critical:!0,surface:`headless`,dependencies:[p(`session`)],create:t=>new R(t.bus,o,new Set,e)}}const V=B();export{R as a,L as i,B as n,C as o,V as r,y as s,z as t};
1
+ import{SessionStorageSubjects as e}from"./services/session/storage/namespace.mjs";import{ExecutionTargetSubjects as t}from"./services/execution-target/namespace.mjs";import{r as n}from"./attach-error-Cb3GbeKe.mjs";import{MakaioBus as r}from"@makaio/framework/bus";import{AdapterSubjects as i,AgentSubjects as a,DEFAULT_CONSTRAINTS as o,SessionSubjects as s,SpawnSubagentRpcRequestSchema as c,SubagentConfigSchema as l,SubagentError as u,SubagentErrorCode as d,SubagentSubjects as f,dep as p,extensionToken as m}from"@makaio/framework/contracts";import{BaseService as h}from"@makaio/framework/service-base";import{RuntimeProviderContextResolutionError as g,resolveRuntimeProviderContext as _}from"@makaio/framework/services/provider-context";function v(e,t){return`${e}:${t}`}function y(e,t){return e?.authenticated!==!0||!e.id?!1:e.kind===`workflow-execution`?!0:t.size===0?!1:t.has(v(e.kind,e.id))}var b=class{maxSize;items=[];constructor(e=50){this.maxSize=e}push(e){this.items.push(e),this.items.length>this.maxSize&&this.items.shift()}toArray(){return[...this.items]}get length(){return this.items.length}clear(){this.items=[]}};const x=[`completed`,`failed`,`cancelled`];function S(e){return x.includes(e)}var C=class{constraints;subagents=new Map;awaiters=new Map;constructor(e){this.constraints=e}track(e){let t=Date.now(),n={subagentId:e.subagentId,parentSessionId:e.parentSessionId,childSessionId:void 0,status:`spawning`,config:e.config,depth:e.depth,progressUpdates:new b(50),toolObservations:[],completedTurnUsage:new Map,completedTurnSuccess:new Map,toolCallIds:new Set,startTime:t,lastActivityAt:t};return this.subagents.set(e.subagentId,n),n}setChildSessionId(e,t){let n=this.subagents.get(e);n&&(n.childSessionId=t,n.lastActivityAt=Date.now())}markStarted(e){let t=this.subagents.get(e);t&&t.status===`spawning`&&this.applyStatus(t,`running`)}get(e){return this.subagents.get(e)}getByChildSessionId(e){return[...this.subagents.values()].find(t=>t.childSessionId===e)}recordTurnStarted(e,t){let n=this.getByChildSessionId(e);n===void 0||S(n.status)||(n.activeTurnId=t,n.lastActivityAt=Date.now())}recordTurnCompleted(e,t){let n=this.getByChildSessionId(e);n===void 0||S(n.status)||(n.activeTurnId===t&&(n.activeTurnId=void 0),n.lastActivityAt=Date.now())}recordToolObservation(e,t,n){let r=this.getByChildSessionId(e);if(!(r===void 0||S(r.status))){if(n!==void 0){if(r.toolCallIds.has(n))return;r.toolCallIds.add(n)}r.toolObservations.push(t),r.lastActivityAt=Date.now()}}getAllNonTerminal(){let e=[];for(let t of this.subagents.values())S(t.status)||e.push(t);return e}countActiveBySession(e){let t=0;for(let n of this.subagents.values())n.parentSessionId===e&&!S(n.status)&&t++;return t}countTotalActive(){let e=0;for(let t of this.subagents.values())S(t.status)||e++;return e}updateStatus(e,t){let n=this.subagents.get(e);n&&this.applyStatus(n,t)}applyStatus(e,t){let n=Date.now();e.status=t,e.lastActivityAt=n,S(t)&&(e.activeTurnId=void 0,e.endTime=n)}addProgress(e,t){let n=this.subagents.get(e);n&&(n.progressUpdates.push(t),n.lastActivityAt=Date.now())}setPendingRequest(e,t){let n=this.subagents.get(e);if(!n)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);if(n.pendingRequest)throw new u(d.REQUEST_PENDING,`Cannot call request_input while another request is pending`);if(n.completionCandidate!==void 0)throw new u(d.INVALID_STATE,`Cannot request input while completion is pending`);n.pendingRequest=t,n.status=`waiting_input`,n.lastActivityAt=Date.now()}resolvePendingRequest(e,t){let n=this.subagents.get(e);n?.pendingRequest&&(n.pendingRequest.resolver(t),n.pendingRequest=void 0,n.lastActivityAt=Date.now(),n.status===`waiting_input`&&(n.status=`running`))}markCompleted(e,t,n,r){let i=this.subagents.get(e);if(!i)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);if(S(i.status))throw new u(d.ALREADY_TERMINAL,`Subagent already in terminal state: ${i.status}`);this.applyStatus(i,`completed`),i.result=t,i.summary=n,i.completionSource=r,this.resolveAwaiters(e)}recordCompletionCandidate(e,t,n,r,i){let a=this.subagents.get(e);if(!a)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);let o=a.completionCandidate;if(o!==void 0){if(o.turnId===t&&o.result===n&&o.summary===r&&o.source===i)return;throw new u(d.INVALID_STATE,`Conflicting subagent completion candidate`)}if(S(a.status))throw new u(d.ALREADY_TERMINAL,`Subagent already in terminal state: ${a.status}`);if(a.pendingRequest!==void 0)throw new u(d.INVALID_STATE,`Cannot complete while an input request is pending`);a.completionCandidate={turnId:t,result:n,summary:r,source:i},a.status=`completing`,a.lastActivityAt=Date.now()}recordCompletedTurn(e,t,n,r=!0,i){let a=this.subagents.get(e);a===void 0||S(a.status)||(a.completedTurnUsage.has(t)||(a.completedTurnUsage.set(t,n===void 0?void 0:{total:{...n.total},...n.byAgent===void 0?{}:{byAgent:Object.fromEntries(Object.entries(n.byAgent).map(([e,t])=>[e,{...t}]))}}),a.completedTurnSuccess.set(t,{success:r,...i!==void 0&&{error:i}})),a.lastActivityAt=Date.now())}finalizeCompletionIfReady(e){let t=this.subagents.get(e);if(!t)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);if(S(t.status))return!1;let n=t.completionCandidate;if(n===void 0||!t.completedTurnUsage.has(n.turnId))return!1;let r=t.completedTurnSuccess.get(n.turnId);if(r?.success===!1)return this.markFailed(e,r.error??`child turn failed`),!0;let i=this.freezeUsage(t);return this.applyStatus(t,`completed`),t.result=n.result,t.summary=n.summary,t.completionSource=n.source,t.usage=i,this.resolveAwaiters(e),!0}freezeUsage(e){let t=0,n=0,r=0,i=!1;for(let a of e.completedTurnUsage.values())a!==void 0&&(i=!0,t+=a.total.inputTokens,n+=a.total.cachedInputTokens??0,r+=a.total.outputTokens);return Object.freeze({...i?{inputTokens:t,cachedInputTokens:n,outputTokens:r}:{},toolCallCount:e.toolCallIds.size})}markFailed(e,t){let n=this.subagents.get(e);!n||S(n.status)||(this.applyStatus(n,`failed`),n.error=t,this.resolveAwaiters(e))}markCancelled(e){let t=this.subagents.get(e);return!t||S(t.status)?!1:(this.applyStatus(t,`cancelled`),t.pendingRequest&&=(t.pendingRequest.resolver(null),void 0),this.resolveAwaiters(e),!0)}addAwaiter(e,t){let n=this.awaiters.get(e)??[];n.push(t),this.awaiters.set(e,n)}removeAwaiter(e,t){let n=this.awaiters.get(e);if(!n)return!1;let r=n.indexOf(t);return r===-1?!1:(n.splice(r,1),n.length===0&&this.awaiters.delete(e),!0)}resolveAwaiters(e){let t=this.subagents.get(e),n=this.awaiters.get(e);if(!n||!t)return;let r={status:t.status,result:t.result,error:t.error,completionSource:t.completionSource,usage:t.usage,toolObservations:[...t.toolObservations]};for(let e of n)e(r);this.awaiters.delete(e)}cleanup(){let e=Date.now(),t=0;for(let[n,r]of this.subagents)S(r.status)&&r.endTime&&e-r.endTime>this.constraints.stateRetentionMs&&(this.subagents.delete(n),t++);return t}sweepHung(e){if(e<=0)return 0;let t=Date.now(),n=0;for(let r of this.subagents.values())S(r.status)||r.status!==`spawning`&&r.status!==`waiting_input`&&r.status!==`hung`&&t-r.lastActivityAt>=e&&(r.status=`hung`,r.lastActivityAt=t,n++);return n}};async function w(e,t,n){let r=n?.trim();if(r)return r;let{session:i}=await e.request(s.get,{sessionId:t});return(i?.agents.find(e=>e.agentId===i.leadAgentId)??i?.agents[0])?.adapterName?.trim()}function T(e,t){let n=e.manager.get(t.subagentId);if(!n)throw Error(`Subagent not found: ${t.subagentId}`);return{status:n.status,childSessionId:n.childSessionId,pendingRequest:n.pendingRequest?{messageId:n.pendingRequest.messageId,question:n.pendingRequest.question,context:n.pendingRequest.context}:void 0,progress:n.progressUpdates.toArray(),result:n.result,summary:n.summary,error:n.error,usage:n.usage}}async function E(e,t){let{parentSessionId:n,config:r,depth:i,spawningToolCallId:a}=t,{constraints:o}=e.manager,s=Math.min(r.maxDepth??o.maxDepth,o.maxDepth);if(i>s)throw new u(d.DEPTH_EXCEEDED,`Maximum subagent depth (${s}) exceeded`);if(e.manager.countActiveBySession(n)>=o.maxConcurrentPerSession)throw new u(d.SESSION_LIMIT,`Maximum concurrent subagents per session (${o.maxConcurrentPerSession}) reached`);if(e.manager.countTotalActive()>=o.maxTotalActive)throw new u(d.GLOBAL_LIMIT,`Maximum total active subagents (${o.maxTotalActive}) reached`);let c=await w(e.bus,n,r.adapterName);if(!c)throw new u(d.ADAPTER_NOT_ALLOWED,`adapterName is required for subagent spawn when parent session has no inheritable adapter`);if(o.allowedAdapters.length>0&&!o.allowedAdapters.includes(c))throw new u(d.ADAPTER_NOT_ALLOWED,`Adapter '${c}' is not allowed`);if(r.model&&o.allowedModels.length>0&&!o.allowedModels.includes(r.model))throw new u(d.MODEL_NOT_ALLOWED,`Model '${r.model}' is not allowed`);let l={...r,adapterName:c},p=crypto.randomUUID();return e.manager.track({subagentId:p,parentSessionId:n,config:l,depth:i}),await e.bus.emit(f.spawned,{subagentId:p,parentSessionId:n,task:l.task,config:l,depth:i,...e.executionOwnerId!==void 0&&{executionOwnerId:e.executionOwnerId},...a!==void 0&&{spawningToolCallId:a}}),{subagentId:p,status:`spawning`}}async function D(e,t){let{subagentId:n,timeoutMs:r}=t,i=e.manager.get(n);if(!i)throw Error(`Subagent not found: ${n}`);if([`completed`,`failed`,`cancelled`].includes(i.status))return{status:i.status,result:i.result,error:i.error,completionSource:i.completionSource,toolObservations:[...i.toolObservations],usage:i.usage};if(i.status===`waiting_input`&&i.pendingRequest)return{status:`waiting_input`,pendingRequest:{messageId:i.pendingRequest.messageId,question:i.pendingRequest.question,context:i.pendingRequest.context}};let a=r??e.manager.constraints.defaultAwaitTimeoutMs;return new Promise(t=>{let r=!1,i,o=e=>{r||(r=!0,i&&clearTimeout(i),t({status:e.status,result:e.result,error:e.error,pendingRequest:e.pendingRequest,completionSource:e.completionSource,toolObservations:e.toolObservations,usage:e.usage}))};e.manager.addAwaiter(n,o),a>0&&(i=setTimeout(()=>{r||(r=!0,e.manager.removeAwaiter(n,o),t({status:`timeout`}))},a))})}async function O(e,t){let{subagentId:n,content:r,inResponseTo:i}=t,a=e.manager.get(n);if(!a)throw Error(`Subagent not found: ${n}`);if(a.status===`spawning`)throw new u(d.INVALID_STATE,`Cannot send to a subagent before startup completes`);if(a.completionCandidate!==void 0)throw new u(d.INVALID_STATE,`Cannot send to a subagent while completion is pending`);let o=!1;return i&&a.pendingRequest?.messageId===i&&(e.manager.resolvePendingRequest(n,r),o=!0),await e.bus.emit(f.toChild,{subagentId:n,messageId:crypto.randomUUID(),content:r,inResponseTo:i}),{sent:!0,resolvedPending:o}}async function k(e,t){let{subagentId:n,reason:r}=t,i=e.manager.markCancelled(n);return i&&await e.bus.emit(f.cancelled,{subagentId:n,reason:r??`Killed by parent`}),{killed:i}}async function A(e,t){let{subagentId:n,update:r,percentComplete:i}=t;if(!e.manager.get(n))throw Error(`Subagent not found: ${n}`);let a=i===void 0?r:`[${i}%] ${r}`;return e.manager.addProgress(n,a),await e.bus.emit(f.toParent,{subagentId:n,messageId:crypto.randomUUID(),type:`progress`,content:a}),{reported:!0}}async function j(e,t){let{subagentId:n,question:r,context:i,timeoutMs:a}=t,o=e.manager.get(n);if(!o)throw Error(`Subagent not found: ${n}`);if(o.completionCandidate!==void 0)throw new u(d.INVALID_STATE,`Cannot request input while completion is pending`);let s=crypto.randomUUID(),c=a??e.manager.constraints.defaultRequestTimeoutMs,l=!1,p,m,h=new Promise(e=>{m=e});e.manager.setPendingRequest(n,{messageId:s,question:r,context:i,resolver:e=>{l||(l=!0,p&&clearTimeout(p),m(e===null?{responded:!1,timedOut:!0}:{responded:!0,response:e,timedOut:!1}))}}),c>0&&(p=setTimeout(()=>{l||e.manager.resolvePendingRequest(n,null)},c));let g=e.bus.emit(f.toParent,{subagentId:n,messageId:s,type:`request_input`,content:r,context:i}).then(()=>({published:!0}),e=>({published:!1,error:e})),_=await Promise.race([h.then(e=>({response:e})),g]);if(`response`in _)return _.response;if(!_.published)throw e.manager.resolvePendingRequest(n,null),_.error;return h}async function M(e,t){let{sessionId:n,turnId:r,result:i,summary:a}=t,o=e.manager.getByChildSessionId(n);if(o===void 0)throw new u(d.NOT_FOUND,`No subagent owns this child session`);if(o.status===`completed`||o.status===`failed`||o.status===`cancelled`)throw new u(d.ALREADY_TERMINAL,`Subagent already in terminal state: ${o.status}`);let s=o.activeTurnId;if(s===void 0)throw new u(d.INVALID_STATE,`No active turn exists for this child session`);if(r!==void 0&&r!==s)throw new u(d.INVALID_STATE,`Completion turn does not match the active child turn`);return e.manager.recordCompletionCandidate(o.subagentId,s,i,a,`tool`),await e.onCompletionCandidate?.(o.subagentId),{completed:!0}}function N(e,t){let{parentSessionId:n}=t;return{subagents:e.manager.getAllNonTerminal().filter(e=>e.parentSessionId===n).map(e=>({subagentId:e.subagentId,task:e.config.task,status:e.status}))}}function P(e,t,n,r){return{kind:`adapter`,adapterName:e,...n!==void 0&&{providerContext:n},...t.model!==void 0&&{model:t.model},...t.reasoningEffort!==void 0&&{reasoningEffort:t.reasoningEffort},...t.systemPrompt!==void 0&&{systemPrompt:t.systemPrompt},...t.adapterConfig!==void 0&&{adapterConfig:t.adapterConfig},...r!==void 0&&{cwd:r},...t.tools!==void 0&&{allowedTools:t.tools},...t.disallowedTools!==void 0&&{disallowedTools:t.disallowedTools},...t.allowedDirectories!==void 0&&{allowedDirectories:t.allowedDirectories}}}async function F(e,t){let{subagentId:n,adapterName:r,config:i,sessionId:a,task:o,targetWorkingDirectory:c,assertAdmission:l}=t,u=i.providerContext;if(u?.state===`resolved`&&i.providerConfigId!==void 0&&i.providerConfigId!==u.providerConfigId)throw Error(`Subagent providerConfigId "${i.providerConfigId}" does not match its resolved provider context "${u.providerConfigId}".`);if(u?.state===`unresolved`&&i.providerConfigId!==void 0)throw new g(`provider-context-unresolved`,r,i.providerConfigId);let d=u??(i.providerConfigId?await _(e,{adapterName:r,providerConfigId:i.providerConfigId}):void 0);await e.request(s.agent.attachResolved,{sessionId:a,role:`lead`,initialMessage:o,source:`system`,assertInitialMessageAdmission:()=>{try{l()}catch{throw Error(`Subagent startup was cancelled before initial task admission: ${n}`)}},...i.responseSchema!==void 0&&{responseSchema:i.responseSchema},...i.harnessId!==void 0&&{harnessId:i.harnessId},agent:P(r,i,d,c)},{timeout:0})}const I={id:`system:local`,name:`Local`,description:`Default local process execution`,type:`local`,scope:`default`,enabled:!0,createdAt:Date.now(),updatedAt:Date.now()};var L=class extends Error{code;constructor(e){super(`Subagent failure finalization failed (${e}).`),this.code=e,this.name=`SubagentFailureFinalizationError`}},R=class extends h{delegationAllowSet;requestHandlerPriority;executionOwnerId;manager;pendingChildSessionClose=new Set;spawningExecutions=new Set;constructor(e=r,t=o,n=new Set,i=0,a=crypto.randomUUID()){super(e),this.delegationAllowSet=n,this.requestHandlerPriority=i,this.executionOwnerId=a,this.manager=new C(t)}grantDelegation(e,t){this.delegationAllowSet.add(`${e}:${t}`)}revokeDelegation(e,t){this.delegationAllowSet.delete(`${e}:${t}`)}onInit(){this.registerHandler(f.spawned,async e=>{e.payload.executionOwnerId!==void 0&&e.payload.executionOwnerId!==this.executionOwnerId||this.handleSpawned(e.payload).catch(e=>{console.error(`[SubagentService] handleSpawned error:`,e)})}),this.registerHandler(f.execute,async e=>{if(!this.isRemoteDelegationAllowed(e))return;let t=await this.handleExecute(e.payload);e.setResult(t)}),this.registerHandler(f.toChild,async e=>{await this.handleToChild(e.payload)}),this.registerHandler(f.completed,async e=>{await this.handleCompleted(e.payload.subagentId)}),this.registerHandler(f.cancelled,async e=>{await this.handleCancelled(e.payload.subagentId)}),this.registerHandler(i.session.closed,e=>{this.handleAdapterSessionClosed(e.payload.sessionId)}),this.registerHandler(a.complete,async e=>{await this.handleAgentComplete(e.payload)}),this.registerHandler(s.turn.completed,async e=>{await this.handleSessionTurnCompleted(e.payload)}),this.registerHandler(s.turn.started,e=>{this.handleSessionTurnStarted(e.payload)}),this.registerHandler(a.tool.completed,e=>{e.payload._import||e.payload.sessionId===void 0||e.payload.success===void 0||this.manager.recordToolObservation(e.payload.sessionId,{toolName:e.payload.toolName,outcome:e.payload.success?`success`:`failure`,...e.payload.success===!0&&e.payload.artifactResult!==void 0?{artifact:e.payload.artifactResult}:{}},e.payload.toolCallId)}),this.registerRpcHandlers(),this.wirePeriodicSweep()}wirePeriodicSweep(){let{inactivityTimeoutMs:e,sweepIntervalMs:t}=this.manager.constraints;if(t<=0)return;let n=setInterval(()=>{let t=this.manager.sweepHung(e);t>0&&console.warn(`[SubagentService] Swept ${t} hung subagent(s) due to inactivity`),this.manager.cleanup()},t);this.addCleanup(()=>clearInterval(n))}registerRpcHandlers(){let e={manager:this.manager,bus:this.bus,executionOwnerId:this.executionOwnerId,onCompletionCandidate:e=>this.finalizeSubagentIfReady(e)};this.registerHandler(f.getStatus,t=>{let n=T(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.spawn,async t=>{if(!this.isRemoteDelegationAllowed(t))return;let n=await E(e,c.parse(t.payload));t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.await,async t=>{let n=await D(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.send,async t=>{let n=await O(e,t.payload);t.setResult(n)}),this.registerHandler(f.kill,async t=>{let n=await k(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.reportProgress,async t=>{let n=await A(e,t.payload);t.setResult(n)}),this.registerHandler(f.requestInput,async t=>{let n=await j(e,t.payload);t.setResult(n)}),this.registerHandler(f.completeTask,async t=>{let n=await M(e,t.payload);t.setResult(n)}),this.registerHandler(f.listBySession,t=>{let n=N(e,t.payload);t.setResult(n)})}onDestroy(){this.pendingChildSessionClose.clear(),this.spawningExecutions.clear()}async handleSpawned(e){let{subagentId:t,parentSessionId:n,task:r,spawningToolCallId:i}=e,a=this.manager.get(t);if(!(a&&a.status!==`spawning`)&&!this.spawningExecutions.has(t)){this.spawningExecutions.add(t);try{return await this.executeSpawned(e,n,r,i)}finally{this.spawningExecutions.delete(t)}}}async executeSpawned(e,n,r,i){let{subagentId:a}=e,o=()=>this.shouldAbortSpawn(this.manager.get(a)?.status),s=l.parse({...e.config,task:r}),c=s.adapterName?.trim();if(!c)return this.failSpawn(a,n,`adapter_start`,`Subagent spawn requires a non-empty adapterName`);this.manager.get(a)||this.manager.track({subagentId:a,parentSessionId:n,config:s,depth:e.depth??1});let u,d;try{d=await this.buildExecutionTargetResolutionParams(n,s.executionTargetId);let e=await this.bus.requestOptional(t.resolve,d),r;if(e.handled)r=e.data.executionTarget;else if(d.executionTargetId!=null)throw Error(`Execution target resolver unavailable for explicit target '${d.executionTargetId}'`);else r=I;if(r.type!==`local`)return this.failSpawn(a,n,`adapter_start`,`Execution target type '${r.type}' is not yet supported for subagents`);u=d.executionTargetId??void 0}catch(e){return this.failSpawn(a,n,`adapter_start`,e)}let f;try{f=await this.createChildSessionForSpawn(a,n,s,u,d,i)}catch(e){return this.failSpawn(a,n,`session_create`,e)}if(!o())return this.attachSpawnedSubagent({subagentId:a,parentSessionId:n,adapterName:c,config:s,sessionId:f,task:r,targetWorkingDirectory:d.targetWorkingDirectory,shouldAbort:o})}async attachSpawnedSubagent(e){let{subagentId:t,parentSessionId:r,adapterName:i,config:a,sessionId:o,task:s,targetWorkingDirectory:c,shouldAbort:l}=e;try{await F(this.bus,{subagentId:t,adapterName:i,config:a,sessionId:o,task:s,targetWorkingDirectory:c,assertAdmission:()=>{if(this.shouldAbortSpawn(this.manager.get(t)?.status))throw Error(`startup cancelled`)}})}catch(e){if(l())return;let i=n(e);return this.failSpawn(t,r,i?.stage===`initial_message`?`agent_start`:`adapter_start`,e)}l()||this.manager.markStarted(t)}async createChildSessionForSpawn(e,t,n,r,i,a){let{sessionId:o}=await this.bus.request(s.create,this.buildChildSessionCreatePayload(t,n,r,i.targetWorkingDirectory,a));return this.manager.setChildSessionId(e,o),this.pendingChildSessionClose.has(e)&&await this.closeChildSession(e),o}async failSpawn(e,t,n,r){let i=r instanceof Error?r:Error(String(r));this.manager.markFailed(e,i.message);let[a,o]=await Promise.allSettled([this.manager.get(e)?.childSessionId===void 0?Promise.resolve():this.requestChildSessionClose(e),this.emitExecutionFailed(e,t,n,i)]),s=[];if(a.status===`rejected`&&s.push(new L(`child-session-close-failed`)),o.status===`rejected`&&s.push(new L(`failure-publication-failed`)),s.length>0)throw AggregateError([i,...s],`Subagent spawn failed and failure finalization also failed.`);return i.message}async buildExecutionTargetResolutionParams(t,n){if(n!==void 0)return{executionTargetId:n};let{session:r}=await this.bus.request(e.get,{sessionId:t});if(!r)throw Error(`Parent session not found: ${t}`);return{...r.executionTargetId!==void 0&&{executionTargetId:r.executionTargetId},...r.targetWorkingDirectory!==void 0&&{targetWorkingDirectory:r.targetWorkingDirectory}}}buildChildSessionCreatePayload(e,t,n,r,i){return{branchKind:`subagent`,parentSessionId:e,contextInheritance:t.contextMode===`fork`?`parent-history`:`none`,...n!==void 0&&{executionTargetId:n},...r!==void 0&&{targetWorkingDirectory:r},...i!==void 0&&{spawningToolCallId:i}}}async handleExecute(e){let t=l.parse({...e.config,task:e.task});this.manager.track({subagentId:e.subagentId,parentSessionId:e.parentSessionId,config:t,depth:e.depth});let n=await this.handleSpawned({subagentId:e.subagentId,parentSessionId:e.parentSessionId,task:e.task,config:t,depth:e.depth});return n?{success:!1,error:n}:{success:!0}}async handleToChild(e){let{subagentId:t,content:n}=e,r=this.manager.get(t);if(!r){console.warn(`[SubagentService] No subagent found: ${t}`);return}if(!r.childSessionId){console.warn(`[SubagentService] No child session for subagent: ${t}`);return}try{await this.bus.request(s.sendMessage,{sessionId:r.childSessionId,message:n,source:`system`})}catch(e){console.error(`[SubagentService] Failed to route message to child session:`,e)}}async handleCompleted(e){await this.closeChildSession(e)}async handleCancelled(e){await this.closeChildSession(e)}async closeChildSession(e){try{await this.requestChildSessionClose(e)}catch{console.error(`[SubagentService] Failed to close child session for subagent ${e}:`,new L(`child-session-close-failed`))}}async requestChildSessionClose(e){let t=this.manager.get(e);if(t){if(!t.childSessionId){this.pendingChildSessionClose.add(e);return}this.pendingChildSessionClose.delete(e),await this.bus.request(s.close,{sessionId:t.childSessionId})}}shouldAbortSpawn(e){return e===void 0||e===`completed`||e===`failed`||e===`cancelled`}handleAdapterSessionClosed(e){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e){console.warn(`[SubagentService] Adapter session closed for subagent ${t.subagentId}: ${e}`),this.manager.markFailed(t.subagentId,`adapter-session-closed`);return}}async handleAgentComplete(e){let{sessionId:t,turnId:n,outcome:r,message:i,error:a}=e;if(!(!t||!n))for(let e of this.manager.getAllNonTerminal()){if(e.childSessionId!==t)continue;if((e.config.completion??`tool`)!==`turn`||e.status===`waiting_input`)return;let o=r??`completed`;if(o===`completed`)try{this.manager.recordCompletionCandidate(e.subagentId,n,i??``,void 0,`turn`),await this.finalizeSubagentIfReady(e.subagentId)}catch{return}else if(o===`error`)try{this.manager.recordCompletionCandidate(e.subagentId,n,a??`child turn failed`,void 0,`turn`),await this.finalizeSubagentIfReady(e.subagentId)}catch{return}return}}async handleSessionTurnCompleted(e){if(e.ingestionMarker!==`backfill`){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e.sessionId){if(this.manager.recordTurnCompleted(e.sessionId,e.turnId),this.manager.recordCompletedTurn(t.subagentId,e.turnId,e.usage,e.success,e.error),t.completionCandidate?.turnId!==e.turnId)return;await this.finalizeSubagentIfReady(t.subagentId);return}}}handleSessionTurnStarted(e){e.ingestionMarker!==`backfill`&&this.manager.recordTurnStarted(e.sessionId,e.turnId)}async finalizeSubagentIfReady(e){if(!this.manager.finalizeCompletionIfReady(e))return;let t=this.manager.get(e);await this.bus.emit(f.completed,{subagentId:e,success:t?.status===`completed`,...t?.status===`completed`?{result:t.summary?`${t.summary}\n\n${t.result??``}`:t?.result,usage:t.usage}:{error:t?.error??`child turn failed`}})}isRemoteDelegationAllowed(e){return e.origin.local||y(e.transport?.peer,this.delegationAllowSet)}async emitExecutionFailed(e,t,n,r){let i=r instanceof Error?r.message:String(r);await this.bus.emit(f.executionFailed,{subagentId:e,parentSessionId:t,phase:n,error:i})}};const z=m(`subagent-service`);function B(e=0){return{name:z.name,displayName:`Subagent Service`,version:`0.1.0`,critical:!0,surface:`headless`,dependencies:[p(`session`)],create:t=>new R(t.bus,o,new Set,e)}}const V=B();export{R as a,L as i,B as n,C as o,V as r,y as s,z as t};
package/dist/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@makaio/framework",
3
- "version": "1.0.0-dev-1787670559522",
3
+ "version": "1.0.0-dev-1788258714339",
4
4
  "type": "module"
5
5
  }
@@ -1 +1 @@
1
- import{t as e}from"./version-BfNnVAGr.mjs";import{z as t}from"zod";import*as n from"node:path";const r=t.string().trim().min(1),i=t.number().int().finite().nonnegative().describe(`Unix epoch timestamp in milliseconds`);function a(e){return n.posix.isAbsolute(e)||n.win32.isAbsolute(e)}const o=t.string().trim().min(1).refine(a,{message:`Path must be absolute`}),s=t.string().min(1).regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/,`Profile name must be a safe path component`),c=s,l=t.object({id:r,clientId:r,name:s,description:t.string().nullable(),configDir:o,isDefault:t.boolean(),createdAt:i,updatedAt:i}),u=t.record(t.string(),t.string()),d=t.enum([`auth-only`,`full`,`empty`]),f={"profile.create":{request:t.object({clientId:r,name:s,description:t.string().optional()}),response:t.object({profile:l})},"profile.list":{request:t.object({clientId:r}),response:t.object({profiles:t.array(l)})},"profile.get":{request:t.object({clientId:r,name:s}),response:t.object({profile:l.nullable()})},"profile.update":{request:t.object({clientId:r,name:s,description:t.string().optional()}),response:t.object({profile:l})},"profile.delete":{request:t.object({clientId:r,name:s}),response:t.object({success:t.boolean()})},"profile.setDefault":{request:t.object({clientId:r,name:s}),response:t.object({profile:l})}},p={"sessionConfig.create":{request:t.object({clientId:r,leaseId:c,ownerSessionId:r.optional(),profileName:s.optional(),baseConfigDir:o.optional(),projectDir:o.optional(),configInheritance:d.optional()}),response:t.object({sessionDir:o,env:u,authMaterialized:t.boolean()})},"sessionConfig.destroy":{request:t.object({clientId:r,leaseId:c}),response:t.object({success:t.boolean()})},"sessionConfig.cleanup":{request:t.object({clientId:r.optional()}),response:t.object({removed:t.array(o)})}},m=t.object({sessionDir:o,baseConfigDir:o,projectDir:o.optional(),platform:t.enum([`darwin`,`linux`,`win32`]),configInheritance:d}),h=t.object({sessionDir:o,platform:t.enum([`darwin`,`linux`,`win32`])}),g=t.object({success:t.boolean()}),_=t.object({env:t.record(t.string(),t.string()).optional(),authMaterialized:t.boolean()}),v=t.enum([`managed-install`,`profile-create`,`session-create`]),y={request:t.object({clientId:r,configDir:o,phase:v,binaryVersion:e.optional(),adapterName:t.string().min(1).optional(),projectDir:o.optional()}),response:t.object({primed:t.boolean()})};export{a as _,f as a,d as c,_ as d,h as f,r as g,i as h,l as i,c as l,o as m,y as n,p as o,g as p,s as r,u as s,v as t,m as u};
1
+ import{t as e}from"./version-BYeVh1pI.mjs";import{z as t}from"zod";import*as n from"node:path";const r=t.string().trim().min(1),i=t.number().int().finite().nonnegative().describe(`Unix epoch timestamp in milliseconds`);function a(e){return n.posix.isAbsolute(e)||n.win32.isAbsolute(e)}const o=t.string().trim().min(1).refine(a,{message:`Path must be absolute`}),s=t.string().min(1).regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/,`Profile name must be a safe path component`),c=s,l=t.object({id:r,clientId:r,name:s,description:t.string().nullable(),configDir:o,isDefault:t.boolean(),createdAt:i,updatedAt:i}),u=t.record(t.string(),t.string()),d=t.enum([`auth-only`,`full`,`empty`]),f={"profile.create":{request:t.object({clientId:r,name:s,description:t.string().optional()}),response:t.object({profile:l})},"profile.list":{request:t.object({clientId:r}),response:t.object({profiles:t.array(l)})},"profile.get":{request:t.object({clientId:r,name:s}),response:t.object({profile:l.nullable()})},"profile.update":{request:t.object({clientId:r,name:s,description:t.string().optional()}),response:t.object({profile:l})},"profile.delete":{request:t.object({clientId:r,name:s}),response:t.object({success:t.boolean()})},"profile.setDefault":{request:t.object({clientId:r,name:s}),response:t.object({profile:l})}},p={"sessionConfig.create":{request:t.object({clientId:r,leaseId:c,ownerSessionId:r.optional(),profileName:s.optional(),baseConfigDir:o.optional(),projectDir:o.optional(),configInheritance:d.optional()}),response:t.object({sessionDir:o,env:u,authMaterialized:t.boolean()})},"sessionConfig.destroy":{request:t.object({clientId:r,leaseId:c}),response:t.object({success:t.boolean()})},"sessionConfig.cleanup":{request:t.object({clientId:r.optional()}),response:t.object({removed:t.array(o)})}},m=t.object({sessionDir:o,baseConfigDir:o,projectDir:o.optional(),platform:t.enum([`darwin`,`linux`,`win32`]),configInheritance:d}),h=t.object({sessionDir:o,platform:t.enum([`darwin`,`linux`,`win32`])}),g=t.object({success:t.boolean()}),_=t.object({env:t.record(t.string(),t.string()).optional(),authMaterialized:t.boolean()}),v=t.enum([`managed-install`,`profile-create`,`session-create`]),y={request:t.object({clientId:r,configDir:o,phase:v,binaryVersion:e.optional(),adapterName:t.string().min(1).optional(),projectDir:o.optional()}),response:t.object({primed:t.boolean()})};export{a as _,f as a,d as c,_ as d,h as f,r as g,i as h,l as i,c as l,o as m,y as n,p as o,g as p,s as r,u as s,v as t,m as u};
@@ -1 +1 @@
1
- import{r as e}from"./namespace-BFqkUTJp.mjs";import{CredentialSubjects as t}from"@makaio/framework/contracts";var n=class extends Error{code;adapterName;providerConfigId;constructor(e,t,n){super(`Provider context resolution failed (${e}) for adapter "${t}".`),this.code=e,this.adapterName=t,this.providerConfigId=n,this.name=`RuntimeProviderContextResolutionError`}};async function r(t,r){let i=await t.request(e.resolveAdapterRuntimeSnapshot,r);if(i.status===`error`)throw new n(i.code,r.adapterName,r.providerConfigId);let a=i.runtime;if(a.adapterName!==r.adapterName||a.snapshot.context.providerConfigId!==r.providerConfigId)throw new n(`snapshot-identity-mismatch`,r.adapterName,r.providerConfigId);let o=a.snapshot.context;if(o.state!==`resolved`)throw new n(`provider-context-unresolved`,r.adapterName,r.providerConfigId);return o}var i=class extends Error{code;constructor(e){super(`[activateProviderContext] ${e===`manager-unavailable`?`the selected account manager is unavailable`:e===`account-not-found`?`the selected account no longer exists`:`the selected account could not be activated`}.`),this.code=e,this.name=`ProviderContextActivationError`}},a=class extends Error{constructor(){super(`Provider context account activation rollback failed.`),this.name=`ProviderContextActivationRollbackError`}},o=class{bus;transactionId;finalization;constructor(e,t){this.bus=e,this.transactionId=t}commit(){return this.finalize(`commit`)}rollback(){return this.finalize(`rollback`)}finalize(e){if(this.finalization!==void 0)return this.finalization.action===e?this.finalization.promise:Promise.reject(new i(`activation-failed`));let t=this.requestFinalization(e);return this.finalization={action:e,promise:t},t}async requestFinalization(e){try{if(e===`commit`){let e=await this.bus.requestOptional(t.activation.commit,{transactionId:this.transactionId});if(!e.handled)throw new i(`activation-failed`);if(!e.data.success)throw e.data.code===`commit-rollback-failed`?new a:new i(`activation-failed`);return}let n=await this.bus.requestOptional(t.activation.rollback,{transactionId:this.transactionId});if(!n.handled)throw new i(`activation-failed`);if(!n.data.success)throw n.data.code===`rollback-failed`?new a:new i(`activation-failed`)}catch(e){throw e instanceof i||e instanceof a?e:new i(`activation-failed`)}}};function s(e){return e.state!==`resolved`||e.auth.mode!==`inferred`||e.auth.account===void 0?null:e}async function c(e,n){let r=s(n);if(r)try{let n=await e.requestOptional(t.activate,{providerContext:r});if(!n.handled)throw new i(`manager-unavailable`);if(!n.data.success)throw new i(n.data.code)}catch(e){throw e instanceof i?e:new i(`activation-failed`)}}async function l(e,n){let r=s(n);if(r)try{let n=await e.requestOptional(t.activation.prepare,{providerContext:r});if(!n.handled)throw new i(`manager-unavailable`);if(!n.data.success)throw new i(n.data.code);return new o(e,n.data.transactionId)}catch(e){throw e instanceof i?e:new i(`activation-failed`)}}export{n as a,l as i,a as n,r as o,c as r,i as t};
1
+ import{r as e}from"./namespace-NXm_zvL1.mjs";import{CredentialSubjects as t}from"@makaio/framework/contracts";var n=class extends Error{code;adapterName;providerConfigId;constructor(e,t,n){super(`Provider context resolution failed (${e}) for adapter "${t}".`),this.code=e,this.adapterName=t,this.providerConfigId=n,this.name=`RuntimeProviderContextResolutionError`}};async function r(t,r){let i=await t.request(e.resolveAdapterRuntimeSnapshot,r);if(i.status===`error`)throw new n(i.code,r.adapterName,r.providerConfigId);let a=i.runtime;if(a.adapterName!==r.adapterName||a.snapshot.context.providerConfigId!==r.providerConfigId)throw new n(`snapshot-identity-mismatch`,r.adapterName,r.providerConfigId);let o=a.snapshot.context;if(o.state!==`resolved`)throw new n(`provider-context-unresolved`,r.adapterName,r.providerConfigId);return o}var i=class extends Error{code;constructor(e){super(`[activateProviderContext] ${e===`manager-unavailable`?`the selected account manager is unavailable`:e===`account-not-found`?`the selected account no longer exists`:`the selected account could not be activated`}.`),this.code=e,this.name=`ProviderContextActivationError`}},a=class extends Error{constructor(){super(`Provider context account activation rollback failed.`),this.name=`ProviderContextActivationRollbackError`}},o=class{bus;transactionId;finalization;constructor(e,t){this.bus=e,this.transactionId=t}commit(){return this.finalize(`commit`)}rollback(){return this.finalize(`rollback`)}finalize(e){if(this.finalization!==void 0)return this.finalization.action===e?this.finalization.promise:Promise.reject(new i(`activation-failed`));let t=this.requestFinalization(e);return this.finalization={action:e,promise:t},t}async requestFinalization(e){try{if(e===`commit`){let e=await this.bus.requestOptional(t.activation.commit,{transactionId:this.transactionId});if(!e.handled)throw new i(`activation-failed`);if(!e.data.success)throw e.data.code===`commit-rollback-failed`?new a:new i(`activation-failed`);return}let n=await this.bus.requestOptional(t.activation.rollback,{transactionId:this.transactionId});if(!n.handled)throw new i(`activation-failed`);if(!n.data.success)throw n.data.code===`rollback-failed`?new a:new i(`activation-failed`)}catch(e){throw e instanceof i||e instanceof a?e:new i(`activation-failed`)}}};function s(e){return e.state!==`resolved`||e.auth.mode!==`inferred`||e.auth.account===void 0?null:e}async function c(e,n){let r=s(n);if(r)try{let n=await e.requestOptional(t.activate,{providerContext:r});if(!n.handled)throw new i(`manager-unavailable`);if(!n.data.success)throw new i(n.data.code)}catch(e){throw e instanceof i?e:new i(`activation-failed`)}}async function l(e,n){let r=s(n);if(r)try{let n=await e.requestOptional(t.activation.prepare,{providerContext:r});if(!n.handled)throw new i(`manager-unavailable`);if(!n.data.success)throw new i(n.data.code);return new o(e,n.data.transactionId)}catch(e){throw e instanceof i?e:new i(`activation-failed`)}}export{n as a,l as i,a as n,r as o,c as r,i as t};
@@ -1 +1 @@
1
- import{t as e}from"./resolved-DMByz1_2.mjs";import{r as t,t as n}from"./definition-CDg-Jq1T.mjs";import{z as r}from"zod";const i=r.object({state:r.literal(`resolved`),providerConfigId:r.string().trim().min(1),definitionId:r.string().trim().min(1),endpointOverrides:n.optional(),auth:e,capabilities:t.optional()}).strict().superRefine((e,t)=>{e.auth.method.owner===`provider`&&e.auth.method.providerDefinitionId!==e.definitionId&&t.addIssue({code:r.ZodIssueCode.custom,message:`Provider-owned authentication must belong to the resolved provider definition.`,path:[`auth`,`method`,`providerDefinitionId`]})}),a=r.object({state:r.literal(`unresolved`)}).strict(),o=r.discriminatedUnion(`state`,[i,a]);export{i as n,a as r,o as t};
1
+ import{t as e}from"./resolved-sq8RXNDf.mjs";import{r as t,t as n}from"./definition-BH4QLGLI.mjs";import{z as r}from"zod";const i=r.object({state:r.literal(`resolved`),providerConfigId:r.string().trim().min(1),definitionId:r.string().trim().min(1),endpointOverrides:n.optional(),auth:e,capabilities:t.optional()}).strict().superRefine((e,t)=>{e.auth.method.owner===`provider`&&e.auth.method.providerDefinitionId!==e.definitionId&&t.addIssue({code:r.ZodIssueCode.custom,message:`Provider-owned authentication must belong to the resolved provider definition.`,path:[`auth`,`method`,`providerDefinitionId`]})}),a=r.object({state:r.literal(`unresolved`)}).strict(),o=r.discriminatedUnion(`state`,[i,a]);export{i as n,a as r,o as t};
@@ -1 +1 @@
1
- import{i as e}from"./json-value-D57aJhVn.mjs";import{t}from"./zod-json-schema-BAGAFfCN.mjs";import{z as n}from"zod";const r=n.object({kind:n.string().min(1),description:n.string().min(1),parameterSchema:e}),i=n.discriminatedUnion(`success`,[n.object({success:n.literal(!0)}),n.object({success:n.literal(!1),error:n.object({message:n.string()})})]);function a(e){return e}function o(e){let{kind:n,description:i,parameterSchema:a,handler:o}=e,s=r.parse({kind:n,description:i,parameterSchema:t(a,`input`)});return{kind:n,description:i,parameterSchema:a,handler:o,toDescriptor:()=>structuredClone(s)}}export{i,a as n,r,o as t};
1
+ import{a as e}from"./json-value-BBZ6uGwc.mjs";import{t}from"./zod-json-schema-Dixc-B1T.mjs";import{z as n}from"zod";const r=n.object({kind:n.string().min(1),description:n.string().min(1),parameterSchema:e}),i=n.discriminatedUnion(`success`,[n.object({success:n.literal(!0)}),n.object({success:n.literal(!1),error:n.object({message:n.string()})})]);function a(e){return e}function o(e){let{kind:n,description:i,parameterSchema:a,handler:o}=e,s=r.parse({kind:n,description:i,parameterSchema:t(a,`input`)});return{kind:n,description:i,parameterSchema:a,handler:o,toDescriptor:()=>structuredClone(s)}}export{i,a as n,r,o as t};
@@ -144,4 +144,4 @@ import{fileURLToPath as e}from"node:url";import{isBunRuntime as t}from"@makaio/f
144
144
  id INTEGER PRIMARY KEY AUTOINCREMENT,
145
145
  hash text NOT NULL,
146
146
  created_at numeric
147
- )`},beginTransactionStatement:`BEGIN`,constraintSuspension:{isRequestedBy:e=>e.some(e=>L.test(e)),suspendStatement:`PRAGMA foreign_keys = OFF`,restoreStatement:`PRAGMA foreign_keys = ON`},extensionLedgerName:e=>`__drizzle_migrations_${e}`},fts:I},z=Symbol.for(`makaio.storage.engineRegistry`);function B(){let e=globalThis,t=e[z];return t===void 0&&(t=new Map,Object.defineProperty(e,z,{value:t,enumerable:!1,writable:!1,configurable:!1})),t.has(R.dialect)||t.set(R.dialect,R),t}function V(e){let t=B(),n=t.get(e.dialect);if(n!==e){if(n!==void 0)throw Error(`registerStorageEngine: a different engine is already registered for dialect '${e.dialect}'. One dialect has exactly one engine per process; check for duplicated package installations.`);t.set(e.dialect,e)}}function H(e){let t=B().get(e);if(t!==void 0)return t;let n=_(e);throw Error(n===void 0?`getStorageEngine: no storage engine is registered for dialect '${e}'. Register one with registerStorageEngine() before resolving it.`:v(e,n.packageName))}function U(e){return B().get(e)}function W(e){return H(i(e))}function G(e){let t=B();for(let n of t.values())if(n.matchesUrl!==void 0&&n.matchesUrl(e))return{kind:`engine`,engine:n};let n=g(e);if(n!==void 0){let e=t.get(n.dialect);return e===void 0?{kind:`missing-engine`,dialect:n.dialect,packageName:n.packageName}:{kind:`engine`,engine:e}}return{kind:`default`}}export{i as C,r as S,p as _,G as a,a as b,M as c,S as d,b as f,m as g,v as h,W as i,j as l,h as m,H as n,R as o,y as p,V as r,I as s,U as t,x as u,c as v,o as x,f as y};
147
+ )`},beginTransactionStatement:`BEGIN`,constraintSuspension:{isRequestedBy:e=>e.some(e=>L.test(e)),suspendStatement:`PRAGMA foreign_keys = OFF`,restoreStatement:`PRAGMA foreign_keys = ON`},extensionLedgerName:e=>`__drizzle_migrations_${e}`},transactionLocks:{lockExpressions:()=>[]},fts:I},z=Symbol.for(`makaio.storage.engineRegistry`);function B(){let e=globalThis,t=e[z];return t===void 0&&(t=new Map,Object.defineProperty(e,z,{value:t,enumerable:!1,writable:!1,configurable:!1})),t.has(R.dialect)||t.set(R.dialect,R),t}function V(e){let t=B(),n=t.get(e.dialect);if(n!==e){if(n!==void 0)throw Error(`registerStorageEngine: a different engine is already registered for dialect '${e.dialect}'. One dialect has exactly one engine per process; check for duplicated package installations.`);t.set(e.dialect,e)}}function H(e){let t=B().get(e);if(t!==void 0)return t;let n=_(e);throw Error(n===void 0?`getStorageEngine: no storage engine is registered for dialect '${e}'. Register one with registerStorageEngine() before resolving it.`:v(e,n.packageName))}function U(e){return B().get(e)}function W(e){return H(i(e))}function G(e){let t=B();for(let n of t.values())if(n.matchesUrl!==void 0&&n.matchesUrl(e))return{kind:`engine`,engine:n};let n=g(e);if(n!==void 0){let e=t.get(n.dialect);return e===void 0?{kind:`missing-engine`,dialect:n.dialect,packageName:n.packageName}:{kind:`engine`,engine:e}}return{kind:`default`}}export{i as C,r as S,p as _,G as a,a as b,M as c,S as d,b as f,m as g,v as h,W as i,j as l,h as m,H as n,R as o,y as p,V as r,I as s,U as t,x as u,c as v,o as x,f as y};
@@ -1 +1 @@
1
- import{c as e,i as t,l as n,u as r}from"./definitions-CF6YmEhL.mjs";import{i,n as a,r as o,t as s}from"./selection-7Ku8DBnh.mjs";import{z as c}from"zod";const l=c.object({mode:c.literal(`explicit`),method:a,definition:e,credentialRefs:c.record(t,s)}).strict(),u=c.object({mode:c.literal(`inferred`),method:o,definition:n,account:i.optional()}).strict(),d=c.object({mode:c.literal(`none`),method:a,definition:r}).strict(),f=c.discriminatedUnion(`mode`,[l,u,d]).superRefine((e,t)=>{if(e.method.methodId!==e.definition.id&&t.addIssue({code:c.ZodIssueCode.custom,message:`Resolved auth method reference must match the resolved method definition ID.`,path:[`definition`,`id`]}),e.mode!==`explicit`)return;let n=new Set(e.definition.fields.map(({id:e})=>e));for(let n of e.definition.fields)n.required&&!Object.prototype.hasOwnProperty.call(e.credentialRefs,n.id)&&t.addIssue({code:c.ZodIssueCode.custom,message:`Missing required credential ref for field "${n.id}".`,path:[`credentialRefs`,n.id]});for(let r of Object.keys(e.credentialRefs))n.has(r)||t.addIssue({code:c.ZodIssueCode.custom,message:`Credential ref field "${r}" is not declared by the resolved auth method.`,path:[`credentialRefs`,r]})});export{f as t};
1
+ import{c as e,i as t,l as n,u as r}from"./definitions-CRpdnHYM.mjs";import{i,n as a,r as o,t as s}from"./selection-DL3ric7K.mjs";import{z as c}from"zod";const l=c.object({mode:c.literal(`explicit`),method:a,definition:e,credentialRefs:c.record(t,s)}).strict(),u=c.object({mode:c.literal(`inferred`),method:o,definition:n,account:i.optional()}).strict(),d=c.object({mode:c.literal(`none`),method:a,definition:r}).strict(),f=c.discriminatedUnion(`mode`,[l,u,d]).superRefine((e,t)=>{if(e.method.methodId!==e.definition.id&&t.addIssue({code:c.ZodIssueCode.custom,message:`Resolved auth method reference must match the resolved method definition ID.`,path:[`definition`,`id`]}),e.mode!==`explicit`)return;let n=new Set(e.definition.fields.map(({id:e})=>e));for(let n of e.definition.fields)n.required&&!Object.prototype.hasOwnProperty.call(e.credentialRefs,n.id)&&t.addIssue({code:c.ZodIssueCode.custom,message:`Missing required credential ref for field "${n.id}".`,path:[`credentialRefs`,n.id]});for(let r of Object.keys(e.credentialRefs))n.has(r)||t.addIssue({code:c.ZodIssueCode.custom,message:`Credential ref field "${r}" is not declared by the resolved auth method.`,path:[`credentialRefs`,r]})});export{f as t};
@@ -1,4 +1,4 @@
1
- import { C as RuleSetOptions, S as Rule, _ as JsonObjectShape, a as JsonObjectSchema, b as NotCondition, c as RuleSetOptionsSchema, d as CompoundCondition, f as Condition, g as JsonObject, h as FieldOperator, i as FieldOperatorSchema, l as ScalarValueSchema, m as FieldCondition, n as ExpressionConditionSchema, o as JsonValueSchema, p as ExpressionCondition, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema, u as AndCondition, v as JsonPrimitive, w as ScalarValue, x as OrCondition, y as JsonValue } from "../schemas-B3bfVYcL.mjs";
1
+ import { C as RuleSetOptions, S as Rule, _ as JsonObjectShape, a as JsonObjectSchema, b as NotCondition, c as RuleSetOptionsSchema, d as CompoundCondition, f as Condition, g as JsonObject, h as FieldOperator, i as FieldOperatorSchema, l as ScalarValueSchema, m as FieldCondition, n as ExpressionConditionSchema, o as JsonValueSchema, p as ExpressionCondition, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema, u as AndCondition, v as JsonPrimitive, w as ScalarValue, x as OrCondition, y as JsonValue } from "../schemas-CF8QwRqt.mjs";
2
2
 
3
3
  //#region packages/rules/src/evaluator.d.ts
4
4
  /**
@@ -1 +1 @@
1
- import{t as e}from"../esm-CBFWM8u_.mjs";import{ConditionSchema as t,ExpressionConditionSchema as n,FieldConditionSchema as r,FieldOperatorSchema as i,JsonObjectSchema as a,JsonValueSchema as o,RuleSchema as s,RuleSetOptionsSchema as c,ScalarValueSchema as l}from"./schemas.mjs";import{compile as u}from"@makaio/framework/expression";const d=new Map,f=new Map;function p(e,t){if(`$and`in e){for(let n of e.$and)if(!p(n,t))return!1;return!0}if(`$or`in e){for(let n of e.$or)if(p(n,t))return!0;return!1}return`$not`in e?!p(e.$not,t):`$expr`in e?!!_(e.$expr).evalSync(t):h(g(t,e.field),e.operator)}function m(e,t,n={}){let{includeDisabled:r=!1}=n,i=[];for(let n of e)!r&&!n.enabled||p(n.condition,t)&&i.push(n);return i}function h(e,t){if(typeof t!=`object`||!t)return e===t;if(`$eq`in t)return e===t.$eq;if(`$ne`in t)return e!==t.$ne;if(`$in`in t)return t.$in.includes(e);if(`$nin`in t)return!t.$nin.includes(e);if(`$contains`in t)return Array.isArray(e)&&e.includes(t.$contains);if(`$exists`in t){let n=e!==void 0;return t.$exists?n:!n}return`$startsWith`in t?typeof e==`string`&&e.startsWith(t.$startsWith):`$endsWith`in t?typeof e==`string`&&e.endsWith(t.$endsWith):`$glob`in t?typeof e==`string`&&v(t.$glob).match(e):!1}function g(e,t){if(e==null)return;let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r}function _(e){return y(d,e,()=>u(e))}function v(t){return y(f,t,()=>new e(t))}function y(e,t,n){let r=e.get(t);if(r!==void 0)return e.delete(t),e.set(t,r),r;let i=n();if(e.set(t,i),e.size>256){let t=e.keys().next().value;t!==void 0&&e.delete(t)}return i}export{t as ConditionSchema,n as ExpressionConditionSchema,r as FieldConditionSchema,i as FieldOperatorSchema,a as JsonObjectSchema,o as JsonValueSchema,s as RuleSchema,c as RuleSetOptionsSchema,l as ScalarValueSchema,p as evaluate,m as evaluateRules};
1
+ import{t as e}from"../esm-i-S5TW72.mjs";import{ConditionSchema as t,ExpressionConditionSchema as n,FieldConditionSchema as r,FieldOperatorSchema as i,JsonObjectSchema as a,JsonValueSchema as o,RuleSchema as s,RuleSetOptionsSchema as c,ScalarValueSchema as l}from"./schemas.mjs";import{compile as u}from"@makaio/framework/expression";const d=new Map,f=new Map;function p(e,t){if(`$and`in e){for(let n of e.$and)if(!p(n,t))return!1;return!0}if(`$or`in e){for(let n of e.$or)if(p(n,t))return!0;return!1}return`$not`in e?!p(e.$not,t):`$expr`in e?!!_(e.$expr).evalSync(t):h(g(t,e.field),e.operator)}function m(e,t,n={}){let{includeDisabled:r=!1}=n,i=[];for(let n of e)!r&&!n.enabled||p(n.condition,t)&&i.push(n);return i}function h(e,t){if(typeof t!=`object`||!t)return e===t;if(`$eq`in t)return e===t.$eq;if(`$ne`in t)return e!==t.$ne;if(`$in`in t)return t.$in.includes(e);if(`$nin`in t)return!t.$nin.includes(e);if(`$contains`in t)return Array.isArray(e)&&e.includes(t.$contains);if(`$containsPrefix`in t)return Array.isArray(e)&&e.some(e=>typeof e==`string`&&e.startsWith(t.$containsPrefix));if(`$exists`in t){let n=e!==void 0;return t.$exists?n:!n}return`$startsWith`in t?typeof e==`string`&&e.startsWith(t.$startsWith):`$endsWith`in t?typeof e==`string`&&e.endsWith(t.$endsWith):`$glob`in t?typeof e==`string`&&v(t.$glob).match(e):!1}function g(e,t){if(e==null)return;let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r}function _(e){return y(d,e,()=>u(e))}function v(t){return y(f,t,()=>new e(t))}function y(e,t,n){let r=e.get(t);if(r!==void 0)return e.delete(t),e.set(t,r),r;let i=n();if(e.set(t,i),e.size>256){let t=e.keys().next().value;t!==void 0&&e.delete(t)}return i}export{t as ConditionSchema,n as ExpressionConditionSchema,r as FieldConditionSchema,i as FieldOperatorSchema,a as JsonObjectSchema,o as JsonValueSchema,s as RuleSchema,c as RuleSetOptionsSchema,l as ScalarValueSchema,p as evaluate,m as evaluateRules};
@@ -1,2 +1,2 @@
1
- import { a as JsonObjectSchema, c as RuleSetOptionsSchema, i as FieldOperatorSchema, l as ScalarValueSchema, n as ExpressionConditionSchema, o as JsonValueSchema, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema } from "../schemas-B3bfVYcL.mjs";
1
+ import { a as JsonObjectSchema, c as RuleSetOptionsSchema, i as FieldOperatorSchema, l as ScalarValueSchema, n as ExpressionConditionSchema, o as JsonValueSchema, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema } from "../schemas-CF8QwRqt.mjs";
2
2
  export { ConditionSchema, ExpressionConditionSchema, FieldConditionSchema, FieldOperatorSchema, JsonObjectSchema, JsonValueSchema, RuleSchema, RuleSetOptionsSchema, ScalarValueSchema };
@@ -1 +1 @@
1
- import{z as e}from"zod";const t=e.number().finite(),n=e.union([e.string(),t,e.boolean(),e.null()]),r=e.lazy(()=>e.union([e.string(),t,e.boolean(),e.null(),e.array(r),e.record(e.string(),r)])),i=e.record(e.string(),r),a=e.union([n,e.object({$eq:n}).strict(),e.object({$ne:n}).strict(),e.object({$in:e.array(n)}).strict(),e.object({$nin:e.array(n)}).strict(),e.object({$contains:n}).strict(),e.object({$exists:e.boolean()}).strict(),e.object({$startsWith:e.string()}).strict(),e.object({$endsWith:e.string()}).strict(),e.object({$glob:e.string()}).strict()]),o=e.object({field:e.string().min(1),operator:a}).strict(),s=e.object({$expr:e.string().min(1)}).strict(),c=e.lazy(()=>e.union([o,e.object({$and:e.array(c).min(1)}).strict(),e.object({$or:e.array(c).min(1)}).strict(),e.object({$not:c}).strict(),s])),l=e.object({includeDisabled:e.boolean().optional()}).strict();function u(n){return e.object({id:e.string().min(1),name:e.string().min(1),description:e.string().optional(),condition:c,action:n,priority:t,enabled:e.boolean(),metadata:i.optional()}).strict()}export{c as ConditionSchema,s as ExpressionConditionSchema,o as FieldConditionSchema,a as FieldOperatorSchema,i as JsonObjectSchema,r as JsonValueSchema,u as RuleSchema,l as RuleSetOptionsSchema,n as ScalarValueSchema};
1
+ import{z as e}from"zod";const t=e.number().finite(),n=e.union([e.string(),t,e.boolean(),e.null()]),r=e.lazy(()=>e.union([e.string(),t,e.boolean(),e.null(),e.array(r),e.record(e.string(),r)])),i=e.record(e.string(),r),a=e.union([n,e.object({$eq:n}).strict(),e.object({$ne:n}).strict(),e.object({$in:e.array(n)}).strict(),e.object({$nin:e.array(n)}).strict(),e.object({$contains:n}).strict(),e.object({$containsPrefix:e.string()}).strict(),e.object({$exists:e.boolean()}).strict(),e.object({$startsWith:e.string()}).strict(),e.object({$endsWith:e.string()}).strict(),e.object({$glob:e.string()}).strict()]),o=e.object({field:e.string().min(1),operator:a}).strict(),s=e.object({$expr:e.string().min(1)}).strict(),c=e.lazy(()=>e.union([o,e.object({$and:e.array(c).min(1)}).strict(),e.object({$or:e.array(c).min(1)}).strict(),e.object({$not:c}).strict(),s])),l=e.object({includeDisabled:e.boolean().optional()}).strict();function u(n){return e.object({id:e.string().min(1),name:e.string().min(1),description:e.string().optional(),condition:c,action:n,priority:t,enabled:e.boolean(),metadata:i.optional()}).strict()}export{c as ConditionSchema,s as ExpressionConditionSchema,o as FieldConditionSchema,a as FieldOperatorSchema,i as JsonObjectSchema,r as JsonValueSchema,u as RuleSchema,l as RuleSetOptionsSchema,n as ScalarValueSchema};
@@ -1 +1 @@
1
- import{DispatchingAuth as e,createWebSocketCloseEvent as t}from"@makaio/framework/node/transports";import{HonoWebSocketBridge as n,startBusServer as r}from"@makaio/framework/node/bus-server";import{ExplicitDescriptorDiscovery as i,FileConfigStorage as a,FileRegistryCache as o,FilesystemDescriptorDiscovery as s,MergedDescriptorDiscovery as c,NodeCredentialProvider as l,StoredCredentialProvider as u,bootMakaioRuntimeCore as d,bootMakaioRuntimeCore as f,bridgeExtensionBrowserEntries as ee,createHonoRouteGraph as p,createHttpRouteGraphBuilder as m,entrypointStem as h,isCliContributionLike as g,isMakaioExtensionLike as _,isMissingOptionalRuntimePackage as v,isWithinDirectory as y,loadExtensions as b,loadOrCreateMachineIdentity as x,machineKeysExist as S,registerAdapterNameResolver as C,resolveConventionEntrypoint as w,resolveStaticModelRegistryPath as T,runMigrations as E,tryImport as D,validateMachineKeys as O}from"@makaio/framework/runtime-node";import{isIP as k}from"node:net";var A=class{raw;eventListeners={message:new Set,close:new Set,error:new Set,open:new Set};constructor(e){this.raw=e}get readyState(){return this.raw.readyState}send(e){if(typeof e==`string`){this.raw.send(e);return}if(e instanceof Blob){e.arrayBuffer().then(e=>{this.raw.readyState===1&&this.raw.send(new Uint8Array(e))}).catch(()=>{this.dispatchError()});return}if(e instanceof ArrayBuffer){this.raw.send(new Uint8Array(e));return}ArrayBuffer.isView(e)&&this.raw.send(e)}close(e,t){this.raw.close(e,t)}addEventListener(e,t){this.eventListeners[e]?.add(t)}removeEventListener(e,t){this.eventListeners[e]?.delete(t)}dispatchMessage(e){let t=new MessageEvent(`message`,{data:e});for(let e of this.eventListeners.message)e(t)}dispatchClose(e,n){let r=t(e,n);for(let e of this.eventListeners.close)e(r)}dispatchError(){let e=new Event(`error`);for(let t of this.eventListeners.error)t(e)}},j=class{options;bridge;busServer=null;busReady=!1;connecting=!1;constructor(e){this.options=e,this.bridge=new n}get dispatchingAuth(){return this.options.auth instanceof e?this.options.auth:void 0}createWebSocketHandler(){let e=this.bridge,t=()=>this.busReady,n=new WeakMap;return{binaryType:`arraybuffer`,open(r){if(!t()){r.close(1013,`Bus server not ready`);return}let i=new A(r);n.set(r,i),e.accept(i)},message(e,t){n.get(e)?.dispatchMessage(t)},close(e,t,r){n.get(e)?.dispatchClose(t,r),n.delete(e)}}}async connect(e,t){if(this.connecting||this.busServer)throw Error(`[BunBusServerTransport] connect() called while transport is already connected or connecting`);this.connecting=!0;try{this.busServer=await r({websocket:this.bridge,bus:e,auth:this.options.auth,loopbackName:this.options.loopbackName??`bun`}),this.busReady=!0}catch(e){throw await this.stopBusServer(`startup error`),e}finally{this.connecting=!1}}async disconnect(){await this.stopBusServer(`shutdown`),this.bridge.close()}async stopBusServer(e){this.busReady=!1,this.busServer&&=(await this.busServer.stop().catch(t=>{console.error(`[BunBusServerTransport] Failed to stop bus server during ${e}:`,t)}),null)}};function M(e){if(e.headers.get(`upgrade`)?.toLowerCase()!==`websocket`)return!1;let{pathname:t}=new URL(e.url);return t===`/bus`?!0:t===`/`&&e.headers.get(`origin`)===null}function te(e){return(t,n)=>M(t)?n.upgrade(t)?void 0:new Response(`WebSocket upgrade failed`,{status:426,headers:{Upgrade:`websocket`}}):e.fetch(t)}function N(e){return e.port}async function P(e){let{port:t,hostname:n}=e.bunServer,r=e.createMount??(await import(`../create-static-mount-9tnGpIeK.mjs`)).defaultCreateMount;return f(e.transport,t,n,{...e,createMount:r})}function F(e,t){let n=e,r=t;return{fetch(e,t){return n(e,t)},websocket:{binaryType:t.binaryType,open(e){r.open(e)},message(e,t){r.message(e,t)},close(e,t,n){r.close(e,t,n)}},activate(i){n=R(e,i),r=z(t,i)}}}function I(e){let t=[];return e.forEachActiveExtension((e,n)=>{B(n)&&t.push(n)}),t}function L(e){return Array.isArray(e)?e.flatMap(e=>L(e)):B(e)?[e]:[]}function R(e,t){return t.reduce((e,t)=>t.bun.createFetch?.(e)??e,e)}function z(e,t){return t.reduce((e,t)=>t.bun.createWebSocketHandler?.(e)??e,e)}function B(e){if(!H(e))return!1;let t=e.bun;return typeof e.name==`string`&&typeof e.displayName==`string`&&V(t)}function V(e){if(!H(e))return!1;let t=e.createFetch,n=e.createWebSocketHandler;return(t===void 0||typeof t==`function`)&&(n===void 0||typeof n==`function`)}function H(e){return typeof e==`object`&&!!e}function U(e){let t=e.timeoutMs??1e4,n=e.exit??(e=>process.exit(e)),r=!1;return async i=>{if(r)return;r=!0,console.info(`[${e.label}] ${i} received, shutting down...`);let a=setTimeout(()=>{console.error(`[${e.label}] Graceful shutdown timed out, forcing exit`),n(1)},t);try{process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Shutting down runtime...`),await e.runtime.shutdown(),process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Stopping Bun server...`),W(e.bunServer,e.label),process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Shutdown complete`),clearTimeout(a),n(0)}catch(t){W(e.bunServer,e.label),clearTimeout(a),console.error(`[${e.label}] Shutdown error:`,t),n(1)}}}function W(e,t){let n=e.stop?.(!0);G(n)&&n.catch(e=>{console.warn(`[${t}] Bun server stop failed during shutdown:`,e)})}function G(e){return typeof e==`object`&&!!e&&typeof e.catch==`function`}const K=/^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/;function q(e){let t=e.env??process.env,n=e.defaultPort??3e3,r=e.defaultHost??`0.0.0.0`;return{port:J(t.PORT,n,e),host:Y(t.HOST,r,e)}}function J(e,t,n){let r=e?.trim(),i=r&&/^\d+$/.test(r)?Number.parseInt(r,10):NaN;return Number.isInteger(i)&&i>=1&&i<=65535?i:e===void 0?t:Z(`Invalid PORT: ${e}`,t,n)}function Y(e,t,n){let r=e?.trim();return r&&X(r)?r:e===void 0?t:Q(`Invalid HOST: ${e}`,t,n)}function X(e){return k(e)!==0||e===`localhost`||K.test(e)}function Z(e,t,n){return $(e,String(t),n),t}function Q(e,t,n){return $(e,t,n),t}function $(e,t,n){if((n.invalid??`throw`)===`throw`)throw Error(e);console.warn(`[${n.appName}] ${e}, falling back to ${t}`)}export{j as BunBusServerTransportProvider,i as ExplicitDescriptorDiscovery,a as FileConfigStorage,o as FileRegistryCache,s as FilesystemDescriptorDiscovery,c as MergedDescriptorDiscovery,l as NodeCredentialProvider,u as StoredCredentialProvider,P as bootMakaioRuntime,d as bootMakaioRuntimeCore,ee as bridgeExtensionBrowserEntries,I as collectActiveBunHostPackages,R as composeBunHostFetch,z as composeBunHostWebSocket,F as createBunHostRouter,te as createBunRouteGraphFetch,U as createGracefulShutdown,p as createHonoRouteGraph,m as createHttpRouteGraphBuilder,h as entrypointStem,g as isCliContributionLike,_ as isMakaioExtensionLike,v as isMissingOptionalRuntimePackage,y as isWithinDirectory,b as loadExtensions,x as loadOrCreateMachineIdentity,S as machineKeysExist,L as normalizeBunHostPackages,q as readBunServerEnv,C as registerAdapterNameResolver,w as resolveConventionEntrypoint,N as resolveListeningPort,T as resolveStaticModelRegistryPath,E as runMigrations,D as tryImport,O as validateMachineKeys};
1
+ import{DispatchingAuth as e,createWebSocketCloseEvent as t}from"@makaio/framework/node/transports";import{HonoWebSocketBridge as n,startBusServer as r}from"@makaio/framework/node/bus-server";import{ExplicitDescriptorDiscovery as i,FileConfigStorage as a,FileRegistryCache as o,FilesystemDescriptorDiscovery as s,MergedDescriptorDiscovery as c,NodeCredentialProvider as l,StoredCredentialProvider as u,bootMakaioRuntimeCore as d,bootMakaioRuntimeCore as f,bridgeExtensionBrowserEntries as ee,createHonoRouteGraph as p,createHttpRouteGraphBuilder as m,entrypointStem as h,isCliContributionLike as g,isMakaioExtensionLike as _,isMissingOptionalRuntimePackage as v,isWithinDirectory as y,loadExtensions as b,loadOrCreateMachineIdentity as x,machineKeysExist as S,registerAdapterNameResolver as C,resolveConventionEntrypoint as w,resolveStaticModelRegistryPath as T,runMigrations as E,tryImport as D,validateMachineKeys as O}from"@makaio/framework/runtime-node";import{isIP as k}from"node:net";var A=class{raw;eventListeners={message:new Set,close:new Set,error:new Set,open:new Set};constructor(e){this.raw=e}get readyState(){return this.raw.readyState}send(e){if(typeof e==`string`){this.raw.send(e);return}if(e instanceof Blob){e.arrayBuffer().then(e=>{this.raw.readyState===1&&this.raw.send(new Uint8Array(e))}).catch(()=>{this.dispatchError()});return}if(e instanceof ArrayBuffer){this.raw.send(new Uint8Array(e));return}ArrayBuffer.isView(e)&&this.raw.send(e)}close(e,t){this.raw.close(e,t)}addEventListener(e,t){this.eventListeners[e]?.add(t)}removeEventListener(e,t){this.eventListeners[e]?.delete(t)}dispatchMessage(e){let t=new MessageEvent(`message`,{data:e});for(let e of this.eventListeners.message)e(t)}dispatchClose(e,n){let r=t(e,n);for(let e of this.eventListeners.close)e(r)}dispatchError(){let e=new Event(`error`);for(let t of this.eventListeners.error)t(e)}},j=class{options;bridge;busServer=null;busReady=!1;connecting=!1;constructor(e){this.options=e,this.bridge=new n}get dispatchingAuth(){return this.options.auth instanceof e?this.options.auth:void 0}createWebSocketHandler(){let e=this.bridge,t=()=>this.busReady,n=new WeakMap;return{binaryType:`arraybuffer`,open(r){if(!t()){r.close(1013,`Bus server not ready`);return}let i=new A(r);n.set(r,i),e.accept(i)},message(e,t){n.get(e)?.dispatchMessage(t)},close(e,t,r){n.get(e)?.dispatchClose(t,r),n.delete(e)}}}async connect(e,t){if(this.connecting||this.busServer)throw Error(`[BunBusServerTransport] connect() called while transport is already connected or connecting`);this.connecting=!0;try{this.busServer=await r({websocket:this.bridge,bus:e,auth:this.options.auth,loopbackName:this.options.loopbackName??`bun`}),this.busReady=!0}catch(e){throw await this.stopBusServer(`startup error`),e}finally{this.connecting=!1}}async disconnect(){await this.stopBusServer(`shutdown`),this.bridge.close()}async stopBusServer(e){this.busReady=!1,this.busServer&&=(await this.busServer.stop().catch(t=>{console.error(`[BunBusServerTransport] Failed to stop bus server during ${e}:`,t)}),null)}};function M(e){if(e.headers.get(`upgrade`)?.toLowerCase()!==`websocket`)return!1;let{pathname:t}=new URL(e.url);return t===`/bus`?!0:t===`/`&&e.headers.get(`origin`)===null}function te(e){return(t,n)=>M(t)?n.upgrade(t)?void 0:new Response(`WebSocket upgrade failed`,{status:426,headers:{Upgrade:`websocket`}}):e.fetch(t)}function N(e){return e.port}async function P(e){let{port:t,hostname:n}=e.bunServer,r=e.createMount??(await import(`../create-static-mount-DxuixuLZ.mjs`)).defaultCreateMount;return f(e.transport,t,n,{...e,createMount:r})}function F(e,t){let n=e,r=t;return{fetch(e,t){return n(e,t)},websocket:{binaryType:t.binaryType,open(e){r.open(e)},message(e,t){r.message(e,t)},close(e,t,n){r.close(e,t,n)}},activate(i){n=R(e,i),r=z(t,i)}}}function I(e){let t=[];return e.forEachActiveExtension((e,n)=>{B(n)&&t.push(n)}),t}function L(e){return Array.isArray(e)?e.flatMap(e=>L(e)):B(e)?[e]:[]}function R(e,t){return t.reduce((e,t)=>t.bun.createFetch?.(e)??e,e)}function z(e,t){return t.reduce((e,t)=>t.bun.createWebSocketHandler?.(e)??e,e)}function B(e){if(!H(e))return!1;let t=e.bun;return typeof e.name==`string`&&typeof e.displayName==`string`&&V(t)}function V(e){if(!H(e))return!1;let t=e.createFetch,n=e.createWebSocketHandler;return(t===void 0||typeof t==`function`)&&(n===void 0||typeof n==`function`)}function H(e){return typeof e==`object`&&!!e}function U(e){let t=e.timeoutMs??1e4,n=e.exit??(e=>process.exit(e)),r=!1;return async i=>{if(r)return;r=!0,console.info(`[${e.label}] ${i} received, shutting down...`);let a=setTimeout(()=>{console.error(`[${e.label}] Graceful shutdown timed out, forcing exit`),n(1)},t);try{process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Shutting down runtime...`),await e.runtime.shutdown(),process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Stopping Bun server...`),W(e.bunServer,e.label),process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Shutdown complete`),clearTimeout(a),n(0)}catch(t){W(e.bunServer,e.label),clearTimeout(a),console.error(`[${e.label}] Shutdown error:`,t),n(1)}}}function W(e,t){let n=e.stop?.(!0);G(n)&&n.catch(e=>{console.warn(`[${t}] Bun server stop failed during shutdown:`,e)})}function G(e){return typeof e==`object`&&!!e&&typeof e.catch==`function`}const K=/^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/;function q(e){let t=e.env??process.env,n=e.defaultPort??3e3,r=e.defaultHost??`0.0.0.0`;return{port:J(t.PORT,n,e),host:Y(t.HOST,r,e)}}function J(e,t,n){let r=e?.trim(),i=r&&/^\d+$/.test(r)?Number.parseInt(r,10):NaN;return Number.isInteger(i)&&i>=1&&i<=65535?i:e===void 0?t:Z(`Invalid PORT: ${e}`,t,n)}function Y(e,t,n){let r=e?.trim();return r&&X(r)?r:e===void 0?t:Q(`Invalid HOST: ${e}`,t,n)}function X(e){return k(e)!==0||e===`localhost`||K.test(e)}function Z(e,t,n){return $(e,String(t),n),t}function Q(e,t,n){return $(e,t,n),t}function $(e,t,n){if((n.invalid??`throw`)===`throw`)throw Error(e);console.warn(`[${n.appName}] ${e}, falling back to ${t}`)}export{j as BunBusServerTransportProvider,i as ExplicitDescriptorDiscovery,a as FileConfigStorage,o as FileRegistryCache,s as FilesystemDescriptorDiscovery,c as MergedDescriptorDiscovery,l as NodeCredentialProvider,u as StoredCredentialProvider,P as bootMakaioRuntime,d as bootMakaioRuntimeCore,ee as bridgeExtensionBrowserEntries,I as collectActiveBunHostPackages,R as composeBunHostFetch,z as composeBunHostWebSocket,F as createBunHostRouter,te as createBunRouteGraphFetch,U as createGracefulShutdown,p as createHonoRouteGraph,m as createHttpRouteGraphBuilder,h as entrypointStem,g as isCliContributionLike,_ as isMakaioExtensionLike,v as isMissingOptionalRuntimePackage,y as isWithinDirectory,b as loadExtensions,x as loadOrCreateMachineIdentity,S as machineKeysExist,L as normalizeBunHostPackages,q as readBunServerEnv,C as registerAdapterNameResolver,w as resolveConventionEntrypoint,N as resolveListeningPort,T as resolveStaticModelRegistryPath,E as runMigrations,D as tryImport,O as validateMachineKeys};
@@ -0,0 +1,3 @@
1
+ import { a as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, c as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, d as PiscinaCodeExecutionProviderOptions, i as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, n as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, o as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, r as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, s as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, t as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS } from "../../types-DnK6Wa_Y.mjs";
2
+ import { t as PiscinaCodeExecutionProvider } from "../../index-Dg11JxKZ.mjs";
3
+ export { CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS, CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, PiscinaCodeExecutionProvider, PiscinaCodeExecutionProviderOptions };
@@ -0,0 +1 @@
1
+ import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"../../types-Cwza95hS.mjs";import{t as c}from"../../code-execution-CweDSWco.mjs";export{s as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS,r as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES,a as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY,n as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER,e as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES,i as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS,o as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES,t as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES,c as PiscinaCodeExecutionProvider};
@@ -1,2 +1,2 @@
1
- import { a as FilesystemDescriptorDiscovery, i as ExtensionEntrypointModule, n as ExplicitDescriptorDiscovery, o as FilesystemDescriptorDiscoveryOptions, r as ExtensionDiscovery, s as MergedDescriptorDiscovery, t as DiscoveredExtension } from "../extension-discovery-Fhps4icD.mjs";
2
- export { DiscoveredExtension, ExplicitDescriptorDiscovery, ExtensionDiscovery, ExtensionEntrypointModule, FilesystemDescriptorDiscovery, FilesystemDescriptorDiscoveryOptions, MergedDescriptorDiscovery };
1
+ import { a as FilesystemDescriptorDiscovery, c as enumerateDescriptorPaths, i as ExtensionEntrypointModule, n as ExplicitDescriptorDiscovery, o as FilesystemDescriptorDiscoveryOptions, r as ExtensionDiscovery, s as MergedDescriptorDiscovery, t as DiscoveredExtension } from "../extension-discovery-Dhu3WplO.mjs";
2
+ export { DiscoveredExtension, ExplicitDescriptorDiscovery, ExtensionDiscovery, ExtensionEntrypointModule, FilesystemDescriptorDiscovery, FilesystemDescriptorDiscoveryOptions, MergedDescriptorDiscovery, enumerateDescriptorPaths };
@@ -1 +1 @@
1
- import*as e from"node:fs/promises";import*as t from"node:path";import{glob as n}from"glob";import{parseExtensionDescriptor as r}from"@makaio/framework/contracts";var i=class{localNodeModulesDir;extensionsDir;nodeModulesDir;constructor(e,n){this.localNodeModulesDir=n?.localNodeModulesDir??t.join(e??process.cwd(),`node_modules`),this.extensionsDir=n?.extensionsDir??!1,this.nodeModulesDir=n?.nodeModulesDir??!1}async discover(){let[e,t,n]=await Promise.all([this.scanLocal(),this.scanInstalled(),this.scanGlobalNpm()]);return this.deduplicate(e,t,n)}async scanLocal(){if(this.localNodeModulesDir===!1)return[];let e=[t.join(this.localNodeModulesDir,`*/descriptor.json`),t.join(this.localNodeModulesDir,`@*/*/descriptor.json`)];return this.scanPatterns(e,`local`)}async scanInstalled(){if(this.extensionsDir===!1)return[];let e=[t.join(this.extensionsDir,`*/descriptor.json`),t.join(this.extensionsDir,`@*/*/descriptor.json`)];return this.scanPatterns(e,`installed`)}async scanGlobalNpm(){if(this.nodeModulesDir===!1)return[];let e=[t.join(this.nodeModulesDir,`*/descriptor.json`),t.join(this.nodeModulesDir,`@*/*/descriptor.json`)];return this.scanPatterns(e,`global-npm`)}async scanPatterns(i,a){let o=[];for(let s of i){let i=s.split(t.sep).join(`/`),c;try{c=await n(i,{windowsPathsNoEscape:!0})}catch(e){console.warn(`[extensions] Skipping scan for pattern ${i}:`,e instanceof Error?e.message:e);continue}for(let n of c)try{let i=await e.readFile(n,`utf-8`),s=r(JSON.parse(i)),c=t.dirname(n);o.push({descriptor:s,extensionPath:c,source:a})}catch(e){console.warn(`[extensions] Skipping invalid descriptor at ${n}:`,e instanceof Error?e.message:e)}}return o}deduplicate(...e){return s(e)}},a=class{extensions;constructor(e){this.extensions=e}async discover(){return this.extensions}},o=class{discoveries;constructor(e){this.discoveries=e}async discover(){return s(await Promise.all(this.discoveries.map(e=>e.discover())))}};function s(e){let t=new Map;for(let n of e)for(let e of n)t.has(e.descriptor.name)||t.set(e.descriptor.name,e);return[...t.values()]}export{a as ExplicitDescriptorDiscovery,i as FilesystemDescriptorDiscovery,o as MergedDescriptorDiscovery};
1
+ import*as e from"node:fs/promises";import*as t from"node:path";import{glob as n}from"glob";import{parseExtensionDescriptor as r}from"@makaio/framework/contracts";const i=`descriptor.json`,a=[`**/node_modules/**`,`**/dist/**`,`**/.git/**`];async function o(r){let o=await e.stat(r).catch(()=>void 0);if(o===void 0)return[];if(o.isFile())return t.basename(r)===i?[r]:[];if(!o.isDirectory())return[];let s=t.join(r,i);if(await d(s))return[s];let c=t.basename(r)===`node_modules`,l=c?[`*/descriptor.json`,`@*/*/descriptor.json`]:[`**/${i}`];return(await Promise.all(l.map(e=>n(e,{absolute:!0,cwd:r,...c?{}:{ignore:[...a]},windowsPathsNoEscape:!0})))).flat()}var s=class{localNodeModulesDir;extensionsDir;nodeModulesDir;constructor(e,n){this.localNodeModulesDir=n?.localNodeModulesDir??t.join(e??process.cwd(),`node_modules`),this.extensionsDir=n?.extensionsDir??!1,this.nodeModulesDir=n?.nodeModulesDir??!1}async discover(){let[e,t,n]=await Promise.all([this.scanLocal(),this.scanInstalled(),this.scanGlobalNpm()]);return this.deduplicate(e,t,n)}async scanLocal(){if(this.localNodeModulesDir===!1)return[];let e=[t.join(this.localNodeModulesDir,`*/descriptor.json`),t.join(this.localNodeModulesDir,`@*/*/descriptor.json`)];return this.scanPatterns(e,`local`)}async scanInstalled(){if(this.extensionsDir===!1)return[];let e=[t.join(this.extensionsDir,`*/descriptor.json`),t.join(this.extensionsDir,`@*/*/descriptor.json`)];return this.scanPatterns(e,`installed`)}async scanGlobalNpm(){if(this.nodeModulesDir===!1)return[];let e=[t.join(this.nodeModulesDir,`*/descriptor.json`),t.join(this.nodeModulesDir,`@*/*/descriptor.json`)];return this.scanPatterns(e,`global-npm`)}async scanPatterns(i,a){let o=[];for(let s of i){let i=s.split(t.sep).join(`/`),c;try{c=await n(i,{nodir:!0,windowsPathsNoEscape:!0})}catch(e){console.warn(`[extensions] Skipping scan for pattern ${i}:`,e instanceof Error?e.message:e);continue}for(let n of c)try{let i=await e.readFile(n,`utf-8`),s=r(JSON.parse(i)),c=t.dirname(n);o.push({descriptor:s,extensionPath:c,source:a})}catch(e){console.warn(`[extensions] Skipping invalid descriptor at ${n}:`,e instanceof Error?e.message:e)}}return o}deduplicate(...e){return u(e)}},c=class{extensions;constructor(e){this.extensions=e}async discover(){return this.extensions}},l=class{discoveries;constructor(e){this.discoveries=e}async discover(){return u(await Promise.all(this.discoveries.map(e=>e.discover())))}};function u(e){let t=new Map;for(let n of e)for(let e of n)t.has(e.descriptor.name)||t.set(e.descriptor.name,e);return[...t.values()]}async function d(t){return e.stat(t).then(e=>e.isFile()).catch(()=>!1)}export{c as ExplicitDescriptorDiscovery,s as FilesystemDescriptorDiscovery,l as MergedDescriptorDiscovery,o as enumerateDescriptorPaths};
@@ -1,2 +1,2 @@
1
- import { a as isMakaioExtensionLike, c as resolveConventionEntrypoint, i as isCliContributionLike, o as isWithinDirectory, r as entrypointStem } from "../load-extensions-DUpaMQ7G.mjs";
1
+ import { a as isMakaioExtensionLike, c as resolveConventionEntrypoint, i as isCliContributionLike, o as isWithinDirectory, r as entrypointStem } from "../load-extensions-BQoXaHhR.mjs";
2
2
  export { entrypointStem, isCliContributionLike, isMakaioExtensionLike, isWithinDirectory, resolveConventionEntrypoint };
@@ -1 +1 @@
1
- import{i as e,l as t,o as n,r,s as i}from"../load-extensions-CW9uzNR5.mjs";export{r as entrypointStem,e as isCliContributionLike,n as isMakaioExtensionLike,i as isWithinDirectory,t as resolveConventionEntrypoint};
1
+ import{i as e,l as t,o as n,r,s as i}from"../load-extensions-DG5LvPyM.mjs";export{r as entrypointStem,e as isCliContributionLike,n as isMakaioExtensionLike,i as isWithinDirectory,t as resolveConventionEntrypoint};
@@ -1,8 +1,10 @@
1
1
  import { RuntimeSubjects } from "./bus/runtime/namespace.mjs";
2
2
  import { NodeClientBinaryStrategyDependencyOptions, createNodeClientBinaryStrategyDependencies } from "./client-binary-strategy-dependencies.mjs";
3
- import { a as FilesystemDescriptorDiscovery, n as ExplicitDescriptorDiscovery, o as FilesystemDescriptorDiscoveryOptions, r as ExtensionDiscovery, s as MergedDescriptorDiscovery, t as DiscoveredExtension } from "../extension-discovery-Fhps4icD.mjs";
4
- import { a as isMakaioExtensionLike, c as resolveConventionEntrypoint, i as isCliContributionLike, n as LoadExtensionsOptions, o as isWithinDirectory, r as entrypointStem, s as loadExtensions, t as DescriptorSourcePackageGroup } from "../load-extensions-DUpaMQ7G.mjs";
5
- import { At as createHonoRouteGraph, B as ThinWorkflowPiscinaRunnerOptions, Ct as resolveFrameworkSpecifier, Dt as HttpRouteContribution, E as OutcomeDeliveryError, Et as HttpContributionPhase, Ft as activateAdapterRuntimeIdentity, G as MakaioRuntime, H as BootCoordinatorSetupContext, It as prepareAdapterRuntime, J as UpstreamTelemetryBootOptions, K as ServerTransportProvider, L as ThinWorkflowPiscinaRunner, Mt as ActivatedAdapterRuntimeIdentity, Nt as PrepareAdapterRuntimeInput, Ot as HonoRouteGraph, Pt as PreparedAdapterRuntime, R as IWorkflowRunner, S as InProcessWorkflowRunnerOptions, St as NoopFrameworkModuleResolver, Tt as createHttpRouteGraphBuilder, U as BootMakaioRuntimeOptions, V as WorkflowRunResult, W as CoreBootOptions, Y as WorkflowRunnerBootOptions, _ as IsolatedWorkflowRuntimeContext, _t as selectFrameworkCorePackages, a as HeadlessWorkerBootstrapCredentials, b as createIsolatedWorkflowRuntime, bt as FrameworkModuleResolver, c as HeadlessWorkerExecutor, ct as WorkflowWorkerEntryMode, d as HeadlessWorkflowWorkerDeps, dt as DatabaseBootOptions, f as HeadlessWorkflowWorkerResult, ft as InitializeNodeDatabaseOptions, g as IsolatedWorkflowRuntime, gt as normalizeNodeHostCapabilities, h as CreateIsolatedWorkflowRuntimeOptions, ht as HostCapabilityDeclaration, i as HeadlessWorkerBootstrap, jt as ActivateAdapterRuntimeIdentityInput, kt as HonoRouteGraphOptions, l as HeadlessWorkerMaterializer, lt as WorkflowWorkerEntryResolverOptions, m as runHeadlessWorkflowWorker, mt as initializeNodeDatabase, o as HeadlessWorkerBusConnector, pt as InitializeNodeDatabaseResult, q as TransportReadyInfo, s as HeadlessWorkerContributionLoader, u as HeadlessWorkerPostCommitObserver, ut as resolveWorkflowWorkerEntry, v as WorkflowRuntimeAuthorityConnector, vt as ShutdownStep, wt as HttpRouteGraphBuilder, x as InProcessWorkflowRunner, xt as NodeFrameworkModuleResolver, y as WorkflowRuntimeContributionLoader, yt as BridgeBrowserOptions } from "../index-DxYDRoDE2.mjs";
3
+ import { a as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, c as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, d as PiscinaCodeExecutionProviderOptions, i as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, n as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, o as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, r as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, s as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, t as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS } from "../types-DnK6Wa_Y.mjs";
4
+ import { t as PiscinaCodeExecutionProvider } from "../index-Dg11JxKZ.mjs";
5
+ import { a as FilesystemDescriptorDiscovery, n as ExplicitDescriptorDiscovery, o as FilesystemDescriptorDiscoveryOptions, r as ExtensionDiscovery, s as MergedDescriptorDiscovery, t as DiscoveredExtension } from "../extension-discovery-Dhu3WplO.mjs";
6
+ import { a as isMakaioExtensionLike, c as resolveConventionEntrypoint, i as isCliContributionLike, n as LoadExtensionsOptions, o as isWithinDirectory, r as entrypointStem, s as loadExtensions, t as DescriptorSourcePackageGroup } from "../load-extensions-BQoXaHhR.mjs";
7
+ import { At as createHonoRouteGraph, B as ThinWorkflowPiscinaRunnerOptions, Ct as resolveFrameworkSpecifier, Dt as HttpRouteContribution, E as OutcomeDeliveryError, Et as HttpContributionPhase, Ft as activateAdapterRuntimeIdentity, G as MakaioRuntime, H as BootCoordinatorSetupContext, It as prepareAdapterRuntime, J as UpstreamTelemetryBootOptions, K as ServerTransportProvider, L as ThinWorkflowPiscinaRunner, Mt as ActivatedAdapterRuntimeIdentity, Nt as PrepareAdapterRuntimeInput, Ot as HonoRouteGraph, Pt as PreparedAdapterRuntime, R as IWorkflowRunner, S as InProcessWorkflowRunnerOptions, St as NoopFrameworkModuleResolver, Tt as createHttpRouteGraphBuilder, U as BootMakaioRuntimeOptions, V as WorkflowRunResult, W as CoreBootOptions, Y as WorkflowRunnerBootOptions, _ as IsolatedWorkflowRuntimeContext, _t as selectFrameworkCorePackages, a as HeadlessWorkerBootstrapCredentials, b as createIsolatedWorkflowRuntime, bt as FrameworkModuleResolver, c as HeadlessWorkerExecutor, ct as WorkflowWorkerEntryMode, d as HeadlessWorkflowWorkerDeps, dt as DatabaseBootOptions, f as HeadlessWorkflowWorkerResult, ft as InitializeNodeDatabaseOptions, g as IsolatedWorkflowRuntime, gt as normalizeNodeHostCapabilities, h as CreateIsolatedWorkflowRuntimeOptions, ht as HostCapabilityDeclaration, i as HeadlessWorkerBootstrap, jt as ActivateAdapterRuntimeIdentityInput, kt as HonoRouteGraphOptions, l as HeadlessWorkerMaterializer, lt as WorkflowWorkerEntryResolverOptions, m as runHeadlessWorkflowWorker, mt as initializeNodeDatabase, o as HeadlessWorkerBusConnector, pt as InitializeNodeDatabaseResult, q as TransportReadyInfo, s as HeadlessWorkerContributionLoader, u as HeadlessWorkerPostCommitObserver, ut as resolveWorkflowWorkerEntry, v as WorkflowRuntimeAuthorityConnector, vt as ShutdownStep, wt as HttpRouteGraphBuilder, x as InProcessWorkflowRunner, xt as NodeFrameworkModuleResolver, y as WorkflowRuntimeContributionLoader, yt as BridgeBrowserOptions } from "../index-CMekqu_D.mjs";
6
8
  import { ConfiguredRuntimeOptions, LoadMakaioConfigOptions, LoadedMakaioConfig, MAKAIO_CONFIG_FILE_ENV, MAKAIO_HOME_ENV, MakaioConfig, ParseMakaioConfigOptions, ParsedMakaioConfig, WorkflowRunnerConfig, buildConfiguredRuntimeOptions, createMakaioConfigDiscovery, defineMakaioConfig, loadMakaioConfig, parseMakaioConfig, resolveMakaioConfigPath, resolveMakaioHome, shouldIncludeExtension } from "./makaio-config.mjs";
7
9
  import { z } from "zod";
8
10
  import { IConfigStorage } from "@makaio/framework/core";
@@ -671,4 +673,4 @@ declare function findWorkspaceRoot(startDir: string): string;
671
673
  */
672
674
  declare function findWorkspaceRootInfo(startDir: string): WorkspaceRootInfo;
673
675
  //#endregion
674
- export { type ActivateAdapterRuntimeIdentityInput, type ActivatedAdapterRuntimeIdentity, type AttachedUpstreamTelemetry, type BootCoordinatorSetupContext, type BootMakaioRuntimeOptions, type BridgeBrowserOptions, type BundledMigrationsProbes, type BusServerTransportOptions, BusServerTransportProvider, type ConfiguredRuntimeOptions, type CoreBootOptions, type CreateIsolatedWorkflowRuntimeOptions, type CredentialProvider, type DatabaseBootOptions, type DescriptorSourcePackageGroup, type DiscoveredExtension, ExplicitDescriptorDiscovery, type ExtensionDiscovery, FileConfigStorage, FileRegistryCache, FilesystemDescriptorDiscovery, type FilesystemDescriptorDiscoveryOptions, type FrameworkModuleResolver, type HeadlessWorkerBootstrap, type HeadlessWorkerBootstrapCredentials, type HeadlessWorkerBusConnector, type HeadlessWorkerContributionLoader, type HeadlessWorkerExecutor, type HeadlessWorkerMaterializer, type HeadlessWorkerPostCommitObserver, type HeadlessWorkflowWorkerDeps, type HeadlessWorkflowWorkerResult, type HonoRouteGraph, type HonoRouteGraphOptions, type HttpContributionPhase, type HttpRouteContribution, type HttpRouteGraphBuilder, type IWorkflowRunner, InProcessWorkflowRunner, type InProcessWorkflowRunnerOptions, type InitializeNodeDatabaseOptions, type InitializeNodeDatabaseResult, type IsolatedWorkflowRuntime, type IsolatedWorkflowRuntimeContext, type LoadExtensionsOptions, type LoadMakaioConfigOptions, type LoadedMakaioConfig, MAKAIO_CONFIG_FILE_ENV, MAKAIO_HOME_ENV, MAKAIO_UPSTREAM_SECRET_ENV, MAKAIO_UPSTREAM_URL_ENV, type MachineKeyStatus, type MachineKeyValidation, type MakaioConfig, type MakaioRuntime, MergedDescriptorDiscovery, type NodeClientBinaryStrategyDependencyOptions, NodeCredentialProvider, NodeFrameworkModuleResolver, type NodeRuntimeOptions, NoopFrameworkModuleResolver, OutcomeDeliveryError, type ParseMakaioConfigOptions, type ParsedMakaioConfig, type PersistedMachineIdentity, type PrepareAdapterRuntimeInput, type PreparedAdapterRuntime, type ResolveUpstreamTelemetryBootOptionsFromEnvOptions, RuntimeSubjects, type ServerTransportProvider, StoredCredentialProvider, ThinWorkflowPiscinaRunner, type ThinWorkflowPiscinaRunnerOptions, type TransportReadyInfo, type UpstreamTelemetryBootOptions, type UpstreamTelemetryEnv, type UpstreamTelemetryTransportConfig, type WorkflowRunResult, type WorkflowRunnerBootOptions, type WorkflowRunnerConfig, type WorkflowRuntimeAuthorityConnector, type WorkflowRuntimeContributionLoader, type WorkflowWorkerEntryMode, type WorkflowWorkerEntryResolverOptions, type WorkspaceRootInfo, WorkspaceRootNotFoundError, activateAdapterRuntimeIdentity, attachUpstreamTelemetry, bootMakaioRuntime, bootMakaioRuntimeCore, bridgeExtensionBrowserEntries, buildConfiguredRuntimeOptions, buildExtensionBrowserRollupInputName, buildExtensionBrowserRuntimeEntrypoint, buildNodeRuntimeOptions, createHonoRouteGraph, createHttpRouteGraphBuilder, createIsolatedWorkflowRuntime, createMakaioConfigDiscovery, createNodeClientBinaryStrategyDependencies, createUpstreamTelemetryTransport, defineMakaioConfig, entrypointStem, findWorkspaceRoot, findWorkspaceRootInfo, getRuntimeDatabase, initializeNodeDatabase, isCliContributionLike, isMakaioExtensionLike, isMissingOptionalRuntimePackage, isWithinDirectory, loadExtensions, loadMakaioConfig, loadOrCreateMachineIdentity, machineKeysExist, normalizeNodeHostCapabilities, parseMakaioConfig, prepareAdapterRuntime, readFrameworkVersion, registerAdapterNameResolver, registerRuntimeHandlers, resolveBundledMigrationsDir, resolveConventionEntrypoint, resolveFrameworkSpecifier, resolveListeningPort, resolveMakaioConfigPath, resolveMakaioHome, resolveStaticModelRegistryPath, resolveUpstreamTelemetryBootOptionsFromEnv, resolveWorkflowWorkerEntry, runHeadlessWorkflowWorker, runMigrations, runRuntimeHandlerCleanups, selectFrameworkCorePackages, shouldIncludeExtension, tryImport, validateMachineKeys, waitForServerListening };
676
+ export { type ActivateAdapterRuntimeIdentityInput, type ActivatedAdapterRuntimeIdentity, type AttachedUpstreamTelemetry, type BootCoordinatorSetupContext, type BootMakaioRuntimeOptions, type BridgeBrowserOptions, type BundledMigrationsProbes, type BusServerTransportOptions, BusServerTransportProvider, CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS, CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, type ConfiguredRuntimeOptions, type CoreBootOptions, type CreateIsolatedWorkflowRuntimeOptions, type CredentialProvider, type DatabaseBootOptions, type DescriptorSourcePackageGroup, type DiscoveredExtension, ExplicitDescriptorDiscovery, type ExtensionDiscovery, FileConfigStorage, FileRegistryCache, FilesystemDescriptorDiscovery, type FilesystemDescriptorDiscoveryOptions, type FrameworkModuleResolver, type HeadlessWorkerBootstrap, type HeadlessWorkerBootstrapCredentials, type HeadlessWorkerBusConnector, type HeadlessWorkerContributionLoader, type HeadlessWorkerExecutor, type HeadlessWorkerMaterializer, type HeadlessWorkerPostCommitObserver, type HeadlessWorkflowWorkerDeps, type HeadlessWorkflowWorkerResult, type HonoRouteGraph, type HonoRouteGraphOptions, type HttpContributionPhase, type HttpRouteContribution, type HttpRouteGraphBuilder, type IWorkflowRunner, InProcessWorkflowRunner, type InProcessWorkflowRunnerOptions, type InitializeNodeDatabaseOptions, type InitializeNodeDatabaseResult, type IsolatedWorkflowRuntime, type IsolatedWorkflowRuntimeContext, type LoadExtensionsOptions, type LoadMakaioConfigOptions, type LoadedMakaioConfig, MAKAIO_CONFIG_FILE_ENV, MAKAIO_HOME_ENV, MAKAIO_UPSTREAM_SECRET_ENV, MAKAIO_UPSTREAM_URL_ENV, type MachineKeyStatus, type MachineKeyValidation, type MakaioConfig, type MakaioRuntime, MergedDescriptorDiscovery, type NodeClientBinaryStrategyDependencyOptions, NodeCredentialProvider, NodeFrameworkModuleResolver, type NodeRuntimeOptions, NoopFrameworkModuleResolver, OutcomeDeliveryError, type ParseMakaioConfigOptions, type ParsedMakaioConfig, type PersistedMachineIdentity, PiscinaCodeExecutionProvider, type PiscinaCodeExecutionProviderOptions, type PrepareAdapterRuntimeInput, type PreparedAdapterRuntime, type ResolveUpstreamTelemetryBootOptionsFromEnvOptions, RuntimeSubjects, type ServerTransportProvider, StoredCredentialProvider, ThinWorkflowPiscinaRunner, type ThinWorkflowPiscinaRunnerOptions, type TransportReadyInfo, type UpstreamTelemetryBootOptions, type UpstreamTelemetryEnv, type UpstreamTelemetryTransportConfig, type WorkflowRunResult, type WorkflowRunnerBootOptions, type WorkflowRunnerConfig, type WorkflowRuntimeAuthorityConnector, type WorkflowRuntimeContributionLoader, type WorkflowWorkerEntryMode, type WorkflowWorkerEntryResolverOptions, type WorkspaceRootInfo, WorkspaceRootNotFoundError, activateAdapterRuntimeIdentity, attachUpstreamTelemetry, bootMakaioRuntime, bootMakaioRuntimeCore, bridgeExtensionBrowserEntries, buildConfiguredRuntimeOptions, buildExtensionBrowserRollupInputName, buildExtensionBrowserRuntimeEntrypoint, buildNodeRuntimeOptions, createHonoRouteGraph, createHttpRouteGraphBuilder, createIsolatedWorkflowRuntime, createMakaioConfigDiscovery, createNodeClientBinaryStrategyDependencies, createUpstreamTelemetryTransport, defineMakaioConfig, entrypointStem, findWorkspaceRoot, findWorkspaceRootInfo, getRuntimeDatabase, initializeNodeDatabase, isCliContributionLike, isMakaioExtensionLike, isMissingOptionalRuntimePackage, isWithinDirectory, loadExtensions, loadMakaioConfig, loadOrCreateMachineIdentity, machineKeysExist, normalizeNodeHostCapabilities, parseMakaioConfig, prepareAdapterRuntime, readFrameworkVersion, registerAdapterNameResolver, registerRuntimeHandlers, resolveBundledMigrationsDir, resolveConventionEntrypoint, resolveFrameworkSpecifier, resolveListeningPort, resolveMakaioConfigPath, resolveMakaioHome, resolveStaticModelRegistryPath, resolveUpstreamTelemetryBootOptionsFromEnv, resolveWorkflowWorkerEntry, runHeadlessWorkflowWorker, runMigrations, runRuntimeHandlerCleanups, selectFrameworkCorePackages, shouldIncludeExtension, tryImport, validateMachineKeys, waitForServerListening };