@makaio/framework 1.0.0-dev-1788909333961 → 1.0.0-dev-1788936831433

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 (273) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/artifact-DtmJR46g.mjs +1 -0
  3. package/dist/authority-state-bootstrap-DnwkMieA.mjs +1 -0
  4. package/dist/bus/index.d.mts +20 -20
  5. package/dist/bus/index.mjs +1 -1
  6. package/dist/clients/index.d.mts +1 -1
  7. package/dist/clients/managed-install.d.mts +1 -1
  8. package/dist/code-execution/worker-entry.d.mts +1 -1
  9. package/dist/code-execution-B9wr0b972.mjs +1 -0
  10. package/dist/contracts/adapter/index.d.mts +1 -1
  11. package/dist/contracts/artifact/index.d.mts +3 -3
  12. package/dist/contracts/artifact/index.mjs +1 -1
  13. package/dist/contracts/canonical-model/index.d.mts +1 -1
  14. package/dist/contracts/capabilities/index.d.mts +2 -2
  15. package/dist/contracts/client/index.d.mts +2 -2
  16. package/dist/contracts/code-execution/index.d.mts +1 -1
  17. package/dist/contracts/common/index.d.mts +1 -1
  18. package/dist/contracts/config/index.d.mts +1 -1
  19. package/dist/contracts/extension/index.d.mts +4 -4
  20. package/dist/contracts/extension/index.mjs +1 -1
  21. package/dist/contracts/facet/index.d.mts +1 -1
  22. package/dist/contracts/harness/index.d.mts +1 -1
  23. package/dist/contracts/host/index.d.mts +1 -1
  24. package/dist/contracts/index.d.mts +151 -150
  25. package/dist/contracts/index.mjs +1 -1
  26. package/dist/contracts/materialization/index.d.mts +2 -2
  27. package/dist/contracts/materialization/index.mjs +1 -1
  28. package/dist/contracts/model-registry/index.d.mts +1 -1
  29. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  30. package/dist/contracts/platform/index.d.mts +1 -1
  31. package/dist/contracts/provider/index.d.mts +2 -2
  32. package/dist/contracts/reaction/index.d.mts +1 -1
  33. package/dist/contracts/session/index.d.mts +2 -2
  34. package/dist/contracts/shared/index.d.mts +1 -1
  35. package/dist/contracts/skill/index.d.mts +1 -1
  36. package/dist/contracts/telemetry/index.d.mts +1 -1
  37. package/dist/contracts/timeout/index.d.mts +1 -1
  38. package/dist/contracts/variant/index.d.mts +1 -1
  39. package/dist/contracts/worker/index.d.mts +2 -1
  40. package/dist/contracts/worker/index.mjs +1 -1
  41. package/dist/contracts/workflow/index.d.mts +2 -2
  42. package/dist/contracts/workflow/index.mjs +1 -1
  43. package/dist/{execution-attempt-repository-CF3cWsPo.d.mts → execution-attempt-repository-CJVlPFMM.d.mts} +60 -6
  44. package/dist/{extension-BgUSK5rv.mjs → extension-C1CwxkCN.mjs} +1 -1
  45. package/dist/framework-packages-B3SQPHD7.mjs +1 -0
  46. package/dist/{index-tDCBp28C.d.mts → index-B6Lsx8QD2.d.mts} +346 -346
  47. package/dist/{index-BeplDh91.d.mts → index-BQoiFDct.d.mts} +2023 -468
  48. package/dist/{index-B7VO0gQV.d.mts → index-BV1Btpfc.d.mts} +3 -3
  49. package/dist/{index-BALk4zcu.d.mts → index-BwktKRHX.d.mts} +1 -1
  50. package/dist/{index-VAJBIJUb.d.mts → index-BypDPKtQ.d.mts} +62 -46
  51. package/dist/{index-CZuhTqsX2.d.mts → index-C83rKcaK2.d.mts} +12 -12
  52. package/dist/{index-DI-1HK7v2.d.mts → index-CKjFFP6W2.d.mts} +1 -1
  53. package/dist/{index-B4Wg4W7d.d.mts → index-C_R6ifn9.d.mts} +100 -100
  54. package/dist/{index-BtC1JP5D.d.mts → index-CcgI6r0K.d.mts} +1 -1
  55. package/dist/{index-DlKxbLC9.d.mts → index-CqSdF7rK.d.mts} +2 -2
  56. package/dist/{index-DFsJTTkS.d.mts → index-CuLDybz3.d.mts} +1 -1
  57. package/dist/{index-U0Fe0baO.d.mts → index-CzSoEyWu.d.mts} +10 -10
  58. package/dist/{index-D7j6v0-L.d.mts → index-D3RZEEE3.d.mts} +1 -1
  59. package/dist/{index-CpdRe5df.d.mts → index-DDUi5U4Q.d.mts} +778 -64
  60. package/dist/{index-b_LJnwCU2.d.mts → index-DOkenapA.d.mts} +8 -8
  61. package/dist/{index-BjcJH3I-.d.mts → index-DWU3yzQ-.d.mts} +1 -1
  62. package/dist/{index-OP6Aw5jN.d.mts → index-GNRWZONO.d.mts} +14 -16
  63. package/dist/{index-VCtdvtEk.d.mts → index-J7xYeLwB.d.mts} +337 -337
  64. package/dist/{index-BQv9mUzn.d.mts → index-SDXlgq07.d.mts} +36 -8
  65. package/dist/{index-uv_WSQtw2.d.mts → index-ZGtyv_3n2.d.mts} +161 -49
  66. package/dist/{index-BO_ikAR-.d.mts → index-glwUNat3.d.mts} +10 -10
  67. package/dist/kernel/cli/index.d.mts +2 -2
  68. package/dist/kernel/cli/register.d.mts +1 -1
  69. package/dist/kernel/extension/index.d.mts +1 -1
  70. package/dist/kernel/index.d.mts +5 -5
  71. package/dist/kernel/namespace/index.d.mts +1 -1
  72. package/dist/kernel/observability/index.d.mts +1 -1
  73. package/dist/kernel/providers/index.d.mts +1 -1
  74. package/dist/kernel/window/index.d.mts +1 -1
  75. package/dist/{lib-Ql8RWYOd.mjs → lib-0MqNtDuH.mjs} +4 -4
  76. package/dist/{lib-B8hEa65D.mjs → lib-dlyJT26K.mjs} +1 -1
  77. package/dist/{load-extensions-un9Md47Z.d.mts → load-extensions-DM1PgW4a.d.mts} +1 -1
  78. package/dist/{materialization-CqOHTt92.mjs → materialization-CDemi12q.mjs} +1 -1
  79. package/dist/{namespace-BVQ8Y2Yi.d.mts → namespace-Cjh_Ogen.d.mts} +2 -2
  80. package/dist/{namespace-DELzAyzb.d.mts → namespace-JqvomFSV.d.mts} +152 -152
  81. package/dist/node/bus-server/index.d.mts +1 -1
  82. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  83. package/dist/package-DKfzsJVl.mjs +7 -0
  84. package/dist/{package-DnlJ4I1i.d.mts → package-x2wRhcUt.d.mts} +71 -9
  85. package/dist/package.json +1 -1
  86. package/dist/rules/index.d.mts +1 -1
  87. package/dist/rules/schemas.d.mts +1 -1
  88. package/dist/runtime-inputs-CMjGjK7W.d.mts +23 -0
  89. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  90. package/dist/runtime-node/code-execution/index.mjs +1 -1
  91. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  92. package/dist/runtime-node/extension-validation.d.mts +1 -1
  93. package/dist/runtime-node/index.d.mts +5 -5
  94. package/dist/runtime-node/index.mjs +24 -24
  95. package/dist/runtime-node/makaio-config.d.mts +1 -1
  96. package/dist/runtime-node/workflow-worker/index.d.mts +2 -2
  97. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  98. package/dist/{schemas-B9yLU2jM.d.mts → schemas-B4gxLiTq.d.mts} +211 -79
  99. package/dist/schemas-BahXrOYa.mjs +1 -0
  100. package/dist/{schemas-mGJIRIZ5.d.mts → schemas-DYeS-mtz.d.mts} +152 -152
  101. package/dist/{schemas-BBatvMde.d.mts → schemas-DfSirQM5.d.mts} +2 -2
  102. package/dist/services/adapter-runtime/index.d.mts +3 -3
  103. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  104. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  105. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  106. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  107. package/dist/services/agent-runtime/index.d.mts +2 -2
  108. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  109. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  110. package/dist/services/capability/index.d.mts +2 -2
  111. package/dist/services/code-execution/index.d.mts +1 -1
  112. package/dist/services/codebase/index.d.mts +2 -2
  113. package/dist/services/codebase/namespace.d.mts +1 -1
  114. package/dist/services/codebase/schemas.d.mts +1 -1
  115. package/dist/services/compression/index.d.mts +2 -2
  116. package/dist/services/compression/namespace.d.mts +1 -1
  117. package/dist/services/compression/schemas.d.mts +1 -1
  118. package/dist/services/context-rules/index.d.mts +1 -1
  119. package/dist/services/execution-target/index.d.mts +3 -3
  120. package/dist/services/execution-target/namespace.d.mts +1 -1
  121. package/dist/services/execution-target/schemas.d.mts +1 -1
  122. package/dist/services/filesystem/index.d.mts +1 -1
  123. package/dist/services/filesystem/namespace.d.mts +6 -6
  124. package/dist/services/filesystem/schemas.d.mts +3 -3
  125. package/dist/services/index.d.mts +118 -118
  126. package/dist/services/index.mjs +1 -1
  127. package/dist/services/log-import/browser.d.mts +2 -2
  128. package/dist/services/log-import/index.d.mts +2 -2
  129. package/dist/services/log-import/log-import.d.mts +1 -1
  130. package/dist/services/materialization/index.d.mts +1 -1
  131. package/dist/services/model-registry/index.d.mts +1 -1
  132. package/dist/services/preferences/index.d.mts +2 -2
  133. package/dist/services/preferences/schemas.d.mts +1 -1
  134. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  135. package/dist/services/provider-context/index.d.mts +1 -1
  136. package/dist/services/session/handlers/index.d.mts +1 -1
  137. package/dist/services/session/index.d.mts +9 -9
  138. package/dist/services/session/messages/namespace.d.mts +1 -1
  139. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  140. package/dist/services/session/session-events/namespace.d.mts +1 -1
  141. package/dist/services/session/storage/namespace.d.mts +1 -1
  142. package/dist/services/session/storage/schema.d.mts +1 -1
  143. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  144. package/dist/services/session/turns/namespace.d.mts +1 -1
  145. package/dist/services/session-editor/index.d.mts +1 -1
  146. package/dist/services/settings/index.d.mts +3 -3
  147. package/dist/services/settings/namespace.d.mts +2 -2
  148. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  149. package/dist/services/settings/storage/index.d.mts +3 -3
  150. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  151. package/dist/services/subagent/index.d.mts +1 -1
  152. package/dist/services/subagent-template/index.d.mts +2 -2
  153. package/dist/services/subagent-template/namespace.d.mts +1 -1
  154. package/dist/services/subagent-template/schemas.d.mts +1 -1
  155. package/dist/services/tool-approval/index.d.mts +1 -1
  156. package/dist/services/tools/index.d.mts +1 -1
  157. package/dist/services/tools/index.mjs +1 -1
  158. package/dist/services/tray-menu/index.d.mts +3 -3
  159. package/dist/services/tray-menu/namespace.d.mts +1 -1
  160. package/dist/services/tray-menu/schemas.d.mts +1 -1
  161. package/dist/services/turn/index.d.mts +1 -1
  162. package/dist/services/turn/namespace.d.mts +1 -1
  163. package/dist/services/workflow-transitions/index.d.mts +1 -1
  164. package/dist/services/workflow-transitions/index.mjs +1 -1
  165. package/dist/storage/drizzle/client.d.mts +1 -1
  166. package/dist/storage/drizzle/index.d.mts +1 -1
  167. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  168. package/dist/storage/handlers/index.d.mts +1 -1
  169. package/dist/testing/drizzle-harness.d.mts +8 -0
  170. package/dist/testing/drizzle-harness.mjs +1 -1
  171. package/dist/{tools-BkSFBqUz.mjs → tools-2INrWlnS.mjs} +1 -1
  172. package/dist/{transition-BbfxZ4U1.d.mts → transition-DXfTmVSx.d.mts} +1 -1
  173. package/dist/{types-CXwFtEIF.d.mts → types-B4u8kNdt.d.mts} +327 -327
  174. package/dist/{types-CR415CdC2.d.mts → types-FNVbwd7z2.d.mts} +1 -1
  175. package/dist/ui-kernel/index.d.mts +1 -1
  176. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  177. package/dist/{view-builder-CJtK5hgs.d.mts → view-builder-DU_WTiuk.d.mts} +1 -1
  178. package/dist/{worker-VBlgozIo.mjs → worker-Bn0x5MSH.mjs} +1 -1
  179. package/dist/workflow-B6C3Pf66.mjs +1 -0
  180. package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
  181. package/dist/workflow-engine/index.d.mts +44 -42
  182. package/dist/workflow-engine/index.mjs +1 -1
  183. package/dist/workflow-engine/package.d.mts +1 -1
  184. package/dist/workflow-engine/package.mjs +1 -1
  185. package/dist/workflow-engine/provider-operation.d.mts +2 -2
  186. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  187. package/dist/workflow-engine/testing/conformance.mjs +1 -1
  188. package/dist/workflow-engine/testing/index.d.mts +3 -1
  189. package/dist/workflow-engine/testing/index.mjs +1 -1
  190. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  191. package/dist/workflow-engine/testing/sqlite.mjs +13 -3
  192. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  193. package/dist/{workflow-transitions-Cuo6s9uv.mjs → workflow-transitions-BbhM_zPm.mjs} +1 -1
  194. package/dist/workflow-worker-Db7EBUgh.mjs +2 -0
  195. package/package.json +1 -1
  196. package/dist/artifact-BjqkK0KX.mjs +0 -1
  197. package/dist/authority-state-bootstrap-8VGt4vD2.mjs +0 -1
  198. package/dist/code-execution-BsiB7ZeZ2.mjs +0 -1
  199. package/dist/framework-packages-CxWecyPW.mjs +0 -1
  200. package/dist/package-BwIbyojG.mjs +0 -7
  201. package/dist/schemas-0eCrrru1.mjs +0 -1
  202. package/dist/workflow-svpU9Cig.mjs +0 -1
  203. package/dist/workflow-worker-7AA-u1uC.mjs +0 -2
  204. /package/dist/{capability-service-CsWaOwvH.d.mts → capability-service-23Ot2J9A.d.mts} +0 -0
  205. /package/dist/{client-DP4ksY9q.d.mts → client-BwFqO0cG.d.mts} +0 -0
  206. /package/dist/{client-binary-version-verifier-BoXRTyae.d.mts → client-binary-version-verifier-DySlUy9m.d.mts} +0 -0
  207. /package/dist/{clients-namespace-BVDmj8uV.d.mts → clients-namespace-Dh0SNZcQ.d.mts} +0 -0
  208. /package/dist/{config-namespace-BMOKEuyf.d.mts → config-namespace-CZqPIAWt.d.mts} +0 -0
  209. /package/dist/{definition-ByVJ3n6o.d.mts → definition-D3HjoK-4.d.mts} +0 -0
  210. /package/dist/{extension-discovery-C0Nj5EVZ.d.mts → extension-discovery-CZkaPQBo.d.mts} +0 -0
  211. /package/dist/{filesystem-service-C6D7oABi.d.mts → filesystem-service-UYYyRL2y.d.mts} +0 -0
  212. /package/dist/{hook-responses-Cs8A07ZP.d.mts → hook-responses-chgDiS8D.d.mts} +0 -0
  213. /package/dist/{index-CNOqYviR.d.mts → index-6wmqw_ng.d.mts} +0 -0
  214. /package/dist/{index-BrRCVo9r.d.mts → index-B5kqAW7h.d.mts} +0 -0
  215. /package/dist/{index-DxaQ-ceV.d.mts → index-B6Kq1BtL.d.mts} +0 -0
  216. /package/dist/{index-BR7IiCib.d.mts → index-BCKhrNLC.d.mts} +0 -0
  217. /package/dist/{index-HRn0Kun0.d.mts → index-BU8uFswE.d.mts} +0 -0
  218. /package/dist/{index-fzrPfhS0.d.mts → index-BjELPYLF2.d.mts} +0 -0
  219. /package/dist/{index-B_VcKELo.d.mts → index-BrelUXBT.d.mts} +0 -0
  220. /package/dist/{index-BgY_UzH82.d.mts → index-BtPZcp4M2.d.mts} +0 -0
  221. /package/dist/{index-BGWkmG9i.d.mts → index-Bxs-oIo4.d.mts} +0 -0
  222. /package/dist/{index-BpWoCe22.d.mts → index-C-6g2xzN.d.mts} +0 -0
  223. /package/dist/{index-BHZlMm_I.d.mts → index-C6eJrtTA.d.mts} +0 -0
  224. /package/dist/{index-DrwT45ci2.d.mts → index-CBnCXp1R2.d.mts} +0 -0
  225. /package/dist/{index-Bpv8EpBa.d.mts → index-CDeN0mdC.d.mts} +0 -0
  226. /package/dist/{index-_Ngf4KAa.d.mts → index-CU_HMaeC.d.mts} +0 -0
  227. /package/dist/{index-CIV2G6uX2.d.mts → index-CYUhTE552.d.mts} +0 -0
  228. /package/dist/{index-CKvOECeR.d.mts → index-CuPq_ap8.d.mts} +0 -0
  229. /package/dist/{index-D6qlh6Td.d.mts → index-DB4Xggtt.d.mts} +0 -0
  230. /package/dist/{index-DZv9yNKF2.d.mts → index-DGlSbpgS2.d.mts} +0 -0
  231. /package/dist/{index-BnLp-7qH.d.mts → index-DNp9DP6W.d.mts} +0 -0
  232. /package/dist/{index-BbjxBrcp2.d.mts → index-DQbcfjIb2.d.mts} +0 -0
  233. /package/dist/{index-DOKPbF-y2.d.mts → index-DX_2kGSg.d.mts} +0 -0
  234. /package/dist/{index-IkeLI7uY.d.mts → index-DbYjMWlj.d.mts} +0 -0
  235. /package/dist/{index-CHuB40EK.d.mts → index-DcG3r0VL.d.mts} +0 -0
  236. /package/dist/{index-ByJ2NESC.d.mts → index-DlOp5nH0.d.mts} +0 -0
  237. /package/dist/{index-DLlTuugR.d.mts → index-LsZNB_gb.d.mts} +0 -0
  238. /package/dist/{index-CSEhxhIc.d.mts → index-SIP-fI28.d.mts} +0 -0
  239. /package/dist/{index-B7g7e7_f.d.mts → index-zvoiT54b.d.mts} +0 -0
  240. /package/dist/{kind-registration-T--B1wiI.mjs → kind-registration-DggkrLkv.mjs} +0 -0
  241. /package/dist/{namespace-CcHA54E1.d.mts → namespace-69c5HXtL.d.mts} +0 -0
  242. /package/dist/{namespace-DdcRYk7b.d.mts → namespace-B7fMkHmy.d.mts} +0 -0
  243. /package/dist/{namespace-DyeMWQKf.d.mts → namespace-BQ7eiQwr.d.mts} +0 -0
  244. /package/dist/{namespace-thsiHTFH.d.mts → namespace-BXkDQ9nn.d.mts} +0 -0
  245. /package/dist/{namespace-CQaL10rI.d.mts → namespace-BoOLmi67.d.mts} +0 -0
  246. /package/dist/{namespace-Ct2DKREI.d.mts → namespace-CBf5xG_A.d.mts} +0 -0
  247. /package/dist/{namespace-sTMm1voF.d.mts → namespace-CIF_1OWi.d.mts} +0 -0
  248. /package/dist/{namespace-nE7vRctI.d.mts → namespace-CUXZS_Ia.d.mts} +0 -0
  249. /package/dist/{namespace-Ciyw6FxO.d.mts → namespace-DAW4OY3-.d.mts} +0 -0
  250. /package/dist/{namespace-BocL2nn7.d.mts → namespace-DAbT1F_n.d.mts} +0 -0
  251. /package/dist/{namespace-BlH5BeSq.d.mts → namespace-DCmkW_25.d.mts} +0 -0
  252. /package/dist/{namespace-DtXYm32M.d.mts → namespace-De25c2ds.d.mts} +0 -0
  253. /package/dist/{orchestrator-shared-CYnIz5Zd.d.mts → orchestrator-shared-BRNZ6it3.d.mts} +0 -0
  254. /package/dist/{packages-DtsjAYuf.d.mts → packages-BSVxszLf.d.mts} +0 -0
  255. /package/dist/{providers-namespace-BxknJ03z.d.mts → providers-namespace-DcPil5uz.d.mts} +0 -0
  256. /package/dist/{schema-CJfSEZ8X.d.mts → schema-DIgKUfuF.d.mts} +0 -0
  257. /package/dist/{schemas-DQ5iRisA.d.mts → schemas-Bg2fBMPN.d.mts} +0 -0
  258. /package/dist/{schemas-0VbIjfrW.d.mts → schemas-CM3Ejp-n.d.mts} +0 -0
  259. /package/dist/{schemas-BfMFZ6J5.d.mts → schemas-COnD70WD.d.mts} +0 -0
  260. /package/dist/{schemas-CsRcSlvA2.d.mts → schemas-DTyZjKQf2.d.mts} +0 -0
  261. /package/dist/{schemas-KDl7p-wr.d.mts → schemas-Ge_bamoP.d.mts} +0 -0
  262. /package/dist/{schemas-Yp3PvwsM.d.mts → schemas-NwKrrrPF.d.mts} +0 -0
  263. /package/dist/{schemas-CmUWeOkr.d.mts → schemas-Vv0GtBaZ.d.mts} +0 -0
  264. /package/dist/{schemas-Djt6hIjz.d.mts → schemas-eA76OYo2.d.mts} +0 -0
  265. /package/dist/{schemas-DzDVjYjt.d.mts → schemas-qbaSxHDL.d.mts} +0 -0
  266. /package/dist/{server-lifecycle-Ck6_8o8v.d.mts → server-lifecycle-BPAN-b0i.d.mts} +0 -0
  267. /package/dist/{storage-namespace-CRdQoXZ9.d.mts → storage-namespace-C9oFExfb.d.mts} +0 -0
  268. /package/dist/{storage-namespace-definition-NBw1Y8Pa.d.mts → storage-namespace-definition-D6soSjKE.d.mts} +0 -0
  269. /package/dist/{types-CXrp5ldz.d.mts → types-BOsf2SVm.d.mts} +0 -0
  270. /package/dist/{types-CUCFeisO.d.mts → types-BZnJ_4e2.d.mts} +0 -0
  271. /package/dist/{types-BFv-EK2G.d.mts → types-CWgYlxjU.d.mts} +0 -0
  272. /package/dist/{types-BcGXdeva.d.mts → types-DZvkUmHS.d.mts} +0 -0
  273. /package/dist/{window-registry-Chi2qJ5k.d.mts → window-registry-Bvjvpwhn.d.mts} +0 -0
@@ -488,6 +488,28 @@ interface InitialProviderOperationClaimContext {
488
488
  /** ISO-8601 deadline for the initial lease, per host lease policy. */
489
489
  readonly leaseExpiresAt: string;
490
490
  }
491
+ /**
492
+ * Host policy for renewing one live provider-operation claim.
493
+ *
494
+ * The policy supplies time only. The Authority remains the sole writer of the
495
+ * durable claim, so a host cannot turn a local timer into a second ownership
496
+ * protocol.
497
+ */
498
+ interface ProviderOperationLeasePolicy {
499
+ /**
500
+ * State the next requested lease deadline and when local custody must renew.
501
+ * @param claim - Current durable claim whose lease is still held locally.
502
+ * @returns Next durable deadline and the host-chosen delay before renewal.
503
+ */
504
+ nextRenewal(claim: ProviderOperationClaim): ProviderOperationLeaseRenewal;
505
+ }
506
+ /** Host-selected schedule for one claim renewal. */
507
+ interface ProviderOperationLeaseRenewal {
508
+ /** ISO-8601 deadline requested from the durable Authority on renewal. */
509
+ readonly leaseExpiresAt: string;
510
+ /** Positive delay in milliseconds after which local custody must renew. */
511
+ readonly renewAfterMs: number;
512
+ }
491
513
  /**
492
514
  * Host seam that produces the initial claim context for an attempt.
493
515
  *
@@ -496,7 +518,7 @@ interface InitialProviderOperationClaimContext {
496
518
  * duration: a hidden default would silently attach remediation authority to
497
519
  * an anonymous owner.
498
520
  */
499
- interface InitialProviderOperationClaimContextSource {
521
+ interface InitialProviderOperationClaimContextSource extends ProviderOperationLeasePolicy {
500
522
  /**
501
523
  * Produce the initial claim context for one attempt about to be provisioned.
502
524
  * @param input - Execution, attempt, and provider the claim is being created for.
@@ -676,7 +698,8 @@ declare const ATTEMPT_OPERATION_START_GATES: readonly ["open", "closed"];
676
698
  * guard.
677
699
  * - `closed`: the attempt will never admit another operation. Closing is
678
700
  * one-way and happens exactly where the attempt stops being a place work may
679
- * begin — when a newer attempt supersedes it, and when it settles.
701
+ * begin — when a newer attempt supersedes it, when cancellation is requested,
702
+ * and when it settles.
680
703
  */
681
704
  type AttemptOperationStartGate = (typeof ATTEMPT_OPERATION_START_GATES)[number];
682
705
  /** Coherent durable facts required before an attempt may enter runtime registration. */
@@ -724,6 +747,20 @@ declare function sameAllocationRef(stored: ProviderAllocationRef, candidate: Pro
724
747
  * workflow-storage lookup keys keep plain `string`.
725
748
  */
726
749
  type ExecutionOwnerId = string;
750
+ /** A durable request to stop an attempt, never evidence that it stopped. */
751
+ interface ExecutionAttemptCancellationIntent {
752
+ /** First accepted request time, preserved across duplicate requests and controller handoff. */
753
+ readonly requestedAt: string;
754
+ /** Optional owner-supplied explanation. */
755
+ readonly reason?: string;
756
+ }
757
+ /** Owner-scoped cancellation of attempts that exist when the request commits. */
758
+ interface RequestExecutionCancellationInput {
759
+ /** Owner authorizing the cancellation of its existing attempts. */
760
+ readonly executionId: ExecutionOwnerId;
761
+ /** Explanation retained only when this is the first request for an attempt. */
762
+ readonly reason?: string;
763
+ }
727
764
  /**
728
765
  * Compare two durable outcome texts as values.
729
766
  *
@@ -973,8 +1010,8 @@ interface AttemptControlState {
973
1010
  * Whether the attempt still admits operations.
974
1011
  *
975
1012
  * `open` from creation. Closed by {@link ExecutionAttemptRepository.createAttempt}
976
- * on the attempt it supersedes, and by every terminal settlement on the
977
- * attempt it settles. Closing is one-way.
1013
+ * on the attempt it supersedes, by an owner cancellation request, and by every
1014
+ * terminal settlement on the attempt it settles. Closing is one-way.
978
1015
  */
979
1016
  readonly operationStartGate: AttemptOperationStartGate;
980
1017
  /**
@@ -1453,7 +1490,8 @@ interface MarkRuntimeReadyInput {
1453
1490
  * - `allocated`: an allocation is already recorded for this attempt.
1454
1491
  * - `resolved`: the attempt has settled, so it cannot begin provisioning.
1455
1492
  * - `fenced`: the attempt exists but is no longer the active attempt for its
1456
- * execution, so it may not bootstrap a new provider call.
1493
+ * execution, or its operation start gate is closed by cancellation, so it
1494
+ * may not bootstrap a new provider call.
1457
1495
  * - `not-found`: no such attempt for the given execution.
1458
1496
  */
1459
1497
  type ProvisioningClaimDecision = {
@@ -1996,6 +2034,22 @@ type RuntimeReadinessDecision = {
1996
2034
  * @typeParam TOutcome - Owner-specific outcome type committed per attempt.
1997
2035
  */
1998
2036
  interface ExecutionAttemptRepository<TOutcome> extends OwnerRequestRecoveryRepository<TOutcome> {
2037
+ /**
2038
+ * Persist first-wins cancellation intent and close operation start gates atomically
2039
+ * for every existing attempt of this owner, including historical allocations.
2040
+ * This does not settle an attempt or confirm provider termination. The owner must
2041
+ * prevent later attempts after cancellation; this port does not install a permanent
2042
+ * owner-wide creation fence. Repeated requests preserve the first time and reason.
2043
+ * @param input - Owner identity and optional explanation, snapshotted before awaiting.
2044
+ */
2045
+ requestCancellation(input: RequestExecutionCancellationInput): Promise<void>;
2046
+ /**
2047
+ * Read replayable cancellation intent independently of controller ownership.
2048
+ * Intent is never cleared merely because a controller delivered a cancel call.
2049
+ * @param executionAttemptId - Attempt whose provider control is being adopted.
2050
+ * @returns First accepted intent, or null when absent (including an unknown attempt).
2051
+ */
2052
+ readCancellation(executionAttemptId: string): Promise<ExecutionAttemptCancellationIntent | null>;
1999
2053
  /**
2000
2054
  * Persist a new execution attempt record.
2001
2055
  *
@@ -2549,4 +2603,4 @@ interface ExecutionAttemptRecoveryOperations {
2549
2603
  listOpenProviderOperations(input: ListOpenProviderOperationsInput): Promise<readonly OpenProviderOperationRecord[]>;
2550
2604
  }
2551
2605
  //#endregion
2552
- export { sameAllocationRef as $, OperationAdmissionDecision as A, AttemptSettlementRead as At, RecordInfrastructureFailureInput as B, snapshotReadAttemptSettlementInput as Bt, ExecutionAttemptRepository as C, ProviderOperationOwnershipRecord as Ct, GetInstructionInput as D, RenewProviderOperationClaimInput as Dt, ExecutionOwnerId as E, RecordProviderOperationUncertaintyInput as Et, PreparationReceipt as F, ReadAttemptSettlementInput as Ft, ReportOperationInput as G, RecordProvisioningAbsentInput as H, ProvisioningClaimDecision as I, readAttemptSettlementSnapshot as It, RuntimeReadinessDecision as J, RuntimeOutcomeFence as K, ReadBootstrapStartStateInput as L, replayEnsuredAttempt as Lt, OperationReportDecision as M, EnsureExecutionAttemptDecision as Mt, OutcomeCodec as N, EnsureExecutionAttemptInput as Nt, InfrastructureFailureDecision as O, TakeOverProviderOperationInput as Ot, PendingAttemptAbandonmentDecision as P, EnsureExecutionAttemptPersistenceInput as Pt, durableOutcome as Q, RecordAllocationInput as R, snapshotEnsureExecutionAttemptInput as Rt, ExecutionAttemptRecoveryOperations as S, ProviderOperationObligation as St, ExecutionAttemptStatus as T, ProvisioningAbsenceDecision as Tt, RecoverableAttemptRecord as U, RecordProvisionerIncarnationLostInput as V, RegisterRuntimeInput as W, assertRuntimeOutcomeFence as X, RuntimeRegistrationDecision as Y, decodeDurableOutcome as Z, EXECUTION_ATTEMPT_STATUSES as _, ProcessBoundProvisionerLossProof as _t, AllocationRefEvolutionDecision as a, evaluateOperationCompletion as at, ExecutionAttemptOutcomeDecision as b, ProviderOperationCompletionDecision as bt, AttemptExecutionState as c, evaluateRuntimeReadiness as ct, BootstrapStartState as d, HandoffProviderOperationInput as dt, sameDurableOutcome as et, CompleteOperationInput as f, InitialProviderOperationClaimContext as ft, EXECUTION_ATTEMPT_SETTLEMENT_KINDS as g, PROVIDER_OPERATION_OBLIGATIONS as gt, DurableOutcome as h, OpenProviderOperationRecord as ht, AllocationRefEvolution as i, evaluateOperationAdmission as it, OperationCompletionDecision as j, AttemptSettlementSnapshot as jt, MarkRuntimeReadyInput as k, isProviderOperationResolved as kt, AttemptOperationStartGate as l, evaluateRuntimeRegistration as lt, DuplicateExecutionAttemptError as m, ListOpenProviderOperationsInput as mt, AdmitOperationInput as n, AttemptReachabilityDecision as nt, AllocationTerminationDecision as o, evaluatePreparationReport as ot, DiscoveredAllocationDecision as p, InitialProviderOperationClaimContextSource as pt, RuntimeOutcomeFenceMismatchError as q, AllocationRecordingDecision as r, evaluateAttemptReachability as rt, AttemptControlState as s, evaluateProvisionerIncarnationLoss as st, ATTEMPT_OPERATION_START_GATES as t, AttemptReachability as tt, BeginProvisioningInput as u, CompleteProviderOperationInput as ut, ExecutionAttemptCreate as v, ProviderOperationClaim as vt, ExecutionAttemptSettlementKind as w, ProvisionerIncarnationLossDecision as wt, ExecutionAttemptRecord as x, ProviderOperationMutationDecision as xt, ExecutionAttemptOutcomeCommit as y, ProviderOperationClaimDecision as yt, RecordAllocationTerminatedInput as z, snapshotEnsureExecutionAttemptPersistenceInput as zt };
2606
+ export { decodeDurableOutcome as $, MarkRuntimeReadyInput as A, RecordProviderOperationUncertaintyInput as At, RecordAllocationTerminatedInput as B, readAttemptSettlementSnapshot as Bt, ExecutionAttemptRecoveryOperations as C, ProviderOperationLeasePolicy as Ct, ExecutionOwnerId as D, ProviderOperationOwnershipRecord as Dt, ExecutionAttemptStatus as E, ProviderOperationObligation as Et, PendingAttemptAbandonmentDecision as F, AttemptSettlementSnapshot as Ft, RegisterRuntimeInput as G, RecordProvisionerIncarnationLostInput as H, snapshotEnsureExecutionAttemptInput as Ht, PreparationReceipt as I, EnsureExecutionAttemptDecision as It, RuntimeOutcomeFence as J, ReportOperationInput as K, ProvisioningClaimDecision as L, EnsureExecutionAttemptInput as Lt, OperationCompletionDecision as M, TakeOverProviderOperationInput as Mt, OperationReportDecision as N, isProviderOperationResolved as Nt, GetInstructionInput as O, ProvisionerIncarnationLossDecision as Ot, OutcomeCodec as P, AttemptSettlementRead as Pt, assertRuntimeOutcomeFence as Q, ReadBootstrapStartStateInput as R, EnsureExecutionAttemptPersistenceInput as Rt, ExecutionAttemptRecord as S, ProviderOperationCompletionDecision as St, ExecutionAttemptSettlementKind as T, ProviderOperationMutationDecision as Tt, RecordProvisioningAbsentInput as U, snapshotEnsureExecutionAttemptPersistenceInput as Ut, RecordInfrastructureFailureInput as V, replayEnsuredAttempt as Vt, RecoverableAttemptRecord as W, snapshotReadAttemptSettlementInput as Wt, RuntimeReadinessDecision as X, RuntimeOutcomeFenceMismatchError as Y, RuntimeRegistrationDecision as Z, EXECUTION_ATTEMPT_STATUSES as _, OpenProviderOperationRecord as _t, AllocationRefEvolutionDecision as a, evaluateAttemptReachability as at, ExecutionAttemptOutcomeCommit as b, ProviderOperationClaim as bt, AttemptExecutionState as c, evaluatePreparationReport as ct, BootstrapStartState as d, evaluateRuntimeRegistration as dt, durableOutcome as et, CompleteOperationInput as f, CompleteProviderOperationInput as ft, EXECUTION_ATTEMPT_SETTLEMENT_KINDS as g, ListOpenProviderOperationsInput as gt, DurableOutcome as h, InitialProviderOperationClaimContextSource as ht, AllocationRefEvolution as i, AttemptReachabilityDecision as it, OperationAdmissionDecision as j, RenewProviderOperationClaimInput as jt, InfrastructureFailureDecision as k, ProvisioningAbsenceDecision as kt, AttemptOperationStartGate as l, evaluateProvisionerIncarnationLoss as lt, DuplicateExecutionAttemptError as m, InitialProviderOperationClaimContext as mt, AdmitOperationInput as n, sameDurableOutcome as nt, AllocationTerminationDecision as o, evaluateOperationAdmission as ot, DiscoveredAllocationDecision as p, HandoffProviderOperationInput as pt, RequestExecutionCancellationInput as q, AllocationRecordingDecision as r, AttemptReachability as rt, AttemptControlState as s, evaluateOperationCompletion as st, ATTEMPT_OPERATION_START_GATES as t, sameAllocationRef as tt, BeginProvisioningInput as u, evaluateRuntimeReadiness as ut, ExecutionAttemptCancellationIntent as v, PROVIDER_OPERATION_OBLIGATIONS as vt, ExecutionAttemptRepository as w, ProviderOperationLeaseRenewal as wt, ExecutionAttemptOutcomeDecision as x, ProviderOperationClaimDecision as xt, ExecutionAttemptCreate as y, ProcessBoundProvisionerLossProof as yt, RecordAllocationInput as z, ReadAttemptSettlementInput as zt };
@@ -1 +1 @@
1
- import{c as e}from"./kind-registration-T--B1wiI.mjs";import{n as t}from"./definition-YGj42UeO.mjs";import{n,t as r}from"./version-3xWJDCeF.mjs";import{z as i}from"zod";const a=i.object({entrypoint:i.string().startsWith(`/`,{message:`Entrypoint must be a URL path starting with "/"`})}),o=i.object({endpoint:i.string().url().optional()}),s=i.union([t,i.object({anthropic:o.optional(),openai:o.optional()}).refine(e=>Object.keys(e).length>0,{message:`ProtocolRef config object must specify at least one protocol`})]),c=i.object({id:i.string().min(1),version:n,binaryVersion:n.optional()}),l=i.object({name:i.string().min(1),displayName:i.string().min(1).optional(),description:i.string().optional(),clients:i.array(c).readonly().optional(),protocols:i.array(s).readonly(),defaultProvider:i.string().min(1).optional()}),u=i.object({id:i.string().min(1),name:i.string().min(1),description:i.string().optional(),binary:i.object({name:i.string().min(1),managed:i.boolean().optional(),version:r.optional()}).strict().refine(e=>e.managed!==!0||e.version!==void 0,{message:`binary.version is required when binary.managed is true`,path:[`version`]}).refine(e=>e.version===void 0||e.managed===!0,{message:`binary.managed must be true when binary.version is provided`,path:[`managed`]}).optional()}).strict(),d=i.object({id:i.string().min(1),name:i.string().min(1),description:i.string().optional()}),f=i.object({prefix:i.string().min(1),description:i.string().optional(),stage:i.enum([`gather`,`transform`,`action`]).optional()}),p=i.object({adapterName:i.string().min(1),displayName:i.string().min(1),logFilePattern:i.string().min(1).optional()}),m=i.object({id:i.string().min(1),label:i.string().min(1),description:i.string().optional(),icon:i.string().min(1).optional(),selectionMode:i.enum([`single`,`multi`]),messageRoles:i.array(i.enum([`user`,`assistant`])).readonly().optional()}),h=i.enum([`beforeCreate`,`beforeRevise`,`afterCreate`,`afterRevise`,`afterStatusChanged`,`afterObservationAdded`]),g=i.object({id:i.string().min(1),event:h,kind:i.string().min(1).optional(),schemaVersion:e.optional()}),_=i.object({tiles:i.boolean().optional(),widgets:i.boolean().optional(),pages:i.boolean().optional(),routes:i.boolean().optional()}),v={adapters:`adapter`,clients:`client`,providers:`provider`,hashTriggers:`hash trigger`,logImporters:`log importer`,sessionEventActions:`session event action`,artifactLifecycleHooks:`artifact lifecycle hook`};function y(e,t,n){e.addIssue({code:i.ZodIssueCode.custom,path:[t],message:`Duplicate ${v[t]} contribution identifier "${n}"`})}function b(e,t){let n=new Set,r=new Set,i=[];for(let a of e??[]){let e=t(a);if(n.has(e)){r.has(e)||(r.add(e),i.push(e));continue}n.add(e)}return i}const x=i.object({adapters:i.array(l).readonly().optional(),clients:i.array(u).readonly().optional(),providers:i.array(d).readonly().optional(),hashTriggers:i.array(f).readonly().optional(),logImporters:i.array(p).readonly().optional(),sessionEventActions:i.array(m).readonly().optional(),artifactLifecycleHooks:i.array(g).readonly().optional(),create:i.boolean().optional(),tools:i.boolean().optional(),bootstrap:i.boolean().optional(),namespace:i.boolean().optional(),configSchema:i.boolean().optional(),uiConfig:i.boolean().optional(),ui:_.optional()}).strict().superRefine((e,t)=>{for(let n of b(e.adapters,e=>e.name))y(t,`adapters`,n);for(let n of b(e.clients,e=>e.id))y(t,`clients`,n);for(let n of b(e.providers,e=>e.id))y(t,`providers`,n);for(let n of b(e.hashTriggers,e=>e.prefix))y(t,`hashTriggers`,n);for(let n of b(e.logImporters,e=>e.adapterName))y(t,`logImporters`,n);for(let n of b(e.sessionEventActions,e=>e.id))y(t,`sessionEventActions`,n);for(let n of b(e.artifactLifecycleHooks,e=>e.id))y(t,`artifactLifecycleHooks`,n)}),S=i.string().trim().min(1).transform(e=>e),C=i.object({name:i.string().min(1),required:i.boolean().optional()}),w=i.object({id:i.string(),style:i.enum([`tray-popover`,`utility`,`panel`]),width:i.number().optional(),height:i.number().optional(),singleton:i.boolean().optional(),params:i.array(C).readonly().optional()}).superRefine((e,t)=>{let n=new Set;for(let[r,a]of e.params?.entries()??[]){if(!n.has(a.name)){n.add(a.name);continue}t.addIssue({code:i.ZodIssueCode.custom,message:`Duplicate window param "${a.name}"`,path:[`params`,r,`name`]})}}),T=i.object({label:i.string(),section:i.enum([`utilities`,`tools`,`views`]).optional(),opensWindow:i.string().optional(),action:i.string().optional()}),E=i.object({name:i.string().min(1),description:i.string(),required:i.boolean().optional(),positional:i.boolean().optional(),short:i.string().regex(/^-[A-Za-z0-9]$/,`Expected a short flag like -p`).optional(),type:i.enum([`string`,`boolean`,`number`]).optional()}),D=i.object({name:i.string().min(1),description:i.string(),args:i.array(E).readonly().optional()}),O=i.object({name:i.string().min(1),description:i.string(),subcommands:i.array(D).readonly().optional(),hasInteractive:i.boolean().optional(),canProvideBus:i.boolean().optional()}),k=[`sqlite`,`postgres`];function A(e){if(e!==void 0)return typeof e==`string`?e:e.sqlite??Object.values(e).find(e=>e!==void 0)}function j(e){if(e===void 0)return[];if(typeof e==`string`)return[e];let t=new Set;for(let n of Object.values(e))n!==void 0&&t.add(n);return[...t]}const M=i.string().min(1).refine(e=>!/^(?:[\\/]|[A-Za-z]:)/.test(e),`Expected a relative path`).refine(e=>!e.split(/[\\/]/).some(e=>e===``||e===`.`||e===`..`),`Path must not contain empty or dot segments`),N=i.object({migrations:i.union([M,i.object({sqlite:M.optional(),postgres:M.optional()}).strict().refine(e=>Object.values(e).some(e=>e!==void 0),`Per-dialect storage.migrations must declare at least one chain`)]).optional(),migrationSourceId:i.string().min(1).optional()}),P=i.object({type:i.literal(`extension`),name:i.string().min(1),version:n,optional:i.boolean().optional()});function F(e,t=`>=0.1.0`,n){return n===void 0?{type:`extension`,name:e,version:t}:{type:`extension`,name:e,version:t,optional:n}}const I=i.discriminatedUnion(`type`,[i.object({type:i.literal(`host`),id:i.string().min(1)}),i.object({type:i.literal(`capability`),id:i.string().min(1),version:n.optional()})]),L=i.object({name:i.string().min(1).regex(/^(@[^/\\]+\/)?[^/\\]+$/,`Extension name must be a plain identifier or an npm-scoped name (@scope/pkg)`).refine(e=>(e.startsWith(`@`)?e.split(`/`):[e]).every(e=>e!==`.`&&e!==`..`),`Extension name must not be a dot-segment`),displayName:i.string().min(1),version:r,surface:i.enum([`interactive`,`headless`,`any`]).optional(),dependencies:i.array(P).readonly().optional(),requires:i.array(I).readonly().optional(),provides:i.array(S).readonly().optional(),windows:i.array(w).readonly().optional(),tray:T.optional(),cli:O.optional(),storage:N.optional(),browser:a.optional(),contributions:x.optional()});function R(e){return Object.freeze({name:e})}const z=i.object({command:i.string().min(1),args:i.array(i.string()).optional(),env:i.record(i.string(),i.string()).optional(),healthTimeoutMs:i.number().int().positive().optional(),shutdownTimeoutMs:i.number().int().positive().optional()}),B=i.enum([`none`,`on-crash`,`always`]),V=z.extend({restartPolicy:B.optional()}),H=i.discriminatedUnion(`type`,[V.extend({type:i.literal(`bus-stdio`)}),V.extend({type:i.literal(`bus-websocket`)}),z.extend({type:i.literal(`mcp-stdio`)})]);function U(e){if(e.includes(`\\`)||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`/`))return!1;let t=e.split(`/`),n=t.at(-1);return!n||n.includes(`.`)?!1:t.every(e=>e!==``&&e!==`.`&&e!==`..`&&e!==`src`&&e!==`dist`)}const W=i.union([i.literal(!0),i.string().min(1).refine(U,{message:`entrypoint stem must use forward-slash path stems, must not contain empty, . or .. segments, must not include a dotted final segment, and must not contain src or dist segments`})]),G=i.object({server:W.optional(),browser:W.optional(),cli:W.optional()}).refine(e=>e.server!==void 0||e.browser!==void 0||e.cli!==void 0,{message:`at least one entrypoint must be declared`});function K(e){return e.execution===`detached`}const q=L.extend({version:r,makaio:i.object({framework:n}).strict().readonly(),entrypoints:G.optional(),execution:i.enum([`embedded`,`detached`]).optional(),transport:H.optional(),prebundleDependencies:i.array(i.string().regex(/\S/,`prebundleDependencies entries must not be blank`)).readonly().optional(),config:i.object({defaults:i.record(i.string(),i.unknown()).optional()}).optional()}).superRefine((e,t)=>{e.prebundleDependencies!==void 0&&e.entrypoints?.browser===void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`prebundleDependencies requires a browser entrypoint`,path:[`prebundleDependencies`]}),e.execution===`detached`?(e.transport===void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`detached extensions must declare a 'transport' config`,path:[`transport`]}),e.entrypoints!==void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`detached extensions must not declare entrypoints`,path:[`entrypoints`]})):(e.entrypoints===void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`embedded extensions must declare at least one entrypoint`,path:[`entrypoints`]}),e.transport!==void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`embedded extensions must not declare a transport config`,path:[`transport`]}))});function J(e){return e}function Y(e){return J(q.parse(e))}function X(e){let t=q.safeParse(e);return t.success?{success:!0,data:J(t.data)}:t}const Z=i.discriminatedUnion(`kind`,[i.object({kind:i.literal(`configure-integration`),clientId:i.string().min(1),bundle:i.string().min(1)}),i.object({kind:i.literal(`install-extension`),extensionName:i.string().min(1)}),i.object({kind:i.literal(`open-url`),url:i.string().url()}),i.object({kind:i.literal(`run-command`),command:i.string().min(1)})]),Q=i.enum([`info`,`recommended`,`degraded`]),$=i.object({severity:Q,title:i.string().min(1),message:i.string().min(1),action:Z.optional()});function ee(e){switch(e.kind){case`configure-integration`:return`Configure`;case`install-extension`:return`Install`;case`open-url`:return`Open`;case`run-command`:return`Run`}}const te=i.object({extensionName:i.string().min(1),warnings:i.array($)});function ne(e,t){return e.parse(t??{})}function re(e){return JSON.stringify([e.extensionId,e.type,e.name,e.filename])}export{c as A,d as B,T as C,F as D,j as E,x as F,_ as H,f as I,p as L,h as M,g as N,A as O,u as P,o as R,N as S,C as T,a as U,m as V,D as _,$ as a,I as b,H as c,K as d,Y as f,O as g,E as h,te as i,l as j,S as k,q as l,R as m,ne as n,Q as o,X as p,Z as r,ee as s,re as t,G as u,P as v,w,k as x,L as y,s as z};
1
+ import{c as e}from"./kind-registration-DggkrLkv.mjs";import{n as t}from"./definition-YGj42UeO.mjs";import{n,t as r}from"./version-3xWJDCeF.mjs";import{z as i}from"zod";const a=i.object({entrypoint:i.string().startsWith(`/`,{message:`Entrypoint must be a URL path starting with "/"`})}),o=i.object({endpoint:i.string().url().optional()}),s=i.union([t,i.object({anthropic:o.optional(),openai:o.optional()}).refine(e=>Object.keys(e).length>0,{message:`ProtocolRef config object must specify at least one protocol`})]),c=i.object({id:i.string().min(1),version:n,binaryVersion:n.optional()}),l=i.object({name:i.string().min(1),displayName:i.string().min(1).optional(),description:i.string().optional(),clients:i.array(c).readonly().optional(),protocols:i.array(s).readonly(),defaultProvider:i.string().min(1).optional()}),u=i.object({id:i.string().min(1),name:i.string().min(1),description:i.string().optional(),binary:i.object({name:i.string().min(1),managed:i.boolean().optional(),version:r.optional()}).strict().refine(e=>e.managed!==!0||e.version!==void 0,{message:`binary.version is required when binary.managed is true`,path:[`version`]}).refine(e=>e.version===void 0||e.managed===!0,{message:`binary.managed must be true when binary.version is provided`,path:[`managed`]}).optional()}).strict(),d=i.object({id:i.string().min(1),name:i.string().min(1),description:i.string().optional()}),f=i.object({prefix:i.string().min(1),description:i.string().optional(),stage:i.enum([`gather`,`transform`,`action`]).optional()}),p=i.object({adapterName:i.string().min(1),displayName:i.string().min(1),logFilePattern:i.string().min(1).optional()}),m=i.object({id:i.string().min(1),label:i.string().min(1),description:i.string().optional(),icon:i.string().min(1).optional(),selectionMode:i.enum([`single`,`multi`]),messageRoles:i.array(i.enum([`user`,`assistant`])).readonly().optional()}),h=i.enum([`beforeCreate`,`beforeRevise`,`afterCreate`,`afterRevise`,`afterStatusChanged`,`afterObservationAdded`]),g=i.object({id:i.string().min(1),event:h,kind:i.string().min(1).optional(),schemaVersion:e.optional()}),_=i.object({tiles:i.boolean().optional(),widgets:i.boolean().optional(),pages:i.boolean().optional(),routes:i.boolean().optional()}),v={adapters:`adapter`,clients:`client`,providers:`provider`,hashTriggers:`hash trigger`,logImporters:`log importer`,sessionEventActions:`session event action`,artifactLifecycleHooks:`artifact lifecycle hook`};function y(e,t,n){e.addIssue({code:i.ZodIssueCode.custom,path:[t],message:`Duplicate ${v[t]} contribution identifier "${n}"`})}function b(e,t){let n=new Set,r=new Set,i=[];for(let a of e??[]){let e=t(a);if(n.has(e)){r.has(e)||(r.add(e),i.push(e));continue}n.add(e)}return i}const x=i.object({adapters:i.array(l).readonly().optional(),clients:i.array(u).readonly().optional(),providers:i.array(d).readonly().optional(),hashTriggers:i.array(f).readonly().optional(),logImporters:i.array(p).readonly().optional(),sessionEventActions:i.array(m).readonly().optional(),artifactLifecycleHooks:i.array(g).readonly().optional(),create:i.boolean().optional(),tools:i.boolean().optional(),bootstrap:i.boolean().optional(),namespace:i.boolean().optional(),configSchema:i.boolean().optional(),uiConfig:i.boolean().optional(),ui:_.optional()}).strict().superRefine((e,t)=>{for(let n of b(e.adapters,e=>e.name))y(t,`adapters`,n);for(let n of b(e.clients,e=>e.id))y(t,`clients`,n);for(let n of b(e.providers,e=>e.id))y(t,`providers`,n);for(let n of b(e.hashTriggers,e=>e.prefix))y(t,`hashTriggers`,n);for(let n of b(e.logImporters,e=>e.adapterName))y(t,`logImporters`,n);for(let n of b(e.sessionEventActions,e=>e.id))y(t,`sessionEventActions`,n);for(let n of b(e.artifactLifecycleHooks,e=>e.id))y(t,`artifactLifecycleHooks`,n)}),S=i.string().trim().min(1).transform(e=>e),C=i.object({name:i.string().min(1),required:i.boolean().optional()}),w=i.object({id:i.string(),style:i.enum([`tray-popover`,`utility`,`panel`]),width:i.number().optional(),height:i.number().optional(),singleton:i.boolean().optional(),params:i.array(C).readonly().optional()}).superRefine((e,t)=>{let n=new Set;for(let[r,a]of e.params?.entries()??[]){if(!n.has(a.name)){n.add(a.name);continue}t.addIssue({code:i.ZodIssueCode.custom,message:`Duplicate window param "${a.name}"`,path:[`params`,r,`name`]})}}),T=i.object({label:i.string(),section:i.enum([`utilities`,`tools`,`views`]).optional(),opensWindow:i.string().optional(),action:i.string().optional()}),E=i.object({name:i.string().min(1),description:i.string(),required:i.boolean().optional(),positional:i.boolean().optional(),short:i.string().regex(/^-[A-Za-z0-9]$/,`Expected a short flag like -p`).optional(),type:i.enum([`string`,`boolean`,`number`]).optional()}),D=i.object({name:i.string().min(1),description:i.string(),args:i.array(E).readonly().optional()}),O=i.object({name:i.string().min(1),description:i.string(),subcommands:i.array(D).readonly().optional(),hasInteractive:i.boolean().optional(),canProvideBus:i.boolean().optional()}),k=[`sqlite`,`postgres`];function A(e){if(e!==void 0)return typeof e==`string`?e:e.sqlite??Object.values(e).find(e=>e!==void 0)}function j(e){if(e===void 0)return[];if(typeof e==`string`)return[e];let t=new Set;for(let n of Object.values(e))n!==void 0&&t.add(n);return[...t]}const M=i.string().min(1).refine(e=>!/^(?:[\\/]|[A-Za-z]:)/.test(e),`Expected a relative path`).refine(e=>!e.split(/[\\/]/).some(e=>e===``||e===`.`||e===`..`),`Path must not contain empty or dot segments`),N=i.object({migrations:i.union([M,i.object({sqlite:M.optional(),postgres:M.optional()}).strict().refine(e=>Object.values(e).some(e=>e!==void 0),`Per-dialect storage.migrations must declare at least one chain`)]).optional(),migrationSourceId:i.string().min(1).optional()}),P=i.object({type:i.literal(`extension`),name:i.string().min(1),version:n,optional:i.boolean().optional()});function F(e,t=`>=0.1.0`,n){return n===void 0?{type:`extension`,name:e,version:t}:{type:`extension`,name:e,version:t,optional:n}}const I=i.discriminatedUnion(`type`,[i.object({type:i.literal(`host`),id:i.string().min(1)}),i.object({type:i.literal(`capability`),id:i.string().min(1),version:n.optional()})]),L=i.object({name:i.string().min(1).regex(/^(@[^/\\]+\/)?[^/\\]+$/,`Extension name must be a plain identifier or an npm-scoped name (@scope/pkg)`).refine(e=>(e.startsWith(`@`)?e.split(`/`):[e]).every(e=>e!==`.`&&e!==`..`),`Extension name must not be a dot-segment`),displayName:i.string().min(1),version:r,surface:i.enum([`interactive`,`headless`,`any`]).optional(),dependencies:i.array(P).readonly().optional(),requires:i.array(I).readonly().optional(),provides:i.array(S).readonly().optional(),windows:i.array(w).readonly().optional(),tray:T.optional(),cli:O.optional(),storage:N.optional(),browser:a.optional(),contributions:x.optional()});function R(e){return Object.freeze({name:e})}const z=i.object({command:i.string().min(1),args:i.array(i.string()).optional(),env:i.record(i.string(),i.string()).optional(),healthTimeoutMs:i.number().int().positive().optional(),shutdownTimeoutMs:i.number().int().positive().optional()}),B=i.enum([`none`,`on-crash`,`always`]),V=z.extend({restartPolicy:B.optional()}),H=i.discriminatedUnion(`type`,[V.extend({type:i.literal(`bus-stdio`)}),V.extend({type:i.literal(`bus-websocket`)}),z.extend({type:i.literal(`mcp-stdio`)})]);function U(e){if(e.includes(`\\`)||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`/`))return!1;let t=e.split(`/`),n=t.at(-1);return!n||n.includes(`.`)?!1:t.every(e=>e!==``&&e!==`.`&&e!==`..`&&e!==`src`&&e!==`dist`)}const W=i.union([i.literal(!0),i.string().min(1).refine(U,{message:`entrypoint stem must use forward-slash path stems, must not contain empty, . or .. segments, must not include a dotted final segment, and must not contain src or dist segments`})]),G=i.object({server:W.optional(),browser:W.optional(),cli:W.optional()}).refine(e=>e.server!==void 0||e.browser!==void 0||e.cli!==void 0,{message:`at least one entrypoint must be declared`});function K(e){return e.execution===`detached`}const q=L.extend({version:r,makaio:i.object({framework:n}).strict().readonly(),entrypoints:G.optional(),execution:i.enum([`embedded`,`detached`]).optional(),transport:H.optional(),prebundleDependencies:i.array(i.string().regex(/\S/,`prebundleDependencies entries must not be blank`)).readonly().optional(),config:i.object({defaults:i.record(i.string(),i.unknown()).optional()}).optional()}).superRefine((e,t)=>{e.prebundleDependencies!==void 0&&e.entrypoints?.browser===void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`prebundleDependencies requires a browser entrypoint`,path:[`prebundleDependencies`]}),e.execution===`detached`?(e.transport===void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`detached extensions must declare a 'transport' config`,path:[`transport`]}),e.entrypoints!==void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`detached extensions must not declare entrypoints`,path:[`entrypoints`]})):(e.entrypoints===void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`embedded extensions must declare at least one entrypoint`,path:[`entrypoints`]}),e.transport!==void 0&&t.addIssue({code:i.ZodIssueCode.custom,message:`embedded extensions must not declare a transport config`,path:[`transport`]}))});function J(e){return e}function Y(e){return J(q.parse(e))}function X(e){let t=q.safeParse(e);return t.success?{success:!0,data:J(t.data)}:t}const Z=i.discriminatedUnion(`kind`,[i.object({kind:i.literal(`configure-integration`),clientId:i.string().min(1),bundle:i.string().min(1)}),i.object({kind:i.literal(`install-extension`),extensionName:i.string().min(1)}),i.object({kind:i.literal(`open-url`),url:i.string().url()}),i.object({kind:i.literal(`run-command`),command:i.string().min(1)})]),Q=i.enum([`info`,`recommended`,`degraded`]),$=i.object({severity:Q,title:i.string().min(1),message:i.string().min(1),action:Z.optional()});function ee(e){switch(e.kind){case`configure-integration`:return`Configure`;case`install-extension`:return`Install`;case`open-url`:return`Open`;case`run-command`:return`Run`}}const te=i.object({extensionName:i.string().min(1),warnings:i.array($)});function ne(e,t){return e.parse(t??{})}function re(e){return JSON.stringify([e.extensionId,e.type,e.name,e.filename])}export{c as A,d as B,T as C,F as D,j as E,x as F,_ as H,f as I,p as L,h as M,g as N,A as O,u as P,o as R,N as S,C as T,a as U,m as V,D as _,$ as a,I as b,H as c,K as d,Y as f,O as g,E as h,te as i,l as j,S as k,q as l,R as m,ne as n,Q as o,X as p,Z as r,ee as s,re as t,G as u,P as v,w,k as x,L as y,s as z};
@@ -0,0 +1 @@
1
+ import{wt as e,x as t}from"./handlers-CBbFzDHc.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{E as r,I as i,J as a,N as o,U as s,a as c,b as l,c as u,d,et as ee,i as te,k as ne,n as re,nt as ie,r as ae}from"./session-BDFNAcuY.mjs";import{r as f,t as oe}from"./namespace-BFlSY040.mjs";import{_ as se,a as ce,c as le,o as ue,s as de}from"./packages-7CsXP86g.mjs";import{n as fe}from"./package-D4eLGGv4.mjs";import"./services/adapter-subsystem/index.mjs";import{i as pe,s as me}from"./model-registry-DlUErRRt.mjs";import{d as he,f as ge,n as _e}from"./package-BUSXHPOT.mjs";import{t as ve}from"./tool-approval-service-rpV94znP.mjs";import{t as ye}from"./tray-menu-service-TWrmvXSo.mjs";import{r as p,t as be}from"./handler-BYQPNm8O.mjs";import{r as xe}from"./package-BiZ6ehWk.mjs";import{t as Se}from"./filesystem-service-yB8KhUGz.mjs";import{z as m}from"zod";import{createHash as Ce}from"node:crypto";import{getErrorString as h}from"@makaio/framework/utils";import{MakaioError as we,createMakaioContext as Te}from"@makaio/framework/core";import{MakaioBus as g}from"@makaio/framework/bus";import{AdapterSubjects as Ee,ArtifactSubjects as _,CanonicalModelSubjects as De,DEFAULT_HARNESSES as Oe,HarnessDefinitionCreateSchema as ke,HarnessSubjects as v,JsonValueSchema as Ae,ReactionDescriptorSchema as je,ToolSubjects as y,TransitionRuleDefinitionSchema as Me,WorkflowBlocksSubjects as b,WorkflowSubjects as Ne,dep as x,extensionToken as S,validateToolAdapterIdentity as Pe,zodSchemaToJsonRecord as C}from"@makaio/framework/contracts";import{BaseService as w}from"@makaio/framework/service-base";import{registerDrizzleHandlers as T}from"@makaio/framework/storage/drizzle";import{slugifyProviderConfigName as E}from"@makaio/framework/contracts/config";import{ClientAccountIdentifierSchema as Fe,ClientSessionAccountObserveSchema as Ie,ClientSubjects as D}from"@makaio/framework/contracts/client";import{FacetSubjects as O}from"@makaio/framework/contracts/facet";import{FILE_ACCESS_RULES_KEY as Le,ToolErrorCodes as k,errorToToolResult as Re,toolError as A,toolSuccess as ze}from"@makaio/framework/tools";import{ConditionSchema as Be,evaluate as Ve}from"@makaio/framework/rules";import{evaluateSync as He}from"@makaio/framework/expression";import{GitService as Ue}from"@makaio/framework/git";var j=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 M(e,t){return e?!(e.kind!==void 0&&e.kind!==`*`&&e.kind!==t.kind||e.schemaVersion!==void 0&&e.schemaVersion!==t.schemaVersion):!0}function N(e){return e.priority??0}function We(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ge(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ke(e,t){return{...e,...`data`in t?{data:t.data}:{},...`relations`in t?{relations:t.relations}:{},...`evidence`in t?{evidence:t.evidence}:{},...`confidence`in t?{confidence:t.confidence}:{},...`representations`in t?{representations:t.representations}:{},...`actor`in t?{actor:t.actor}:{}}}function qe(e,t){let{evidence:n,confidence:r,representations:i,...a}=e;return{...a,data:t.data,relations:[...t.relations],...t.evidence===void 0?{}:{evidence:t.evidence},...t.confidence===void 0?{}:{confidence:t.confidence},...t.representations===void 0?{}:{representations:t.representations},actor:t.actor}}var P=class extends w{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=We(this.allHooks(),e,n),o=new Map,s={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,data:n.data,relations:n.relations,...n.evidence===void 0?{}:{evidence:n.evidence},...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=Ke(s,e)}};if(await t.handler(a),n)throw new j(n.reason,t.id)}return{draft:qe(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,skipDefaultProjection:s,meta:c}=n,l=Ge(this.allHooks(),e,r),u=this.bus,d=!1;for(let n of l){if(s&&(n.priority??0)<0||d&&(n.priority??0)<0)continue;let l={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,bus:u,meta:c,preventDefault(){d=!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 u.request(_.resolve,{ref:e});r&&n.push(r)}}return n}};try{await n.handler(l)}catch(t){console.error(`[ArtifactLifecycleHookRegistry] Hook '${n.id}' threw during '${e}':`,t)}}}};function F(e){return structuredClone(e)}var I=class extends w{namespaces=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(O.namespace.register,e=>{this.registerNamespace(e.payload),e.setResult({registered:!0})}),this.registerHandler(O.namespace.list,e=>{let{namespace:t}=e.payload,n=[...this.namespaces.values()].filter(e=>!t||e.namespace===t).map(F);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,F(e)),this.bus.emit(O.namespace.changed,{namespace:e.namespace})}deregisterNamespace(e){this.namespaces.delete(e)&&this.bus.emit(O.namespace.changed,{namespace:e})}getNamespace(e){let t=this.namespaces.get(e);return t?F(t):void 0}onDestroy(){this.namespaces.clear()}},L=class extends we{code;suggestions;constructor(e,t,n){super(e),this.code=t,this.suggestions=n}},R=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 L(`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 L(`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 L(`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 L(`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 L(`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 L(`"${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 L(`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 L(`"${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 L(`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 L(`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]}},z=class e extends w{constructor(e=g){super(e)}async onInit(){await this.bus.request(f.ensureReady,{});let e=new R(this.createDeps());this.registerHandler(De.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(f.listAdapters,{});return t.filter(e=>e.enabled).map(e=>e.name)},n=async t=>{let[n,r]=await Promise.all([e.request(f.getDefaultBinding,{adapterName:t}),this.listEnabledProviderConfigIds()]);if(n.binding&&r.has(n.binding.providerConfigId))return n.binding;let{bindings:i}=await e.request(f.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(f.getProviderDefinitionsByAdapter,{adapterName:t});return n},i=async t=>{let{bindings:n}=await e.request(f.listBindingsByConfig,{providerConfigId:t});return n},a=async t=>{let{configs:n}=await e.request(f.listProviderConfigs,{enabled:!0}),r=E(t);return n.find(e=>E(e.name)===r)},o=this.buildFindProviderDefinition(t,r),s=async t=>{let{configs:n}=await e.request(f.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(f.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(me.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(f.listProviderConfigs,{enabled:!0});return new Set(e.map(e=>e.id))}};const B={name:`makaio.canonical-model`,displayName:`Canonical Model`,version:`0.1.0`,dependencies:[x(oe)],critical:!1,create:e=>new z(e.bus)};var V=class extends w{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=Ye(n.deadlineEpochMs);if(a!==void 0&&a<=Date.now())return this.failure(e,r,n.correlationId,`Reaction '${e}' deadline already passed`);let o=Xe(n.hostSignal,a),s=Ze(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: ${h(t)}`,t)}return n.success?(a!==void 0&&H(o.controller,a),o.controller.signal.aborted?this.failure(e,r,s.correlationId,`Reaction '${e}' cancelled before handler entry: ${h(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:h(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=je.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 Je=()=>{};function Ye(e){return e!==void 0&&Number.isFinite(e)?e:void 0}function Xe(e,t){let n=new AbortController;if(e===void 0&&t===void 0)return{controller:n,release:Je};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(H(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 H(e,t){return t>Date.now()?!1:(e.abort(Error(`Reaction invocation deadline reached (deadlineEpochMs: ${t})`)),!0)}function Ze(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 U=S(`reaction-registry`),W={name:U.name,displayName:`Reaction Registry`,version:`0.1.0`,critical:!0,create:e=>new V(e.bus)};function Qe(e){let t=Pe({adapterId:e?.adapterId,adapterName:e?.adapterName,contextOverrides:{adapterId:e?.contextOverrides?.adapterId,adapterName:e?.contextOverrides?.adapterName}}),n=t.issues[0];return n?A(k.VALIDATION_FAILED,n.message):ze(t.effectiveIdentity)}function $e(e){let t=e?.allowedDirectories;if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}async function et(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 tt(){return`exec_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}var G=class{bus;toolsets=new Map;tools=new Map;cleanupHandlers=[];handlerPriority;policyProvider;fileAccessRuleProvider;revision=0;constructor(e){this.bus=e?.bus??g,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(y.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(y.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 ${y.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(y.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${y.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 ${y.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(y.registryChanged,{revision:this.revision,reason:e,toolsetName:t})}async execute(e,t,n){let r=this.tools.get(e);if(!r)return A(k.TOOL_NOT_FOUND,`Tool '${e}' not found`);let i=Qe(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=tt(),l=Date.now();await this.bus.emit(y.started,{toolName:e,toolsetName:o,executionId:c,timestamp:l});try{let r=a.inputSchema.safeParse(t);if(!r.success){let t=A(k.VALIDATION_FAILED,`Input validation failed`,{issues:r.error.issues});return await this.bus.emit(y.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(y.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(y.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:u.error}),u}catch(t){let n=Re(t);return await this.bus.emit(y.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=$e(n),i=await this.fileAccessRuleProvider(t,r);n={...n,[Le]:i}}let r=Te({...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 A(k.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 A(k.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}=m.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}=m.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 et(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 w{stepsByExtension=new Map;revision=0;cache=null;constructor(e){super(e)}onInit(){this.registerHandler(b.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:C(r.configSchema),inputSchema:C(r.inputSchema),outputSchema:C(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(b.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(Ne.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=He(n,st(t)),i=Ae.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=Me.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:Be.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 w{ruleRegistry;actionRegistry;depthMap=new Map;constructor(e){super(e),this.ruleRegistry=new lt,this.actionRegistry=new ct(e)}onInit(){this.registerHandler(_.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(_.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(_.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(_.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(_.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=Ve(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(D.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 m.array(Fe).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=S(`session-storage`).name;var St=class extends w{constructor(e=g){super(e)}onInit(){let e=dt(this.bus);this.registerHandler(D.session.account.observe,async t=>{t.setResult(await e(Ie.request.parse(t.payload)))})}};const Ct={name:`makaio.session-client-account-linking`,displayName:`Session Client Account Linking`,version:`0.1.0`,dependencies:[x(xt),x(`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(p.list,{}),n=new Set(t.map(e=>e.id));for(let t of Oe){if(n.has(t.id))continue;let r={...t};await e.request(p.set,{harness:r})}}function J(e,t,n){return e??t??n}var Et=class extends w{static storage={drizzle:be};constructor(e=g){super(e)}async onInit(){await Tt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(v.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(v.list,async e=>{let{harnesses:t}=await this.bus.request(p.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(v.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(v.delete,async e=>{let{deleted:t}=await this.bus.request(p.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(v.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(v.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(v.getSchema,({setResult:e})=>{let{$schema:t,...n}=m.toJSONSchema(ke);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(p.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(p.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(p.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(p.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(p.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(p.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(Ee.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-${Ce(`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:T(be)},create:e=>new Et(e.bus)},Y=S(`session-storage`),X=S(`session-bridge`),Z=S(`session`),Ot=S(`session-orchestrator`),kt=S(`observed-session-ingestion`),Q=S(`tool-registry`),At=S(`tool-approval`),jt=S(`tray-menu`),Mt=S(`model-registry`),Nt=S(`workflow-block-registry`),Pt=S(`transition-pipeline`),Ft=S(`filesystem`),It=S(`git`),Lt=S(`artifact-lifecycle-hook-registry`),Rt=S(`facet-namespace-registry`),zt={name:Lt.name,displayName:`Artifact Lifecycle Hook Registry`,version:`0.1.0`,critical:!0,create:e=>new P(e.bus)},Bt={name:Rt.name,displayName:`Facet Namespace Registry`,version:`0.1.0`,critical:!0,create:e=>new I(e.bus)},$={name:Y.name,displayName:`Session Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T((n,i)=>{let s=[],d=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(ne(n,i)),s.push(e(n,i)),s.push(ee(n,i)),s.push(a(n,i)),s.push(t(n,i)),s.push(o(n,i)),s.push(r(n,i)),s.push(u(n,i)),s.push(l(n,i)),s.push(c(n,i)),s.push(te(n)),s.push(ae(n)),s.push(re(n))}catch(e){throw d(`rollback`),e}return()=>{d(`shutdown`)}})}},Vt={name:X.name,displayName:`Session Bridge`,version:`0.1.0`,dependencies:[x(Y.name)],critical:!0,create:e=>new i(e.bus)},Ht={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[x(X.name)],critical:!0,create:e=>new ie(e.bus,{machineId:e.machineId,topology:`shared-machine`})},Ut={name:Ot.name,displayName:`Session Orchestrator`,version:`0.1.0`,dependencies:[x(Z.name),x(B.name)],critical:!0,runtimeOwnership:{sessionOrchestrator:!0},create:e=>new s(e.bus,e.machineId)},Wt={name:kt.name,displayName:`Observed-Session Ingestion`,version:`0.1.0`,dependencies:[x(X.name)],critical:!1,create:e=>new d(e.bus)},Gt={name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:e=>new G({bus:e.bus})},Kt={name:At.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[x(Q.name)],critical:!0,create:e=>new ve(e.bus)},qt={name:jt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new ye(e.bus)},Jt={name:Nt.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new nt(e.bus)},Yt={name:Pt.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new ut(e.bus)},Xt={name:Ft.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new Se(e.bus,e.machineId)},Zt={name:It.name,displayName:`Git`,version:`0.1.0`,dependencies:[x(Ft.name)],critical:!0,create:e=>new Ue(e.bus)};function Qt(e){return{name:Mt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new pe({bus:t.bus,fetcher:e})}}const $t=[se,zt,Bt,le,de,ce,ue,$,Vt,Ct,Ht,Ut,Wt,xe,Gt,Kt,qt,fe,Dt,B,wt,Jt,W,ge,he,_e,Yt,Zt,Xt];export{nt as A,P as B,Yt as C,lt as D,ut as E,B as F,z as I,R as L,U as M,W as N,ct as O,V as P,L as R,Gt as S,Jt as T,j as V,Vt as _,Ot as a,$ as b,At as c,jt as d,Nt as f,$t as g,Bt as h,X as i,G as j,K as k,Q as l,Qt as m,Rt as n,Y as o,zt as p,Mt as r,Z as s,Lt as t,Pt as u,Ut as v,qt as w,Kt as x,Ht as y,I as z};