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

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 (527) 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-841T7jBI.d.mts} +1 -1
  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 +62 -52
  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-CfiCJPP6.d.mts → index-B0VO0rAl.d.mts} +1 -1
  125. package/dist/{index-DI7-tIL3.d.mts → index-B0yMCJW8.d.mts} +39 -14
  126. package/dist/{index-CER64zYO.d.mts → index-B9io6JAL.d.mts} +15 -15
  127. package/dist/{index-CqQYgsbB.d.mts → index-BNzUyVwV.d.mts} +513 -170
  128. package/dist/{index-1UcQWrZy.d.mts → index-BUwDmh1I.d.mts} +142 -142
  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-C-JzEkqs.d.mts → index-C146Eq_J.d.mts} +535 -1801
  132. package/dist/{index-C__EQfKa.d.mts → index-CIEycZrt.d.mts} +1 -1
  133. package/dist/{index-DxYDRoDE2.d.mts → index-CMekqu_D.d.mts} +28 -8
  134. package/dist/{index-nydhGvXa.d.mts → index-CPRQ4dWX.d.mts} +0 -23
  135. package/dist/{index-BSQ30wYP.d.mts → index-CPi0UpRh.d.mts} +1 -1
  136. package/dist/{index-BtdK8HeH.d.mts → index-CVNbBtA-.d.mts} +72 -197
  137. package/dist/{index-BMVZs6pm.d.mts → index-CYjgoYeX.d.mts} +3 -3
  138. package/dist/{index-CSN_0sCo.d.mts → index-CmwAJ8-5.d.mts} +1 -1
  139. package/dist/index-Cny5RvjO.d.mts +800 -0
  140. package/dist/{index-B0xJgTi-.d.mts → index-D8D-yibS2.d.mts} +4 -4
  141. package/dist/index-DHnSLGP4.d.mts +268 -0
  142. package/dist/index-DQ8o3JGi.d.mts +132 -0
  143. package/dist/index-DWBkiiXH.d.mts +18 -0
  144. package/dist/{index-cPqSpWQC.d.mts → index-DfUpqwBa2.d.mts} +16 -16
  145. package/dist/index-Dg11JxKZ.d.mts +496 -0
  146. package/dist/{index-Bl7KWFod.d.mts → index-NUByQvlg.d.mts} +15 -15
  147. package/dist/{index-e4Txan9i.d.mts → index-cLB38AWX.d.mts} +64 -64
  148. package/dist/json-value-BBZ6uGwc.mjs +1 -0
  149. package/dist/json-value-DPqb-SJ8.d.mts +177 -0
  150. package/dist/kernel/cli/index.d.mts +2 -2
  151. package/dist/kernel/cli/index.mjs +1 -1
  152. package/dist/kernel/cli/register.d.mts +1 -1
  153. package/dist/kernel/cli/register.mjs +1 -1
  154. package/dist/kernel/cli/schemas.mjs +1 -1
  155. package/dist/kernel/extension/index.d.mts +1 -1
  156. package/dist/kernel/extension/index.mjs +1 -1
  157. package/dist/kernel/index.d.mts +5 -5
  158. package/dist/kernel/index.mjs +1 -1
  159. package/dist/kernel/namespace/index.d.mts +1 -1
  160. package/dist/kernel/namespace/index.mjs +1 -1
  161. package/dist/kernel/observability/index.d.mts +1 -1
  162. package/dist/kernel/observability/index.mjs +1 -1
  163. package/dist/kernel/providers/index.d.mts +1 -1
  164. package/dist/kernel/providers/index.mjs +1 -1
  165. package/dist/kernel/window/index.d.mts +1 -1
  166. package/dist/kernel/window/index.mjs +1 -1
  167. package/dist/{lib-CnOAtohU.mjs → lib-BpGvHZye.mjs} +2 -2
  168. package/dist/{lib-B_rJ6r0T.mjs → lib-Cm-uEoC1.mjs} +1 -1
  169. package/dist/{load-extensions-DUpaMQ7G.d.mts → load-extensions-BQoXaHhR.d.mts} +1 -1
  170. package/dist/{load-extensions-CW9uzNR5.mjs → load-extensions-DG5LvPyM.mjs} +1 -1
  171. package/dist/{materialization-CcpCDhXh.mjs → materialization-lVd9_-jr.mjs} +1 -1
  172. package/dist/mcp-http-server/index.mjs +1 -1
  173. package/dist/model-DrzPt3ou.mjs +1 -0
  174. package/dist/{namespace-B7bntOB8.mjs → namespace-BL7lHlmg.mjs} +1 -1
  175. package/dist/{namespace-BgEiY7r1.d.mts → namespace-BNp7n_gu.d.mts} +3 -3
  176. package/dist/{namespace-DSlfFhB1.d.mts → namespace-BRuHzhPo.d.mts} +154 -2
  177. package/dist/{namespace-ChnRTUG4.d.mts → namespace-C06lJSuj.d.mts} +6 -6
  178. package/dist/{namespace-C6CVEGH8.d.mts → namespace-DknCutQZ.d.mts} +50 -0
  179. package/dist/namespace-sCPb79-7.mjs +1 -0
  180. package/dist/{native-session-supervisor-fZYPUk0-.mjs → native-session-supervisor-LKio8XZn.mjs} +1 -1
  181. package/dist/node/bus-server/index.d.mts +1 -1
  182. package/dist/node/bus-server/index.mjs +1 -1
  183. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  184. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  185. package/dist/npm-package-name-DuTYVICk.mjs +1 -0
  186. package/dist/orchestrator-shared-BGlN-m-V.mjs +1 -0
  187. package/dist/{orchestrator-shared-B-KRW1Z0.d.mts → orchestrator-shared-CNHSImNY.d.mts} +9 -10
  188. package/dist/ownership-memory-handler-BpGdR_uG.mjs +1 -0
  189. package/dist/ownership-recovery-guard-DyW5vGBr.mjs +1 -0
  190. package/dist/{package-ypz4rKvn.mjs → package-B01gmu75.mjs} +1 -1
  191. package/dist/{package-Bf3hyuzs.d.mts → package-BNFTUFLB.d.mts} +2 -2
  192. package/dist/package-DttKA9wN.mjs +1 -0
  193. package/dist/{package-CddkNbZI.mjs → package-JtjbO-Oi.mjs} +1 -1
  194. package/dist/package.json +1 -1
  195. package/dist/{profile-BtznZlq3.mjs → profile-N5qGUpF0.mjs} +1 -1
  196. package/dist/{provider-context-Dh-VOOYF.mjs → provider-context-CG42JlP9.mjs} +1 -1
  197. package/dist/{provider-context-BrLZYnDW.mjs → provider-context-zTDSH2x9.mjs} +1 -1
  198. package/dist/{reaction-BS0k4eNN.mjs → reaction-D3TNwPK8.mjs} +1 -1
  199. package/dist/{registry-BO_bOoky.mjs → registry-Dk12tAfv.mjs} +1 -1
  200. package/dist/{resolved-DMByz1_2.mjs → resolved-sq8RXNDf.mjs} +1 -1
  201. package/dist/rules/index.d.mts +1 -1
  202. package/dist/rules/index.mjs +1 -1
  203. package/dist/rules/schemas.d.mts +1 -1
  204. package/dist/rules/schemas.mjs +1 -1
  205. package/dist/runtime-bun/index.mjs +1 -1
  206. package/dist/runtime-node/code-execution/index.d.mts +3 -0
  207. package/dist/runtime-node/code-execution/index.mjs +1 -0
  208. package/dist/runtime-node/extension-discovery.d.mts +2 -2
  209. package/dist/runtime-node/extension-discovery.mjs +1 -1
  210. package/dist/runtime-node/extension-validation.d.mts +1 -1
  211. package/dist/runtime-node/extension-validation.mjs +1 -1
  212. package/dist/runtime-node/index.d.mts +6 -4
  213. package/dist/runtime-node/index.mjs +24 -24
  214. package/dist/runtime-node/makaio-config.d.mts +1 -1
  215. package/dist/runtime-node/makaio-config.mjs +1 -1
  216. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  217. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  218. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  219. package/dist/{schema-DKTzriEY.d.mts → schema-B3Pf7JP7.d.mts} +250 -3
  220. package/dist/{schema-DBG7Jq5_.mjs → schema-Dq-7si8u.mjs} +1 -1
  221. package/dist/{schemas-DvMbcABQ.d.mts → schemas-BAv9RB9M.d.mts} +4 -4
  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.mjs +1 -1
  272. package/dist/services/index.d.mts +160 -60
  273. package/dist/services/index.mjs +1 -1
  274. package/dist/services/log-import/browser.d.mts +2 -2
  275. package/dist/services/log-import/index.d.mts +2 -2
  276. package/dist/services/log-import/log-import.d.mts +1 -1
  277. package/dist/services/log-import/log-import.mjs +1 -1
  278. package/dist/services/log-import/namespace.mjs +1 -1
  279. package/dist/services/log-import/schemas.mjs +1 -1
  280. package/dist/services/materialization/index.d.mts +1 -1
  281. package/dist/services/materialization/index.mjs +1 -1
  282. package/dist/services/model-registry/index.d.mts +1 -1
  283. package/dist/services/model-registry/index.mjs +1 -1
  284. package/dist/services/preferences/index.d.mts +2 -2
  285. package/dist/services/preferences/schemas.d.mts +1 -1
  286. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  287. package/dist/services/provider-context/index.d.mts +1 -1
  288. package/dist/services/provider-context/index.mjs +1 -1
  289. package/dist/services/provider-runtime/index.mjs +1 -1
  290. package/dist/services/session/handlers/index.d.mts +1 -1
  291. package/dist/services/session/handlers/index.mjs +1 -1
  292. package/dist/services/session/index.d.mts +10 -10
  293. package/dist/services/session/index.mjs +1 -1
  294. package/dist/services/session/messages/namespace.d.mts +1 -1
  295. package/dist/services/session/messages/namespace.mjs +1 -1
  296. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  297. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  298. package/dist/services/session/session-events/namespace.d.mts +1 -1
  299. package/dist/services/session/session-events/namespace.mjs +1 -1
  300. package/dist/services/session/storage/namespace.d.mts +1 -1
  301. package/dist/services/session/storage/schema.d.mts +2 -2
  302. package/dist/services/session/storage/schema.mjs +1 -1
  303. package/dist/services/session/testing/index.d.mts +22 -1
  304. package/dist/services/session/testing/index.mjs +38 -14
  305. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  306. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  307. package/dist/services/session/turns/namespace.d.mts +1 -1
  308. package/dist/services/session/turns/namespace.mjs +1 -1
  309. package/dist/services/session-editor/index.d.mts +1 -1
  310. package/dist/services/session-editor/index.mjs +1 -1
  311. package/dist/services/settings/index.d.mts +3 -3
  312. package/dist/services/settings/index.mjs +1 -1
  313. package/dist/services/settings/namespace.d.mts +4 -4
  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-D3zUBTPc.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-kernel/index.d.mts +1 -1
  360. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  361. package/dist/utils/index.d.mts +22 -1
  362. package/dist/utils/index.mjs +2 -2
  363. package/dist/utils/project-manifest.mjs +1 -1
  364. package/dist/{version-BfNnVAGr.mjs → version-BYeVh1pI.mjs} +1 -1
  365. package/dist/{view-builder-KYsPqV-5.d.mts → view-builder-B0j9p5C0.d.mts} +4 -4
  366. package/dist/{visibility-Dl1o2I01.mjs → visibility-DtDLRBdr.mjs} +1 -1
  367. package/dist/worker-node-CjuQb9hl.mjs +1 -0
  368. package/dist/{worker-node-DJ41Tr-F.mjs → worker-node-Dtf9ilsR.mjs} +1 -1
  369. package/dist/workflow-C4mck_NW.mjs +1 -0
  370. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  371. package/dist/workflow-engine/index.d.mts +88 -88
  372. package/dist/workflow-engine/index.mjs +1 -1
  373. package/dist/workflow-engine/package.d.mts +1 -1
  374. package/dist/workflow-engine/package.mjs +1 -1
  375. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  376. package/dist/workflow-engine/testing/index.d.mts +2 -2
  377. package/dist/workflow-engine/testing/index.mjs +1 -1
  378. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  379. package/dist/workflow-engine/testing/sqlite.mjs +1 -1
  380. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  381. package/dist/{workflow-transitions-DM0fN_eP.mjs → workflow-transitions-c_VQbyV0.mjs} +1 -1
  382. package/dist/workflow-worker-aNbdgqml.mjs +1 -0
  383. package/package.json +18 -1
  384. package/dist/adapter-BkdJaOOG.mjs +0 -1
  385. package/dist/agent-namespace-D51PODFf.mjs +0 -1
  386. package/dist/attach-error-BSlc7JfL.mjs +0 -1
  387. package/dist/bus-BIj0_aG6.mjs +0 -1
  388. package/dist/capabilities-Bqckjh7G.mjs +0 -1
  389. package/dist/capability-service-CJHNkjvm.mjs +0 -1
  390. package/dist/event-DR8U9Efx.mjs +0 -1
  391. package/dist/framework-packages-D_2hBZ-p.mjs +0 -1
  392. package/dist/handlers-2yd00VEq.mjs +0 -57
  393. package/dist/identity-DC3Pk0ps.mjs +0 -1
  394. package/dist/index-OsbtyMgx2.d.mts +0 -98
  395. package/dist/json-value-C1RGgS0a.d.mts +0 -72
  396. package/dist/json-value-D57aJhVn.mjs +0 -1
  397. package/dist/model-ZH3L1dPW.mjs +0 -1
  398. package/dist/namespace-CxrOLeeP.mjs +0 -1
  399. package/dist/orchestrator-shared-CTCZc6Vl.mjs +0 -1
  400. package/dist/ownership-memory-handler-Bblp93YC.mjs +0 -1
  401. package/dist/schemas-BqD8LlQw.mjs +0 -1
  402. package/dist/schemas-CvHFbzdy.mjs +0 -1
  403. package/dist/schemas-DplrlAyR.mjs +0 -1
  404. package/dist/scoped-bus-ClwTWqX8.mjs +0 -1
  405. package/dist/session-BMy2kRpX.mjs +0 -90
  406. package/dist/session-Cipx34j6.mjs +0 -1
  407. package/dist/tool-approval-service-BVgN9Q1r.mjs +0 -1
  408. package/dist/worker-node-BDOYPEpi.mjs +0 -1
  409. package/dist/workflow-Hzc5jlnV.mjs +0 -1
  410. package/dist/workflow-worker-DARC7UZl.mjs +0 -1
  411. /package/dist/{adapter-auth-runtime-D9Lnl7cc.mjs → adapter-auth-runtime-DHHppU4f.mjs} +0 -0
  412. /package/dist/{adapter-binding-B-FBoCys.d.mts → adapter-binding-CATvmGuz.d.mts} +0 -0
  413. /package/dist/{ajv-L5fKxaia.mjs → ajv-krzJXh1X.mjs} +0 -0
  414. /package/dist/{attempt-record-codec-DaFLKR5C.mjs → attempt-record-codec-BYfYkj4M.mjs} +0 -0
  415. /package/dist/{await-trigger-ph1S0zVI.mjs → await-trigger-Bkg2BQfg.mjs} +0 -0
  416. /package/dist/{base-orchestrator-D9u4NyiM.d.mts → base-orchestrator-B4YW6z_Q.d.mts} +0 -0
  417. /package/dist/{index-Ol9RBB0W2.d.mts → capability-service-BW1-teFU.d.mts} +0 -0
  418. /package/dist/{client-4ihewPUm.d.mts → client-BG0WX5Vz.d.mts} +0 -0
  419. /package/dist/{client-binary-version-verifier-DJajc_Ff.mjs → client-binary-version-verifier-0lCKZOTg.mjs} +0 -0
  420. /package/dist/{client-binary-version-verifier-jDDZ64Ah.d.mts → client-binary-version-verifier-lcv83Hq3.d.mts} +0 -0
  421. /package/dist/{clients-namespace-DFWuUawf.d.mts → clients-namespace-DLAjOTTb.d.mts} +0 -0
  422. /package/dist/{config-namespace-D1kyZj0B.d.mts → config-namespace-CH7sJZ4f.d.mts} +0 -0
  423. /package/dist/{create-static-mount-9tnGpIeK.mjs → create-static-mount-DxuixuLZ.mjs} +0 -0
  424. /package/dist/{cross-spawn-BIgueAqr.mjs → cross-spawn-CZygZJMH.mjs} +0 -0
  425. /package/dist/{cursor-storage-ROWfiTh1.mjs → cursor-storage-bsc9lZKk.mjs} +0 -0
  426. /package/dist/{definition-DB-kKc0d.d.mts → definition-BrgzUuFk.d.mts} +0 -0
  427. /package/dist/{definitions-CF6YmEhL.mjs → definitions-CRpdnHYM.mjs} +0 -0
  428. /package/dist/{descriptor-to-package-BecVCopf.mjs → descriptor-to-package-CcjdoWP4.mjs} +0 -0
  429. /package/dist/{drizzle-CPv3vdTE.mjs → drizzle-Bzc-OGVI.mjs} +0 -0
  430. /package/dist/{esm-CBFWM8u_.mjs → esm-i-S5TW72.mjs} +0 -0
  431. /package/dist/{extension-context-DzB7ydM3.d.mts → extension-context-QmFuHdq5.d.mts} +0 -0
  432. /package/dist/{extension-namespace-B554RmCp.mjs → extension-namespace-QoTTwKPt.mjs} +0 -0
  433. /package/dist/{extension-package-provenance-Dh_-Z-tE.mjs → extension-package-provenance-aYrZuS4W.mjs} +0 -0
  434. /package/dist/{facet-DVsW12iF.mjs → facet-BnMh7Jyc.mjs} +0 -0
  435. /package/dist/{filesystem-service-Cm2RHKBa.d.mts → filesystem-service-ZJ43SbBi.d.mts} +0 -0
  436. /package/dist/{handler-Bqlk-6BY.mjs → handler-DF1fVDpf.mjs} +0 -0
  437. /package/dist/{host-k5yoyKHg.mjs → host-B-_ntOMH.mjs} +0 -0
  438. /package/dist/{index--atUpi5l2.d.mts → index-8NdPPzUh2.d.mts} +0 -0
  439. /package/dist/{index-DwLRZscE.d.mts → index-8y4hT9WL.d.mts} +0 -0
  440. /package/dist/{index-C7HcDpHE.d.mts → index-B-3I98nw.d.mts} +0 -0
  441. /package/dist/{index-BcvqDfcN.d.mts → index-B2Y1Wvbh.d.mts} +0 -0
  442. /package/dist/{index-BRCrFirq.d.mts → index-B4svZC6L.d.mts} +0 -0
  443. /package/dist/{index-CQuRTeRa.d.mts → index-B5dP8rj6.d.mts} +0 -0
  444. /package/dist/{index-CRmE88hi.d.mts → index-BC-6qNeo.d.mts} +0 -0
  445. /package/dist/{index-CxSSdIZz.d.mts → index-BFWvT0NG.d.mts} +0 -0
  446. /package/dist/{index-DP3o_13U.d.mts → index-BM56936c.d.mts} +0 -0
  447. /package/dist/{index-BVcQcphK.d.mts → index-BMRB9yhF.d.mts} +0 -0
  448. /package/dist/{index-bIe_57cL.d.mts → index-BTEJfzjE.d.mts} +0 -0
  449. /package/dist/{index-DgOfgjx3.d.mts → index-BfV8U4XX.d.mts} +0 -0
  450. /package/dist/{index-DBadVauL.d.mts → index-BmevAPME2.d.mts} +0 -0
  451. /package/dist/{index-OADt3xlS.d.mts → index-BuMsrli0.d.mts} +0 -0
  452. /package/dist/{index-BJAB-BW_.d.mts → index-C4V8Pmi4.d.mts} +0 -0
  453. /package/dist/{index-aoxdnhJ42.d.mts → index-CL0Jo1b92.d.mts} +0 -0
  454. /package/dist/{index-CvW9_SzR.d.mts → index-CVpaGijY.d.mts} +0 -0
  455. /package/dist/{index-E4SET1AA.d.mts → index-CmbkCxj-.d.mts} +0 -0
  456. /package/dist/{index-BgGe9WZz.d.mts → index-CqdMbYmR.d.mts} +0 -0
  457. /package/dist/{index-BQprJNA_.d.mts → index-D037TVsm.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-Cv3rR9Sz.d.mts → schemas-Pe892GgN.d.mts} +0 -0
  505. /package/dist/{schemas-qA279_j_.d.mts → schemas-bfZNpl0B.d.mts} +0 -0
  506. /package/dist/{schemas-mLpOfMoN.mjs → schemas-scyC2tFF.mjs} +0 -0
  507. /package/dist/{semver-DTXuyLcK.mjs → semver-BI7kTNsY.mjs} +0 -0
  508. /package/dist/{server-lifecycle-DKx_fWlq.mjs → server-lifecycle-B_OZnoe-.mjs} +0 -0
  509. /package/dist/{server-lifecycle-C_8iKgat.d.mts → server-lifecycle-L8zja8t8.d.mts} +0 -0
  510. /package/dist/{session-lineage-D5E142LU.d.mts → session-lineage-bUkd3fqx.d.mts} +0 -0
  511. /package/dist/{shared-schemas-aahW97QW.mjs → shared-schemas-CQ6blrEW.mjs} +0 -0
  512. /package/dist/{src-DHqsl5Pg.mjs → src-BacfeiI4.mjs} +0 -0
  513. /package/dist/{storage-namespace-Dz2jsssp.mjs → storage-namespace-BZce8kkW.mjs} +0 -0
  514. /package/dist/{storage-namespace-Tf3P5yJ5.d.mts → storage-namespace-YmE8XCCL.d.mts} +0 -0
  515. /package/dist/{storage-namespace-definition-CDef0E20.mjs → storage-namespace-definition-Cca-zwXU.mjs} +0 -0
  516. /package/dist/{supports-color-i7OTnKcZ.mjs → supports-color-SV_FgSN2.mjs} +0 -0
  517. /package/dist/{telemetry-BvCBUjFg.mjs → telemetry-BqoC87F-.mjs} +0 -0
  518. /package/dist/{timeout-B0nYjLc8.mjs → timeout-DVlN2Zhy.mjs} +0 -0
  519. /package/dist/{tray-menu-service-Deo6yyP8.mjs → tray-menu-service-eVVxgPLc.mjs} +0 -0
  520. /package/dist/{types-xCdGghb2.d.mts → types-BlB23n4f.d.mts} +0 -0
  521. /package/dist/{types-CNS55jvt.d.mts → types-DdpSEmTO.d.mts} +0 -0
  522. /package/dist/{types-Ce6LL25v.d.mts → types-tyv0B605.d.mts} +0 -0
  523. /package/dist/{ui-config-BIyGzMNL.mjs → ui-config-B35GloSX.mjs} +0 -0
  524. /package/dist/{variant-B4uWdxW7.mjs → variant-Dwnge3J_.mjs} +0 -0
  525. /package/dist/{window-registry-CoBJq3u4.mjs → window-registry-CKiMJjId.mjs} +0 -0
  526. /package/dist/{window-registry-BLtVx3Iw.d.mts → window-registry-Pcf35cac.d.mts} +0 -0
  527. /package/dist/{zod-json-schema-BAGAFfCN.mjs → zod-json-schema-Dixc-B1T.mjs} +0 -0
@@ -1 +1 @@
1
- import{B as e,H as t,M as n,P as r,T as i,W as a,X as o,et as s,g as c,it as l,j as u,ot as d}from"../authority-state-bootstrap-YwtEImIB.mjs";import{a as f,c as p,d as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x,u as S}from"../package-ypz4rKvn.mjs";import{assertWorkflowTriggerPayload as C,compileWorkflowTriggerBindingFilter as w}from"./workflow-trigger-binding-consumer.mjs";import{DuplicateExecutionAttemptError as T,EXECUTION_ATTEMPT_SETTLEMENT_KINDS as E,EXECUTION_ATTEMPT_STATUSES as D,sameAllocationRef as O,sameWorkflowResult as k}from"./execution-attempt-repository.mjs";import{PROVIDER_OPERATION_OBLIGATIONS as A}from"./provider-operation.mjs";import{JsonValueSchema as j,WorkflowFrameStateSchema as M}from"@makaio/framework/contracts";const N=new Set([...M.shape.status.options]);function P(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function F(e){if(!P(e))return!1;for(let t of Object.values(e))if(!P(t)||typeof t.status!=`string`||!N.has(t.status)||`result`in t&&t.result!==void 0&&!j.safeParse(t.result).success)return!1;return!0}function I(e){let t={trigger:P(e.trigger)?e.trigger:{},steps:F(e.steps)?e.steps:{},inputs:j.safeParse(e.inputs).success?e.inputs:{}};return`item`in e&&(t.item=e.item),typeof e.index==`number`&&(t.index=e.index),t}export{T as DuplicateExecutionAttemptError,E as EXECUTION_ATTEMPT_SETTLEMENT_KINDS,D as EXECUTION_ATTEMPT_STATUSES,f as ExecutionAttemptAuthority,A as PROVIDER_OPERATION_OBLIGATIONS,h as WorkflowEngineService,x as WorkflowEngineToken,b as WorkflowExecutor,u as WorkflowStorageNamespace,n as WorkflowStorageSubjects,v as WorkflowTriggerReconciler,C as assertWorkflowTriggerPayload,I as buildWorkflowExpressionContextFromResolvedInputs,w as compileWorkflowTriggerBindingFilter,_ as createWorkflowEnginePackage,g as getWorkflowState,S as initializeWorkflowState,m as patchWorkflowState,p as registerDrizzleWorkflowStorage,c as runAuthorityDispatchedAttempt,i as runShellStep,O as sameAllocationRef,k as sameWorkflowResult,r as workflowDefinitionsDual,y as workflowEnginePackage,e as workflowExecutionStateDual,t as workflowExecutionStateEventsDual,a as workflowExecutionsDual,d as workflowFinalizationsDual,o as workflowStepSpansDual,s as worklogFrameEntriesDual,l as worklogSummariesDual};
1
+ import{B as e,H as t,M as n,P as r,T as i,W as a,X as o,et as s,g as c,it as l,j as u,ot as d}from"../authority-state-bootstrap-CLYus369.mjs";import{a as f,c as p,d as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x,u as S}from"../package-B01gmu75.mjs";import{assertWorkflowTriggerPayload as C,compileWorkflowTriggerBindingFilter as w}from"./workflow-trigger-binding-consumer.mjs";import{DuplicateExecutionAttemptError as T,EXECUTION_ATTEMPT_SETTLEMENT_KINDS as E,EXECUTION_ATTEMPT_STATUSES as D,sameAllocationRef as O,sameWorkflowResult as k}from"./execution-attempt-repository.mjs";import{PROVIDER_OPERATION_OBLIGATIONS as A}from"./provider-operation.mjs";import{JsonValueSchema as j,WorkflowFrameStateSchema as M}from"@makaio/framework/contracts";const N=new Set([...M.shape.status.options]);function P(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function F(e){if(!P(e))return!1;for(let t of Object.values(e))if(!P(t)||typeof t.status!=`string`||!N.has(t.status)||`result`in t&&t.result!==void 0&&!j.safeParse(t.result).success)return!1;return!0}function I(e){let t={trigger:P(e.trigger)?e.trigger:{},steps:F(e.steps)?e.steps:{},inputs:j.safeParse(e.inputs).success?e.inputs:{}};return`item`in e&&(t.item=e.item),typeof e.index==`number`&&(t.index=e.index),t}export{T as DuplicateExecutionAttemptError,E as EXECUTION_ATTEMPT_SETTLEMENT_KINDS,D as EXECUTION_ATTEMPT_STATUSES,f as ExecutionAttemptAuthority,A as PROVIDER_OPERATION_OBLIGATIONS,h as WorkflowEngineService,x as WorkflowEngineToken,b as WorkflowExecutor,u as WorkflowStorageNamespace,n as WorkflowStorageSubjects,v as WorkflowTriggerReconciler,C as assertWorkflowTriggerPayload,I as buildWorkflowExpressionContextFromResolvedInputs,w as compileWorkflowTriggerBindingFilter,_ as createWorkflowEnginePackage,g as getWorkflowState,S as initializeWorkflowState,m as patchWorkflowState,p as registerDrizzleWorkflowStorage,c as runAuthorityDispatchedAttempt,i as runShellStep,O as sameAllocationRef,k as sameWorkflowResult,r as workflowDefinitionsDual,y as workflowEnginePackage,e as workflowExecutionStateDual,t as workflowExecutionStateEventsDual,a as workflowExecutionsDual,d as workflowFinalizationsDual,o as workflowStepSpansDual,s as worklogFrameEntriesDual,l as worklogSummariesDual};
@@ -1,2 +1,2 @@
1
- import { n as createWorkflowEnginePackage, r as workflowEnginePackage, t as WorkflowEngineToken } from "../package-Bf3hyuzs.mjs";
1
+ import { n as createWorkflowEnginePackage, r as workflowEnginePackage, t as WorkflowEngineToken } from "../package-BNFTUFLB.mjs";
2
2
  export { WorkflowEngineToken, createWorkflowEnginePackage, workflowEnginePackage };
@@ -1 +1 @@
1
- import{n as e,r as t,t as n}from"../package-ypz4rKvn.mjs";export{n as WorkflowEngineToken,e as createWorkflowEnginePackage,t as workflowEnginePackage};
1
+ import{n as e,r as t,t as n}from"../package-B01gmu75.mjs";export{n as WorkflowEngineToken,e as createWorkflowEnginePackage,t as workflowEnginePackage};
@@ -1,2 +1,2 @@
1
- import { a as ProviderOperationClaim, c as ProviderOperationObligation, i as ProcessBoundProvisionerLossProof, l as ProviderOperationOwnershipRecord, n as InitialProviderOperationClaimContextSource, o as ProviderOperationClaimDecision, r as PROVIDER_OPERATION_OBLIGATIONS, s as ProviderOperationMutationDecision, t as InitialProviderOperationClaimContext } from "../provider-operation-DJ_TLZFf.mjs";
1
+ import { a as ProviderOperationClaim, c as ProviderOperationObligation, i as ProcessBoundProvisionerLossProof, l as ProviderOperationOwnershipRecord, n as InitialProviderOperationClaimContextSource, o as ProviderOperationClaimDecision, r as PROVIDER_OPERATION_OBLIGATIONS, s as ProviderOperationMutationDecision, t as InitialProviderOperationClaimContext } from "../provider-operation-DbdyFwNm.mjs";
2
2
  export { InitialProviderOperationClaimContext, InitialProviderOperationClaimContextSource, PROVIDER_OPERATION_OBLIGATIONS, ProcessBoundProvisionerLossProof, ProviderOperationClaim, ProviderOperationClaimDecision, ProviderOperationMutationDecision, ProviderOperationObligation, ProviderOperationOwnershipRecord };
@@ -1,5 +1,5 @@
1
- import { a as ProviderOperationClaim, i as ProcessBoundProvisionerLossProof, l as ProviderOperationOwnershipRecord } from "../../provider-operation-DJ_TLZFf.mjs";
2
- import { C as ProvisioningClaimDecision, a as BeginProvisioningInput, h as ExecutionAttemptRepository, p as ExecutionAttemptRecord } from "../../execution-attempt-repository-DFyAnchJ.mjs";
1
+ import { a as ProviderOperationClaim, i as ProcessBoundProvisionerLossProof, l as ProviderOperationOwnershipRecord } from "../../provider-operation-DbdyFwNm.mjs";
2
+ import { C as ProvisioningClaimDecision, a as BeginProvisioningInput, h as ExecutionAttemptRepository, p as ExecutionAttemptRecord } from "../../execution-attempt-repository-BJ2W6wwx.mjs";
3
3
  import { BoundedRecoveryEvidence, ProviderAllocationRef, WorkflowRunResult } from "@makaio/framework/contracts";
4
4
 
5
5
  //#region subsystems/workflow-engine/src/testing/in-memory-attempt-repository.d.ts
@@ -1 +1 @@
1
- import{DuplicateExecutionAttemptError as e,sameAllocationRef as t,sameWorkflowResult as n}from"../execution-attempt-repository.mjs";import{a as r,c as i,i as a,l as o,n as s,o as c,r as l,s as u,t as d}from"../../attempt-record-codec-DaFLKR5C.mjs";import{BoundedRecoveryEvidenceSchema as f,PROVIDER_ALLOCATION_REF_VERSION as p}from"@makaio/framework/contracts";function m(p={}){let m=p.attempts??new Map,h=p.operations??new Map,g=p.committedOutcomes??new Map,_=p.activeAttempts??new Map,v=e=>{let t=m.get(e.executionAttemptId),n=h.get(e.executionAttemptId);return!t||!n?{kind:`not-found`}:t.settlementKind==null?n.token===null||n.token!==e.token||n.generation!==e.generation||n.ownerId!==e.ownerId?{kind:`stale`,attempt:t}:{kind:`authorized`,attempt:t,operation:n}:{kind:`resolved`,attempt:t}},y=(e,t)=>{h.set(e.executionAttemptId,{...e,ownerId:null,token:null,leaseExpiresAt:null,lastFailure:t})},b=(e,n)=>{let a=r(e.allocationRef),o=v(e.claim);if(o.kind!==`not-found`&&i(o.attempt,a),o.kind===`resolved`)return{kind:`resolved`,allocationRef:o.attempt.allocationRef};if(o.kind!==`authorized`)return{kind:o.kind};let{attempt:s,operation:c}=o;if(s.allocationRef!==null)return t(s.allocationRef,a)?{kind:`duplicate`,allocationRef:s.allocationRef}:{kind:`conflict`,allocationRef:s.allocationRef};let l=_.get(s.executionId)===s.executionAttemptId;return m.set(s.executionAttemptId,{...s,status:`allocated`,allocationRef:a,claimable:n&&l}),h.set(c.executionAttemptId,{...c,obligation:`allocation-control`}),{kind:`recorded`}};return{async createAttempt(t){if(m.has(t.executionAttemptId))throw new e(t.executionAttemptId);let n={executionAttemptId:t.executionAttemptId,executionId:t.executionId,status:`pending`,allocationRef:null,createdAt:new Date().toISOString(),providerId:null,allocationLifetime:null,provisionerIncarnationId:null,settlementKind:null,claimable:!1,claimExpiresAt:null},r=_.get(t.executionId),i=r===void 0?void 0:m.get(r);return i?.status===`allocated`&&m.set(i.executionAttemptId,{...i,claimable:!1}),m.set(t.executionAttemptId,n),_.set(t.executionId,t.executionAttemptId),n},async beginProvisioning(e){let t=a(e.allocationLifetime),n=m.get(e.executionAttemptId);if(!n||n.executionId!==e.executionId)return{kind:`not-found`};if(_.get(e.executionId)!==e.executionAttemptId)return{kind:`fenced`};if(n.settlementKind!=null)return{kind:`resolved`,allocationRef:n.allocationRef};if(n.allocationRef!==null)return{kind:`allocated`,allocationRef:n.allocationRef};if(n.status!==`pending`)return{kind:`already-provisioning`};m.set(e.executionAttemptId,{...n,status:`provisioning`,providerId:e.providerId,allocationLifetime:t,provisionerIncarnationId:e.provisionerIncarnationId});let r={executionAttemptId:e.executionAttemptId,generation:1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:l(e.leaseExpiresAt)};return h.set(e.executionAttemptId,{executionAttemptId:e.executionAttemptId,generation:r.generation,ownerId:r.ownerId,token:r.token,leaseExpiresAt:r.leaseExpiresAt,obligation:`provisioning-resolution`,failureCount:0,lastFailure:null}),{kind:`started`,claim:r}},async getProviderOperation(e){return h.get(e)??null},async renewProviderOperationClaim(e){let t=v(e.claim);if(t.kind!==`authorized`)return{kind:t.kind};let n=l(e.leaseExpiresAt);return h.set(e.claim.executionAttemptId,{...t.operation,leaseExpiresAt:n}),{kind:`claimed`,claim:{...e.claim,leaseExpiresAt:n}}},async takeOverProviderOperation(e){let t=m.get(e.executionAttemptId),n=h.get(e.executionAttemptId);if(!t||!n)return{kind:`not-found`};if(t.settlementKind!=null)return{kind:`resolved`};if(n.ownerId!==null&&n.leaseExpiresAt!==null&&s(n.leaseExpiresAt)>s(e.observedAt))return{kind:`stale`};let r={executionAttemptId:e.executionAttemptId,generation:n.generation+1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:l(e.leaseExpiresAt)};return h.set(e.executionAttemptId,{...n,generation:r.generation,ownerId:r.ownerId,token:r.token,leaseExpiresAt:r.leaseExpiresAt}),{kind:`claimed`,claim:r}},async handoffProviderOperation(e){let t=e.evidence===void 0?void 0:f.parse(e.evidence),n=v(e.claim);return n.kind===`authorized`?(h.set(e.claim.executionAttemptId,{...n.operation,ownerId:null,token:null,leaseExpiresAt:null,lastFailure:t??n.operation.lastFailure}),{kind:`recorded`}):{kind:n.kind}},async recordProviderOperationUncertainty(e){let t=f.parse(e.evidence),n=v(e.claim);return n.kind===`authorized`?(h.set(e.claim.executionAttemptId,{...n.operation,failureCount:n.operation.failureCount+1,lastFailure:t}),{kind:`recorded`}):{kind:n.kind}},async recordAllocation(e){return b(e,!0)},async recordProvisioningAbsent(e){let t=f.parse(e.evidence),n=v(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.executionId===e.executionId?r.allocationRef===null?(m.set(r.executionAttemptId,{...r,status:`settled`,settlementKind:`abandoned`,claimable:!1}),y(i,t),{kind:`recorded`}):{kind:`allocated`,allocationRef:r.allocationRef}:{kind:`not-found`}},async recordProvisionerIncarnationLost(e){let t=f.parse(e.proof.evidence),n=v(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.executionId===e.executionId?r.allocationLifetime===`provisioner-process-bound`?r.provisionerIncarnationId===null||r.provisionerIncarnationId!==e.proof.provisionerIncarnationId?{kind:`incarnation-mismatch`,provisionerIncarnationId:r.provisionerIncarnationId}:r.allocationRef===null?(m.set(r.executionAttemptId,{...r,status:`settled`,settlementKind:`abandoned`,claimable:!1}),y(i,t),{kind:`recorded`}):{kind:`allocated`,allocationRef:r.allocationRef}:{kind:`not-process-bound`,allocationLifetime:r.allocationLifetime}:{kind:`not-found`}},async recordAllocationTerminated(e){let t=f.parse(e.evidence),n=v(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.allocationRef===null?{kind:`not-allocated`}:(h.set(i.executionAttemptId,{...i,obligation:`terminal-convergence`,lastFailure:t}),{kind:`recorded`})},async recordInfrastructureFailure(e){let t=v(e.claim);if(t.kind!==`authorized`)return{kind:t.kind};let{attempt:n,operation:r}=t;return n.executionId===e.executionId?n.allocationRef===null?{kind:`not-allocated`}:r.obligation===`terminal-convergence`?(m.set(n.executionAttemptId,{...n,status:`settled`,settlementKind:`infrastructure-failure`,claimable:!1}),y(r,r.lastFailure),{kind:`recorded`}):{kind:`not-terminated`}:{kind:`not-found`}},async getActiveAttempt(e,t){return _.get(e)===t?m.get(t)??null:null},async commitOutcome(e){let t=u(e.result);if(_.get(e.executionId)!==e.executionAttemptId)return{kind:`fenced`};let r=m.get(e.executionAttemptId);if(r===void 0)return{kind:`fenced`};let i=g.get(e.executionAttemptId);if(i)return n(i,t)?{kind:`duplicate`,outcome:i}:{kind:`conflict`};if(r.settlementKind!=null)return{kind:`conflict`};g.set(e.executionAttemptId,t),m.set(e.executionAttemptId,{...r,status:`settled`,settlementKind:`outcome`,claimable:!1});let a=h.get(e.executionAttemptId);return a&&y(a,a.lastFailure),{kind:`accepted`,outcome:t}},async abandonPendingAttempt(e,t){if(_.get(t)!==e)return{kind:`fenced`};let n=m.get(e);return n?n.status===`allocated`?{kind:`allocated`}:n.status===`provisioning`?{kind:`provisioning`}:n.status===`settled`?{kind:n.settlementKind===`abandoned`?`already-abandoned`:`already-settled`}:(m.set(e,{...n,status:`settled`,settlementKind:`abandoned`,claimable:!1}),{kind:`abandoned`}):{kind:`fenced`}},recovery:{async getAttemptWithAllocation(e){return m.get(e)??null},async recordDiscoveredAllocation(e){return b(e,!1)},async evolveAllocationRef(e){let{currentRef:n,nextRef:r}=c(e),i=v(e.claim);if(i.kind===`stale`)return{kind:`stale`,storedRef:i.attempt.allocationRef};if(i.kind!==`authorized`)return{kind:i.kind};let{attempt:a}=i;return a.executionId===e.executionId?a.allocationRef===null?{kind:`not-allocated`}:t(a.allocationRef,n)?(m.set(a.executionAttemptId,{...a,allocationRef:r}),{kind:`evolved`}):{kind:`stale`,storedRef:a.allocationRef}:{kind:`not-found`}},async getRecoverableAttempts(e){let t=s(new Date().toISOString()),n=[];for(let r of m.values())r.executionId===e&&r.status===`allocated`&&r.allocationRef!==null&&r.claimable===!0&&r.settlementKind==null&&(r.claimExpiresAt!=null&&s(r.claimExpiresAt)<t||n.push(o(r)));return n.sort(d)}},attempts:m,operations:h,committedOutcomes:g,activeAttempts:_}}const h=`controller-incarnation-1`,g=`provisioner-incarnation-1`,_=`test-provider`;function v(e){return new Date(Date.now()+e).toISOString()}function y(e,t,n={}){return{executionAttemptId:e,executionId:t,providerId:_,allocationLifetime:`provider-managed`,provisionerIncarnationId:g,ownerId:h,leaseExpiresAt:v(6e4),...n}}async function b(e,t,n,r={}){let i=await e.beginProvisioning(y(t,n,r));if(i.kind!==`started`)throw Error(`Expected provisioning to start, got '${i.kind}'`);return i.claim}function x(e={}){return{source:_,summary:`provider rejected the request before creating anything`,observedAt:new Date().toISOString(),...e}}function S(e=g,t=x({summary:`supervisor observed the provisioner process exit`})){return{kind:`provisioner-incarnation-lost`,provisionerIncarnationId:e,evidence:t}}function C(e=_,t={runId:1}){return{version:p,providerId:e,providerData:t}}function w(e,t=`completed`){let n={executionId:e,workflowId:`contract-workflow`};return t===`completed`?{...n,status:`completed`}:{...n,status:`failed`,error:`contract failure`}}export{h as TEST_OWNER_ID,_ as TEST_PROVIDER_ID,g as TEST_PROVISIONER_INCARNATION_ID,b as beginTestProvisioning,m as createInMemoryAttemptRepository,v as leaseAt,y as makeBeginProvisioningInput,x as makeEvidence,S as makeProcessLossProof,C as makeTestAllocationRef,w as makeTestWorkflowResult};
1
+ import{DuplicateExecutionAttemptError as e,sameAllocationRef as t,sameWorkflowResult as n}from"../execution-attempt-repository.mjs";import{a as r,c as i,i as a,l as o,n as s,o as c,r as l,s as u,t as d}from"../../attempt-record-codec-BYfYkj4M.mjs";import{BoundedRecoveryEvidenceSchema as f,PROVIDER_ALLOCATION_REF_VERSION as p}from"@makaio/framework/contracts";function m(p={}){let m=p.attempts??new Map,h=p.operations??new Map,g=p.committedOutcomes??new Map,_=p.activeAttempts??new Map,v=e=>{let t=m.get(e.executionAttemptId),n=h.get(e.executionAttemptId);return!t||!n?{kind:`not-found`}:t.settlementKind==null?n.token===null||n.token!==e.token||n.generation!==e.generation||n.ownerId!==e.ownerId?{kind:`stale`,attempt:t}:{kind:`authorized`,attempt:t,operation:n}:{kind:`resolved`,attempt:t}},y=(e,t)=>{h.set(e.executionAttemptId,{...e,ownerId:null,token:null,leaseExpiresAt:null,lastFailure:t})},b=(e,n)=>{let a=r(e.allocationRef),o=v(e.claim);if(o.kind!==`not-found`&&i(o.attempt,a),o.kind===`resolved`)return{kind:`resolved`,allocationRef:o.attempt.allocationRef};if(o.kind!==`authorized`)return{kind:o.kind};let{attempt:s,operation:c}=o;if(s.allocationRef!==null)return t(s.allocationRef,a)?{kind:`duplicate`,allocationRef:s.allocationRef}:{kind:`conflict`,allocationRef:s.allocationRef};let l=_.get(s.executionId)===s.executionAttemptId;return m.set(s.executionAttemptId,{...s,status:`allocated`,allocationRef:a,claimable:n&&l}),h.set(c.executionAttemptId,{...c,obligation:`allocation-control`}),{kind:`recorded`}};return{async createAttempt(t){if(m.has(t.executionAttemptId))throw new e(t.executionAttemptId);let n={executionAttemptId:t.executionAttemptId,executionId:t.executionId,status:`pending`,allocationRef:null,createdAt:new Date().toISOString(),providerId:null,allocationLifetime:null,provisionerIncarnationId:null,settlementKind:null,claimable:!1,claimExpiresAt:null},r=_.get(t.executionId),i=r===void 0?void 0:m.get(r);return i?.status===`allocated`&&m.set(i.executionAttemptId,{...i,claimable:!1}),m.set(t.executionAttemptId,n),_.set(t.executionId,t.executionAttemptId),n},async beginProvisioning(e){let t=a(e.allocationLifetime),n=m.get(e.executionAttemptId);if(!n||n.executionId!==e.executionId)return{kind:`not-found`};if(_.get(e.executionId)!==e.executionAttemptId)return{kind:`fenced`};if(n.settlementKind!=null)return{kind:`resolved`,allocationRef:n.allocationRef};if(n.allocationRef!==null)return{kind:`allocated`,allocationRef:n.allocationRef};if(n.status!==`pending`)return{kind:`already-provisioning`};m.set(e.executionAttemptId,{...n,status:`provisioning`,providerId:e.providerId,allocationLifetime:t,provisionerIncarnationId:e.provisionerIncarnationId});let r={executionAttemptId:e.executionAttemptId,generation:1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:l(e.leaseExpiresAt)};return h.set(e.executionAttemptId,{executionAttemptId:e.executionAttemptId,generation:r.generation,ownerId:r.ownerId,token:r.token,leaseExpiresAt:r.leaseExpiresAt,obligation:`provisioning-resolution`,failureCount:0,lastFailure:null}),{kind:`started`,claim:r}},async getProviderOperation(e){return h.get(e)??null},async renewProviderOperationClaim(e){let t=v(e.claim);if(t.kind!==`authorized`)return{kind:t.kind};let n=l(e.leaseExpiresAt);return h.set(e.claim.executionAttemptId,{...t.operation,leaseExpiresAt:n}),{kind:`claimed`,claim:{...e.claim,leaseExpiresAt:n}}},async takeOverProviderOperation(e){let t=m.get(e.executionAttemptId),n=h.get(e.executionAttemptId);if(!t||!n)return{kind:`not-found`};if(t.settlementKind!=null)return{kind:`resolved`};if(n.ownerId!==null&&n.leaseExpiresAt!==null&&s(n.leaseExpiresAt)>s(e.observedAt))return{kind:`stale`};let r={executionAttemptId:e.executionAttemptId,generation:n.generation+1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:l(e.leaseExpiresAt)};return h.set(e.executionAttemptId,{...n,generation:r.generation,ownerId:r.ownerId,token:r.token,leaseExpiresAt:r.leaseExpiresAt}),{kind:`claimed`,claim:r}},async handoffProviderOperation(e){let t=e.evidence===void 0?void 0:f.parse(e.evidence),n=v(e.claim);return n.kind===`authorized`?(h.set(e.claim.executionAttemptId,{...n.operation,ownerId:null,token:null,leaseExpiresAt:null,lastFailure:t??n.operation.lastFailure}),{kind:`recorded`}):{kind:n.kind}},async recordProviderOperationUncertainty(e){let t=f.parse(e.evidence),n=v(e.claim);return n.kind===`authorized`?(h.set(e.claim.executionAttemptId,{...n.operation,failureCount:n.operation.failureCount+1,lastFailure:t}),{kind:`recorded`}):{kind:n.kind}},async recordAllocation(e){return b(e,!0)},async recordProvisioningAbsent(e){let t=f.parse(e.evidence),n=v(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.executionId===e.executionId?r.allocationRef===null?(m.set(r.executionAttemptId,{...r,status:`settled`,settlementKind:`abandoned`,claimable:!1}),y(i,t),{kind:`recorded`}):{kind:`allocated`,allocationRef:r.allocationRef}:{kind:`not-found`}},async recordProvisionerIncarnationLost(e){let t=f.parse(e.proof.evidence),n=v(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.executionId===e.executionId?r.allocationLifetime===`provisioner-process-bound`?r.provisionerIncarnationId===null||r.provisionerIncarnationId!==e.proof.provisionerIncarnationId?{kind:`incarnation-mismatch`,provisionerIncarnationId:r.provisionerIncarnationId}:r.allocationRef===null?(m.set(r.executionAttemptId,{...r,status:`settled`,settlementKind:`abandoned`,claimable:!1}),y(i,t),{kind:`recorded`}):{kind:`allocated`,allocationRef:r.allocationRef}:{kind:`not-process-bound`,allocationLifetime:r.allocationLifetime}:{kind:`not-found`}},async recordAllocationTerminated(e){let t=f.parse(e.evidence),n=v(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.allocationRef===null?{kind:`not-allocated`}:(h.set(i.executionAttemptId,{...i,obligation:`terminal-convergence`,lastFailure:t}),{kind:`recorded`})},async recordInfrastructureFailure(e){let t=v(e.claim);if(t.kind!==`authorized`)return{kind:t.kind};let{attempt:n,operation:r}=t;return n.executionId===e.executionId?n.allocationRef===null?{kind:`not-allocated`}:r.obligation===`terminal-convergence`?(m.set(n.executionAttemptId,{...n,status:`settled`,settlementKind:`infrastructure-failure`,claimable:!1}),y(r,r.lastFailure),{kind:`recorded`}):{kind:`not-terminated`}:{kind:`not-found`}},async getActiveAttempt(e,t){return _.get(e)===t?m.get(t)??null:null},async commitOutcome(e){let t=u(e.result);if(_.get(e.executionId)!==e.executionAttemptId)return{kind:`fenced`};let r=m.get(e.executionAttemptId);if(r===void 0)return{kind:`fenced`};let i=g.get(e.executionAttemptId);if(i)return n(i,t)?{kind:`duplicate`,outcome:i}:{kind:`conflict`};if(r.settlementKind!=null)return{kind:`conflict`};g.set(e.executionAttemptId,t),m.set(e.executionAttemptId,{...r,status:`settled`,settlementKind:`outcome`,claimable:!1});let a=h.get(e.executionAttemptId);return a&&y(a,a.lastFailure),{kind:`accepted`,outcome:t}},async abandonPendingAttempt(e,t){if(_.get(t)!==e)return{kind:`fenced`};let n=m.get(e);return n?n.status===`allocated`?{kind:`allocated`}:n.status===`provisioning`?{kind:`provisioning`}:n.status===`settled`?{kind:n.settlementKind===`abandoned`?`already-abandoned`:`already-settled`}:(m.set(e,{...n,status:`settled`,settlementKind:`abandoned`,claimable:!1}),{kind:`abandoned`}):{kind:`fenced`}},recovery:{async getAttemptWithAllocation(e){return m.get(e)??null},async recordDiscoveredAllocation(e){return b(e,!1)},async evolveAllocationRef(e){let{currentRef:n,nextRef:r}=c(e),i=v(e.claim);if(i.kind===`stale`)return{kind:`stale`,storedRef:i.attempt.allocationRef};if(i.kind!==`authorized`)return{kind:i.kind};let{attempt:a}=i;return a.executionId===e.executionId?a.allocationRef===null?{kind:`not-allocated`}:t(a.allocationRef,n)?(m.set(a.executionAttemptId,{...a,allocationRef:r}),{kind:`evolved`}):{kind:`stale`,storedRef:a.allocationRef}:{kind:`not-found`}},async getRecoverableAttempts(e){let t=s(new Date().toISOString()),n=[];for(let r of m.values())r.executionId===e&&r.status===`allocated`&&r.allocationRef!==null&&r.claimable===!0&&r.settlementKind==null&&(r.claimExpiresAt!=null&&s(r.claimExpiresAt)<t||n.push(o(r)));return n.sort(d)}},attempts:m,operations:h,committedOutcomes:g,activeAttempts:_}}const h=`controller-incarnation-1`,g=`provisioner-incarnation-1`,_=`test-provider`;function v(e){return new Date(Date.now()+e).toISOString()}function y(e,t,n={}){return{executionAttemptId:e,executionId:t,providerId:_,allocationLifetime:`provider-managed`,provisionerIncarnationId:g,ownerId:h,leaseExpiresAt:v(6e4),...n}}async function b(e,t,n,r={}){let i=await e.beginProvisioning(y(t,n,r));if(i.kind!==`started`)throw Error(`Expected provisioning to start, got '${i.kind}'`);return i.claim}function x(e={}){return{source:_,summary:`provider rejected the request before creating anything`,observedAt:new Date().toISOString(),...e}}function S(e=g,t=x({summary:`supervisor observed the provisioner process exit`})){return{kind:`provisioner-incarnation-lost`,provisionerIncarnationId:e,evidence:t}}function C(e=_,t={runId:1}){return{version:p,providerId:e,providerData:t}}function w(e,t=`completed`){let n={executionId:e,workflowId:`contract-workflow`};return t===`completed`?{...n,status:`completed`}:{...n,status:`failed`,error:`contract failure`}}export{h as TEST_OWNER_ID,_ as TEST_PROVIDER_ID,g as TEST_PROVISIONER_INCARNATION_ID,b as beginTestProvisioning,m as createInMemoryAttemptRepository,v as leaseAt,y as makeBeginProvisioningInput,x as makeEvidence,S as makeProcessLossProof,C as makeTestAllocationRef,w as makeTestWorkflowResult};
@@ -1,4 +1,4 @@
1
- import { h as ExecutionAttemptRepository } from "../../execution-attempt-repository-DFyAnchJ.mjs";
1
+ import { h as ExecutionAttemptRepository } from "../../execution-attempt-repository-BJ2W6wwx.mjs";
2
2
  import { MakaioDatabase } from "@makaio/framework/storage/drizzle";
3
3
 
4
4
  //#region subsystems/workflow-engine/src/testing/sqlite-attempt-repository.d.ts
@@ -1,4 +1,4 @@
1
- import{DuplicateExecutionAttemptError as e,EXECUTION_ATTEMPT_SETTLEMENT_KINDS as t,EXECUTION_ATTEMPT_STATUSES as n,sameAllocationRef as r,sameWorkflowResult as i}from"../execution-attempt-repository.mjs";import{PROVIDER_OPERATION_OBLIGATIONS as a}from"../provider-operation.mjs";import{a as o,c as s,i as c,l,n as u,o as d,r as f,s as p}from"../../attempt-record-codec-DaFLKR5C.mjs";import{BoundedRecoveryEvidenceSchema as m,ProviderAllocationRefSchema as h,WorkerNodeAllocationLifetimeSchema as g,WorkflowRunResultSchema as _}from"@makaio/framework/contracts";import{getRawSqlExecutor as v,isSqliteUniqueViolationError as y,serializeByKey as b,serializeDatabaseOperation as x}from"@makaio/framework/storage/drizzle";import{sql as S}from"drizzle-orm";const C=[`CREATE TABLE IF NOT EXISTS test_execution_attempt (
1
+ import{DuplicateExecutionAttemptError as e,EXECUTION_ATTEMPT_SETTLEMENT_KINDS as t,EXECUTION_ATTEMPT_STATUSES as n,sameAllocationRef as r,sameWorkflowResult as i}from"../execution-attempt-repository.mjs";import{PROVIDER_OPERATION_OBLIGATIONS as a}from"../provider-operation.mjs";import{a as o,c as s,i as c,l,n as u,o as d,r as f,s as p}from"../../attempt-record-codec-BYfYkj4M.mjs";import{BoundedRecoveryEvidenceSchema as m,ProviderAllocationRefSchema as h,WorkerNodeAllocationLifetimeSchema as g,WorkflowRunResultSchema as _}from"@makaio/framework/contracts";import{getRawSqlExecutor as v,isSqliteUniqueViolationError as y,serializeByKey as b,serializeDatabaseOperation as x}from"@makaio/framework/storage/drizzle";import{sql as S}from"drizzle-orm";const C=[`CREATE TABLE IF NOT EXISTS test_execution_attempt (
2
2
  execution_attempt_id TEXT PRIMARY KEY,
3
3
  execution_id TEXT NOT NULL,
4
4
  status TEXT NOT NULL,
@@ -1 +1 @@
1
- import{D as e,M as t,c as n,ct as r,d as i,i as a,l as o,r as s,s as c,t as l,y as u}from"../authority-state-bootstrap-YwtEImIB.mjs";import{WORKFLOW_CANCELLED_REASON as d,WorkflowRunContextSchema as f}from"@makaio/framework/contracts";import*as p from"node:os";async function m(e,n,i,a){let o=await y(e,n,i);return await e.request(t.setExecution,{execution:o}),i===`completed`?await e.emit(r.execution.completed,{executionId:n.executionId,workflowId:n.workflowId,totalDuration:0,completedAt:o.completedAt}):await e.emit(r.execution.cancelled,{executionId:n.executionId,workflowId:n.workflowId,reason:a,completedAt:o.completedAt}),i===`cancelled`?{executionId:n.executionId,workflowId:n.workflowId,status:`cancelled`,...a===void 0?{}:{reason:a}}:{executionId:n.executionId,workflowId:n.workflowId,status:`completed`}}function h(e,t){return t.status===`completed`?{executionId:e.executionId,workflowId:e.workflowId,status:`completed`,...t.artifact===void 0?{}:{artifact:t.artifact}}:t.status===`cancelled`?{executionId:e.executionId,workflowId:e.workflowId,status:`cancelled`,...t.reason===void 0?{}:{reason:t.reason}}:t.status===`paused`?{executionId:e.executionId,workflowId:e.workflowId,status:`paused`,pausedAtGateId:t.pausedAtGateId,pausedAtFrameId:t.pausedAtFrameId}:{executionId:e.executionId,workflowId:e.workflowId,status:`failed`,error:t.error}}function g(t){let n,r=()=>{n=u({bus:t.bus,activeExecutions:t.activeExecutions,shellAbortControllers:t.shellAbortControllers,activeRunnerSteps:t.activeRunnerSteps,durableLifecycleTransitions:t.durableLifecycleTransitions,lifecyclePublications:t.lifecyclePublications,publishingLifecycleExecutions:t.publishingLifecycleExecutions,cancelTimeoutMs:e.cancelTimeoutMs},t.executionId,d).catch(e=>(console.error(`[WorkflowOrchestrator] Failed to persist cancellation for ${t.executionId}:`,e),!1))};return t.signal.addEventListener(`abort`,r,{once:!0}),t.signal.aborted&&r(),async()=>(t.signal.removeEventListener(`abort`,r),n??!1)}async function _(e,n){let r=await e.requestOptional(t.getExecution,{executionId:n});return r.handled?r.data.execution?.startedAt??void 0:void 0}async function v(e,t){return{id:t.executionId,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,status:`running`,inputs:t.inputs,config:t.config??{},startedAt:await _(e,t.executionId)??Date.now(),triggerPayload:t.triggerPayload,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope}}async function y(e,t,n){let r=Date.now();return{id:t.executionId,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,status:n,inputs:t.inputs,config:t.config??{},startedAt:await _(e,t.executionId)??r,completedAt:r,triggerPayload:t.triggerPayload,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope}}async function b(e,t,r,i,s,c,l,u,f){let m=e.suspensionStrategy===`wait-in-process`?void 0:await x(e.executionId,l,{required:!0}),h=await n({definition:t,execution:r,runContext:i,zodSchema:f?.artifact,bus:l}),g=new o(e.executionId,e.workflowId,t,r,s,l,u,void 0,h,{context:{repoPath:process.cwd(),makaioHome:process.env.MAKAIO_HOME??`${p.homedir()}/.makaio`,os:process.platform===`win32`?`win32`:process.platform===`darwin`?`darwin`:`linux`,arch:process.arch},env:e.env},{suspensionStrategy:e.suspensionStrategy,resumeFrames:m,runtimeLoopGates:c}),_=g.buildExpressionContext(),v=await a(t.root,g,_);return v.status===`failed`?{status:`failed`,error:v.error}:v.status===`paused`?{status:`paused`,pausedAtGateId:v.pausedAtGateId,pausedAtFrameId:v.pausedAtFrameId}:v.status===`cancelled`||u.aborted?{status:`cancelled`,reason:d}:{status:`completed`,artifact:h?.current}}async function x(e,n,r={}){try{let i=await n.requestOptional(t.listFrames,{executionId:e});if(!i.handled){if(r.required===!0)throw Error(`Frame storage handler is required to resume execution '${e}'.`);return}return i.data.frames.length===0?void 0:c(i.data.frames)}catch(e){if(r.required===!0)throw e;return}}function S(e,t){return f.parse({executionId:e.executionId,workflowId:e.workflowId,source:e.source.kind===`path`?{kind:`path`,path:e.materializationSpec?.sourcePath??``}:e.source,definitionSnapshot:e.source.kind===`definition`?e.definition??t:t,workerManifest:{contributionRefs:[]},inputs:e.inputs,config:e.config??{},scope:e.scope,triggerPayload:e.triggerPayload,...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},coordinatorSessionId:e.coordinatorSessionId,cancelSubject:e.cancelSubject,env:e.env,createdAt:Date.now(),suspensionStrategy:e.suspensionStrategy,...e.terminalAuthority===void 0?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===void 0?{}:{materializationSpec:e.materializationSpec}})}async function C(e,n,i,a,o){i.status=`paused`,await e.request(t.setExecution,{execution:i}),await e.emit(r.execution.paused,{executionId:n.executionId,workflowId:n.workflowId,pausedAtGateId:a,pausedAtFrameId:o})}async function w(e,t,n,i,a,o){n===`completed`?await e.emit(r.execution.completed,{executionId:t.executionId,workflowId:t.workflowId,totalDuration:a-i.startedAt,completedAt:a}):n===`cancelled`?await e.emit(r.execution.cancelled,{executionId:t.executionId,workflowId:t.workflowId,reason:d,completedAt:a}):await e.emit(r.execution.failed,{executionId:t.executionId,workflowId:t.workflowId,error:o??`Workflow execution failed`,completedAt:a})}async function T(e){let{config:n,loaded:r,bus:a,signal:o}=e,{definition:c}=r;if(o.aborted)return n.terminalAuthority===`authority`?{executionId:n.executionId,workflowId:n.workflowId,status:`cancelled`,reason:d}:m(a,n,`cancelled`,d);let u=await v(a,n),f=S(n,c);n.terminalAuthority===`authority`?await l(a,f,c):await i(a,u,f,c);let p=new Map(r.runtimeHandlers),_=r.runtimeLoopGates??new Map,y=new Map,x=new Map,T=new Map,E=new Map,D=new Map,O=new Set;y.set(n.executionId,{execution:u,workflow:c,runContext:f,runtimeHandlers:p,runtimeLoopGates:new Map(_)});let k=n.terminalAuthority===`authority`?async()=>!1:g({signal:o,executionId:n.executionId,bus:a,activeExecutions:y,shellAbortControllers:x,activeRunnerSteps:T,durableLifecycleTransitions:E,lifecyclePublications:D,publishingLifecycleExecutions:O}),A={status:`completed`},j=!1;try{c.root.nodes.length>0&&(s(c,_),A=await b(n,c,u,f,p,_,a,o,r.zodSchemas))}catch(e){A={status:`failed`,error:e instanceof Error?e.message:String(e)}}finally{j=await k(),y.clear()}if(j)return h(n,{status:`cancelled`,reason:d});if((o.aborted||u.status===`cancelled`)&&(A={status:`cancelled`,reason:d}),A.status===`paused`)return n.terminalAuthority!==`authority`&&await C(a,n,u,A.pausedAtGateId,A.pausedAtFrameId),h(n,A);if(n.terminalAuthority===`authority`)return h(n,A);let M=Date.now(),N=A.status===`failed`?A.error:void 0;return u.status=A.status,u.completedAt=M,u.error=N,await a.request(t.setExecution,{execution:u}),await w(a,n,A.status,u,M,N),h(n,A)}export{T as runWorkflowOrchestrator};
1
+ import{D as e,M as t,c as n,ct as r,d as i,i as a,l as o,r as s,s as c,t as l,y as u}from"../authority-state-bootstrap-CLYus369.mjs";import{WORKFLOW_CANCELLED_REASON as d,WorkflowRunContextSchema as f}from"@makaio/framework/contracts";import*as p from"node:os";async function m(e,n,i,a){let o=await y(e,n,i);return await e.request(t.setExecution,{execution:o}),i===`completed`?await e.emit(r.execution.completed,{executionId:n.executionId,workflowId:n.workflowId,totalDuration:0,completedAt:o.completedAt}):await e.emit(r.execution.cancelled,{executionId:n.executionId,workflowId:n.workflowId,reason:a,completedAt:o.completedAt}),i===`cancelled`?{executionId:n.executionId,workflowId:n.workflowId,status:`cancelled`,...a===void 0?{}:{reason:a}}:{executionId:n.executionId,workflowId:n.workflowId,status:`completed`}}function h(e,t){return t.status===`completed`?{executionId:e.executionId,workflowId:e.workflowId,status:`completed`,...t.artifact===void 0?{}:{artifact:t.artifact}}:t.status===`cancelled`?{executionId:e.executionId,workflowId:e.workflowId,status:`cancelled`,...t.reason===void 0?{}:{reason:t.reason}}:t.status===`paused`?{executionId:e.executionId,workflowId:e.workflowId,status:`paused`,pausedAtGateId:t.pausedAtGateId,pausedAtFrameId:t.pausedAtFrameId}:{executionId:e.executionId,workflowId:e.workflowId,status:`failed`,error:t.error}}function g(t){let n,r=()=>{n=u({bus:t.bus,activeExecutions:t.activeExecutions,shellAbortControllers:t.shellAbortControllers,activeRunnerSteps:t.activeRunnerSteps,durableLifecycleTransitions:t.durableLifecycleTransitions,lifecyclePublications:t.lifecyclePublications,publishingLifecycleExecutions:t.publishingLifecycleExecutions,cancelTimeoutMs:e.cancelTimeoutMs},t.executionId,d).catch(e=>(console.error(`[WorkflowOrchestrator] Failed to persist cancellation for ${t.executionId}:`,e),!1))};return t.signal.addEventListener(`abort`,r,{once:!0}),t.signal.aborted&&r(),async()=>(t.signal.removeEventListener(`abort`,r),n??!1)}async function _(e,n){let r=await e.requestOptional(t.getExecution,{executionId:n});return r.handled?r.data.execution?.startedAt??void 0:void 0}async function v(e,t){return{id:t.executionId,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,status:`running`,inputs:t.inputs,config:t.config??{},startedAt:await _(e,t.executionId)??Date.now(),triggerPayload:t.triggerPayload,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope}}async function y(e,t,n){let r=Date.now();return{id:t.executionId,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,status:n,inputs:t.inputs,config:t.config??{},startedAt:await _(e,t.executionId)??r,completedAt:r,triggerPayload:t.triggerPayload,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope}}async function b(e,t,r,i,s,c,l,u,f){let m=e.suspensionStrategy===`wait-in-process`?void 0:await x(e.executionId,l,{required:!0}),h=await n({definition:t,execution:r,runContext:i,zodSchema:f?.artifact,bus:l}),g=new o(e.executionId,e.workflowId,t,r,s,l,u,void 0,h,{context:{repoPath:process.cwd(),makaioHome:process.env.MAKAIO_HOME??`${p.homedir()}/.makaio`,os:process.platform===`win32`?`win32`:process.platform===`darwin`?`darwin`:`linux`,arch:process.arch},env:e.env},{suspensionStrategy:e.suspensionStrategy,resumeFrames:m,runtimeLoopGates:c}),_=g.buildExpressionContext(),v=await a(t.root,g,_);return v.status===`failed`?{status:`failed`,error:v.error}:v.status===`paused`?{status:`paused`,pausedAtGateId:v.pausedAtGateId,pausedAtFrameId:v.pausedAtFrameId}:v.status===`cancelled`||u.aborted?{status:`cancelled`,reason:d}:{status:`completed`,artifact:h?.current}}async function x(e,n,r={}){try{let i=await n.requestOptional(t.listFrames,{executionId:e});if(!i.handled){if(r.required===!0)throw Error(`Frame storage handler is required to resume execution '${e}'.`);return}return i.data.frames.length===0?void 0:c(i.data.frames)}catch(e){if(r.required===!0)throw e;return}}function S(e,t){return f.parse({executionId:e.executionId,workflowId:e.workflowId,source:e.source.kind===`path`?{kind:`path`,path:e.materializationSpec?.sourcePath??``}:e.source,definitionSnapshot:e.source.kind===`definition`?e.definition??t:t,workerManifest:{contributionRefs:[]},inputs:e.inputs,config:e.config??{},scope:e.scope,triggerPayload:e.triggerPayload,...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},coordinatorSessionId:e.coordinatorSessionId,cancelSubject:e.cancelSubject,env:e.env,createdAt:Date.now(),suspensionStrategy:e.suspensionStrategy,...e.terminalAuthority===void 0?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===void 0?{}:{materializationSpec:e.materializationSpec}})}async function C(e,n,i,a,o){i.status=`paused`,await e.request(t.setExecution,{execution:i}),await e.emit(r.execution.paused,{executionId:n.executionId,workflowId:n.workflowId,pausedAtGateId:a,pausedAtFrameId:o})}async function w(e,t,n,i,a,o){n===`completed`?await e.emit(r.execution.completed,{executionId:t.executionId,workflowId:t.workflowId,totalDuration:a-i.startedAt,completedAt:a}):n===`cancelled`?await e.emit(r.execution.cancelled,{executionId:t.executionId,workflowId:t.workflowId,reason:d,completedAt:a}):await e.emit(r.execution.failed,{executionId:t.executionId,workflowId:t.workflowId,error:o??`Workflow execution failed`,completedAt:a})}async function T(e){let{config:n,loaded:r,bus:a,signal:o}=e,{definition:c}=r;if(o.aborted)return n.terminalAuthority===`authority`?{executionId:n.executionId,workflowId:n.workflowId,status:`cancelled`,reason:d}:m(a,n,`cancelled`,d);let u=await v(a,n),f=S(n,c);n.terminalAuthority===`authority`?await l(a,f,c):await i(a,u,f,c);let p=new Map(r.runtimeHandlers),_=r.runtimeLoopGates??new Map,y=new Map,x=new Map,T=new Map,E=new Map,D=new Map,O=new Set;y.set(n.executionId,{execution:u,workflow:c,runContext:f,runtimeHandlers:p,runtimeLoopGates:new Map(_)});let k=n.terminalAuthority===`authority`?async()=>!1:g({signal:o,executionId:n.executionId,bus:a,activeExecutions:y,shellAbortControllers:x,activeRunnerSteps:T,durableLifecycleTransitions:E,lifecyclePublications:D,publishingLifecycleExecutions:O}),A={status:`completed`},j=!1;try{c.root.nodes.length>0&&(s(c,_),A=await b(n,c,u,f,p,_,a,o,r.zodSchemas))}catch(e){A={status:`failed`,error:e instanceof Error?e.message:String(e)}}finally{j=await k(),y.clear()}if(j)return h(n,{status:`cancelled`,reason:d});if((o.aborted||u.status===`cancelled`)&&(A={status:`cancelled`,reason:d}),A.status===`paused`)return n.terminalAuthority!==`authority`&&await C(a,n,u,A.pausedAtGateId,A.pausedAtFrameId),h(n,A);if(n.terminalAuthority===`authority`)return h(n,A);let M=Date.now(),N=A.status===`failed`?A.error:void 0;return u.status=A.status,u.completedAt=M,u.error=N,await a.request(t.setExecution,{execution:u}),await w(a,n,A.status,u,M,N),h(n,A)}export{T as runWorkflowOrchestrator};
@@ -1 +1 @@
1
- import{d as e}from"./framework-packages-D_2hBZ-p.mjs";function t(){let t=new Map;return{filter:e=>!!(e.transitionRules?.rules?.length||e.transitionActions?.actions),async processActivated(i,a,o){let s=o.getService(e);if(!s)throw Error(`TransitionContributionProcessor: TransitionPipelineService is not available — ensure '${e.name}' is started before extensions with transitionRules or transitionActions.`);let c=a.transitionRules?.rules??[],l=a.transitionActions?.actions,u=c.length>0,d=l!==void 0;u&&n(i,c),d&&r(i,l);let f=!1,p=!1;try{u&&(s.ruleRegistry.register(i,c),f=!0),d&&(s.actionRegistry.register(i,l),p=!0)}catch(e){throw f&&s.ruleRegistry.deregister(i),p&&s.actionRegistry.deregister(i),e}t.set(i,()=>{u&&s.ruleRegistry.deregister(i),d&&s.actionRegistry.deregister(i)})},async processStopped(e){let n=t.get(e);if(n){try{n()}catch(t){console.error(`[TransitionContributionProcessor] Deregister error for "${e}":`,t)}t.delete(e)}}}}function n(e,t){let n=`${e}.`;for(let e of t)if(!e.id.startsWith(n))throw Error(`TransitionContributionProcessor: rule '${e.id}' must be namespaced by extension '${n}'`)}function r(e,t){let n=`${e}.`;for(let e of Object.keys(t))if(!e.startsWith(n))throw Error(`TransitionContributionProcessor: action type '${e}' must be namespaced by extension '${n}'`)}export{t};
1
+ import{u as e}from"./framework-packages-BHgul8Kl.mjs";function t(){let t=new Map;return{filter:e=>!!(e.transitionRules?.rules?.length||e.transitionActions?.actions),async processActivated(i,a,o){let s=o.getService(e);if(!s)throw Error(`TransitionContributionProcessor: TransitionPipelineService is not available — ensure '${e.name}' is started before extensions with transitionRules or transitionActions.`);let c=a.transitionRules?.rules??[],l=a.transitionActions?.actions,u=c.length>0,d=l!==void 0;u&&n(i,c),d&&r(i,l);let f=!1,p=!1;try{u&&(s.ruleRegistry.register(i,c),f=!0),d&&(s.actionRegistry.register(i,l),p=!0)}catch(e){throw f&&s.ruleRegistry.deregister(i),p&&s.actionRegistry.deregister(i),e}t.set(i,()=>{u&&s.ruleRegistry.deregister(i),d&&s.actionRegistry.deregister(i)})},async processStopped(e){let n=t.get(e);if(n){try{n()}catch(t){console.error(`[TransitionContributionProcessor] Deregister error for "${e}":`,t)}t.delete(e)}}}}function n(e,t){let n=`${e}.`;for(let e of t)if(!e.id.startsWith(n))throw Error(`TransitionContributionProcessor: rule '${e.id}' must be namespaced by extension '${n}'`)}function r(e,t){let n=`${e}.`;for(let e of Object.keys(t))if(!e.startsWith(n))throw Error(`TransitionContributionProcessor: action type '${e}' must be namespaced by extension '${n}'`)}export{t};
@@ -0,0 +1 @@
1
+ import{resolveMakaioHome as e}from"./runtime-node/makaio-config.mjs";import{t}from"./extension-package-provenance-aYrZuS4W.mjs";import{n,o as r,t as i}from"./await-trigger-Bkg2BQfg.mjs";import*as a from"node:fs/promises";import{access as o}from"node:fs/promises";import*as s from"node:path";import{basename as c,join as l}from"node:path";import*as u from"node:crypto";import{constants as d}from"node:fs";import{createBusInstance as f,waitForSubscriptionPropagation as p}from"@makaio/framework/bus";import{AdapterSubjects as m,BoundedRecoveryEvidenceSchema as h,FrameworkContractNamespaces as g,FrameworkStorageNamespaces as _,PROVIDER_ALLOCATION_REF_VERSION as ee,ProviderAllocationRefSchema as te,RECOVERY_EVIDENCE_LIMITS as v,WorkerNodeCapabilitiesSchema as ne,WorkerNodeSubjects as y,WorkflowSubjects as re,WorkflowWorkerConfigSchema as ie,createWorkflowCancelSubject as ae}from"@makaio/framework/contracts";import{ExtensionCoordinator as oe,KernelSubjects as se,coalesceExtensionOverrides as ce,filterEligibleExtensions as le}from"@makaio/framework/kernel";import{BaseService as ue}from"@makaio/framework/service-base";import{AdapterRuntimeSubjects as de,registerAdapterRuntimeIdentityHandlers as fe}from"@makaio/framework/services/adapter-runtime";import{CLIDetectionNamespace as pe,CLIDetectionSubjects as me}from"@makaio/framework/services/cli-detection/namespace";import{SessionOrchestratorToken as he,ToolRegistryToken as ge,canonicalModelPackage as _e,createSubagentServicePackage as ve,createToolContributionProcessor as ye,frameworkCorePackages as b,sessionBridgePackage as be,sessionOrchestratorPackage as xe,sessionPackage as Se,sessionStoragePackage as Ce,toolRegistryPackage as we}from"@makaio/framework/services";import{AdapterSubsystemSubjects as x}from"@makaio/framework/services/adapter-subsystem";import{createClientsCorePackage as Te}from"@makaio/framework/clients";import{AdapterSubsystemToken as S,createAdapterSubsystemContributionProcessor as Ee,createAdapterSubsystemPackage as De,orderAfterAdapterSubsystem as Oe}from"@makaio/framework/adapter-subsystem";import{execa as ke}from"execa";import Ae from"piscina";import{ExecutionAttemptAuthority as je,runAuthorityDispatchedAttempt as Me}from"@makaio/framework/workflow-engine";import{runWorkflowOrchestrator as Ne}from"@makaio/framework/workflow-engine/workflow-orchestrator";function C(e){return e.on(m.getCapabilities,async t=>{let{adapterName:n,adapterId:r}=t.payload;if(r){await t.next();return}if(n){let r=await e.requestOptional(de.resolveId,{adapterName:n}),i=r.handled?r.data.adapterId:void 0;i&&(t.payload.adapterId=i)}await t.next()},{priority:20})}function w(e){let{coordinator:t,configRepository:n,platformDefaults:r,prepareAuthRuntime:i,runtimeSnapshotHandlerPriority:a,runtimeDefinitionHandlerPriority:o}=e,s=De({configRepository:n,coordinator:t,platformDefaults:r,...i!==void 0&&{prepareAuthRuntime:i},...a!==void 0&&{runtimeSnapshotHandlerPriority:a},...o!==void 0&&{runtimeDefinitionHandlerPriority:o}});return t.registerContributionProcessor(Ee({getAdapterSubsystemService:()=>t.getExtensionService(S)})),{adapterSubsystemPackage:s}}function T(e){let{bus:t,currentMachineId:n}=e,r=fe(t,{currentMachineId:n,listKnownAdapterNames:e.listKnownAdapterNames??(async()=>{let{configs:e}=await t.request(x.listAdapterConfigs,{});return e.map(e=>e.name)}),...e.resolveLiveAdapterId!==void 0&&{resolveLiveAdapterId:e.resolveLiveAdapterId},...e.resolveLiveAdapterIdentity!==void 0&&{resolveLiveAdapterIdentity:e.resolveLiveAdapterIdentity},...e.listLiveAdapterIdentities!==void 0&&{listLiveAdapterIdentities:e.listLiveAdapterIdentities}}),i=C(t);return{cleanup:()=>{r.cleanup(),i()}}}function E(e,t){if(!(e instanceof Error))return!1;let{rootPackageName:n,subpath:r}=Pe(t),i=(r===void 0?[t]:[t,n]).flatMap(e=>[`Cannot find package '${e}'`,`Cannot find module '${e}'`,`Cannot find package "${e}"`,`Cannot find module "${e}"`]),a=e;return(a.code===`ERR_MODULE_NOT_FOUND`||a.code===`MODULE_NOT_FOUND`)&&i.some(t=>e.message.includes(t))||a.code===`ERR_PACKAGE_PATH_NOT_EXPORTED`&&r!==void 0&&e.message.includes(`Package subpath '${r}' is not defined by "exports"`)&&Fe(e.message,n)?!0:i.some(t=>e.message.includes(t))}async function D(e){try{return await import(e)}catch(t){if(E(t,e))return null;throw t}}function Pe(e){let t=e.split(`/`);return e.startsWith(`@`)?{rootPackageName:t.slice(0,2).join(`/`),subpath:t.length>2?`./${t.slice(2).join(`/`)}`:void 0}:{rootPackageName:t[0]??e,subpath:t.length>1?`./${t.slice(1).join(`/`)}`:void 0}}function Fe(e,t){let n=t,r=t.replaceAll(`/`,`\\`);return e.includes(`/${n}/package.json`)||e.includes(`\\${r}\\package.json`)}async function O(e,t=process.env,n=process.platform){let r=t[Object.keys(t).find(e=>e.toUpperCase()===`PATH`)??`PATH`]??``,i=(t.PATHEXT??`.EXE;.CMD;.BAT;.COM`).split(`;`).filter(Boolean),a=n===`win32`?s.extname(e)===``?i:[``,...i]:[``];for(let t of r.split(s.delimiter)){let n=t.replace(/^"|"$/gu,``),r=s.resolve(n||process.cwd());for(let t of a){let n=s.join(r,`${e}${t}`);try{return await o(n,d.X_OK),n}catch{}}}}async function k(e,t=5e3,n=1e3){let{stdout:r}=await ke(e,[`--version`],{forceKillAfterDelay:n,timeout:t});return r}function Ie(e){return e.match(/(\d+\.\d+\.\d+)/u)?.[1]??`unknown`}async function Le(e,t=O,n=k){try{let r=await t(e);if(r===void 0)return{binary:e,found:!1};let i=await n(r);return i.length===0?{binary:e,found:!1}:{binary:e,found:!0,path:r,version:Ie(i)}}catch{return{binary:e,found:!1}}}async function Re(e,t=O,n=k){return Promise.all(e.map(e=>Le(e,t,n)))}var ze=class extends ue{constructor(e){super(e)}onInit(){this.registerHandler(me.scan,async e=>{let t=await Re(e.payload.binaries);e.setResult({results:t})})}};const A={name:`makaio.cli-detection`,displayName:`CLI Detection`,version:`0.1.0`,critical:!0,surface:`any`,namespaces:[pe],create:e=>new ze(e.bus)};function j(e,t){e.push(...Be(t))}function Be(e){return e===void 0?[]:typeof e==`function`?[e]:[...e]}function Ve(e,t=[]){let n=new Set([e]),r=new Set,i=new Map;for(let e of t)typeof e==`string`?n.add(e):(r.add(e.id),e.version!==void 0&&i.set(e.id,e.version));return{hosts:n,capabilities:r,...i.size>0?{capabilityVersions:i}:{}}}function He(e=[]){return e.some(e=>typeof e==`string`&&e===`node`)?e:[`node`,...e]}function M(e){return ce(le(We(e.packages,e.configProvider),e.surface,e.runtimeEnvironment))}function Ue(e,n){let r=M(n),i=new Set(r.map(t));return e.filter(({ownerPackage:e})=>i.has(e)).map(({package:e})=>e)}function We(e,t){return t?e.filter(e=>t.loadEnabled(e.name)!==!1):e}function N(e,t){return e.filter(e=>e.runtimeOwnership?.[t]===!0).map(e=>e.name)}function Ge(e,t){let n=N(e,t);if(n.length>1)throw Error(`Multiple extensions own runtimeOwnership.${t}: ${n.join(`, `)}`)}function P(e){return Ge(e,`sessionOrchestrator`),N(e,`sessionOrchestrator`).length===0}function Ke(e){return e===!0||P(e)?b:b.filter(e=>e.name!==he.name)}function F(e,t,n){let r=[];try{for(let i of e){let e=i.runtimeBoot;e&&j(r,e.configure({bus:t,registerContributionProcessor:e=>{r.push(n.registerContributionProcessor(e))},forEachActiveExtension:e=>{n.forEachActiveExtension(e)}}))}}catch(e){let t=[];for(let e of[...r].reverse())try{e()}catch(e){t.push(e)}throw t.length>0?AggregateError([e,...t],`Extension boot contribution failed and rollback cleanup reported additional errors`,{cause:e}):e}return r}function qe(){let e=process.env.MAKAIO_SKIP_EXTENSIONS;if(!e)return new Set;let t=e.split(`,`).map(e=>e.trim()).filter(Boolean);return new Set(t)}var Je=class{pool;constructor(e){this.pool=new Ae({filename:e.workerEntry,maxThreads:e.maxConcurrency??4,idleTimeout:e.idleTimeoutMs??3e4})}async run(e,t){return this.pool.run(e,{signal:t})}onMessage(e){return this.pool.on(`message`,e),()=>this.pool.off(`message`,e)}async dispose(){await this.pool.destroy()}},I=class extends Error{code;constructor(e,t){super(e),this.code=t,this.name=`MaterializationError`}};function L(e,t,n){let r=s.resolve(t)+s.sep,i=s.resolve(e);if(i!==s.resolve(t)&&!i.startsWith(r))throw new I(`${n} escapes allowed root: ${e} is not within ${t}`,`containment-violation`)}async function R(e,t,n,r){let i=r??await a.realpath(t),o;try{o=await a.realpath(e)}catch{return e}let c=i+s.sep;if(o!==i&&!o.startsWith(c))throw new I(`${n} escapes allowed root via symlink: real path ${o} is not within ${i}`,`symlink-escape`);return o}function z(e){let t=e.indexOf(`-`);if(t===-1)throw new I(`Invalid SRI integrity format: ${e}`,`contribution-integrity-mismatch`);return{algorithm:e.slice(0,t),digest:e.slice(t+1)}}async function Ye(e,t){let n=await a.readFile(e);return u.createHash(t).update(n).digest(`base64`)}const B=new Set([`.git`,`node_modules`]);function Xe(e){return B.has(e.toLowerCase())}async function Ze(e,t){let n=t.toLowerCase();if(!B.has(n))return!1;if(t===n)return!0;try{let[r,i]=await Promise.all([a.lstat(s.join(e,t)),a.lstat(s.join(e,n))]);return r.dev===i.dev&&r.ino===i.ino}catch(e){if(e.code===`ENOENT`)return!1;throw e}}const Qe=B,$e=new Set([`.DS_Store`]);async function V(e,t){let n=u.createHash(t),r=[];async function i(t){let n=await a.readdir(t,{withFileTypes:!0});for(let a of n){let n=s.join(t,a.name);if(a.isSymbolicLink())throw new I(`Contribution package contains a symbolic link: ${s.relative(e,n)}`,`symlink-escape`);if(a.isDirectory()){Qe.has(a.name)||await i(n);continue}if(a.isFile()){$e.has(a.name)||r.push(s.relative(e,n));continue}throw new I(`Contribution package contains an unsupported filesystem entry: ${s.relative(e,n)}`,`contribution-integrity-mismatch`)}}await i(e),r.sort();for(let t of r)n.update(t.split(s.sep).join(`/`)),n.update(`\0`),n.update(await a.readFile(s.join(e,t))),n.update(`\0`);return`${t}-${n.digest(`base64`)}`}async function H(e,t=`sha256`){let n=u.createHash(t),r=[];async function i(t){let n=await a.readdir(t,{withFileTypes:!0});for(let a of n){let n=s.join(t,a.name);if(!await Ze(t,a.name)){if(a.isDirectory()){await i(n);continue}if(a.isFile()){r.push(s.relative(e,n));continue}throw a.isSymbolicLink()?new I(`Workspace root contains a symbolic link: ${s.relative(e,n)}`,`symlink-escape`):new I(`Workspace root contains an unsupported filesystem entry: ${s.relative(e,n)}`,`unsupported-filesystem-entry`)}}}await i(e),r.sort();for(let t of r){n.update(t),n.update(`\0`);let r=await a.readFile(s.join(e,t));n.update(r),n.update(`\0`)}return`${t}-${n.digest(`base64`)}`}async function U(e,t,n){let r=s.join(t,`node_modules`,e.packageName);L(r,t,`Contribution package directory`),await R(r,t,`Contribution package directory`,n);let i=s.join(r,`package.json`),o;try{o=await a.readFile(i,`utf-8`)}catch{throw new I(`Contribution package not found: ${e.packageName} (expected at ${r})`,`contribution-missing`)}let c=JSON.parse(o);if(c.name!==e.packageName)throw new I(`Contribution identity mismatch: expected ${e.packageName}, found ${c.name??`<none>`}`,`contribution-missing`);if(c.version!==e.version)throw new I(`Contribution version mismatch for ${e.packageName}: expected ${e.version}, found ${c.version??`<none>`}`,`contribution-version-mismatch`);let l=s.join(r,e.entrypoint);L(l,r,`Contribution entrypoint`),await R(l,t,`Contribution entrypoint`,n);try{await a.access(l)}catch{throw new I(`Contribution entrypoint not found for ${e.packageName}: ${e.entrypoint}`,`contribution-entrypoint-mismatch`)}let{algorithm:u}=z(e.integrity),d;try{d=await V(r,u)}catch(t){if(t instanceof I)throw t;let n=typeof t==`object`&&t&&`code`in t&&typeof t.code==`string`?t.code:void 0;throw n!==void 0&&!n.startsWith(`ERR_`)?new I(`Contribution package cannot be read for ${e.packageName}`,`contribution-entrypoint-mismatch`):t}if(d!==e.integrity)throw new I(`Contribution integrity mismatch for ${e.packageName}: expected ${e.integrity}, computed ${d}`,`contribution-integrity-mismatch`);return l}async function W(e,t,n){let r=await n.resolveWorkspaceRoot(e.workspaceId);if(r===void 0)throw new I(`Unknown workspace ID: ${e.workspaceId}`,`unknown-workspace`);try{if(!(await a.stat(r)).isDirectory())throw new I(`Workspace root is not a directory: ${r}`,`containment-violation`)}catch(e){throw e instanceof I?e:new I(`Workspace root does not exist: ${r}`,`containment-violation`)}let i=await a.realpath(r),o=s.resolve(r,e.sourcePath);if(L(o,r,`Source path`),s.relative(r,o).split(s.sep).some(Xe))throw new I(`Workflow source path selects excluded workspace content: ${e.sourcePath}`,`source-path-mismatch`);await R(o,r,`Source path`,i);let c=await H(r);if(c!==e.rootDigest)throw new I(`Workspace root digest mismatch: expected ${e.rootDigest}, computed ${c}`,`digest-mismatch`);try{await a.access(o)}catch{throw new I(`Workflow source file not found: ${o}`,`source-missing`)}return{workspaceRoot:r,sourcePath:o,contributionEntrypoints:await Promise.all(t.map(e=>U(e,r,i))),platform:process.platform,arch:process.arch}}var G=class{options;manifest;pool;constructor(e){this.options=e,this.manifest=e.manifest}async run(e,t,n){this.pool??=new Je(this.options);let r=n??this.manifest,i=await this.materializeTask(e,r,t);return{state:`uncommitted`,result:await this.pool.run(i,t)}}runWithReadiness(e,t,n){this.pool??=new Je(this.options);let i=this.pool,a,o=!1,s,c=new Promise((t,n)=>{s=n,a=i.onMessage(n=>{r(n)&&(n.executionId!==e.executionId||n.cancelSubject!==e.cancelSubject||(o=!0,a?.(),t(n)))})}),l=n??this.manifest,u=this.materializeTask(e,l,t).then(e=>i.run(e,t));return u.then(()=>{o||(o=!0,a?.(),s(Error(`Workflow worker completed before ready signal: ${e.executionId}`)))},e=>{o||(o=!0,a?.(),s(e instanceof Error?e:Error(String(e))))}),{result:u,ready:c}}async dispose(){await this.pool?.dispose()}async materializeTask(e,t,n){if(n.throwIfAborted(),!(e.source.kind===`path`||t.contributionRefs.length>0))return{config:e,manifest:t,contributionEntrypoints:[]};let r=e.materializationSpec;if(r?.kind!==`local-directory`)throw Error(`ThinWorkflowPiscinaRunner requires a local-directory materialization spec for path-backed workflows or declared contributions.`);if(this.options.resolveWorkspaceRoot===void 0)throw Error(`ThinWorkflowPiscinaRunner requires a host workspace-root resolver for local-directory materialization.`);let i=await W(r,t.contributionRefs,{resolveWorkspaceRoot:this.options.resolveWorkspaceRoot});if(n.throwIfAborted(),e.source.kind!==`path`)throw Error(`local-directory materialization requires a path-backed workflow source.`);return{config:{...e,source:{kind:`path`,path:i.sourcePath}},manifest:t,contributionEntrypoints:i.contributionEntrypoints}}};function K(e){return e.mode===`source`?l(e.moduleDir,`workflow-worker`,`worker-entry.ts`):l(e.moduleDir,`workflow-worker`,`worker-entry.mjs`)}var q=class{options;constructor(e){this.options=e}async run(e,t,n,r){let i={...e,terminalAuthority:`authority`},a=n??this.options.manifest,o=this.options.requirements,s=r?.dispatchMetadata;return Me({authority:this.options.authority,executionId:e.executionId,dispatch:e=>this.options.dispatch({executionAttemptId:e,config:i,...a!==void 0&&{manifest:a},...o!==void 0&&{requirements:o},...s!==void 0&&{metadata:s}},t)})}},J=class{#e;constructor(e){this.#e=e.bus}async run(e,t,r){let a=ie.parse(e),o=await n(a);return{state:`uncommitted`,result:await Ne({config:await i(a,o,this.#e,t),loaded:o,bus:this.#e,signal:t})}}};function et(){return{contributionRefs:[]}}function tt(e){if(e.workflowRunner?.mode===`worker-node`&&!e.executionAttemptRepository)throw Error(`WorkerNode dispatch mode requires an ExecutionAttemptRepository. Pass 'executionAttemptRepository' to createNodeWorkflowRunnerPackageOptions when workflowRunner.mode is 'worker-node'.`);let t=e.executionAttemptRepository?new je(e.executionAttemptRepository):void 0,n=c(e.runtimeModuleDir)===`src`?`source`:`dist`,r=Y({moduleDir:e.runtimeModuleDir,defaultWorkerEntryMode:n,runner:e.workflowRunner,bus:e.bus,authority:t});return{...r!==void 0&&{workflowRunner:r},executorConfig:{busUrl:e.busUrl,busAuth:{kind:`none`},platformDefaults:e.platformDefaults,makaioHome:e.makaioHome},...e.executionAttemptRepository!==void 0&&{executionAttemptRepository:e.executionAttemptRepository},...t!==void 0&&{executionAttemptAuthority:t},...e.workflowMaterializationSpecResolvers!==void 0&&{workflowMaterializationSpecResolvers:e.workflowMaterializationSpecResolvers}}}function Y(e){let{runner:t}=e;if(t)switch(t.mode){case void 0:case`in-process`:if(e.bus===void 0)throw Error(`InProcessWorkflowRunner requires a bus instance. Pass 'bus' to createNodeWorkflowRunner when runner.mode is 'in-process'.`);return new J({bus:e.bus});case`worker-node`:{if(e.authority===void 0)throw Error(`WorkerNodeRunner requires an ExecutionAttemptAuthority. Pass 'authority' to createNodeWorkflowRunner when runner.mode is 'worker-node'.`);let n=e.bus,r=t.dispatch??(n===void 0?void 0:(e,t)=>n.request(y.dispatch,{executionAttemptId:e.executionAttemptId,config:e.config,manifest:e.manifest,requirements:e.requirements,metadata:e.metadata},{signal:t}));if(r===void 0)throw Error(`WorkerNodeRunner requires either a dispatch function or a bus instance. Pass 'bus' to createNodeWorkflowRunner when runner.mode is 'worker-node'.`);return new q({dispatch:r,authority:e.authority,...t.manifest!==void 0&&{manifest:t.manifest},...t.requirements!==void 0&&{requirements:t.requirements}})}case`piscina`:return new G({workerEntry:t.workerEntry??K({moduleDir:e.moduleDir,mode:t.workerEntryMode??e.defaultWorkerEntryMode}),manifest:t.manifest??et(),...t.resolveWorkspaceRoot!==void 0&&{resolveWorkspaceRoot:t.resolveWorkspaceRoot},maxConcurrency:t.maxConcurrency,idleTimeoutMs:t.idleTimeoutMs})}}const nt=new Set([`accepted`,`duplicate`]);var X=class extends Error{decision;result;reason;constructor(e,t,n=`authority-rejected`){super(`Outcome delivery ${n===`deadline-exceeded`?`deadline exceeded`:`rejected by Authority`} (decision=${e}, executionId=${t.executionId}, status=${t.status})`),this.decision=e,this.result=t,this.reason=n,this.name=`OutcomeDeliveryError`}};function Z(e){return new X(`deadline-exceeded`,e,`deadline-exceeded`)}function rt(e){let t={maxRetries:e?.maxRetries??7,baseDelayMs:e?.baseDelayMs??1e3,maxDelayMs:e?.maxDelayMs??3e4,deadlineMs:e?.deadlineMs??12e4};if(!Number.isSafeInteger(t.maxRetries)||t.maxRetries<0)throw TypeError(`Outcome submission maxRetries must be a non-negative safe integer, got ${t.maxRetries}`);for(let[e,n]of Object.entries({baseDelayMs:t.baseDelayMs,maxDelayMs:t.maxDelayMs,deadlineMs:t.deadlineMs}))if(!Number.isFinite(n)||n<=0)throw TypeError(`Outcome submission ${e} must be a positive finite number, got ${n}`);return t}async function it(e,t,n,r){let i=t.baseDelayMs*2**(e-1),a=n-Date.now(),o=Math.min(i,t.maxDelayMs,a);await new Promise(e=>setTimeout(e,o));let s=n-Date.now();if(s<=0)return!1;if(r!==void 0){let e;try{await Promise.race([r(),new Promise(t=>{e=setTimeout(t,s)})])}catch{}finally{e!==void 0&&clearTimeout(e)}}return Date.now()<n}async function Q(e,t,n){let r=rt(n?.retry),i=n?.reconnect,a=Date.now()+r.deadlineMs,o;for(let n=0;n<=r.maxRetries;n++){if(a-Date.now()<=0||n>0&&!await it(n,r,a,i))throw Z(t.result);try{let n=a-Date.now();if(n<=0)throw Z(t.result);let{decision:r}=await e.request(y.control.outcome.submit,{executionAttemptId:t.executionAttemptId,executionId:t.executionId,result:t.result},{timeout:n});if(nt.has(r))return r;throw new X(r,t.result)}catch(e){if(e instanceof X)throw e;if(o=e,Date.now()>=a)throw Z(t.result)}}throw o??Z(t.result)}const at={maxRetries:3,baseDelayMs:200,maxDelayMs:2e3,deadlineMs:1e4},ot={persistentStorage:!0,customCapabilities:[`workflow.local-runtime`,`workflow.thin-runner`],suspensionStrategy:`wait-in-process`,supportsRecovery:!1,materializationModes:[`local-directory`]};function st(e){let t=new Set,n;return{conclude:r=>{if(n!==void 0)return;n={evidence:h.parse({source:e.slice(0,v.source),summary:r.slice(0,v.summary),observedAt:new Date().toISOString()})};let i=[...t];t.clear();for(let e of i)try{e(n)}catch(e){console.error(`[PiscinaThinWorkflowProvider] Infrastructure-conclusion observer failed:`,e)}},observe:e=>n===void 0?(t.add(e),()=>t.delete(e)):(e(n),()=>void 0)}}var ct=class{executionAttemptId;controller;detachCallerAbort;infrastructure;constructor(e,t,n,r){this.executionAttemptId=e,this.controller=t,this.detachCallerAbort=n,this.infrastructure=r}cancel(e){return this.controller.abort(e??`WorkerNode cancelled`),this.detachCallerAbort(),Promise.resolve()}terminate(){return this.controller.abort(`WorkerNode terminated`),this.detachCallerAbort(),Promise.resolve()}release(){return this.detachCallerAbort(),Promise.resolve()}observeInfrastructureConclusion(e){return this.infrastructure.observe(e)}},lt=class{options;environment=`piscina`;allocationLifetime=`provisioner-process-bound`;baseCapabilities;constructor(e){this.options=e,this.baseCapabilities=ne.parse({...ot,...e.baseCapabilities,suspensionStrategy:e.baseCapabilities?.suspensionStrategy??ot.suspensionStrategy,supportsRecovery:!1})}get id(){return this.options.id}get displayName(){return this.options.displayName}async provision(e,t){t.throwIfAborted();let n=new AbortController,r=st(this.id),i=()=>{n.abort(t.reason)};t.addEventListener(`abort`,i,{once:!0});let a=()=>t.removeEventListener(`abort`,i);try{let{executionAttemptId:i,executionId:o,workerConfig:s}=e,c=this.buildAllocationRef(i),l=new ct(i,n,a,r);t.throwIfAborted();let u=this.options.runner.runWithReadiness(e.workerConfig,n.signal,e.workerManifest);return u.ready.then(async e=>{n.signal.aborted||await this.options.bus.emit(y.control[`attempt-ready`],{executionAttemptId:i,executionId:o,adapters:[...e.adapters]})},()=>void 0).catch(e=>n.abort(e)),this.submitOutcomeOnSettlement(u.result,o,i,s.workflowId,r.conclude),{kind:`allocated`,allocationRef:c,handle:l}}catch(e){throw n.abort(e),a(),e}}async submitOutcomeOnSettlement(e,t,n,r,i){let a;try{a=await e}catch(e){a={executionId:t,workflowId:r,status:`failed`,error:e instanceof Error?e.message:String(e)}}try{let e={...at,...this.options.outcomeRetry};await Q(this.options.bus,{executionAttemptId:n,executionId:t,result:a},{retry:e})}catch(e){e instanceof X?console.error(`[PiscinaThinWorkflowProvider] Outcome rejected for execution '${t}' attempt '${n}' (decision=${e.decision}):`,e):console.error(`[PiscinaThinWorkflowProvider] Failed to submit outcome for execution '${t}' attempt '${n}':`,e),i(`Piscina worker for attempt '${n}' ended without an acknowledged outcome because outcome submission could not be completed`)}}buildAllocationRef(e){let t={version:ee,providerId:this.id,providerData:{executionAttemptId:e,allocatedAt:Date.now()}};return te.parse(t)}};const ut=[Ce,be,Se];function dt(e){let t;return()=>(t??=(async()=>{let t=[];for(let n of[...e].reverse())try{await n()}catch(e){t.push(e)}if(t.length===1)throw t[0];if(t.length>1)throw AggregateError(t,`Isolated workflow runtime shutdown reported errors`)})(),t)}function ft(e,t,n){return T({bus:e,currentMachineId:n,resolveLiveAdapterId:e=>t.getExtensionService(S)?.resolveLiveAdapterId(e),resolveLiveAdapterIdentity:e=>t.getExtensionService(S)?.resolveLiveAdapterIdentity(e),listLiveAdapterIdentities:()=>t.getExtensionService(S)?.getLiveAdapterIdentities()??[]})}async function pt(e){let t=f();t.registerNamespaces([...g,..._]);let{context:n}=e,r=new oe(t,{surface:`headless`,extensionContextBase:{cwd:n.cwd,platform:n.platform,homedir:n.homedir,makaioHome:n.makaioHome,username:n.username,machineId:n.machineId,tryImport:D}}),i,a=[()=>t.disconnect()],o=dt(a);try{await e.connectAuthority(t);let s=[...e.contributedPackages,...await e.loadContributedPackages?.(t)??[]],{adapterSubsystemPackage:c}=w({coordinator:r,configRepository:e.configRepository,platformDefaults:{cwd:n.cwd},runtimeSnapshotHandlerPriority:1,runtimeDefinitionHandlerPriority:1,...e.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:e.prepareAuthRuntime}}),l=Te({definitions:s.flatMap(e=>e.clients??[]),binaryResolutionPolicy:`global-only`});r.registerContributionProcessor(ye());let u=[...ut,c,_e,...P(s)?[xe]:[],ve(1),we,A,l,...Oe(s)];r.load(u),a.push(...F(u,t,r)),a.push(()=>r.shutdown()),await r.startAll(),i=ft(t,r,n.machineId),a.push(()=>{i?.cleanup(),i=void 0});let d=r.getExtensionService(ge);if(d===void 0)throw Error(`Isolated workflow tool registry did not start.`);for(let t of e.toolsets)await d.register(t);return await t.emit(se.ready,{machineId:n.machineId}),{bus:t,coordinator:r,machineId:n.machineId,shutdown:o}}catch(e){throw await o().catch(()=>void 0),e}}function mt(e,t){return{executionId:e,workflowId:t,status:`cancelled`,reason:`Execution cancelled`}}async function $(e,t,n){let r=new AbortController,i=e.on(ae(t),()=>{r.abort()}),a=()=>{r.abort()};return n?.addEventListener(`abort`,a,{once:!0}),n?.aborted&&r.abort(),await p(i),{signal:r.signal,cleanup:()=>{n?.removeEventListener(`abort`,a),i()}}}function ht(t,n){let r=e();return{cwd:t.workspaceRoot,platform:t.platform,homedir:r,makaioHome:r,username:`workflow-worker`,machineId:n}}async function gt(e,t,n,r,i,a){return await pt({connectAuthority:async n=>{await e.connectBus(n,t,i)},contributedPackages:[...r],configRepository:e.configRepository,context:ht(n,a),toolsets:[...e.toolsets],...e.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:e.prepareAuthRuntime}})}async function _t(e,t,n){let{executionId:r,executionAttemptId:i}=e,a=mt(r,n);return{result:a,decision:await Q(t,{executionAttemptId:i,executionId:r,result:a},{retry:e.outcomeRetry,reconnect:()=>t.reconnect()})}}async function vt(e,t,n,r,i){let{executionId:a,executionAttemptId:o}=e,s;try{s=await e.execute(t.bus,n,r,i)}catch(e){s=i.aborted&&e instanceof DOMException&&e.name===`AbortError`?mt(a,n.workflowId):{executionId:a,workflowId:n.workflowId,status:`failed`,error:e instanceof Error?e.message:String(e)}}let c=await Q(t.bus,{executionAttemptId:o,executionId:a,result:s},{retry:e.outcomeRetry,reconnect:()=>t.bus.reconnect()});if(e.onPostCommit!==void 0)try{await e.onPostCommit(s,c)}catch{}return{result:s,decision:c}}async function yt(e,t,n,r,i,a){let o=await $(n,r.cancelSubject),s=AbortSignal.any([i,o.signal]),c=s,l,u,d;try{s.throwIfAborted();let f=await e.materialize(r,s),p=f.context;d=f.cleanup,s.throwIfAborted();let m=await e.loadContributions(p,s);s.throwIfAborted(),l=await gt(e,t,p,m,s,a),u=await $(l.bus,r.cancelSubject,o.signal),o.cleanup(),n.disconnect();let h=AbortSignal.any([i,u.signal]);c=h,h.throwIfAborted();let{adapters:g}=await l.bus.request(x.listAdapters,{});return h.throwIfAborted(),await l.bus.emit(y.control[`attempt-ready`],{executionAttemptId:e.executionAttemptId,executionId:e.executionId,adapters:g.map(e=>e.name)}),await vt(e,l,r,p,h)}catch(t){if(!(c.aborted&&t instanceof DOMException&&t.name===`AbortError`))throw t;return await _t(e,l?.bus??n,r.workflowId)}finally{o.cleanup(),u?.cleanup(),l!==void 0&&await l.shutdown().catch(()=>void 0),d!==void 0&&await d().catch(()=>void 0)}}async function bt(e,t){t.throwIfAborted();let n=await e.bootstrap(t);t.throwIfAborted();let r=f();r.registerNamespaces([...g,..._]);try{return await e.connectBus(r,n,t),await yt(e,n,r,await r.request(re.getRunContext,{executionId:e.executionId},{signal:t}),t,`headless-worker-${e.executionAttemptId}`)}finally{try{r.disconnect()}catch{}}}export{A,j as C,M as D,F as E,C as F,D as M,T as N,Ue as O,w as P,Ve as S,qe as T,H as _,X as a,z as b,tt as c,K as d,G as f,V as g,R as h,nt as i,E as j,Ke as k,J as l,L as m,pt as n,Q as o,I as p,lt as r,Y as s,bt as t,q as u,Ye as v,He as w,U as x,W as y};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makaio/framework",
3
- "version": "1.0.0-dev-1787670559522",
3
+ "version": "1.0.0-dev-1787949057928",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/makaio-ai/makaio-framework.git",
@@ -9,6 +9,9 @@
9
9
  "description": "Typed, bus-centric framework for building and orchestrating AI agents with tools, sessions, and events",
10
10
  "license": "MIT",
11
11
  "type": "module",
12
+ "engines": {
13
+ "node": ">=22.15.0"
14
+ },
12
15
  "files": [
13
16
  "dist",
14
17
  "LICENSE",
@@ -26,6 +29,8 @@
26
29
  "execa": "^9.5.2",
27
30
  "glob": "13.0.6",
28
31
  "hono": "^4.12.23",
32
+ "piscina": "^5.1.4",
33
+ "tsx": "^4.22.3",
29
34
  "type-fest": "^5.2.0",
30
35
  "ws": "^8.21.0",
31
36
  "zod": "4.4.3"
@@ -111,6 +116,10 @@
111
116
  "types": "./dist/contracts/client/index.d.mts",
112
117
  "default": "./dist/contracts/client/index.mjs"
113
118
  },
119
+ "./contracts/code-execution": {
120
+ "types": "./dist/contracts/code-execution/index.d.mts",
121
+ "default": "./dist/contracts/code-execution/index.mjs"
122
+ },
114
123
  "./contracts/common": {
115
124
  "types": "./dist/contracts/common/index.d.mts",
116
125
  "default": "./dist/contracts/common/index.mjs"
@@ -235,6 +244,10 @@
235
244
  "types": "./dist/services/capability/index.d.mts",
236
245
  "default": "./dist/services/capability/index.mjs"
237
246
  },
247
+ "./services/code-execution": {
248
+ "types": "./dist/services/code-execution/index.d.mts",
249
+ "default": "./dist/services/code-execution/index.mjs"
250
+ },
238
251
  "./services/materialization": {
239
252
  "types": "./dist/services/materialization/index.d.mts",
240
253
  "default": "./dist/services/materialization/index.mjs"
@@ -519,6 +532,10 @@
519
532
  "types": "./dist/runtime-node/workflow-worker/worker-entry.d.mts",
520
533
  "default": "./dist/runtime-node/workflow-worker/worker-entry.mjs"
521
534
  },
535
+ "./runtime-node/code-execution": {
536
+ "types": "./dist/runtime-node/code-execution/index.d.mts",
537
+ "default": "./dist/runtime-node/code-execution/index.mjs"
538
+ },
522
539
  "./runtime-bun": {
523
540
  "types": "./dist/runtime-bun/index.d.mts",
524
541
  "default": "./dist/runtime-bun/index.mjs"
@@ -1 +0,0 @@
1
- import{C as e,E as t,S as n,c as r,d as i,f as a,g as o,h as s,in as c,l,m as u,o as d,p as f,s as p,t as m,u as h,w as g}from"./schemas-DplrlAyR.mjs";import"./compression-BbttSqm8.mjs";import"./provider-context-BrLZYnDW.mjs";import"./contracts/adapter/schemas/session-lineage.mjs";import{createBusNamespace as _}from"@makaio/framework/core";const v={getCapabilities:c,startAgent:t,infer:g,listAgents:e,getAgent:n,stopAgent:o,rehydrateAgent:s,getConfigSchema:u,"agent.created":f,"session.created":a,"session.discovered":m,"session.usage":i,"session.closed":h,log:l,error:r,initialized:p,quota:d},y=_(`adapter`,v),b=y.subjects;export{b as n,v as r,y as t};
@@ -1 +0,0 @@
1
- import{agents as e}from"./services/session/storage/schema.mjs";import{z as t}from"zod";import{AgentStatusSchema as n,MakaioSessionAgentSchema as r}from"@makaio/framework/contracts";import{createStorageNamespaceDefinition as i}from"@makaio/framework/storage";const a=i(`agent`,{schemas:{get:{request:t.object({agentId:t.string()}),response:t.object({agent:r.nullable()})},set:{request:t.object({agentId:t.string(),agent:r}),response:t.object({success:t.boolean()})},delete:{request:t.object({agentId:t.string()}),response:t.object({success:t.boolean()})},listByAdapter:{request:t.object({adapterName:t.string(),status:t.enum([...n.options,`all`]).optional()}),response:t.object({agents:t.array(r)})},listBySession:{request:t.object({sessionId:t.string()}),response:t.object({agents:t.array(r)})},updateStatus:{request:t.object({agentId:t.string(),status:n,expectedStatus:t.array(n).nonempty().optional()}),response:t.object({success:t.boolean(),transitioned:t.boolean()})},updateActivity:{request:t.object({agentId:t.string(),lastActivityAt:t.number()}),response:t.object({success:t.boolean()})},updateRuntime:{request:t.object({agentId:t.string(),adapterId:t.string().optional(),adapterSessionId:t.string().optional(),cwd:t.string().optional(),model:t.string().optional(),allowedDirectories:t.array(t.string()).optional(),providerConfigId:t.string().nullable().optional()}).refine(e=>e.adapterId!==void 0||e.adapterSessionId!==void 0||e.cwd!==void 0||e.model!==void 0||e.allowedDirectories!==void 0||e.providerConfigId!==void 0,{message:`At least one runtime field (adapterId, adapterSessionId, cwd, model, allowedDirectories, or providerConfigId) must be provided`}),response:t.object({success:t.boolean()})}},extensions:{drizzle:{agents:e}}}),o=a.subjects;export{o as n,a as t};
@@ -1 +0,0 @@
1
- var e=class extends Error{code;dispatch;constructor(e,t,n,r){super(t,r),this.code=e,this.dispatch=n,this.name=`AttachStartError`}},t=class extends Error{stage;constructor(e,t){super(t instanceof Error?t.message:String(t),{cause:t}),this.stage=e,this.name=`SessionAgentAttachError`}};function n(e){let n=e,r=new Set;for(;n instanceof Error&&!r.has(n);){if(n instanceof t)return n;r.add(n),n=n.cause}}export{t as n,n as r,e as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./bus-CqgrphNE.mjs";export{e as MakaioBus};
@@ -1 +0,0 @@
1
- import{P as e}from"./worker-node-BDOYPEpi.mjs";import{z as t}from"zod";import{createBusNamespace as n}from"@makaio/framework/core";const r=`autoLaunch`;function ee(t,n){t.emit(e.register,{capabilityId:r,provider:n})}const i=`server`;function te(t,n){return t.emit(e.register,{capabilityId:i,provider:n})}function ne(t,n){return t.emit(e.unregister,{capabilityId:i,providerId:n})}const a=t.object({id:t.number(),state:t.enum([`error`,`failure`,`pending`,`success`]),description:t.string().nullable(),targetUrl:t.string().url().nullable(),context:t.string(),createdAt:t.string().datetime(),updatedAt:t.string().datetime(),creator:t.string().nullable()}),o=t.object({id:t.number(),author:t.string(),body:t.string(),path:t.string().nullable(),line:t.number().nullable(),diffHunk:t.string().nullish(),createdAt:t.string(),updatedAt:t.string(),inReplyToId:t.number().nullable(),threadId:t.string().nullish(),isResolved:t.boolean().nullish()}),re=t.object({provider:t.string(),owner:t.string(),repo:t.string(),url:t.string(),defaultBranch:t.string().optional()}),s=t.object({id:t.string(),number:t.number(),title:t.string(),state:t.enum([`open`,`closed`,`merged`]),draft:t.boolean(),author:t.string(),branch:t.string(),baseBranch:t.string(),url:t.string(),createdAt:t.string(),updatedAt:t.string(),mergedAt:t.string().nullable(),additions:t.number().optional(),deletions:t.number().optional(),changedFiles:t.number().optional(),commentCount:t.number().optional(),reviewCount:t.number().optional(),head:t.object({ref:t.string(),sha:t.string()}).nullish()}),c=t.object({id:t.number(),author:t.string(),state:t.enum([`APPROVED`,`CHANGES_REQUESTED`,`COMMENTED`,`PENDING`,`DISMISSED`]),body:t.string().nullable(),submittedAt:t.string().nullable()}),ie=s.extend({body:t.string().nullable(),reviews:t.array(c),labels:t.array(t.string()),assignees:t.array(t.string()),requestedReviewers:t.array(t.string()),mergeable:t.boolean().nullable(),mergeableState:t.string().optional()}),ae=t.object({id:t.number(),name:t.string(),status:t.enum([`queued`,`in_progress`,`completed`]),conclusion:t.enum([`success`,`failure`,`neutral`,`cancelled`,`skipped`,`timed_out`,`action_required`]).nullable(),startedAt:t.string().nullable(),completedAt:t.string().nullable(),url:t.string(),workflowName:t.string().optional(),jobName:t.string().optional()}),oe=t.object({ref:t.string(),sha:t.string()}).nullish(),l=t.object({id:t.string(),number:t.number(),title:t.string(),state:t.enum([`open`,`closed`,`merged`]),draft:t.boolean(),author:t.string(),branch:t.string(),baseBranch:t.string(),url:t.string(),createdAt:t.string(),updatedAt:t.string(),mergedAt:t.string().nullable(),head:oe}),u=l.extend({additions:t.number().optional(),deletions:t.number().optional(),changedFiles:t.number().optional(),commentCount:t.number().optional(),reviewCount:t.number().optional()}),d={"repository.get":{request:t.object({repoPath:t.string()}),response:t.object({repository:t.object({provider:t.string(),owner:t.string(),repo:t.string(),url:t.string(),defaultBranch:t.string().optional()}).nullable()})},"pr.list":{request:t.object({repoPath:t.string(),branch:t.string()}),response:t.object({pullRequests:t.array(u)})},"pr.get":{request:t.object({repoPath:t.string(),prNumber:t.number()}),response:t.object({pullRequest:u.extend({body:t.string().nullable(),reviews:t.array(t.object({id:t.number(),author:t.string(),state:t.enum([`APPROVED`,`CHANGES_REQUESTED`,`COMMENTED`,`PENDING`,`DISMISSED`]),body:t.string().nullable(),submittedAt:t.string().nullable()})),labels:t.array(t.string()),assignees:t.array(t.string()),requestedReviewers:t.array(t.string()),mergeable:t.boolean().nullable(),mergeableState:t.string().optional()}).nullable()})},"pr.listForFile":{request:t.object({repoPath:t.string(),filePath:t.string()}),response:t.object({pullRequests:t.array(l)})},"checks.get":{request:t.object({repoPath:t.string(),commitSha:t.string()}),response:t.object({checks:t.array(t.object({id:t.number(),name:t.string(),status:t.enum([`queued`,`in_progress`,`completed`]),conclusion:t.enum([`success`,`failure`,`neutral`,`cancelled`,`skipped`,`timed_out`,`action_required`]).nullable(),startedAt:t.string().nullable(),completedAt:t.string().nullable(),url:t.string(),workflowName:t.string().optional(),jobName:t.string().optional()}))})},"statuses.get":{request:t.object({repoPath:t.string(),commitSha:t.string()}),response:t.object({statuses:t.array(a)})},"comments.list":{request:t.object({repoPath:t.string(),prNumber:t.number()}),response:t.object({comments:t.array(o)})},"comments.reply":{request:t.object({repoPath:t.string(),prNumber:t.number(),commentId:t.number(),body:t.string()}),response:t.object({comment:o})},"comments.create":{request:t.object({repoPath:t.string(),prNumber:t.number(),path:t.string(),line:t.number(),commitId:t.string(),body:t.string(),side:t.enum([`LEFT`,`RIGHT`]).optional()}),response:t.object({comment:o})},"comments.resolveThread":{request:t.object({repoPath:t.string(),prNumber:t.number(),threadId:t.string()}),response:t.object({success:t.boolean()})},"capability.write":{request:t.object({repoPath:t.string()}),response:t.object({canWrite:t.boolean(),level:t.enum([`none`,`read`,`triage`,`write`,`maintain`,`admin`])})}},f=n(`vcs`,d),se=f.subjects,p=n(`vcs:events`,{"comment.created":t.object({repoPath:t.string(),prNumber:t.number(),commentId:t.number()}),"thread.resolved":t.object({repoPath:t.string(),prNumber:t.number(),threadId:t.string()})}),ce=p.subjects,le=`vcs`;function ue(t,n){return t.emit(e.register,{capabilityId:`vcs`,provider:n})}function de(t,n){return t.emit(e.unregister,{capabilityId:`vcs`,providerId:n})}const m=t.enum([`open`,`addressed`,`verified`,`dismissed`,`deferred`]),h=t.enum([`critical`,`major`,`minor`,`nitpick`]),g=t.enum([`inline`,`review-body`,`issue-comment`,`cli-output`,`agent`]),_=t.object({file:t.string(),oldCode:t.string(),newCode:t.string()}),v=t.object({repository:t.string(),prNumber:t.number().optional(),branch:t.string().optional(),headSha:t.string().optional()}),y=t.object({id:t.string(),target:v,sourceId:t.string(),reviewer:t.string(),origin:g,threadId:t.string().nullable(),severity:h,file:t.string().nullable(),startLine:t.number().nullable(),endLine:t.number().nullable(),message:t.string(),agentPrompt:t.string().nullable(),suggestedChanges:t.array(_),status:m,addressedBy:t.string().nullable(),addressedAt:t.number().nullable(),verifiedAt:t.number().nullable(),dismissedReason:t.string().nullable(),createdAt:t.number(),updatedAt:t.number(),rawCommentId:t.number().nullable()}),b=t.object({sourceId:t.string(),remaining:t.number(),limit:t.number(),resetsAt:t.number(),lastUpdatedAt:t.number()}),fe=t.object({id:t.union([t.number(),t.string()]),author:t.string(),body:t.string(),url:t.string().nullable(),createdAt:t.string().nullable(),updatedAt:t.string().nullable()}),x={"source.registered":t.object({sourceId:t.string(),reviewer:t.string(),displayName:t.string()}),"source.list":{request:t.object({}),response:t.object({sources:t.array(t.object({sourceId:t.string(),reviewer:t.string(),displayName:t.string(),capabilities:t.object({canTrigger:t.boolean(),canFetch:t.boolean(),isPush:t.boolean()}),processorKey:t.string().nullable(),shadowedProcessors:t.array(t.string()).optional()})),rateLimits:t.array(b)})},start:{request:t.object({target:v,repoPath:t.string(),sourceId:t.string().optional()}),response:t.object({triggered:t.boolean(),estimatedDelayMs:t.number().optional(),rateLimit:b.nullable()})},started:t.object({target:v,sourceId:t.string()}),"findings.fetch":{request:t.object({target:v,repoPath:t.string()}),response:t.object({findings:t.array(y),created:t.number(),updated:t.number()})},"findings.list":{request:t.object({target:v,status:m.optional()}),response:t.object({findings:t.array(y)})},"findings.arrived":t.object({target:v,sourceId:t.string().min(1),reviewer:t.string().min(1),created:t.number().int().nonnegative(),updated:t.number().int().nonnegative()}),"findings.submit":{request:t.object({finding:y.omit({createdAt:!0,updatedAt:!0,verifiedAt:!0,addressedAt:!0,addressedBy:!0}).extend({createdAt:t.number().optional(),updatedAt:t.number().optional()})}),response:t.object({finding:y})},"finding.updateStatus":{request:t.object({findingId:t.string(),target:v,status:m,reason:t.string().optional(),addressedBy:t.string().optional()}),response:t.object({success:t.boolean(),finding:y})},"finding.statusChanged":t.object({finding:y,previousStatus:m}),"source.rateLimitChanged":t.object({rateLimit:b})},pe=n(`review`,x),me=pe.subjects,S=`review-source`,C=`reviewer-processor`;function he(t,n){return t.emit(e.register,{capabilityId:S,provider:n})}function ge(t,n){return t.emit(e.unregister,{capabilityId:S,providerId:n})}function _e(t,n){return t.emit(e.register,{capabilityId:C,provider:n})}function ve(t,n){return t.emit(e.unregister,{capabilityId:C,providerId:n})}const w=t.object({image:t.string(),prompt:t.string().optional()}),T=t.object({description:t.string(),confidence:t.number().min(0).max(1).optional()}),E={analyze:{request:w,response:T}},D=n(`vision`,E),ye=D.subjects,O=t.object({text:t.string(),language:t.string(),confidence:t.number().optional()}),k=t.enum([`idle`,`recording`,`transcribing`,`synthesizing`,`error`]),A=t.object({runtime:t.enum([`server`,`client`]),providerId:t.string(),providerName:t.string()}),j=t.object({stt:A,tts:A}),M={"session.start":{request:t.object({sessionId:t.string()}),response:t.discriminatedUnion(`audioTransport`,[t.object({audioTransport:t.literal(`none`),strategy:j}),t.object({audioTransport:t.literal(`ws`),audioWsUrl:t.string().url(),bindToken:t.string(),strategy:j})])},"session.stop":{request:t.object({sessionId:t.string()}),response:t.object({})},transcription:O.extend({sessionId:t.string(),messageId:t.string().optional()}),"synthesis.start":t.object({sessionId:t.string(),messageId:t.string().optional()}),"synthesis.end":t.object({sessionId:t.string(),messageId:t.string().optional()}),status:t.object({sessionId:t.string(),state:k})},be=t.object({stt:t.string(),tts:t.string()}),N=n(`voice`,M),xe=N.subjects,P=t.enum([`priority`,`status`,`type`,`size`,`review`,`automation`,`custom`]),F=t.object({name:t.string(),semantic:P.nullable()}),Se=t.object({id:t.number().int().nonnegative(),name:t.string(),workflowName:t.string(),conclusion:t.string(),failedStep:t.string().nullable(),detailsUrl:t.string().url().nullable(),completedAt:t.string().datetime().nullable(),source:t.enum([`check-run`,`commit-status`])}),I=t.object({status:t.enum([`pending`,`passing`,`failing`,`mixed`]),total:t.number().int().nonnegative(),passed:t.number().int().nonnegative(),failed:t.number().int().nonnegative(),pending:t.number().int().nonnegative(),skipped:t.number().int().nonnegative(),failedChecks:t.array(Se),summary:t.string()}),L=t.object({reviewer:t.string(),state:t.enum([`APPROVED`,`CHANGES_REQUESTED`,`COMMENTED`,`PENDING`,`DISMISSED`]),submittedAt:t.string().datetime().nullable()}),R=t.object({status:t.enum([`pending`,`approved`,`changes-requested`]),approvals:t.number().int().nonnegative(),changesRequested:t.number().int().nonnegative(),commented:t.number().int().nonnegative(),reviewers:t.array(L),summary:t.string()}),z=t.object({total:t.number().int().nonnegative(),open:t.number().int().nonnegative(),addressed:t.number().int().nonnegative(),verified:t.number().int().nonnegative(),dismissed:t.number().int().nonnegative(),openBySeverity:t.object({critical:t.number().int().nonnegative(),major:t.number().int().nonnegative(),minor:t.number().int().nonnegative(),nitpick:t.number().int().nonnegative()}),summary:t.string()}),B=t.object({status:t.enum([`ready`,`blocked`,`needs-attention`]),blockers:t.array(t.string()),warnings:t.array(t.string())}),V=t.object({repository:t.string(),number:t.number().int().positive(),title:t.string(),branch:t.string(),baseBranch:t.string(),author:t.string(),url:t.string().url(),state:t.enum([`open`,`closed`,`merged`]),draft:t.boolean(),mergeable:t.boolean().nullable(),checks:I,reviews:R,findings:z,labels:t.array(F),readiness:B,syncedAt:t.number().int().nonnegative(),headSha:t.string()}),H=v.extend({prNumber:t.number().int().positive()}),U={get:{request:t.object({repoPath:t.string(),prNumber:t.number().int().positive()}),response:t.object({pr:V})},list:{request:t.object({repoPath:t.string(),branch:t.string().optional()}),response:t.object({prs:t.array(V)})},refresh:{request:t.object({repoPath:t.string(),prNumber:t.number().int().positive()}),response:t.object({pr:V})},stateChanged:t.object({target:H,pr:V}),conflicted:t.object({target:H}),"checks.changed":t.object({target:H,checks:I}),"reviews.changed":t.object({target:H,reviews:R}),"labels.changed":t.object({target:H,labels:t.array(F)})},W=n(`vcs:pr`,U),Ce=W.subjects,G=t.enum([`commit`,`checkout`,`merge`,`rebase`]),K=t.object({oldHash:t.string().min(1),newHash:t.string().min(1)}),q=t.object({repoPath:t.string().min(1),squash:t.boolean(),targetBranch:t.string().min(1).optional(),currentHead:t.string().min(1).optional(),timestamp:t.string()}),J=t.object({repoPath:t.string().min(1),command:t.string().min(1),rewritten:t.array(K),branch:t.string().min(1).optional(),timestamp:t.string()}),Y=t.enum([`covered`,`not-installed`,`hook-missing`,`hook-not-executable`,`state-missing`,`state-mismatch`,`unsupported-operation`,`provider-unavailable`]),X=t.object({repoPath:t.string().min(1),operation:G,worktree:t.string().optional()}),Z=t.object({covered:t.boolean(),reason:Y,coveredOperations:t.array(G)}),Q={coverage:{request:X,response:Z},merge:q,rewrite:J},we=n(`gitHook`,Q),Te=we.subjects,$=`git-hook-events`;function Ee(t,n){return t.emit(e.register,{capabilityId:$,provider:n})}function De(t,n){return t.emit(e.unregister,{capabilityId:$,providerId:n})}export{fe as $,A,C as B,B as C,N as D,U as E,D as F,ve as G,he as H,ye as I,g as J,pe as K,w as L,be as M,M as N,xe as O,k as P,y as Q,T as R,H as S,ee as St,R as T,_e as U,S as V,ge as W,m as X,h as Y,v as Z,I as _,a as _t,Te as a,de as at,P as b,i as bt,Z as c,f as ct,J as d,ae as dt,x as et,K as f,ie as ft,Se as g,o as gt,Ce as h,re as ht,we as i,ue as it,j,O as k,G as l,se as lt,W as m,c as mt,Ee as n,_ as nt,Y as o,ce as ot,Q as p,s as pt,me as q,De as r,le as rt,X as s,p as st,$ as t,b as tt,q as u,d as ut,z as v,te as vt,L as w,V as x,r as xt,F as y,ne as yt,E as z};
@@ -1 +0,0 @@
1
- import{CapabilitySubjects as e}from"@makaio/framework/contracts";import{BaseService as t}from"@makaio/framework/service-base";var n=class extends t{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()}};export{n as t};
@@ -1 +0,0 @@
1
- import{z as e}from"zod";const t=e.object({repoPath:e.string().optional()}),n=e.object({path:e.string()}),r=e.object({root:e.string().nullable()}),ee=t,i=e.object({current:e.string(),isDetached:e.boolean()}),a=t.extend({ref:e.string().optional()}),o=e.object({hash:e.string(),message:e.string(),author:e.string(),email:e.string(),date:e.string()}),s=t.extend({hash:e.string()}),c=e.object({path:e.string(),oldPath:e.string().optional(),status:e.string(),additions:e.number(),deletions:e.number()}),l=e.object({totalAdditions:e.number(),totalDeletions:e.number(),changedFiles:e.number()}),u=e.object({files:e.array(c),stats:l}),d=t,f=e.object({path:e.string(),oldPath:e.string().optional(),additions:e.number(),deletions:e.number()}),te=e.object({staged:e.array(f),unstaged:e.array(f),untracked:e.array(f),conflicted:e.array(f),stats:l}),ne=t,re=e.object({staged:e.array(e.string()),modified:e.array(e.string()),untracked:e.array(e.string()),conflicted:e.array(e.string())}),p=t,m=e.object({path:e.string(),branch:e.string(),commit:e.string(),isMain:e.boolean()}),h=e.object({worktrees:e.array(m)}),g=t,_=e.object({name:e.string(),fetchUrl:e.string(),pushUrl:e.string()}),v=e.object({remotes:e.array(_)}),y=t,b=e.object({branch:e.string()}),x=e.object({branches:e.array(e.string()).optional(),branchMode:e.enum([`all`,`specific`]).optional(),baseBranch:e.string().optional(),paths:e.array(e.string()).optional(),author:e.string().optional(),since:e.string().optional(),until:e.string().optional(),searchQuery:e.string().optional(),selectedWorktree:e.string().optional()}),S=t.extend({limit:e.number().min(1).max(1e4).optional(),ref:e.string().optional(),filters:x.optional()}),C=e.object({hash:e.string(),shortHash:e.string(),message:e.string(),author:e.string(),email:e.string(),date:e.string(),parents:e.array(e.string())}),w=e.object({branches:e.record(e.string(),e.string()),remoteBranches:e.record(e.string(),e.string()),tags:e.record(e.string(),e.string()),HEAD:e.string()}),T=e.object({commits:e.array(C),refs:w,truncated:e.boolean()}),E=t.extend({path:e.string(),ref:e.string()}),D=e.object({content:e.string(),isBinary:e.boolean()}),O=t.extend({ref:e.string().optional(),staged:e.boolean().optional(),unified:e.number().int().min(0).max(10).optional(),paths:e.array(e.string()).optional()}),k=e.object({diff:e.string()}),A=e.object({branchName:e.string(),repoPath:e.string().optional()}),j=e.object({commitHashes:e.array(e.string())}),M=e.object({repoPath:e.string().optional(),worktreePath:e.string()}),N=e.object({success:e.boolean(),error:e.string().optional()}),P=e.object({repoPath:e.string().optional(),path:e.string(),ref:e.string().optional()}),F=e.object({startLine:e.number(),endLine:e.number(),shortHash:e.string(),hash:e.string(),author:e.string(),date:e.string(),message:e.string()}),I=e.object({content:e.string(),lines:e.array(F)}),L=t.extend({filePath:e.string(),commitHash:e.string()}),R=e.object({content:e.string().nullable(),isBinary:e.boolean()}),z=t.extend({filePath:e.string(),commitHash:e.string()}),B=e.object({blobHash:e.string().nullable()}),V=e.object({repoPath:e.string(),include:e.array(e.string()),exclude:e.array(e.string()),worktree:e.string().optional()}),H=e.object({hash:e.string(),commitSha:e.string(),changedPaths:e.array(e.string()),timestamp:e.string()}),U=e.object({repoPath:e.string().optional(),message:e.string().min(1),allowEmpty:e.boolean().optional(),amend:e.boolean().optional()}),W=e.object({success:e.boolean(),hash:e.string().optional(),branch:e.string().optional(),error:e.string().optional()}),G=e.enum([`merge`,`squash`,`fast-forward-only`]),K=e.object({repoPath:e.string().optional(),source:e.string(),approach:G.optional(),message:e.string().optional(),abortOnConflict:e.boolean().optional()}),q=e.object({success:e.boolean(),hash:e.string().optional(),fastForward:e.boolean().optional(),conflicts:e.array(e.string()).optional(),error:e.string().optional()}),J=e.object({repoPath:e.string().optional()}),Y=e.object({success:e.boolean(),error:e.string().optional()}),X=e.object({repoPath:e.string().optional(),onto:e.string(),abort:e.boolean().optional(),continueRebase:e.boolean().optional()}),ie=e.object({success:e.boolean(),hash:e.string().optional(),conflicts:e.array(e.string()).optional(),error:e.string().optional()}),Z=e.enum([`push`,`pop`,`apply`,`drop`,`list`]),ae=e.object({repoPath:e.string().optional(),operation:Z,message:e.string().optional(),includeUntracked:e.boolean().optional(),index:e.number().int().min(0).optional()}),Q=e.object({index:e.number(),message:e.string(),branch:e.string(),date:e.string()}),oe=e.object({success:e.boolean(),entries:e.array(Q).optional(),error:e.string().optional()}),se=e.object({repoPath:e.string().optional(),name:e.string(),startPoint:e.string().optional(),checkout:e.boolean().optional()}),ce=e.object({success:e.boolean(),name:e.string().optional(),error:e.string().optional()}),le=e.object({repoPath:e.string().optional(),name:e.string(),force:e.boolean().optional()}),ue=e.object({success:e.boolean(),error:e.string().optional()}),de=e.object({repoPath:e.string().optional(),oldName:e.string(),newName:e.string()}),fe=e.object({success:e.boolean(),error:e.string().optional()}),pe=e.object({repoPath:e.string().optional(),ref:e.string(),createBranch:e.boolean().optional(),startPoint:e.string().optional()}),me=e.object({success:e.boolean(),ref:e.string().optional(),error:e.string().optional()}),he=e.object({repoPath:e.string().optional(),remote:e.string().optional(),branch:e.string().optional(),setUpstream:e.boolean().optional(),force:e.boolean().optional()}),ge=e.object({success:e.boolean(),remote:e.string().optional(),branch:e.string().optional(),error:e.string().optional()}),_e=e.object({repoPath:e.string().optional(),remote:e.string().optional(),branch:e.string().optional(),rebase:e.boolean().optional()}),ve=e.object({success:e.boolean(),conflicts:e.array(e.string()).optional(),error:e.string().optional()}),ye=e.object({repoPath:e.string().optional(),remote:e.string().optional(),prune:e.boolean().optional()}),be=e.object({success:e.boolean(),error:e.string().optional()}),xe=e.object({repoPath:e.string().optional(),paths:e.array(e.string()).min(1)}),Se=e.object({success:e.boolean(),error:e.string().optional()}),Ce=e.object({repoPath:e.string(),hash:e.string(),message:e.string(),author:e.string(),email:e.string(),branch:e.string(),timestamp:e.string(),worktree:e.string().optional()}),we=e.object({repoPath:e.string(),previousBranch:e.string().optional(),currentBranch:e.string(),timestamp:e.string(),worktree:e.string().optional()}),Te=e.object({repoPath:e.string(),staged:e.array(e.string()),timestamp:e.string(),worktree:e.string().optional()}),Ee=e.object({repoPath:e.string(),sourceBranch:e.string(),targetBranch:e.string(),mergeCommit:e.string(),timestamp:e.string(),worktree:e.string().optional()}),$=e.enum([`started`,`completed`,`aborted`]),De=e.object({repoPath:e.string(),branch:e.string(),onto:e.string(),status:$,timestamp:e.string(),worktree:e.string().optional()}),Oe=e.object({repoPath:e.string(),name:e.string(),path:e.string(),branch:e.string(),event:e.enum([`added`,`removed`]),timestamp:e.string()}),ke=e.object({repoPath:e.string()}),Ae=e.object({success:e.boolean(),error:e.string().optional()}),je=e.object({repoPath:e.string()}),Me=e.object({success:e.boolean()}),Ne=e.object({path:e.string(),defaultBranch:e.string().optional()}),Pe=e.object({success:e.boolean(),path:e.string(),defaultBranch:e.string()}),Fe=e.object({repoPath:e.string(),path:e.string(),branch:e.string(),baseBranch:e.string().optional(),createBranch:e.boolean().optional()}),Ie=e.object({success:e.boolean(),path:e.string(),branch:e.string(),error:e.string().optional()}),Le=e.object({repoPath:e.string(),path:e.string(),force:e.boolean().optional(),deleteBranch:e.boolean().optional()}),Re=e.object({success:e.boolean(),error:e.string().optional()}),ze=e.object({repoPath:e.string().optional(),paths:e.array(e.string()).min(1)}),Be=e.object({success:e.boolean(),error:e.string().optional()}),Ve=e.object({repoPath:e.string().optional(),paths:e.array(e.string()).min(1)}),He=e.object({success:e.boolean(),error:e.string().optional()});export{j as $,le as A,v as At,ve as B,m as Bt,Y as C,C as Ct,ce as D,w as Dt,se as E,T as Et,be as F,M as Ft,de as G,ge as H,h as Ht,G as I,N as It,Z as J,fe as K,K as L,d as Lt,xe as M,r as Mt,Se as N,ne as Nt,U as O,_ as Ot,ye as P,re as Pt,A as Q,q as R,te as Rt,J as S,H as St,me as T,S as Tt,X as U,he as V,p as Vt,ie as W,oe as X,ae as Y,t as Z,Be as _,R as _t,Fe as a,ee as at,He as b,c as bt,Pe as c,s as ct,$ as d,o as dt,F as et,je as f,y as ft,ze as g,L as gt,Re as h,k as ht,Ce as i,B as it,ue as j,n as jt,W as k,g as kt,Ee as l,u as lt,Le as m,O as mt,Ae as n,I as nt,Ie as o,i as ot,Me as p,b as pt,Q as q,we as r,z as rt,Ne as s,l as st,ke as t,P as tt,De as u,a as ut,Te as v,E as vt,pe as w,x as wt,Oe as x,V as xt,Ve as y,D as yt,_e as z,f as zt};
@@ -1 +0,0 @@
1
- import{R as e,vt as t}from"./handlers-2yd00VEq.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{$ as r,D as i,E as a,G as o,P as s,V as c,Z as l,a as u,b as d,c as f,d as ee,i as te,j as ne,n as re,r as ie}from"./session-BMy2kRpX.mjs";import{r as p,t as ae}from"./namespace-BFqkUTJp.mjs";import{a as oe,c as se,o as ce,s as le,v as ue}from"./packages-FBv3fAOR.mjs";import{t as de}from"./capability-service-CJHNkjvm.mjs";import"./services/adapter-subsystem/index.mjs";import{i as fe,s as pe}from"./model-registry-Y854mUml.mjs";import{d as me,f as he,n as ge}from"./package-CBdvjyyZ.mjs";import{t as _e}from"./tool-approval-service-BVgN9Q1r.mjs";import{t as ve}from"./tray-menu-service-Deo6yyP8.mjs";import{r as m,t as ye}from"./handler-Bqlk-6BY.mjs";import{r as be}from"./package-CddkNbZI.mjs";import{t as xe}from"./filesystem-service-FAtd9gWH.mjs";import{z as h}from"zod";import{createHash as Se}from"node:crypto";import{getErrorString as g}from"@makaio/framework/utils";import{MakaioError as Ce,createMakaioContext as we}from"@makaio/framework/core";import{MakaioBus as _}from"@makaio/framework/bus";import{AdapterSubjects as Te,ArtifactSubjects as v,CanonicalModelSubjects as Ee,DEFAULT_HARNESSES as De,HarnessDefinitionCreateSchema as Oe,HarnessSubjects as y,JsonValueSchema as ke,ReactionDescriptorSchema as Ae,ToolSubjects as b,TransitionRuleDefinitionSchema as je,WorkflowBlocksSubjects as x,WorkflowSubjects as Me,dep as S,extensionToken as C,validateToolAdapterIdentity as Ne,zodSchemaToJsonRecord as w}from"@makaio/framework/contracts";import{BaseService as T}from"@makaio/framework/service-base";import{registerDrizzleHandlers as E}from"@makaio/framework/storage/drizzle";import{slugifyProviderConfigName as D}from"@makaio/framework/contracts/config";import{ClientAccountIdentifierSchema as Pe,ClientSessionAccountObserveSchema as Fe,ClientSubjects as O}from"@makaio/framework/contracts/client";import{FacetSubjects as k}from"@makaio/framework/contracts/facet";import{FILE_ACCESS_RULES_KEY as Ie,ToolErrorCodes as A,errorToToolResult as Le,toolError as j,toolSuccess as Re}from"@makaio/framework/tools";import{ConditionSchema as ze,evaluate as Be}from"@makaio/framework/rules";import{evaluateSync as Ve}from"@makaio/framework/expression";import{GitService as He}from"@makaio/framework/git";var M=class extends Error{reason;hookId;constructor(e,t){super(`Artifact write rejected by hook '${t}': ${e}`),this.reason=e,this.hookId=t,this.name=`ArtifactLifecycleHookRejectedError`}};function N(e,t){return e?!(e.kind!==void 0&&e.kind!==`*`&&e.kind!==t.kind||e.schemaVersion!==void 0&&e.schemaVersion!==t.schemaVersion):!0}function P(e){return e.priority??0}function Ue(e,t,n){return e.filter(e=>e.event===t&&N(e.filter,n)).sort((e,t)=>P(t)-P(e))}function We(e,t,n){return e.filter(e=>e.event===t&&N(e.filter,n)).sort((e,t)=>P(t)-P(e))}function Ge(e,t){return{...e,...`data`in t?{data:t.data}:{},...`relations`in t?{relations:t.relations}:{},...`confidence`in t?{confidence:t.confidence}:{},...`representations`in t?{representations:t.representations}:{},...`actor`in t?{actor:t.actor}:{}}}function Ke(e,t){let{confidence:n,representations:r,...i}=e;return{...i,data:t.data,relations:[...t.relations],...t.confidence===void 0?{}:{confidence:t.confidence},...t.representations===void 0?{}:{representations:t.representations},actor:t.actor}}var F=class extends T{registrations=new Map;constructor(e){super(e)}async onInit(){}onDestroy(){this.registrations.clear()}registerHooks(e,t){let n=[...t];this.registrations.set(e,n);let r=!1;return()=>{r||(r=!0,this.registrations.get(e)===n&&this.registrations.delete(e))}}allHooks(){let e=[];for(let t of this.registrations.values())e.push(...t);return e}async runBeforeCreate(e){return this.runBeforeHooks(`beforeCreate`,e)}async runBeforeRevise(e){return this.runBeforeHooks(`beforeRevise`,e)}async runBeforeHooks(e,t){let{draft:n,previous:r,kindRegistration:i}=t,a=Ue(this.allHooks(),e,n),o=new Map,s={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,data:n.data,relations:n.relations,...n.confidence===void 0?{}:{confidence:n.confidence},...n.representations===void 0?{}:{representations:n.representations},actor:n.actor},c=!1;for(let t of a){let n,a={event:e,get draft(){return s},previous:r,kindRegistration:i,bus:this.bus,meta:o,rejectCreation(e){n={reason:e}},skipMaterialization(){c=!0},updateDraft(e){s=Ge(s,e)}};if(await t.handler(a),n)throw new M(n.reason,t.id)}return{draft:Ke(n,s),skipMaterialization:c,meta:o}}async runAfterCreate(e){await this.runAfterHooks(`afterCreate`,`created`,e)}async runAfterRevise(e){await this.runAfterHooks(`afterRevise`,`revised`,e)}async runAfterStatusChanged(e){await this.runAfterHooks(`afterStatusChanged`,`status-changed`,e)}async runAfterObservationAdded(e){await this.runAfterHooks(`afterObservationAdded`,`observation-added`,e)}async runAfterHooks(e,t,n){let{artifact:r,previous:i,observation:a,kindRegistration:o,projectionPolicy:s,skipDefaultProjection:c,meta:l}=n,u=We(this.allHooks(),e,r),d=this.bus,f=!1;for(let n of u){if(c&&(n.priority??0)<0||f&&(n.priority??0)<0)continue;let u={event:e,semanticEvent:t,artifact:r,previous:i?{refClass:`artifact`,id:i.id,revision:i.revision,kind:i.kind}:void 0,observation:a,kindRegistration:o,projectionPolicy:s,bus:d,meta:l,preventDefault(){f=!0},async resolveRelations(e){let t=r.relations.filter(t=>t.type===e).map(e=>e.target),n=[];for(let e of t){let t=e;if(t.refClass===`artifact`){let e=t,{artifact:r}=await d.request(v.resolve,{ref:e});r&&n.push(r)}}return n}};try{await n.handler(u)}catch(t){console.error(`[ArtifactLifecycleHookRegistry] Hook '${n.id}' threw during '${e}':`,t)}}}};function I(e){return structuredClone(e)}var L=class extends T{namespaces=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(k.namespace.register,e=>{this.registerNamespace(e.payload),e.setResult({registered:!0})}),this.registerHandler(k.namespace.list,e=>{let{namespace:t}=e.payload,n=[...this.namespaces.values()].filter(e=>!t||e.namespace===t).map(I);e.setResult({namespaces:n})})}registerNamespace(e){let t=this.namespaces.get(e.namespace);if(t){if(JSON.stringify(t)!==JSON.stringify(e))throw Error(`Facet namespace '${e.namespace}' is already registered with a different definition`);return}this.namespaces.set(e.namespace,I(e)),this.bus.emit(k.namespace.changed,{namespace:e.namespace})}deregisterNamespace(e){this.namespaces.delete(e)&&this.bus.emit(k.namespace.changed,{namespace:e})}getNamespace(e){let t=this.namespaces.get(e);return t?I(t):void 0}onDestroy(){this.namespaces.clear()}},R=class extends Ce{code;suggestions;constructor(e,t,n){super(e),this.code=t,this.suggestions=n}},z=class{deps;constructor(e){this.deps=e}async resolve(e,t){switch(e.kind){case`bare`:return this.resolveBare(e.model);case`qualified`:return this.resolveQualified(e.segment1,e.segment2,e.model)}}async resolveBare(e){let t=await this.deps.resolveDefaultModelTarget(e);switch(t.kind){case`resolved`:return{kind:`adapter`,adapterName:t.target.adapterName,providerConfigId:t.target.providerConfigId,model:t.target.model};case`ambiguous`:throw new R(`Model "${e}" is available via multiple providers. Use a qualified reference to select one.`,`ambiguous-model`,t.matches.map(e=>e.qualifiedName));case`not-found`:throw new R(`Model "${e}" was not found in any enabled adapter's registry.`,`model-not-found`)}}async resolveQualified(e,t,n){return t===void 0?this.resolveQualifiedOneSegment(e,n):this.resolveQualifiedTwoSegments(e,t,n)}async resolveQualifiedTwoSegments(e,t,n){let r=await this.deps.listEnabledAdapterNames();if(!r.includes(e))throw new R(`Adapter "${e}" is not enabled or does not exist.`,`adapter-not-found`);return{kind:`adapter`,adapterName:e,providerConfigId:await this.resolveProviderSegment(t,e,r),model:n}}async resolveQualifiedOneSegment(e,t){let n=await this.deps.listEnabledAdapterNames();if(n.includes(e)){let n=await this.deps.getDefaultBinding(e);if(!n)throw new R(`Adapter "${e}" has no enabled provider binding. Configure or enable a provider binding first.`,`no-binding`);return{kind:`adapter`,adapterName:e,providerConfigId:n.providerConfigId,model:t}}let r=await this.deps.findProviderConfigByName(e);if(r)return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t};let i=await this.deps.findProviderDefinition(e,n);if(i){let r=await this.deps.findDefaultConfigForDefinition(i.id);if(!r)throw new R(`Provider definition "${e}" exists but has no configured provider config. Create a provider config first.`,`provider-not-found`);return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t}}throw new R(`"${e}" does not match any enabled adapter name, provider config name, or provider definition ID.`,`adapter-not-found`)}async resolveProviderSegment(e,t,n){let r=await this.deps.findProviderConfigByName(e);if(r)return await this.requireBindingForAdapterAndConfig(t,r.id,e),r.id;let i=await this.deps.findProviderDefinition(e,n);if(i){let n=await this.deps.findConfigForDefinitionAndAdapter(i.id,t);if(!n)throw new R(`Provider definition "${e}" has no enabled config bound to adapter "${t}". Create a provider config and binding first.`,`no-binding`);return n.id}throw new R(`"${e}" does not match any provider config name or provider definition ID.`,`provider-not-found`)}async requireBindingForAdapterAndConfig(e,t,n){if(!(await this.deps.listBindingsForConfig(t)).some(t=>t.adapterName===e))throw new R(`No binding exists between adapter "${e}" and provider "${n}". Create a binding first.`,`no-binding`)}async pickBindingForConfig(e,t){let n=(await this.deps.listBindingsForConfig(e)).filter(e=>t.includes(e.adapterName));if(n.length===0)throw new R(`Provider config "${e}" has no bindings to enabled adapters. Bind it to an enabled adapter first.`,`no-binding`);return n.find(e=>e.isDefault)??n[0]}},B=class e extends T{constructor(e=_){super(e)}async onInit(){await this.bus.request(p.ensureReady,{});let e=new z(this.createDeps());this.registerHandler(Ee.resolve,async t=>{let n=await e.resolve(t.payload.parsed,t.payload.context);t.setResult(n)})}createDeps(){let e=this.bus,t=async()=>{let{adapters:t}=await e.request(p.listAdapters,{});return t.filter(e=>e.enabled).map(e=>e.name)},n=async t=>{let[n,r]=await Promise.all([e.request(p.getDefaultBinding,{adapterName:t}),this.listEnabledProviderConfigIds()]);if(n.binding&&r.has(n.binding.providerConfigId))return n.binding;let{bindings:i}=await e.request(p.listBindings,{adapterName:t}),a=i.filter(e=>r.has(e.providerConfigId));return a.find(e=>e.isDefault)??a[0]},r=async t=>{let{definitions:n}=await e.request(p.getProviderDefinitionsByAdapter,{adapterName:t});return n},i=async t=>{let{bindings:n}=await e.request(p.listBindingsByConfig,{providerConfigId:t});return n},a=async t=>{let{configs:n}=await e.request(p.listProviderConfigs,{enabled:!0}),r=D(t);return n.find(e=>D(e.name)===r)},o=this.buildFindProviderDefinition(t,r),s=async t=>{let{configs:n}=await e.request(p.listProviderConfigsByDefinition,{definitionId:t}),r=n.filter(e=>e.enabled);return r.find(e=>e.isDefault)??r[0]},c=async(t,n)=>{let{config:r}=await e.request(p.findConfigForDefinitionAndAdapter,{definitionId:t,adapterName:n});return r?{id:r.id}:void 0};return{listEnabledAdapterNames:t,getDefaultBinding:n,findProviderConfigByName:a,findProviderDefinition:o,listBindingsForConfig:i,findDefaultConfigForDefinition:s,findConfigForDefinitionAndAdapter:c,resolveDefaultModelTarget:this.buildResolveDefaultModelTarget(t,r,c)}}buildFindProviderDefinition(e,t){return async(n,r)=>{let i=r??await e();for(let e of i){let r=(await t(e)).find(e=>e.id===n);if(r)return r}}}buildResolveDefaultModelTarget(t,n,r){let i=this.bus;return async a=>{let o=await t(),s=await Promise.all(o.map(async e=>({adapterName:e,definitions:await n(e)}))),c=Array.from(new Set(s.flatMap(({definitions:e})=>e.map(e=>e.id))));if(c.length===0)return{kind:`not-found`};let{matches:l}=await i.request(pe.checkModelInProviders,{providerIds:c,model:a}),u=(await Promise.all(s.map(({adapterName:e,definitions:t})=>this.collectAdapterCandidates(e,t,a,l,r)))).flat();return e.buildResolution(u)}}async collectAdapterCandidates(e,t,n,r,i){let a=t.filter(e=>e.id in r),o=await Promise.all(a.map(t=>i(t.id,e)));return a.flatMap((t,r)=>{let i=o[r];return i?[{adapterName:e,definitionId:t.id,providerConfigId:i.id,qualifiedName:`${e}/${t.id}::${n}`,model:n}]:[]})}static buildResolution(e){let t=Array.from(new Map(e.map(e=>[this.routeKey(e),e])).values());if(t.length===0)return{kind:`not-found`};if(t.length>1)return{kind:`ambiguous`,matches:t.map(({adapterName:e,definitionId:t,qualifiedName:n})=>({adapterName:e,definitionId:t,qualifiedName:n}))};let[n]=t;return{kind:`resolved`,target:{adapterName:n.adapterName,providerConfigId:n.providerConfigId,definitionId:n.definitionId,model:n.model}}}static routeKey(e){return`${e.adapterName}\0${e.definitionId}\0${e.providerConfigId}`}async listEnabledProviderConfigIds(){let{configs:e}=await this.bus.request(p.listProviderConfigs,{enabled:!0});return new Set(e.map(e=>e.id))}};const V={name:`makaio.canonical-model`,displayName:`Canonical Model`,version:`0.1.0`,dependencies:[S(ae)],critical:!1,create:e=>new B(e.bus)};var H=class extends T{definitionsByExtension=new Map;definitionsByKind=new Map;constructor(e){super(e)}onInit(){}onDestroy(){this.definitionsByExtension.clear(),this.definitionsByKind.clear()}register(e,t){let n=this.validateBatch(e,t),r=new Map(this.definitionsByExtension);n.length===0?r.delete(e):r.set(e,n);let i=new Map;for(let e of r.values())for(let t of e)i.set(t.descriptor.kind,t);this.definitionsByExtension=r,this.definitionsByKind=i}deregister(e){this.definitionsByExtension.has(e)&&this.register(e,[])}listDescriptors(){return Array.from(this.definitionsByKind.values(),({descriptor:e})=>structuredClone(e))}async invoke(e,t,n){let r=crypto.randomUUID(),i=this.definitionsByKind.get(e);if(!i)return this.failure(e,r,n.correlationId,`Reaction kind '${e}' is not registered`);if(n.hostSignal?.aborted)return this.failure(e,r,n.correlationId,`Reaction '${e}' host signal already aborted`);let a=Je(n.deadlineEpochMs);if(a!==void 0&&a<=Date.now())return this.failure(e,r,n.correlationId,`Reaction '${e}' deadline already passed`);let o=Ye(n.hostSignal,a),s=Xe(r,o.controller.signal,n);try{let n;try{n=await i.parameterSchema.safeParseAsync(t)}catch(t){return this.failure(e,r,s.correlationId,`Parameter validation for Reaction '${e}' threw: ${g(t)}`,t)}return n.success?(a!==void 0&&U(o.controller,a),o.controller.signal.aborted?this.failure(e,r,s.correlationId,`Reaction '${e}' cancelled before handler entry: ${g(o.controller.signal.reason)}`,o.controller.signal.reason):(await i.handler(n.data,s),{success:!0})):this.failure(e,r,s.correlationId,`Invalid parameters for Reaction '${e}': ${n.error.message}`)}catch(t){return this.logFailure(e,r,s.correlationId,`Reaction '${e}' handler threw`,t),{success:!1,error:{message:g(t)}}}finally{o.release()}}failure(e,t,n,r,i){return this.logFailure(e,t,n,r,i),{success:!1,error:{message:r}}}logFailure(e,t,n,r,i){let a=n===void 0?``:` (correlationId: ${n})`;console.error(`[ReactionRegistry] Reaction '${e}' invocation '${t}' failed${a}: ${r}`,...i===void 0?[]:[i])}validateBatch(e,t){let n=`${e}.`,r=new Set,i=new Set(this.definitionsByExtension.get(e)?.map(e=>e.descriptor.kind)),a=[];for(let o of t){if(!o.kind.startsWith(n)||o.kind.length===n.length)throw Error(`Reaction '${o.kind}' must be namespaced by extension '${n}'`);if(r.has(o.kind))throw Error(`Reaction kind collision: '${o.kind}' appears twice in batch from '${e}'`);if(this.definitionsByKind.has(o.kind)&&!i.has(o.kind))throw Error(`Reaction kind collision: '${o.kind}' is already registered`);r.add(o.kind);let t=Ae.parse(o.toDescriptor());if(t.kind!==o.kind)throw Error(`Reaction descriptor kind '${t.kind}' does not match definition kind '${o.kind}'`);a.push({parameterSchema:o.parameterSchema,handler:o.handler,descriptor:t})}return a}};const qe=()=>{};function Je(e){return e!==void 0&&Number.isFinite(e)?e:void 0}function Ye(e,t){let n=new AbortController;if(e===void 0&&t===void 0)return{controller:n,release:qe};let r=[];if(e){let t=()=>{n.abort(e.reason)};e.addEventListener(`abort`,t,{once:!0}),r.push(()=>{e.removeEventListener(`abort`,t)})}if(t!==void 0){let e,i=()=>{if(U(n,t)){e=void 0;return}let r=t-Date.now();e=setTimeout(i,Math.min(r,2147483647)),e.unref?.()};i(),r.push(()=>{clearTimeout(e)})}return{controller:n,release:()=>{for(let e of r)e()}}}function U(e,t){return t>Date.now()?!1:(e.abort(Error(`Reaction invocation deadline reached (deadlineEpochMs: ${t})`)),!0)}function Xe(e,t,n){return Object.freeze({invocationId:e,ruleRef:n.ruleRef,eventKind:n.eventKind,eventPayload:n.eventPayload,hostContext:n.hostContext,correlationId:n.correlationId,signal:t,deadlineEpochMs:n.deadlineEpochMs})}const W=C(`reaction-registry`),G={name:W.name,displayName:`Reaction Registry`,version:`0.1.0`,critical:!0,create:e=>new H(e.bus)};function Ze(e){let t=Ne({adapterId:e?.adapterId,adapterName:e?.adapterName,contextOverrides:{adapterId:e?.contextOverrides?.adapterId,adapterName:e?.contextOverrides?.adapterName}}),n=t.issues[0];return n?j(A.VALIDATION_FAILED,n.message):Re(t.effectiveIdentity)}function Qe(e){let t=e?.allowedDirectories;if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}async function $e(e,t,n,r){let i=new Map;for(let e of t)i.set(e.name,await r(e.name));let a=t.filter(e=>{let t=i.get(e.name);return!t?.allowedAdapters||t.allowedAdapters.length===0?!0:t.allowedAdapters.includes(n)}),o=new Set(a.map(e=>e.name));return{filteredTools:e.filter(e=>!(!o.has(e.toolsetName)||i.get(e.toolsetName)?.disabledTools?.includes(e.name))),filteredToolsets:a}}function et(){return`exec_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}var tt=class{bus;toolsets=new Map;tools=new Map;cleanupHandlers=[];handlerPriority;policyProvider;fileAccessRuleProvider;revision=0;constructor(e){this.bus=e?.bus??_,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(b.list,async e=>{let{toolsetName:t,adapterId:n,adapterName:r}=e.payload,{tools:i,toolsets:a}=await this.listToolsWithToolsets({toolsetName:t,adapterId:n,adapterName:r});e.setResult({tools:i,toolsets:a})},{priority:this.handlerPriority});this.cleanupHandlers.push(e);let t=this.bus.on(b.execute,async e=>{let{toolName:t,input:n,adapterId:r,adapterName:i,contextOverrides:a}=e.payload,o=await this.execute(t,n,{contextOverrides:a,adapterId:r,adapterName:i});e.setResult(o)},{priority:this.handlerPriority});this.cleanupHandlers.push(t)}async register(e){if(this.toolsets.has(e.metadata.name))throw Error(`Toolset '${e.metadata.name}' is already registered`);let t=[],n=[];for(let[,r]of Object.entries(e.tools)){let i=r.metadata.name;if(this.tools.has(i))throw Error(`Tool '${i}' is already registered (from toolset '${this.tools.get(i).toolsetName}')`);n.push({tool:r,toolsetName:e.metadata.name}),t.push(i)}this.toolsets.set(e.metadata.name,e);for(let e=0;e<n.length;e+=1)this.tools.set(t[e],n[e]);await this.emitRegistryChanged(`toolset-registered`,e.metadata.name).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${b.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(b.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${b.registered.subject} for '${e.metadata.name}':`,t))}async deregister(e){let t=this.toolsets.get(e);if(!t)throw Error(`Toolset '${e}' is not registered`);for(let e of Object.values(t.tools))this.tools.delete(e.metadata.name);this.toolsets.delete(e),await this.emitRegistryChanged(`toolset-unregistered`,e).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${b.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(b.registryChanged,{revision:this.revision,reason:e,toolsetName:t})}async execute(e,t,n){let r=this.tools.get(e);if(!r)return j(A.TOOL_NOT_FOUND,`Tool '${e}' not found`);let i=Ze(n);if(!i.success)return i;let{tool:a,toolsetName:o}=r,s=await this.checkPolicy(o,e,i.data.adapterId,i.data.adapterName);if(s)return s;let c=et(),l=Date.now();await this.bus.emit(b.started,{toolName:e,toolsetName:o,executionId:c,timestamp:l});try{let r=a.inputSchema.safeParse(t);if(!r.success){let t=j(A.VALIDATION_FAILED,`Input validation failed`,{issues:r.error.issues});return await this.bus.emit(b.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:t.error}),t}let s=await this.buildExecutionContext(n,i.data),u=await a.execute(r.data,s);return u.success?await this.bus.emit(b.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(b.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:u.error}),u}catch(t){let n=Le(t);return await this.bus.emit(b.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:n.error}),n}}async buildExecutionContext(e,t){let n=e?.contextOverrides?.constraints;if(this.fileAccessRuleProvider){let t=e?.contextOverrides?.cwd??process.cwd(),r=Qe(n),i=await this.fileAccessRuleProvider(t,r);n={...n,[Ie]:i}}let r=we({...e?.contextOverrides,constraints:n}),i=e?.contextOverrides;return{...r,bus:this.bus,sessionId:i?.sessionId,agentId:i?.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:i?.adapterSessionId,turnId:i?.turnId,turnContext:i?.turnContext,toolCallId:i?.toolCallId}}async checkPolicy(e,t,n,r){if(!this.policyProvider)return null;let i=await this.policyProvider(e);if(!i)return null;if(i.disabledTools?.includes(t))return j(A.PERMISSION_DENIED,`Tool '${t}' is disabled`,{toolsetName:e,toolName:t});if(i.allowedAdapters&&i.allowedAdapters.length>0){let t=r??n;if(!t||!i.allowedAdapters.includes(t))return j(A.PERMISSION_DENIED,`Adapter not allowed for toolset '${e}'`,{toolsetName:e,adapterId:n,adapterName:r,allowedAdapters:i.allowedAdapters})}return null}listTools(e){let t=[];for(let[,n]of this.tools){if(e?.toolsetName&&n.toolsetName!==e.toolsetName)continue;let{$schema:r,...i}=h.toJSONSchema(n.tool.inputSchema);t.push({name:n.tool.metadata.name,description:n.tool.metadata.description,toolsetName:n.toolsetName,annotations:n.tool.metadata.annotations,inputSchema:i})}return t}listToolsets(){let e=[];for(let[,t]of this.toolsets){let n={name:t.metadata.name,description:t.metadata.description,version:t.metadata.version,toolCount:Object.keys(t.tools).length};if(t.configSchema){let{$schema:e,...r}=h.toJSONSchema(t.configSchema);n.configSchema=r}e.push(n)}return e}async listToolsWithToolsets(e){let t=this.listTools(e),n=this.listToolsets(),r=e?.toolsetName?n.filter(t=>t.name===e.toolsetName):n,i=e?.adapterName??e?.adapterId;if(this.policyProvider&&i){let{filteredTools:e,filteredToolsets:n}=await $e(t,r,i,this.policyProvider);return{tools:e,toolsets:n}}return{tools:t,toolsets:r}}getTool(e){return this.tools.get(e)?.tool}getToolset(e){return this.toolsets.get(e)}dispose(){for(let e of this.cleanupHandlers)e();this.cleanupHandlers.length=0}destroy(){this.dispose()}},nt=class extends T{stepsByExtension=new Map;revision=0;cache=null;constructor(e){super(e)}onInit(){this.registerHandler(x.list,e=>{e.setResult({steps:this.listSteps()})})}async register(e,t){let n=[],r=this.snapshotExtensionState(e),i=new Set;for(let e of this.stepsByExtension.values())for(let t of e)i.add(t.metadata.name);for(let r of t.steps??[])this.assertExtensionNamespace(e,r.metadata),this.assertNoCollision(r.metadata,i),i.add(r.metadata.name),n.push({metadata:{...r.metadata,extensionName:e},configSchema:w(r.configSchema),inputSchema:w(r.inputSchema),outputSchema:w(r.outputSchema),runs:structuredClone(r.runs)});if(n.length!==0){this.stepsByExtension.set(e,n),this.revision+=1;try{await this.emitChanged(e,`registered`)}catch(t){throw this.restoreExtensionState(e,r),t}}}async deregister(e){let t=this.snapshotExtensionState(e);if(this.stepsByExtension.delete(e)){this.revision+=1;try{await this.emitChanged(e,`deregistered`)}catch(n){throw this.restoreExtensionState(e,t),n}}}listSteps(){return this.getCache().steps.map(rt)}async emitChanged(e,t){await this.bus.emit(x.changed,{extensionName:e,revision:this.revision,reason:t})}getCache(){return(!this.cache||this.cache.revision!==this.revision)&&(this.cache={revision:this.revision,steps:[...this.stepsByExtension.values()].flat()}),this.cache}snapshotExtensionState(e){return{steps:this.stepsByExtension.get(e),revision:this.revision,cache:this.cache}}restoreExtensionState(e,t){t.steps?this.stepsByExtension.set(e,t.steps):this.stepsByExtension.delete(e),this.revision=t.revision,this.cache=t.cache}assertNoCollision(e,t){if(t.has(e.name))throw Error(`Workflow block name collision: '${e.name}' is already registered`)}assertExtensionNamespace(e,t){let n=`${e}.`;if(!t.name.startsWith(n))throw Error(`Workflow block '${t.name}' must be namespaced by extension '${n}'`)}};function rt(e){return{metadata:it(e.metadata),configSchema:structuredClone(e.configSchema),inputSchema:structuredClone(e.inputSchema),outputSchema:structuredClone(e.outputSchema),runs:structuredClone(e.runs)}}function it(e){return e.categories?{...e,categories:[...e.categories]}:{...e}}const K=`workflow.start`;function at(e){return()=>({async execute(t,n){let{input:r={}}=t,{workflowId:i}=r;if(typeof i!=`string`||i.length===0)throw Error(`[TransitionActionRegistry] 'workflow.start' action requires a non-empty 'input.workflowId' string`);await e.request(Me.start,{workflowId:i,input:ot(r,n),config:r.config,artifactRef:r.artifactRef,scope:r.scope,triggerPayload:{_transitionRuleId:n._transition.ruleId,_transitionDepth:n._transition.depth,_transitionEventType:n._transition.eventType}})}})}function ot(e,t){let n=e.inputExpression;if(typeof n!=`string`)return e.input;let r=Ve(n,st(t)),i=ke.safeParse(r);if(!i.success)throw Error(`[TransitionActionRegistry] 'workflow.start' inputExpression for rule '${t._transition.ruleId}' must resolve to a JSON value`);return i.data}function st(e){let t={...e};return{...t,ctx:t}}var ct=class{factories=new Map;factoriesBySource=new Map;constructor(e){this.factories.set(K,at(e)),this.factoriesBySource.set(`__builtin__`,[K])}register(e,t){let n=Object.keys(t);if(n.length!==0){if(this.factoriesBySource.has(e))throw Error(`TransitionActionRegistry: duplicate source '${e}'`);for(let t of n)if(this.factories.has(t))throw Error(`TransitionActionRegistry: duplicate action type '${t}' from source '${e}'`);for(let e of n)this.factories.set(e,t[e]);this.factoriesBySource.set(e,n)}}deregister(e){if(e===`__builtin__`)return;let t=this.factoriesBySource.get(e);if(t){for(let e of t)this.factories.delete(e);this.factoriesBySource.delete(e)}}async dispatch(e,t){let n=this.factories.get(e.type);if(!n)throw Error(`TransitionActionRegistry: unknown action type '${e.type}'. Registered types: ${[...this.factories.keys()].join(`, `)}`);await n().execute(e,t)}has(e){return this.factories.has(e)}listTypes(){return[...this.factories.keys()]}},lt=class{rulesBySource=new Map;rulesByEventType=new Map;ruleIdSet=new Set;register(e,t){if(t.length===0)return;if(this.rulesBySource.has(e))throw Error(`TransitionRuleRegistry: duplicate source '${e}'`);let n=new Set,r=[];for(let i of t){let t=je.parse(i);if(n.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' within source '${e}'`);if(this.ruleIdSet.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' from source '${e}'`);n.add(t.id),r.push({rule:t,condition:t.when===void 0?void 0:ze.parse(t.when)})}for(let e of r){let{rule:t}=e;this.ruleIdSet.add(t.id);let n=this.rulesByEventType.get(t.on)??[];n.push(e),this.rulesByEventType.set(t.on,n)}this.rulesBySource.set(e,r)}deregister(e){let t=this.rulesBySource.get(e);if(t){for(let{rule:e}of t){this.ruleIdSet.delete(e.id);let t=this.rulesByEventType.get(e.on);if(t){let n=t.filter(t=>t.rule.id!==e.id);n.length>0?this.rulesByEventType.set(e.on,n):this.rulesByEventType.delete(e.on)}}this.rulesBySource.delete(e)}}getRulesForEvent(e){let t=this.rulesByEventType.get(e);return t?t.filter(e=>e.rule.enabled):[]}snapshotSource(e){let t=this.rulesBySource.get(e);if(t)return{ruleIds:t.map(e=>e.rule.id)}}},ut=class extends T{ruleRegistry;actionRegistry;depthMap=new Map;constructor(e){super(e),this.ruleRegistry=new lt,this.actionRegistry=new ct(e)}onInit(){this.registerHandler(v.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(v.revised,async e=>{let t=await this.resolvePreviousRevisedArtifact(e.payload.previous);await this.handleArtifactEvent(`artifact.revised`,{artifact:e.payload.artifact,previous:e.payload.previous,...t===void 0?{}:{previousArtifact:t}})}),this.registerHandler(v.status.changed,async e=>{let t=await this.resolveStatusChangedArtifact(e.payload.artifact);t!==void 0&&await this.handleArtifactEvent(`artifact.status.changed`,{artifact:t,path:e.payload.path,previous:e.payload.previous,current:e.payload.current})})}async handleArtifactEvent(e,t){let n=this.artifactKey(t.artifact),r=this.readDepth(n);if(r>=10){console.warn(`[TransitionPipelineService] Transition depth limit (10) reached for event '${e}' on artifact '${n}'. Loop protection active — skipping rule evaluation.`);return}let i=this.ruleRegistry.getRulesForEvent(e);if(i.length!==0)for(let a of i)await this.evaluateAndDispatch(a,e,t,n,r)}async resolveStatusChangedArtifact(e){let t=await this.bus.requestOptional(v.resolve,{ref:e});if(!t.handled){console.warn(`[TransitionPipelineService] No artifact resolver is registered for status transition on artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}if(t.data.artifact===null){console.warn(`[TransitionPipelineService] Could not resolve status transition artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}return t.data.artifact}async resolvePreviousRevisedArtifact(e){let t=await this.bus.requestOptional(v.resolve,{ref:e});if(!(!t.handled||t.data.artifact===null))return t.data.artifact}async evaluateAndDispatch(e,t,n,r,i){let{rule:a,condition:o}=e,s={...n,_transition:{ruleId:a.id,eventType:t,depth:i+1}};if(o!==void 0){let e={...s},t;try{t=Be(o,e)}catch(e){console.error(`[TransitionPipelineService] Condition evaluation error for rule '${a.id}':`,e);return}if(!t)return}try{await this.actionRegistry.dispatch(a.action,s),a.action.type===`workflow.start`&&this.incrementDepth(r)}catch(e){console.error(`[TransitionPipelineService] Action dispatch error for rule '${a.id}' (action type '${a.action.type}'):`,e)}}artifactKey(e){return`${typeof e.kind==`string`?e.kind:`unknown`}:${typeof e.id==`string`?e.id:`unknown`}`}readDepth(e){let t=this.depthMap.get(e);return t===void 0?0:Date.now()>t.expiresAt?(this.depthMap.delete(e),0):t.count}incrementDepth(e){let t=this.depthMap.get(e);this.depthMap.set(e,{count:t===void 0?1:t.count+1,expiresAt:Date.now()+6e4})}};function dt(e){return async t=>{let n=await ft(e,t);if(!n)return{handled:!1,sessionId:null,clientAccountId:null,changed:!1};let{sessionId:r}=n,{observation:i,accountObserveRequest:a}=pt(t),o=await e.requestOptional(O.account.observe,a);if(!o.handled)return{handled:!1,sessionId:r,clientAccountId:null,changed:!1};let{clientAccountId:s}=o.data;return{handled:!0,sessionId:r,clientAccountId:s,changed:await bt(e,r,i,s)}}}async function ft(e,t){switch(t.locator.kind){case`session`:{let{session:r}=await e.request(n.get,{sessionId:t.locator.sessionId});return r?{sessionId:r.sessionId,session:r}:null}case`adapter-session`:{let{session:r}=await e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId});return r?{sessionId:r.sessionId,session:r}:null}case`both`:{let[{session:r},{session:i}]=await Promise.all([e.request(n.get,{sessionId:t.locator.sessionId}),e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId})]);if(!r&&!i)return null;if(!r||!i)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" must both resolve the same session`);if(r.sessionId!==i.sessionId)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" resolve to different sessions`);return{sessionId:r.sessionId,session:r}}}}function pt(e){let t={clientId:e.clientId,source:e.source,kind:e.kind,observedAt:e.observedAt,payload:vt(e.payload)};return{observation:t,accountObserveRequest:mt(t)}}function mt(e){let t=e.payload,n=ht(t),r=gt(t);if(r.length>0)return{clientId:e.clientId,observedAt:e.observedAt,displayLabel:_t(t,n),identifiers:r};throw Error(`client.session.account.observe for "${e.clientId}" requires canonical client account identifiers`)}function ht(e){return yt(e.accountInfo)??e}function gt(e){let t=e.identifiers;if(!Array.isArray(t))return[];try{return h.array(Pe).min(1).parse(t)}catch(e){throw Error(`client.session.account.observe received malformed canonical client account identifiers`,{cause:e})}}function _t(e,t){return q(e.displayLabel)??q(t.displayLabel)??q(t.email)??q(t.label)}function vt(e){return structuredClone(e)}function yt(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function q(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}async function bt(e,t,r,i){let a=await e.request(n.update,{sessionId:t,clientId:r.clientId,clientAccountId:i,lastClientIdentityObservation:r});if(!a.success)throw Error(`Failed to update session "${t}" with client account linkage`);return a.clientAccountChanged??!1}const xt=C(`session-storage`).name;var St=class extends T{constructor(e=_){super(e)}onInit(){let e=dt(this.bus);this.registerHandler(O.session.account.observe,async t=>{t.setResult(await e(Fe.request.parse(t.payload)))})}};const Ct={name:`makaio.session-client-account-linking`,displayName:`Session Client Account Linking`,version:`0.1.0`,dependencies:[S(xt),S(`makaio.clients-core`)],critical:!1,create:e=>new St(e.bus)},wt={name:`framework-shell`,displayName:`Shell`,version:`0.1.0`,surface:`interactive`,windows:[{id:`main`,style:`utility`,width:1e3,height:700,singleton:!0}]};async function Tt(e){let{harnesses:t}=await e.request(m.list,{}),n=new Set(t.map(e=>e.id));for(let t of De){if(n.has(t.id))continue;let r={...t};await e.request(m.set,{harness:r})}}function J(e,t,n){return e??t??n}var Et=class extends T{static storage={drizzle:ye};constructor(e=_){super(e)}async onInit(){await Tt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(y.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(y.list,async e=>{let{harnesses:t}=await this.bus.request(m.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(y.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(y.delete,async e=>{let{deleted:t}=await this.bus.request(m.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(y.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(y.resolve,async e=>{let{adapterName:t,clientId:n,personaHarnessId:r,profileHarnessId:i}=e.payload;if(r){let i=await this.resolveAndValidateHarness(r,t,`persona`,n);e.setResult(i);return}if(i){let r=await this.resolveAndValidateHarness(i,t,`profile`,n);e.setResult(r);return}let a=await this.getDefaultHarness(t,n);e.setResult(a)}),this.registerHandler(y.getSchema,({setResult:e})=>{let{$schema:t,...n}=h.toJSONSchema(Oe);e({schema:n,uiConfig:{editMode:`fullPage`,hiddenFields:[`isDefault`]}})})}async upsertHarness(e){let t=await this.resolveHarnessId(e.name,e.adapterName,e.clientId),n=await this.loadHarness({id:t,adapterName:e.adapterName,clientId:e.clientId}),r=this.mergeHarnessPayload(t,e,n);return r.adapterName&&await this.validateNativeTools(r.adapterName,r.nativeTools),await this.bus.request(m.set,{harness:r}),t}mergeHarnessPayload(e,t,n){let r={enabled:[],disabled:[]};return{id:e,name:t.name,description:J(t.description,n?.description,void 0),adapterName:t.adapterName,clientId:J(t.clientId,n?.clientId,void 0),env:J(t.env,n?.env,void 0),credentials:J(t.credentials,n?.credentials,void 0),cwd:J(t.cwd,n?.cwd,void 0),approvalPolicy:J(t.approvalPolicy,n?.approvalPolicy,`always-ask`),nativeTools:J(t.nativeTools,n?.nativeTools,r),registryTools:J(t.registryTools,n?.registryTools,r),skills:J(t.skills,n?.skills,void 0),toolCapabilityMap:t.toolCapabilityMap??n?.toolCapabilityMap,capabilityOverrides:t.capabilityOverrides??n?.capabilityOverrides,toolApprovalOverrides:t.toolApprovalOverrides??n?.toolApprovalOverrides,isDefault:J(t.isDefault,n?.isDefault,!1),enabled:J(t.enabled,n?.enabled,!0)}}async resolveHarnessId(e,t,n){let r=n??t,{harnesses:i}=await this.bus.request(m.list,{name:e}),a=i.find(t=>t.name===e&&(t.clientId??t.adapterName)===r);if(a)return a.id;let o=i.find(t=>t.name===e&&(t.clientId??t.adapterName)!==r);if(o){let t=o.clientId?`client '${o.clientId}'`:`adapter '${o.adapterName}'`;throw Error(`Harness "${e}" already exists with scope ${t}; cannot change scope to ${r??`(none)`}`)}return this.createStableHarnessId(e,r)}async loadHarness(e){if(e.id){let{harness:t}=await this.bus.request(m.get,{id:e.id});return t&&(!e.adapterName||t.adapterName===e.adapterName)&&(!e.clientId||t.clientId===e.clientId)?t:null}if(!e.name)return null;let{harnesses:t}=await this.bus.request(m.list,{name:e.name,adapterName:e.adapterName,clientId:e.clientId});return e.clientId?t.find(t=>t.clientId===e.clientId)??null:e.adapterName?t.find(t=>t.adapterName===e.adapterName)??null:t[0]??null}async getDefaultHarness(e,t){if(t){let{harnesses:e}=await this.bus.request(m.list,{clientId:t}),n=e.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=e.find(e=>e.enabled);if(r)return r}if(e){let{harnesses:t}=await this.bus.request(m.list,{adapterName:e}),n=t.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=t.find(e=>e.enabled);if(r)return r}let n=t?e?`client '${t}' or adapter '${e}'`:`client '${t}'`:`adapter '${e}'`;throw Error(`No harness available for ${n}`)}assertHarnessAdapterMatch(e,t,n,r){if(e.adapterName&&t&&e.adapterName!==t)throw Error(`Resolved ${n} harness adapter mismatch: expected "${t}", got "${e.adapterName}"`);if(e.clientId&&r&&e.clientId!==r)throw Error(`Resolved ${n} harness client mismatch: expected "${r}", got "${e.clientId}"`)}assertHarnessEnabled(e,t){if(!e.enabled)throw Error(`Resolved ${t} harness is disabled: ${e.id}`)}async validateNativeTools(e,t){let n=await this.bus.requestOptional(Te.getCapabilities,{adapterName:e});if(!n.handled)return;let r=new Set(n.data.nativeTools),i=[...t.enabled,...t.disabled].filter(e=>!r.has(e));if(i.length>0)throw Error(`Tool '${i[0]}' not found in adapter '${e}' native tools. Declared tools: ${[...r].join(`, `)}`)}createStableHarnessId(e,t){return`harness-${Se(`sha256`).update(`${t??``}\0${e}`).digest(`hex`).slice(0,24)}`}async resolveAndValidateHarness(e,t,n,r){let i=await this.loadHarness({id:e});if(!i)throw Error(`${n===`persona`?`Persona`:`Profile`} harness not found: ${e}`);return this.assertHarnessAdapterMatch(i,t,n,r),this.assertHarnessEnabled(i,n),i}};const Dt={name:`makaio.harness`,displayName:`Harness`,version:`0.1.0`,critical:!0,storage:{registerHandlers:E(ye)},create:e=>new Et(e.bus)},Y=C(`session-storage`),X=C(`session-bridge`),Z=C(`session`),Ot=C(`session-orchestrator`),kt=C(`observed-session-ingestion`),Q=C(`tool-registry`),At=C(`tool-approval`),jt=C(`tray-menu`),Mt=C(`capability`),Nt=C(`model-registry`),Pt=C(`workflow-block-registry`),Ft=C(`transition-pipeline`),It=C(`filesystem`),Lt=C(`git`),Rt=C(`artifact-lifecycle-hook-registry`),zt=C(`facet-namespace-registry`),Bt={name:Rt.name,displayName:`Artifact Lifecycle Hook Registry`,version:`0.1.0`,critical:!0,create:e=>new F(e.bus)},$={name:zt.name,displayName:`Facet Namespace Registry`,version:`0.1.0`,critical:!0,create:e=>new L(e.bus)},Vt={name:Y.name,displayName:`Session Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:E((n,r)=>{let s=[],c=e=>{for(let t=s.length-1;t>=0;--t)try{s[t]?.()}catch(t){console.warn(`[sessionStoragePackage] cleanup failed during ${e}:`,t)}s.length=0};try{s.push(i(n,r)),s.push(t(n,r)),s.push(l(n,r)),s.push(o(n,r)),s.push(e(n,r)),s.push(ne(n,r)),s.push(a(n,r)),s.push(f(n,r)),s.push(d(n,r)),s.push(u(n,r)),s.push(te(n)),s.push(ie(n)),s.push(re(n))}catch(e){throw c(`rollback`),e}return()=>{c(`shutdown`)}})}},Ht={name:X.name,displayName:`Session Bridge`,version:`0.1.0`,dependencies:[S(Y.name)],critical:!0,create:e=>new s(e.bus)},Ut={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[S(X.name)],critical:!0,create:e=>new r(e.bus,{machineId:e.machineId,topology:`shared-machine`})},Wt={name:Ot.name,displayName:`Session Orchestrator`,version:`0.1.0`,dependencies:[S(Z.name),S(V.name)],critical:!0,runtimeOwnership:{sessionOrchestrator:!0},create:e=>new c(e.bus,e.machineId)},Gt={name:kt.name,displayName:`Observed-Session Ingestion`,version:`0.1.0`,dependencies:[S(X.name)],critical:!1,create:e=>new ee(e.bus)},Kt={name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:e=>new tt({bus:e.bus})},qt={name:At.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[S(Q.name)],critical:!0,create:e=>new _e(e.bus)},Jt={name:jt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new ve(e.bus)},Yt={name:Mt.name,displayName:`Capability`,version:`0.1.0`,critical:!0,create:e=>new de(e.bus)},Xt={name:Pt.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new nt(e.bus)},Zt={name:Ft.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new ut(e.bus)},Qt={name:It.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new xe(e.bus,e.machineId)},$t={name:Lt.name,displayName:`Git`,version:`0.1.0`,dependencies:[S(It.name)],critical:!0,create:e=>new He(e.bus)};function en(e){return{name:Nt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new fe({bus:t.bus,fetcher:e})}}const tn=[ue,Bt,$,se,le,oe,ce,Vt,Ht,Ct,Ut,Wt,Gt,be,Kt,qt,Jt,Yt,Dt,V,wt,Xt,G,he,me,ge,Zt,$t,Qt];export{ct as A,R as B,qt as C,Xt as D,Jt as E,G as F,F as H,H as I,V as L,nt as M,tt as N,ut as O,W as P,B as R,Vt as S,Zt as T,M as U,L as V,$ as _,X as a,Wt as b,Z as c,Ft as d,jt as f,en as g,Yt as h,Nt as i,K as j,lt as k,At as l,Bt as m,Mt as n,Ot as o,Pt as p,zt as r,Y as s,Rt as t,Q as u,tn as v,Kt as w,Ut as x,Ht as y,z};