@makaio/framework 1.0.0-dev-1790624115602 → 1.0.0-dev-1790760814648

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 (417) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/adapters/config/index.d.mts +1 -1
  3. package/dist/adapters/config/index.mjs +1 -1
  4. package/dist/adapters/index.d.mts +2 -2
  5. package/dist/adapters/index.mjs +1 -1
  6. package/dist/adapters/node.d.mts +1 -1
  7. package/dist/adapters/node.mjs +1 -1
  8. package/dist/{attempt-record-codec-DXpdMgyI.mjs → attempt-record-codec-zQnXwJF-.mjs} +1 -1
  9. package/dist/{caller-owned-adapter-stub-D8RZEdRn.mjs → caller-owned-adapter-stub-BLbPeCP9.mjs} +1 -1
  10. package/dist/clients/hook-subjects.d.mts +35 -1
  11. package/dist/clients/hook-subjects.mjs +1 -1
  12. package/dist/clients/index.d.mts +2 -12
  13. package/dist/clients/index.mjs +1 -1
  14. package/dist/clients/managed-install.d.mts +1 -1
  15. package/dist/clients/managed-install.mjs +1 -1
  16. package/dist/code-execution/worker-entry.d.mts +1 -1
  17. package/dist/code-execution/worker-entry.mjs +1 -1
  18. package/dist/{code-execution-BspFbEdT.mjs → code-execution-Bdqurit9.mjs} +1 -1
  19. package/dist/{code-execution-DWSux6k1.mjs → code-execution-BwqsnOwu.mjs} +1 -1
  20. package/dist/contracts/adapter/index.d.mts +2 -2
  21. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  22. package/dist/contracts/artifact/index.d.mts +2 -2
  23. package/dist/contracts/auth/index.d.mts +2 -2
  24. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  25. package/dist/contracts/canonical-model/index.d.mts +1 -1
  26. package/dist/contracts/capabilities/index.d.mts +1 -1
  27. package/dist/contracts/client/index.d.mts +2 -2
  28. package/dist/contracts/code-execution/index.d.mts +1 -1
  29. package/dist/contracts/common/index.d.mts +1 -1
  30. package/dist/contracts/config/index.d.mts +2 -2
  31. package/dist/contracts/extension/index.d.mts +5 -5
  32. package/dist/contracts/facet/index.d.mts +1 -1
  33. package/dist/contracts/harness/index.d.mts +1 -1
  34. package/dist/contracts/host/index.d.mts +1 -1
  35. package/dist/contracts/index.d.mts +54 -54
  36. package/dist/contracts/materialization/index.d.mts +2 -2
  37. package/dist/contracts/model-registry/index.d.mts +1 -1
  38. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  39. package/dist/contracts/platform/index.d.mts +1 -1
  40. package/dist/contracts/provider/index.d.mts +2 -2
  41. package/dist/contracts/reaction/index.d.mts +1 -1
  42. package/dist/contracts/session/index.d.mts +2 -2
  43. package/dist/contracts/shared/index.d.mts +2 -2
  44. package/dist/contracts/skill/index.d.mts +1 -1
  45. package/dist/contracts/telemetry/index.d.mts +1 -1
  46. package/dist/contracts/timeout/index.d.mts +1 -1
  47. package/dist/contracts/variant/index.d.mts +1 -1
  48. package/dist/contracts/worker/index.d.mts +2 -2
  49. package/dist/contracts/workflow/index.d.mts +2 -2
  50. package/dist/{contribution-DTb65rRN.d.mts → contribution-CCVRsaNB.d.mts} +2 -2
  51. package/dist/{definition-DWhjp0db.d.mts → definition-i4PufQpo.d.mts} +1 -1
  52. package/dist/{detached-extension-handle-QrXVNUR2.mjs → detached-extension-handle-DtnyN7vI.mjs} +1 -1
  53. package/dist/{execution-attempt-owner-recovery-BZOEVYFH.mjs → execution-attempt-owner-recovery-CvnTavxP.mjs} +1 -1
  54. package/dist/{execution-target-CDeIBu4b.mjs → execution-target-BumuKpUR.mjs} +1 -1
  55. package/dist/{extension-kOwzAMud.mjs → extension-C9EyvptA.mjs} +1 -1
  56. package/dist/{extension-context-DH84KOm9.d.mts → extension-context-BWrjVPXR.d.mts} +1 -1
  57. package/dist/fast-connection-Y4_AFwCD.mjs +1 -0
  58. package/dist/{filesystem-service-CIaAqTRi.mjs → filesystem-service-yIGQgXXP.mjs} +1 -1
  59. package/dist/{framework-packages-D2fycy02.mjs → framework-packages-blqho6Nk.mjs} +1 -1
  60. package/dist/git/index.mjs +1 -1
  61. package/dist/{globby-CxGKRBGC.mjs → globby-DBl3Lybh.mjs} +1 -1
  62. package/dist/{handlers-CfWqy2KP.mjs → handlers-DmEPQqPX.mjs} +1 -1
  63. package/dist/{hook-responses-OETFKaAL.d.mts → hook-responses-v6EA_7WC.d.mts} +1 -1
  64. package/dist/inbound-hooks/fast-connection.d.mts +39 -0
  65. package/dist/inbound-hooks/fast-connection.mjs +1 -0
  66. package/dist/inbound-hooks/index.d.mts +5 -42
  67. package/dist/inbound-hooks/index.mjs +1 -1
  68. package/dist/inbound-hooks/stdio.d.mts +42 -0
  69. package/dist/inbound-hooks/stdio.mjs +1 -0
  70. package/dist/{index-DPsQ_cFG2.d.mts → index-BIf8JHBp2.d.mts} +1 -1
  71. package/dist/{index-BtyeBaw-.d.mts → index-Bl995t8Y.d.mts} +42 -42
  72. package/dist/{index-CLwnkYRD.d.mts → index-Bt6KIvVk.d.mts} +1 -1
  73. package/dist/{index-DHTLIeW62.d.mts → index-Bxm5RUGG2.d.mts} +7 -7
  74. package/dist/{index-wQB90bP1.d.mts → index-BytbaguH.d.mts} +4 -4
  75. package/dist/{index-DpiNhNHS.d.mts → index-C0NhPcTU.d.mts} +7 -7
  76. package/dist/{index-DyWD9bfP.d.mts → index-CE6cAf_r.d.mts} +1 -1
  77. package/dist/{index-6UlianLY2.d.mts → index-CP7iuxhd2.d.mts} +4 -4
  78. package/dist/{index-C0Jfr8UK.d.mts → index-CPPulAkE.d.mts} +2 -2
  79. package/dist/{index-BstMoG8p.d.mts → index-CfGPuR1W.d.mts} +3 -3
  80. package/dist/{index-BhvXJhTY.d.mts → index-ClDAqLxW.d.mts} +54 -54
  81. package/dist/{index-BfFi98B_.d.mts → index-CrZ-G2qH.d.mts} +1 -1
  82. package/dist/{index-BRXETFym.d.mts → index-Cxx1aoPR.d.mts} +1 -1
  83. package/dist/{index-DDCixELI.d.mts → index-D-1RUdHM.d.mts} +1 -1
  84. package/dist/{index-CpaWzUE5.d.mts → index-D9Ome4qp.d.mts} +1 -1
  85. package/dist/{index-DrfwkH1x.d.mts → index-D_fMdJbU.d.mts} +8 -8
  86. package/dist/{index-CdkIg4Gu.d.mts → index-DeXQczqV.d.mts} +1 -1
  87. package/dist/{index-CVRQS5jk.d.mts → index-Di2-G_3M.d.mts} +1 -1
  88. package/dist/{index-BUtnnwzK2.d.mts → index-Dj60LBqi2.d.mts} +4 -4
  89. package/dist/{index-CtwkMknv.d.mts → index-HsD17NLG.d.mts} +8 -8
  90. package/dist/{index-oE2q0pTG.d.mts → index-MzTQNTb8.d.mts} +1 -1
  91. package/dist/{index-D9BLsMs8.d.mts → index-OLasQ7NP.d.mts} +1 -1
  92. package/dist/{index-CQAriG-z.d.mts → index-RiRTBXfr.d.mts} +14 -14
  93. package/dist/{index-CbVqpQBu.d.mts → index-f9ok_Fxi.d.mts} +248 -248
  94. package/dist/{index-UbOsrzp6.d.mts → index-gOYLLgKk.d.mts} +24 -24
  95. package/dist/{index-t6LnywuE.d.mts → index-l8b_NgVk.d.mts} +1 -1
  96. package/dist/kernel/cli/index.d.mts +2 -2
  97. package/dist/kernel/cli/index.mjs +1 -1
  98. package/dist/kernel/cli/register.d.mts +1 -1
  99. package/dist/kernel/cli/register.mjs +1 -1
  100. package/dist/kernel/cli/schemas.mjs +1 -1
  101. package/dist/kernel/extension/index.d.mts +2 -2
  102. package/dist/kernel/extension/index.mjs +1 -1
  103. package/dist/kernel/index.d.mts +5 -5
  104. package/dist/kernel/index.mjs +1 -1
  105. package/dist/kernel/namespace/index.d.mts +1 -1
  106. package/dist/kernel/namespace/index.mjs +1 -1
  107. package/dist/kernel/observability/index.d.mts +1 -1
  108. package/dist/kernel/observability/index.mjs +1 -1
  109. package/dist/kernel/providers/index.d.mts +1 -1
  110. package/dist/kernel/providers/index.mjs +1 -1
  111. package/dist/kernel/window/index.d.mts +1 -1
  112. package/dist/kernel/window/index.mjs +1 -1
  113. package/dist/{lib-BdyGVjpO.mjs → lib-BvRpcV8o.mjs} +1 -1
  114. package/dist/{lib-DxP3tPm9.mjs → lib-C0osDjMk.mjs} +1 -1
  115. package/dist/{load-extensions-eyXZhbRn.mjs → load-extensions-C4HK679X.mjs} +1 -1
  116. package/dist/{load-extensions-CCzTHlUE.d.mts → load-extensions-CMdXwAq-.d.mts} +1 -1
  117. package/dist/mcp-http-server/index.mjs +1 -1
  118. package/dist/{namespace-B9iQN3FQ.d.mts → namespace-BG35KNtw.d.mts} +4 -4
  119. package/dist/namespace-CUKQ8osk.mjs +1 -0
  120. package/dist/{namespace-CMntzAPI.mjs → namespace-D-_gP6_l.mjs} +1 -1
  121. package/dist/{namespace-DAzOxaux.d.mts → namespace-D74MefGI.d.mts} +2 -2
  122. package/dist/{namespace-C1-ZAKEG.d.mts → namespace-D_NJoYyN.d.mts} +6 -6
  123. package/dist/node/bus-server/index.d.mts +1 -1
  124. package/dist/node/bus-server/index.mjs +1 -1
  125. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  126. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  127. package/dist/{orchestrator-shared-CF-jPH91.mjs → orchestrator-shared-yQ-cLSjx.mjs} +1 -1
  128. package/dist/{ownership-memory-handler-C-y9zQf8.mjs → ownership-memory-handler-BkB4ondL.mjs} +1 -1
  129. package/dist/{package-CeEUAKHI.mjs → package-C-XcWpYW.mjs} +1 -1
  130. package/dist/{package-BSz4hbav.mjs → package-C_PVR-xw.mjs} +1 -1
  131. package/dist/{package-AlsbnlSt.mjs → package-CuXEeVP0.mjs} +1 -1
  132. package/dist/{package-BjtsXnaA.d.mts → package-Ir6SEHkA.d.mts} +1 -1
  133. package/dist/package.json +1 -1
  134. package/dist/{provider-context-D6GIZ5DC.mjs → provider-context-DHS1LRQA.mjs} +1 -1
  135. package/dist/rules/index.d.mts +1 -1
  136. package/dist/rules/index.mjs +1 -1
  137. package/dist/rules/schemas.d.mts +1 -1
  138. package/dist/runtime-bun/index.mjs +1 -1
  139. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  140. package/dist/runtime-node/code-execution/index.mjs +1 -1
  141. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  142. package/dist/runtime-node/extension-validation.d.mts +1 -1
  143. package/dist/runtime-node/extension-validation.mjs +1 -1
  144. package/dist/runtime-node/index.d.mts +5 -5
  145. package/dist/runtime-node/index.mjs +3 -3
  146. package/dist/runtime-node/makaio-config.d.mts +1 -1
  147. package/dist/runtime-node/makaio-config.mjs +1 -1
  148. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  149. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  150. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  151. package/dist/{schema-Cz6-4_Dn.mjs → schema-C0lK_6u-.mjs} +1 -1
  152. package/dist/{schemas-BjhhkGN_.d.mts → schemas-BBMHnFq8.d.mts} +4 -4
  153. package/dist/{schemas-CBDNnyz4.d.mts → schemas-DnwAE1ao.d.mts} +1 -1
  154. package/dist/{schemas-RwAlAMbq2.d.mts → schemas-DrrpHMbF2.d.mts} +7 -7
  155. package/dist/{schemas-BNQtL3Ln.d.mts → schemas-DyTbvDp-.d.mts} +1 -1
  156. package/dist/{schemas-Dyp3rHZ7.d.mts → schemas-yyNP39HU.d.mts} +4 -4
  157. package/dist/services/adapter-runtime/index.d.mts +3 -3
  158. package/dist/services/adapter-runtime/index.mjs +1 -1
  159. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  160. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  161. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  162. package/dist/services/adapter-subsystem/index.mjs +1 -1
  163. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  164. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  165. package/dist/services/agent-runtime/index.d.mts +2 -2
  166. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  167. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  168. package/dist/services/automation-trigger/index.mjs +1 -1
  169. package/dist/services/capability/index.d.mts +2 -2
  170. package/dist/services/capability/index.mjs +1 -1
  171. package/dist/services/code-execution/index.d.mts +1 -1
  172. package/dist/services/code-execution/index.mjs +1 -1
  173. package/dist/services/codebase/index.d.mts +2 -2
  174. package/dist/services/codebase/namespace.d.mts +1 -1
  175. package/dist/services/codebase/schemas.d.mts +1 -1
  176. package/dist/services/compression/index.d.mts +2 -2
  177. package/dist/services/compression/namespace.d.mts +1 -1
  178. package/dist/services/compression/schemas.d.mts +1 -1
  179. package/dist/services/context-rules/index.d.mts +4 -4
  180. package/dist/services/context-rules/index.mjs +1 -1
  181. package/dist/services/execution-target/index.d.mts +3 -3
  182. package/dist/services/execution-target/index.mjs +1 -1
  183. package/dist/services/execution-target/namespace.d.mts +1 -1
  184. package/dist/services/execution-target/namespace.mjs +1 -1
  185. package/dist/services/execution-target/schemas.d.mts +1 -1
  186. package/dist/services/execution-target/schemas.mjs +1 -1
  187. package/dist/services/filesystem/index.d.mts +1 -1
  188. package/dist/services/filesystem/index.mjs +1 -1
  189. package/dist/services/filesystem/namespace.d.mts +6 -6
  190. package/dist/services/filesystem/schemas.d.mts +3 -3
  191. package/dist/services/git/namespace.mjs +1 -1
  192. package/dist/services/git/schemas.mjs +1 -1
  193. package/dist/services/harness/index.d.mts +3 -3
  194. package/dist/services/harness/index.mjs +1 -1
  195. package/dist/services/index.d.mts +55 -55
  196. package/dist/services/index.mjs +1 -1
  197. package/dist/services/log-import/browser.d.mts +2 -2
  198. package/dist/services/log-import/index.d.mts +2 -2
  199. package/dist/services/log-import/log-import.d.mts +1 -1
  200. package/dist/services/log-import/log-import.mjs +1 -1
  201. package/dist/services/log-import/namespace.mjs +1 -1
  202. package/dist/services/log-import/schemas.mjs +1 -1
  203. package/dist/services/materialization/index.d.mts +1 -1
  204. package/dist/services/materialization/index.mjs +1 -1
  205. package/dist/services/model-registry/index.d.mts +1 -1
  206. package/dist/services/model-registry/index.mjs +1 -1
  207. package/dist/services/preferences/index.d.mts +2 -2
  208. package/dist/services/preferences/schemas.d.mts +1 -1
  209. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  210. package/dist/services/provider-context/index.d.mts +1 -1
  211. package/dist/services/provider-context/index.mjs +1 -1
  212. package/dist/services/provider-runtime/index.mjs +1 -1
  213. package/dist/services/session/handlers/index.d.mts +1 -1
  214. package/dist/services/session/handlers/index.mjs +1 -1
  215. package/dist/services/session/index.d.mts +9 -9
  216. package/dist/services/session/index.mjs +1 -1
  217. package/dist/services/session/messages/namespace.d.mts +1 -1
  218. package/dist/services/session/messages/namespace.mjs +1 -1
  219. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  220. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  221. package/dist/services/session/session-events/namespace.d.mts +1 -1
  222. package/dist/services/session/session-events/namespace.mjs +1 -1
  223. package/dist/services/session/storage/namespace.d.mts +1 -1
  224. package/dist/services/session/storage/schema.d.mts +1 -1
  225. package/dist/services/session/testing/index.mjs +1 -1
  226. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  227. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  228. package/dist/services/session/turns/namespace.d.mts +1 -1
  229. package/dist/services/session/turns/namespace.mjs +1 -1
  230. package/dist/services/session-editor/index.d.mts +1 -1
  231. package/dist/services/session-editor/index.mjs +1 -1
  232. package/dist/services/settings/index.d.mts +3 -3
  233. package/dist/services/settings/index.mjs +1 -1
  234. package/dist/services/settings/namespace.mjs +1 -1
  235. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  236. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  237. package/dist/services/settings/storage/index.d.mts +3 -3
  238. package/dist/services/settings/storage/index.mjs +1 -1
  239. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  240. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  241. package/dist/services/subagent/index.d.mts +1 -1
  242. package/dist/services/subagent/index.mjs +1 -1
  243. package/dist/services/subagent-template/index.d.mts +2 -2
  244. package/dist/services/subagent-template/namespace.d.mts +1 -1
  245. package/dist/services/subagent-template/schemas.d.mts +1 -1
  246. package/dist/services/tool-approval/index.d.mts +1 -1
  247. package/dist/services/tool-approval/index.mjs +1 -1
  248. package/dist/services/tools/index.d.mts +1 -1
  249. package/dist/services/tools/index.mjs +1 -1
  250. package/dist/services/tray-menu/index.d.mts +3 -3
  251. package/dist/services/tray-menu/index.mjs +1 -1
  252. package/dist/services/tray-menu/namespace.d.mts +1 -1
  253. package/dist/services/tray-menu/schemas.d.mts +1 -1
  254. package/dist/services/turn/index.d.mts +1 -1
  255. package/dist/services/turn/namespace.d.mts +1 -1
  256. package/dist/services/workflow-transitions/index.d.mts +1 -1
  257. package/dist/services/workflow-transitions/index.mjs +1 -1
  258. package/dist/{session-Tj_635zr.mjs → session-BjV4HPCQ.mjs} +1 -1
  259. package/dist/{src-CkKKoY0M.mjs → src-BDw_ijvA.mjs} +1 -1
  260. package/dist/src-CnTMHQm0.mjs +1 -0
  261. package/dist/storage/drizzle/client.d.mts +1 -1
  262. package/dist/storage/drizzle/client.mjs +1 -1
  263. package/dist/storage/drizzle/index.d.mts +1 -1
  264. package/dist/storage/drizzle/index.mjs +1 -1
  265. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  266. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  267. package/dist/storage/handlers/index.d.mts +1 -1
  268. package/dist/storage/handlers/index.mjs +1 -1
  269. package/dist/{storage-namespace-NHTWAjaX.d.mts → storage-namespace-DoxNJ9Cg.d.mts} +10 -10
  270. package/dist/{tool-approval-service-BCN4W8eS.mjs → tool-approval-service-Bc0IC6Hj.mjs} +1 -1
  271. package/dist/{tools-BCL_dtHe.mjs → tools-Cbuj-ClQ.mjs} +1 -1
  272. package/dist/{transition-DK43U3QJ.d.mts → transition-CzxHvafT.d.mts} +2 -2
  273. package/dist/{types-CW-4Y0k_2.d.mts → types-BfuE1-1V2.d.mts} +1 -1
  274. package/dist/{types-jmH0Yad4.d.mts → types-DsZBnL7z.d.mts} +6 -6
  275. package/dist/ui-kernel/index.d.mts +4 -4
  276. package/dist/ui-kernel/pages/namespace.d.mts +4 -4
  277. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  278. package/dist/{view-builder-Nffvg8MI.d.mts → view-builder-BLdSezFD.d.mts} +1 -1
  279. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  280. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  281. package/dist/workflow-engine/index.d.mts +50 -50
  282. package/dist/workflow-engine/index.mjs +1 -1
  283. package/dist/workflow-engine/package.d.mts +1 -1
  284. package/dist/workflow-engine/package.mjs +1 -1
  285. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  286. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  287. package/dist/workflow-engine/testing/conformance.mjs +1 -1
  288. package/dist/workflow-engine/testing/index.d.mts +1 -1
  289. package/dist/workflow-engine/testing/index.mjs +1 -1
  290. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  291. package/dist/workflow-engine/testing/sqlite.mjs +1 -1
  292. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  293. package/dist/{workflow-transitions-7d9lGi08.mjs → workflow-transitions-CvT6P03B.mjs} +1 -1
  294. package/dist/{workflow-worker-BCLy_g_a.mjs → workflow-worker-CvQN2dmX.mjs} +1 -1
  295. package/package.json +9 -1
  296. package/dist/namespace-BPf6AbBO.mjs +0 -1
  297. package/dist/src-BZdw54VU.mjs +0 -1
  298. /package/dist/{adapter-auth-runtime-B6yX_QfG.mjs → adapter-auth-runtime-CYgj-Ht4.mjs} +0 -0
  299. /package/dist/{adapter-binding-DF-j-XHg.d.mts → adapter-binding-DG877aQO.d.mts} +0 -0
  300. /package/dist/{attach-error-wNJ8Q5uU.mjs → attach-error-mkj6SVd2.mjs} +0 -0
  301. /package/dist/{attempt-control-evidence-CHBnJoqN.mjs → attempt-control-evidence-DmNT2Wkb.mjs} +0 -0
  302. /package/dist/{attempt-fixtures-D3IsP0KH.mjs → attempt-fixtures-DPGw7peT.mjs} +0 -0
  303. /package/dist/{authority-state-bootstrap-4F5Wc_6l.mjs → authority-state-bootstrap-kIU-C2nI.mjs} +0 -0
  304. /package/dist/{base-orchestrator-DH6W4NQg.d.mts → base-orchestrator-CYU2iHqB.d.mts} +0 -0
  305. /package/dist/{bootstrap-start-client-9nOdeDYl.mjs → bootstrap-start-client-DyKCj6Eu.mjs} +0 -0
  306. /package/dist/{capability-service-BHcRd1td.d.mts → capability-service-BEVVEaTj.d.mts} +0 -0
  307. /package/dist/{client-Sx_N8LXo.d.mts → client-CkfU-f8m.d.mts} +0 -0
  308. /package/dist/{client-binary-version-verifier-DcHCFmsI.mjs → client-binary-version-verifier-CITusS9s.mjs} +0 -0
  309. /package/dist/{client-binary-version-verifier-C8gtKQFO.d.mts → client-binary-version-verifier-DgGke3gW.d.mts} +0 -0
  310. /package/dist/{clients-namespace-CASHxXUM.d.mts → clients-namespace-BRijqVIc.d.mts} +0 -0
  311. /package/dist/{config-namespace-Ctia-VDG.d.mts → config-namespace-9pC41Rtl.d.mts} +0 -0
  312. /package/dist/{create-static-mount-4B-mNtx1.mjs → create-static-mount-Dt-iC0Uq.mjs} +0 -0
  313. /package/dist/{credential-ref-MsnUkz9G.d.mts → credential-ref-DHhA4VTS.d.mts} +0 -0
  314. /package/dist/{cross-spawn-DGqEuNyT.mjs → cross-spawn-DIqCmSCD.mjs} +0 -0
  315. /package/dist/{cursor-storage-BvjxwBW6.mjs → cursor-storage-TgG0XBrI.mjs} +0 -0
  316. /package/dist/{definition-Cx175qXh.d.mts → definition-RnEMoWgj.d.mts} +0 -0
  317. /package/dist/{descriptor-to-package-BPIArq6N.mjs → descriptor-to-package-BmbVrmaM.mjs} +0 -0
  318. /package/dist/{drizzle-_w6sUR8p.mjs → drizzle-C9VHmFKj.mjs} +0 -0
  319. /package/dist/{esm-DwiWcwH0.mjs → esm-CC8hYyqN.mjs} +0 -0
  320. /package/dist/{event-D5_UaIBZ.mjs → event-DK8N_EOT.mjs} +0 -0
  321. /package/dist/{execution-attempt-repository-CY289HlC.mjs → execution-attempt-repository-BMbbbk7n.mjs} +0 -0
  322. /package/dist/{execution-attempt-repository-C2XKRZ3O.d.mts → execution-attempt-repository-Dyluu7wy.d.mts} +0 -0
  323. /package/dist/{extension-discovery-BqSPn73R.d.mts → extension-discovery-DmV1H6kV.d.mts} +0 -0
  324. /package/dist/{extension-namespace-CeRpt6C8.mjs → extension-namespace-BwNmFrd3.mjs} +0 -0
  325. /package/dist/{extension-package-provenance-ClpN3GHp.mjs → extension-package-provenance-DAc6EC8S.mjs} +0 -0
  326. /package/dist/{filesystem-service-5Ecp3nSV.d.mts → filesystem-service-RvR9ogzG.d.mts} +0 -0
  327. /package/dist/{handler-Cc1MhaR4.mjs → handler-BY2DDdyI.mjs} +0 -0
  328. /package/dist/{identity-DgTjgflr.mjs → identity-DBdzjf61.mjs} +0 -0
  329. /package/dist/{index-CwVSr7Ow.d.mts → index-2XwNyZAw.d.mts} +0 -0
  330. /package/dist/{index-B_Hf4XPX.d.mts → index-AtnMf7Qf.d.mts} +0 -0
  331. /package/dist/{index-BCuWtlv5.d.mts → index-B-ZgZuHg.d.mts} +0 -0
  332. /package/dist/{index-u0EteHlR2.d.mts → index-B4MBx8vA2.d.mts} +0 -0
  333. /package/dist/{index-Bmb7jPIe2.d.mts → index-BN4sKsLl2.d.mts} +0 -0
  334. /package/dist/{index-BjrbddkU.d.mts → index-BS3GYAN9.d.mts} +0 -0
  335. /package/dist/{index-CURT4JaX.d.mts → index-BrJ_6xi2.d.mts} +0 -0
  336. /package/dist/{index-w1AeWV4F.d.mts → index-BuRaseJB.d.mts} +0 -0
  337. /package/dist/{index-DmV9ybgT.d.mts → index-C5u82-qr.d.mts} +0 -0
  338. /package/dist/{index-DMgbNdEU.d.mts → index-C9G0Namh.d.mts} +0 -0
  339. /package/dist/{index-C9vF42jh.d.mts → index-CE-VlXE2.d.mts} +0 -0
  340. /package/dist/{index-2YW8DTb62.d.mts → index-CFet5T7v2.d.mts} +0 -0
  341. /package/dist/{index-rik4Uc5G.d.mts → index-CVQ852YA.d.mts} +0 -0
  342. /package/dist/{index-By1UhKYU2.d.mts → index-CVlnG_H22.d.mts} +0 -0
  343. /package/dist/{index-DOui-7u2.d.mts → index-C_LQ5NSy.d.mts} +0 -0
  344. /package/dist/{index-_OD_Nz3m.d.mts → index-Cc5kDe9y.d.mts} +0 -0
  345. /package/dist/{index-DDnY7JhE.d.mts → index-CnyQ2N42.d.mts} +0 -0
  346. /package/dist/{index-BOxMyaqG.d.mts → index-D-rTv5WO.d.mts} +0 -0
  347. /package/dist/{index-BEPn58tG.d.mts → index-D1es2sEA.d.mts} +0 -0
  348. /package/dist/{index-62OoZLGr.d.mts → index-DJZZS_H0.d.mts} +0 -0
  349. /package/dist/{index-N0-r5Hcd.d.mts → index-DggZJ6TT.d.mts} +0 -0
  350. /package/dist/{index-BV3nQpdO.d.mts → index-Do3__CB3.d.mts} +0 -0
  351. /package/dist/{index-DsmyofuM.d.mts → index-lJLrusa5.d.mts} +0 -0
  352. /package/dist/{index-BleQ0SR7.d.mts → index-riopop0h.d.mts} +0 -0
  353. /package/dist/{index-DAqAa9aL.d.mts → index-yfLm_tCv.d.mts} +0 -0
  354. /package/dist/{json-value--pv1-OHx.d.mts → json-value-B2gMynW3.d.mts} +0 -0
  355. /package/dist/{jsonl-transport-Ct1RWs0h.mjs → jsonl-transport-_zPQoMpM.mjs} +0 -0
  356. /package/dist/{lib-DomKag_k.mjs → lib-l8EW0aRq.mjs} +0 -0
  357. /package/dist/{model-registry-CeDu27XL.mjs → model-registry-BJbUh4uw.mjs} +0 -0
  358. /package/dist/{namespace-HLrZerLd.d.mts → namespace-B6S7ZFyX.d.mts} +0 -0
  359. /package/dist/{namespace-CqJhR19O.mjs → namespace-BG-DwVwA.mjs} +0 -0
  360. /package/dist/{namespace-Bo6-o_rW.mjs → namespace-BWTEnslo.mjs} +0 -0
  361. /package/dist/{namespace-Sd6qj6w22.d.mts → namespace-CO9J3NB-2.d.mts} +0 -0
  362. /package/dist/{namespace-CJ5sH_Bp.d.mts → namespace-CVO6bZ4F.d.mts} +0 -0
  363. /package/dist/{namespace-CHSwZhH7.d.mts → namespace-ChJ-C9m_.d.mts} +0 -0
  364. /package/dist/{namespace-KomML5ti.d.mts → namespace-CytKzWBF.d.mts} +0 -0
  365. /package/dist/{namespace-C9xmGXbW.mjs → namespace-D1tJewLB.mjs} +0 -0
  366. /package/dist/{namespace-DbtfwD5Z.d.mts → namespace-D8pSI--d.d.mts} +0 -0
  367. /package/dist/{namespace-D38Fmd0E.d.mts → namespace-DDvWP-XA.d.mts} +0 -0
  368. /package/dist/{namespace-CnRQ8tCJ.mjs → namespace-DS4y8Kv9.mjs} +0 -0
  369. /package/dist/{namespace-J87EeVTm.mjs → namespace-DaFbUCqO.mjs} +0 -0
  370. /package/dist/{namespace-QV_2m25r.d.mts → namespace-Dcs8KeNG.d.mts} +0 -0
  371. /package/dist/{namespace-C_NGRHKs.d.mts → namespace-Dt7hJA-a.d.mts} +0 -0
  372. /package/dist/{namespace-CL9OyrHs.d.mts → namespace-F8g5LZte.d.mts} +0 -0
  373. /package/dist/{namespace-Bz0ZDWhE.d.mts → namespace-u4eoUCLp.d.mts} +0 -0
  374. /package/dist/{node-bridge-backend-DtRT--yn.mjs → node-bridge-backend-CsJ3_7CF.mjs} +0 -0
  375. /package/dist/{node-pty-backend-C72EgRws.mjs → node-pty-backend-o9xyqPMi.mjs} +0 -0
  376. /package/dist/{orchestrator-shared-Bvo0u-1D.d.mts → orchestrator-shared-B96yveBr.d.mts} +0 -0
  377. /package/dist/{out-EjlaPopg.mjs → out-GD8gVf9J.mjs} +0 -0
  378. /package/dist/{ownership-recovery-guard-C9h8K1jo.mjs → ownership-recovery-guard-C00rcqvz.mjs} +0 -0
  379. /package/dist/{package-BCKYMTYG.mjs → package-B6mFblgK.mjs} +0 -0
  380. /package/dist/{package-BwlW7N32.mjs → package-Dke3gaTJ.mjs} +0 -0
  381. /package/dist/{packages-vF9F4M41.mjs → packages-CZ2x-Ver.mjs} +0 -0
  382. /package/dist/{packages-KX9yofCa.d.mts → packages-Fy4a6vQy.d.mts} +0 -0
  383. /package/dist/{providers-CahjB0Kh.mjs → providers-CIb7WiA8.mjs} +0 -0
  384. /package/dist/{providers-namespace-B-l-OQZk.d.mts → providers-namespace-Bg03KVpr.d.mts} +0 -0
  385. /package/dist/{quick-lru-C1yB5RCQ.mjs → quick-lru-BgvUj18f.mjs} +0 -0
  386. /package/dist/{registry-DtaRGU8i.mjs → registry-mZnnYsTk.mjs} +0 -0
  387. /package/dist/{runtime-inputs-B7nWstrY.d.mts → runtime-inputs-qWXJyPAC.d.mts} +0 -0
  388. /package/dist/{schema-DLE6Dqyc.d.mts → schema-C58MdqlI.d.mts} +0 -0
  389. /package/dist/{schema-BnuyCklU.mjs → schema-CdUStsjr.mjs} +0 -0
  390. /package/dist/{schema-introspection-_Yw9L_mB.mjs → schema-introspection-CRLs6TZU.mjs} +0 -0
  391. /package/dist/{schemas-C0Fb2-LN.d.mts → schemas-BNG5UOHC.d.mts} +0 -0
  392. /package/dist/{schemas-CYjPZwlQ.d.mts → schemas-BQhtYuCM.d.mts} +0 -0
  393. /package/dist/{schemas-BNRFKQdz.mjs → schemas-BzzkGp4E.mjs} +0 -0
  394. /package/dist/{schemas-BOT1HUv6.d.mts → schemas-CUfqNSQj.d.mts} +0 -0
  395. /package/dist/{schemas-feb64ScA.d.mts → schemas-Cu-os7ma.d.mts} +0 -0
  396. /package/dist/{schemas-Djjq4LLs.mjs → schemas-D9hVAoP5.mjs} +0 -0
  397. /package/dist/{schemas-BXkSHQaF.d.mts → schemas-DKaUrczB.d.mts} +0 -0
  398. /package/dist/{schemas-DekYSXka.mjs → schemas-dPLES84M.mjs} +0 -0
  399. /package/dist/{schemas-Dxfk39-v.d.mts → schemas-hXVl5GeF.d.mts} +0 -0
  400. /package/dist/{schemas-BGTuiO3u.d.mts → schemas-zWy59x9Y.d.mts} +0 -0
  401. /package/dist/{server-lifecycle-BjbuCO-s.mjs → server-lifecycle-CmsnIyst.mjs} +0 -0
  402. /package/dist/{server-lifecycle-BINetU26.d.mts → server-lifecycle-DJcc_FqN.d.mts} +0 -0
  403. /package/dist/{session-lineage-BQ9NWlt6.d.mts → session-lineage-Bjh0Ccu7.d.mts} +0 -0
  404. /package/dist/{shared-schemas-CnOyMY42.mjs → shared-schemas-DwAPAqeD.mjs} +0 -0
  405. /package/dist/{src-CqQSqLQI.mjs → src-CHyuN-wv.mjs} +0 -0
  406. /package/dist/{storage-namespace-TBX8VgK3.mjs → storage-namespace-CYZOP3RS.mjs} +0 -0
  407. /package/dist/{storage-namespace-definition-DV3IipmH.d.mts → storage-namespace-definition--9lrtKns.d.mts} +0 -0
  408. /package/dist/{supports-color-CjiFmM1U.mjs → supports-color-BZuv8Isw.mjs} +0 -0
  409. /package/dist/{tray-menu-service-BRrnoqaY.mjs → tray-menu-service-DGhHTNyy.mjs} +0 -0
  410. /package/dist/{types-CjoaGe_E.d.mts → types-BfQSVqtV.d.mts} +0 -0
  411. /package/dist/{types-B_mVEuYd.d.mts → types-CA6i6flt.d.mts} +0 -0
  412. /package/dist/{types-wwuw7RkB.mjs → types-CGL_-qT6.mjs} +0 -0
  413. /package/dist/{types-CqVuKsLC.d.mts → types-D-Q9gxe2.d.mts} +0 -0
  414. /package/dist/{types-D7WtaoMR.d.mts → types-DEDjIt3d.d.mts} +0 -0
  415. /package/dist/{types-MFZzmywp.d.mts → types-DVZYa4bZ.d.mts} +0 -0
  416. /package/dist/{window-registry-2MZdZPdA.mjs → window-registry-BB_bd5Yu.mjs} +0 -0
  417. /package/dist/{window-registry-1jI3f9ir.d.mts → window-registry-DqVHgb6Y.d.mts} +0 -0
@@ -1,2 +1,2 @@
1
- import { a as VariantGetInfoResponse, c as VariantSchemas, d as VariantUpgradeStatusSchema, i as MakaioVariantSchema, l as VariantUpgradeProgressEvent, n as VariantSubjects, o as VariantRequestUpgradeRequest, r as MakaioVariant, s as VariantRequestUpgradeResponse, t as VariantNamespace, u as VariantUpgradeStatus } from "../../index-6UlianLY2.mjs";
1
+ import { a as VariantGetInfoResponse, c as VariantSchemas, d as VariantUpgradeStatusSchema, i as MakaioVariantSchema, l as VariantUpgradeProgressEvent, n as VariantSubjects, o as VariantRequestUpgradeRequest, r as MakaioVariant, s as VariantRequestUpgradeResponse, t as VariantNamespace, u as VariantUpgradeStatus } from "../../index-CP7iuxhd2.mjs";
2
2
  export { MakaioVariant, MakaioVariantSchema, VariantGetInfoResponse, VariantNamespace, VariantRequestUpgradeRequest, VariantRequestUpgradeResponse, VariantSchemas, VariantSubjects, VariantUpgradeProgressEvent, VariantUpgradeStatus, VariantUpgradeStatusSchema };
@@ -1,3 +1,3 @@
1
- import { n as WorkerRuntimeInputsSchema, t as WorkerRuntimeInputs } from "../../runtime-inputs-B7nWstrY.mjs";
2
- import { C as WorkerRuntimeInputsGetResponse, S as WorkerRuntimeInputsGetRequest, _ as WorkerCancelUndeliveredKind, a as WorkerSubjects, b as WorkerDispatchRequestSchema, c as WorkerBootstrapClaimRequest, d as WorkerBootstrapCredentials, f as WorkerBootstrapCredentialsSchema, g as WorkerCancelUndelivered, h as WorkerBootstrapGrantedClaimResponseSchema, i as WorkerNamespace, l as WorkerBootstrapClaimResponse, m as WorkerBootstrapGrantedClaimResponse, n as SuspensionStrategySchema, o as WorkerBootstrapClaimRefusalReason, p as WorkerBootstrapDeadlineAtSchema, r as WORKER_BOOTSTRAP_IDENTITY_ID, s as WorkerBootstrapClaimRefusalReasonSchema, t as SuspensionStrategy, u as WorkerBootstrapClaimResponseSchema, v as WorkerCancelUndeliveredKindSchema, w as WorkerSchemas, x as WorkerDispatchResponseSchema, y as WorkerCancelUndeliveredSchema } from "../../index-BUtnnwzK2.mjs";
1
+ import { n as WorkerRuntimeInputsSchema, t as WorkerRuntimeInputs } from "../../runtime-inputs-qWXJyPAC.mjs";
2
+ import { C as WorkerRuntimeInputsGetResponse, S as WorkerRuntimeInputsGetRequest, _ as WorkerCancelUndeliveredKind, a as WorkerSubjects, b as WorkerDispatchRequestSchema, c as WorkerBootstrapClaimRequest, d as WorkerBootstrapCredentials, f as WorkerBootstrapCredentialsSchema, g as WorkerCancelUndelivered, h as WorkerBootstrapGrantedClaimResponseSchema, i as WorkerNamespace, l as WorkerBootstrapClaimResponse, m as WorkerBootstrapGrantedClaimResponse, n as SuspensionStrategySchema, o as WorkerBootstrapClaimRefusalReason, p as WorkerBootstrapDeadlineAtSchema, r as WORKER_BOOTSTRAP_IDENTITY_ID, s as WorkerBootstrapClaimRefusalReasonSchema, t as SuspensionStrategy, u as WorkerBootstrapClaimResponseSchema, v as WorkerCancelUndeliveredKindSchema, w as WorkerSchemas, x as WorkerDispatchResponseSchema, y as WorkerCancelUndeliveredSchema } from "../../index-Dj60LBqi2.mjs";
3
3
  export { SuspensionStrategy, SuspensionStrategySchema, WORKER_BOOTSTRAP_IDENTITY_ID, WorkerBootstrapClaimRefusalReason, WorkerBootstrapClaimRefusalReasonSchema, WorkerBootstrapClaimRequest, WorkerBootstrapClaimResponse, WorkerBootstrapClaimResponseSchema, WorkerBootstrapCredentials, WorkerBootstrapCredentialsSchema, WorkerBootstrapDeadlineAtSchema, WorkerBootstrapGrantedClaimResponse, WorkerBootstrapGrantedClaimResponseSchema, WorkerCancelUndelivered, WorkerCancelUndeliveredKind, WorkerCancelUndeliveredKindSchema, WorkerCancelUndeliveredSchema, WorkerDispatchRequestSchema, WorkerDispatchResponseSchema, WorkerNamespace, WorkerRuntimeInputs, WorkerRuntimeInputsGetRequest, WorkerRuntimeInputsGetResponse, WorkerRuntimeInputsSchema, WorkerSchemas, WorkerSubjects };
@@ -1,3 +1,3 @@
1
- import { $a as WorkflowParallelMode, $i as ExecutionListQuery, $n as ProjectedNode, $r as StepCancelPayloadSchema, $t as WorkerContributionManifestSchema, Aa as WorkflowExecutionScopeSchema, Ai as WorkflowDelegateResultFinalizationResponseSchema, Ar as ContextBundleSchema, At as WorkLogDynamicNodeMaterialization, Ba as WorkflowIterateChainNodeSchema, Bi as WorkflowFinalizerIdSchema, Br as WorkflowErrorCode, Bt as WorkLogUsageSummary, C as WorkflowStateAuthoringDefinition, Ca as WorkflowDelegateRoleNode, Ci as WorkflowDelegateEconomics, Cr as ArtifactQuerySource, Ct as CronTriggerPayload, D as validateNoNestedLoops, Da as WorkflowExecution, Di as WorkflowDelegateResultFinalizationRequest, Dr as BusRequestSource, Dt as WorkflowTriggerDef, E as LoopGateHandler, Ea as WorkflowDynamicRegionSchema, Ei as WorkflowDelegateResultFinalizationGatewayRequestSchema, Er as BusEventPublishTargetSchema, Et as ExtractTriggerPayload, Fa as WorkflowGateNode, Fi as WorkflowFinalizationClaimSchema, Fr as ResolvedContextEntry, Ft as WorkLogFrameEntrySchema, Ga as WorkflowLoopNode, Gi as EXECUTIONS_BY_ARTIFACT_REFS_DEFAULT_LIMIT_PER_REF, Gr as ExecutionLinkType, Gt as ExternalExecutionFrameCompletion, Ha as WorkflowIterateNodeSchema, Hi as WorkflowTerminalStatusSchema, Hr as ExecutionLinkListQuery, Ht as CompleteExternalExecutionRequest, Ia as WorkflowGateNodeSchema, Ii as WorkflowFinalizationDeliveryResultSchema, Ir as ResolvedContextEntrySchema, It as WorkLogGateEvent, Ja as WorkflowNodeBase, Ji as EXECUTION_LIST_DEFAULT_LIMIT, Jr as SpanRecordSchema, Jt as ExternalExecutionFrameStartSchema, Ka as WorkflowLoopNodeSchema, Ki as EXECUTIONS_BY_ARTIFACT_REFS_MAX_LIMIT_PER_REF, Kr as ExecutionLinkTypeSchema, Kt as ExternalExecutionFrameCompletionSchema, La as WorkflowGateStatus, Li as WorkflowFinalizationIntent, Lr as JsonPatchOperation, Lt as WorkLogGateEventSchema, Ma as WorkflowFrameStateSchema, Mi as WorkflowDelegateToolObservation, Mr as ContextPublishTargetSchema, Mt as WorkLogExecutionSummary, Na as WorkflowGateInstance, Ni as WorkflowDelegateToolObservationSchema, Nr as ContextSource, Nt as WorkLogExecutionSummarySchema, Oa as WorkflowExecutionSchema, Oi as WorkflowDelegateResultFinalizationRequestSchema, Or as BusRequestSourceSchema, Ot as WorkLogArtifactWrite, Pa as WorkflowGateInstanceSchema, Pi as WorkflowFinalizationClaim, Pr as ContextSourceSchema, Pt as WorkLogFrameEntry, Qa as WorkflowNodeTypeSchema, Qi as ExecutionListCursorSchema, Qn as ProjectedEdgeKind, Qr as StepCancelPayload, Qt as WorkerContributionManifest, Ra as WorkflowGateStatusSchema, Ri as WorkflowFinalizationIntentSchema, Rr as JsonPatchOperationSchema, Rt as WorkLogStats, S as WorkflowBuilder, Sa as WorkflowDelegateAgentNodeSchema, Si as createWorkflowCancelSubject, Sr as ArtifactPublishTargetSchema, St as CronAutomationTriggerParamsSchema, T as LoopGateContext, Ta as WorkflowDynamicRegion, Ti as WorkflowDelegateResultFinalizationGatewayRequest, Tr as BusEventPublishTarget, Tt as DEFAULT_CRON_TIMEZONE, Ua as WorkflowListQuery, Ui as createWorkflowDelegateResultFinalizerNamespace, Ur as ExecutionLinkListQuerySchema, Ut as CompleteExternalExecutionRequestSchema, Va as WorkflowIterateNode, Vi as WorkflowTerminalStatus, Vr as ExecutionLink, Vt as WorkLogUsageSummarySchema, Wa as WorkflowListQuerySchema, Wi as createWorkflowFinalizerNamespace, Wr as ExecutionLinkSchema, Wt as EXTERNAL_EXECUTION_ID_PREFIX, Xa as WorkflowNodeSchema, Xi as EXECUTION_LIST_MIN_LIMIT, Xr as SpanStatusSchema, Xt as RegisterExternalExecutionRequestSchema, Ya as WorkflowNodeBaseSchema, Yi as EXECUTION_LIST_MAX_LIMIT, Yr as SpanStatus, Yt as RegisterExternalExecutionRequest, Za as WorkflowNodeType, Zi as ExecutionListCursor, Zn as ProjectedEdge, Zr as IStepRunner, Zt as IWorkflowRunner, _ as LoopGateRegistration, _a as WorkflowDefinition, _i as WorkflowRunnerStepType, _r as WorkflowProgressUpdate, _t as WorkflowStateContext, a as delegateToRole, aa as GateInstanceListQuery, ai as StepRunnerBusAuth, an as WorkflowRunResultSchema, ao as WorkflowResolvedRole, ar as WalkContext, b as ParallelMode, ba as WorkflowDefinitionSchema, bi as WorkflowStepTypeSchema, br as WorkflowSubjects, bt as BusEventWorkflowTrigger, c as iterateChain, ca as LoopGateOutcomeSchema, ci as StepRunnerPlatformDefaultsSchema, cn as WorkflowTriggerMode, co as WorkflowSequenceNodeSchema, cr as walkWorkflowDefinition, ct as ArtifactUpdateOperation, d as AgentConfig, da as WorkflowArtifactWriteDeclaration, di as TokenUsage, dn as WorkflowWorkerBusAuthSchema, do as WorkflowStateDefinition, dr as WorkflowRunContextSource, dt as PreviousStepOutput, ea as ExecutionListQuerySchema, ei as StepCancelSubject, en as WorkerRuntimeContext, eo as WorkflowParallelModeSchema, er as ProjectedNodeRole, f as ArtifactBindingOptions, fa as WorkflowArtifactWriteDeclarationSchema, fi as TokenUsageSchema, fn as WorkflowWorkerConfig, fo as WorkflowStateDefinitionSchema, fr as WorkflowArtifactRef, ft as StationHandler, g as IterateOptions, ga as WorkflowConditionSchema, gi as WorkflowCancelSubject, gr as WorkflowNamespace, gt as WorkflowContextBase, h as GateOptions, ha as WorkflowCondition, hi as WorkflowCancelPayloadSchema, hn as WorkflowWorkerSourceSchema, hr as serializeArtifactRef, ht as WorkflowContext, i as delegateToAgent, ia as ExecutionsByArtifactRefsQuerySchema, ii as StepRunResultSchema, in as WorkflowRunResult, io as WorkflowResolvedAgentSchema, ir as projectWorkflowGraph, ja as WorkflowFrameState, ji as WorkflowDelegateResultFinalizerIdSchema, jr as ContextPublishTarget, jt as WorkLogDynamicNodeMaterializationSchema, ka as WorkflowExecutionScope, ki as WorkflowDelegateResultFinalizationResponse, kr as ContextBundle, kt as WorkLogArtifactWriteSchema, l as loop, la as WorkflowArtifactBinding, li as StepTelemetry, ln as WorkflowTriggerModeSchema, lo as WorkflowSourceLocation, lr as WorkflowRunContext, lt as ArtifactUpdater, m as DefineWorkflowOptions, ma as WorkflowAutomationTriggerBindingSchema, mi as WorkflowCancelPayload, mn as WorkflowWorkerSource, mo as WorkflowStationNodeSchema, mr as parseArtifactRef, mt as StepContext, n as defineWorkflowBundle, na as ExecutionStatusSchema, ni as StepRunConfigSchema, nn as WorkflowAttemptOutcome, no as WorkflowParallelNodeSchema, nr as WorkflowDefinitionPath, o as gate, oa as GateInstanceListQuerySchema, oi as StepRunnerBusAuthSchema, on as WorkflowRunnerCompletion, oo as WorkflowResolvedRoleSchema, or as WalkRelationship, ot as ArtifactContext, p as BuiltWorkflow, pa as WorkflowAutomationTriggerBinding, pi as WORKFLOW_CANCELLED_REASON, pn as WorkflowWorkerConfigSchema, po as WorkflowStationNode, pr as WorkflowArtifactRefSchema, pt as StationStepContext, qa as WorkflowNode, qi as EXECUTIONS_BY_ARTIFACT_REFS_MAX_REFS, qr as SpanRecord, qt as ExternalExecutionFrameStart, r as defineWorkflow, ra as ExecutionsByArtifactRefsQuery, ri as StepRunResult, rn as WorkflowAttemptTechnicalFailure, ro as WorkflowResolvedAgent, rr as WorkflowDefinitionPathSegment, s as iterate, sa as LoopGateOutcome, si as StepRunnerPlatformDefaults, sn as WorkflowRunnerRunOptions, so as WorkflowSequenceNode, sr as WorkflowNodeVisitor, st as ArtifactPatch, t as WorkflowBundle, ta as ExecutionStatus, ti as StepRunConfig, tn as WorkflowAttemptCancellation, to as WorkflowParallelNode, tr as ProjectedWorkflowGraph, u as station, ua as WorkflowArtifactBindingSchema, ui as StepTelemetrySchema, un as WorkflowWorkerBusAuth, uo as WorkflowSourceLocationSchema, ur as WorkflowRunContextSchema, ut as IterateHandler, v as LoopOptions, va as WorkflowDefinitionProvenance, vi as WorkflowRunnerStepTypeSchema, vr as WorkflowProgressUpdateSchema, vt as AutomationWorkflowTrigger, w as WorkflowZodSchemas, wa as WorkflowDelegateRoleNodeSchema, wi as WorkflowDelegateEconomicsSchema, wr as ArtifactQuerySourceSchema, wt as CronWorkflowTrigger, x as ParallelOptions, xa as WorkflowDelegateAgentNode, xi as createStepCancelSubject, xr as ArtifactPublishTarget, xt as CRON_AUTOMATION_TRIGGER_KIND, y as NodeOptions, ya as WorkflowDefinitionProvenanceSchema, yi as WorkflowStepType, yr as WorkflowSchemas, yt as BUS_EVENT_AUTOMATION_TRIGGER_KIND, za as WorkflowIterateChainNode, zi as WorkflowFinalizerId, zr as WorkflowError, zt as WorkLogStatsSchema } from "../../index-BhvXJhTY.mjs";
2
- import { _ as StationNodeBlockRun, a as TransitionActionInvocation, b as WorkflowStepBlock, c as TransitionConditionSchema, d as TransitionEventTypeSchema, f as TransitionRuleDefinition, g as RegisteredStepBlock, h as DelegateRoleNodeBlockRun, i as TransitionActionHandler, l as TransitionEvaluationContext, m as DelegateAgentNodeBlockRun, n as ExtensionTransitionRulesContribution, o as TransitionActionInvocationSchema, p as TransitionRuleDefinitionSchema, r as TransitionActionFactory, s as TransitionCondition, t as ExtensionTransitionActionsContribution, u as TransitionEventType, v as WorkflowBlockCollection, x as WorkflowStepBlockRun, y as WorkflowBlockMetadata } from "../../transition-DK43U3QJ.mjs";
1
+ import { $a as WorkflowParallelMode, $i as ExecutionListQuery, $n as ProjectedNode, $r as StepCancelPayloadSchema, $t as WorkerContributionManifestSchema, Aa as WorkflowExecutionScopeSchema, Ai as WorkflowDelegateResultFinalizationResponseSchema, Ar as ContextBundleSchema, At as WorkLogDynamicNodeMaterialization, Ba as WorkflowIterateChainNodeSchema, Bi as WorkflowFinalizerIdSchema, Br as WorkflowErrorCode, Bt as WorkLogUsageSummary, C as WorkflowStateAuthoringDefinition, Ca as WorkflowDelegateRoleNode, Ci as WorkflowDelegateEconomics, Cr as ArtifactQuerySource, Ct as CronTriggerPayload, D as validateNoNestedLoops, Da as WorkflowExecution, Di as WorkflowDelegateResultFinalizationRequest, Dr as BusRequestSource, Dt as WorkflowTriggerDef, E as LoopGateHandler, Ea as WorkflowDynamicRegionSchema, Ei as WorkflowDelegateResultFinalizationGatewayRequestSchema, Er as BusEventPublishTargetSchema, Et as ExtractTriggerPayload, Fa as WorkflowGateNode, Fi as WorkflowFinalizationClaimSchema, Fr as ResolvedContextEntry, Ft as WorkLogFrameEntrySchema, Ga as WorkflowLoopNode, Gi as EXECUTIONS_BY_ARTIFACT_REFS_DEFAULT_LIMIT_PER_REF, Gr as ExecutionLinkType, Gt as ExternalExecutionFrameCompletion, Ha as WorkflowIterateNodeSchema, Hi as WorkflowTerminalStatusSchema, Hr as ExecutionLinkListQuery, Ht as CompleteExternalExecutionRequest, Ia as WorkflowGateNodeSchema, Ii as WorkflowFinalizationDeliveryResultSchema, Ir as ResolvedContextEntrySchema, It as WorkLogGateEvent, Ja as WorkflowNodeBase, Ji as EXECUTION_LIST_DEFAULT_LIMIT, Jr as SpanRecordSchema, Jt as ExternalExecutionFrameStartSchema, Ka as WorkflowLoopNodeSchema, Ki as EXECUTIONS_BY_ARTIFACT_REFS_MAX_LIMIT_PER_REF, Kr as ExecutionLinkTypeSchema, Kt as ExternalExecutionFrameCompletionSchema, La as WorkflowGateStatus, Li as WorkflowFinalizationIntent, Lr as JsonPatchOperation, Lt as WorkLogGateEventSchema, Ma as WorkflowFrameStateSchema, Mi as WorkflowDelegateToolObservation, Mr as ContextPublishTargetSchema, Mt as WorkLogExecutionSummary, Na as WorkflowGateInstance, Ni as WorkflowDelegateToolObservationSchema, Nr as ContextSource, Nt as WorkLogExecutionSummarySchema, Oa as WorkflowExecutionSchema, Oi as WorkflowDelegateResultFinalizationRequestSchema, Or as BusRequestSourceSchema, Ot as WorkLogArtifactWrite, Pa as WorkflowGateInstanceSchema, Pi as WorkflowFinalizationClaim, Pr as ContextSourceSchema, Pt as WorkLogFrameEntry, Qa as WorkflowNodeTypeSchema, Qi as ExecutionListCursorSchema, Qn as ProjectedEdgeKind, Qr as StepCancelPayload, Qt as WorkerContributionManifest, Ra as WorkflowGateStatusSchema, Ri as WorkflowFinalizationIntentSchema, Rr as JsonPatchOperationSchema, Rt as WorkLogStats, S as WorkflowBuilder, Sa as WorkflowDelegateAgentNodeSchema, Si as createWorkflowCancelSubject, Sr as ArtifactPublishTargetSchema, St as CronAutomationTriggerParamsSchema, T as LoopGateContext, Ta as WorkflowDynamicRegion, Ti as WorkflowDelegateResultFinalizationGatewayRequest, Tr as BusEventPublishTarget, Tt as DEFAULT_CRON_TIMEZONE, Ua as WorkflowListQuery, Ui as createWorkflowDelegateResultFinalizerNamespace, Ur as ExecutionLinkListQuerySchema, Ut as CompleteExternalExecutionRequestSchema, Va as WorkflowIterateNode, Vi as WorkflowTerminalStatus, Vr as ExecutionLink, Vt as WorkLogUsageSummarySchema, Wa as WorkflowListQuerySchema, Wi as createWorkflowFinalizerNamespace, Wr as ExecutionLinkSchema, Wt as EXTERNAL_EXECUTION_ID_PREFIX, Xa as WorkflowNodeSchema, Xi as EXECUTION_LIST_MIN_LIMIT, Xr as SpanStatusSchema, Xt as RegisterExternalExecutionRequestSchema, Ya as WorkflowNodeBaseSchema, Yi as EXECUTION_LIST_MAX_LIMIT, Yr as SpanStatus, Yt as RegisterExternalExecutionRequest, Za as WorkflowNodeType, Zi as ExecutionListCursor, Zn as ProjectedEdge, Zr as IStepRunner, Zt as IWorkflowRunner, _ as LoopGateRegistration, _a as WorkflowDefinition, _i as WorkflowRunnerStepType, _r as WorkflowProgressUpdate, _t as WorkflowStateContext, a as delegateToRole, aa as GateInstanceListQuery, ai as StepRunnerBusAuth, an as WorkflowRunResultSchema, ao as WorkflowResolvedRole, ar as WalkContext, b as ParallelMode, ba as WorkflowDefinitionSchema, bi as WorkflowStepTypeSchema, br as WorkflowSubjects, bt as BusEventWorkflowTrigger, c as iterateChain, ca as LoopGateOutcomeSchema, ci as StepRunnerPlatformDefaultsSchema, cn as WorkflowTriggerMode, co as WorkflowSequenceNodeSchema, cr as walkWorkflowDefinition, ct as ArtifactUpdateOperation, d as AgentConfig, da as WorkflowArtifactWriteDeclaration, di as TokenUsage, dn as WorkflowWorkerBusAuthSchema, do as WorkflowStateDefinition, dr as WorkflowRunContextSource, dt as PreviousStepOutput, ea as ExecutionListQuerySchema, ei as StepCancelSubject, en as WorkerRuntimeContext, eo as WorkflowParallelModeSchema, er as ProjectedNodeRole, f as ArtifactBindingOptions, fa as WorkflowArtifactWriteDeclarationSchema, fi as TokenUsageSchema, fn as WorkflowWorkerConfig, fo as WorkflowStateDefinitionSchema, fr as WorkflowArtifactRef, ft as StationHandler, g as IterateOptions, ga as WorkflowConditionSchema, gi as WorkflowCancelSubject, gr as WorkflowNamespace, gt as WorkflowContextBase, h as GateOptions, ha as WorkflowCondition, hi as WorkflowCancelPayloadSchema, hn as WorkflowWorkerSourceSchema, hr as serializeArtifactRef, ht as WorkflowContext, i as delegateToAgent, ia as ExecutionsByArtifactRefsQuerySchema, ii as StepRunResultSchema, in as WorkflowRunResult, io as WorkflowResolvedAgentSchema, ir as projectWorkflowGraph, ja as WorkflowFrameState, ji as WorkflowDelegateResultFinalizerIdSchema, jr as ContextPublishTarget, jt as WorkLogDynamicNodeMaterializationSchema, ka as WorkflowExecutionScope, ki as WorkflowDelegateResultFinalizationResponse, kr as ContextBundle, kt as WorkLogArtifactWriteSchema, l as loop, la as WorkflowArtifactBinding, li as StepTelemetry, ln as WorkflowTriggerModeSchema, lo as WorkflowSourceLocation, lr as WorkflowRunContext, lt as ArtifactUpdater, m as DefineWorkflowOptions, ma as WorkflowAutomationTriggerBindingSchema, mi as WorkflowCancelPayload, mn as WorkflowWorkerSource, mo as WorkflowStationNodeSchema, mr as parseArtifactRef, mt as StepContext, n as defineWorkflowBundle, na as ExecutionStatusSchema, ni as StepRunConfigSchema, nn as WorkflowAttemptOutcome, no as WorkflowParallelNodeSchema, nr as WorkflowDefinitionPath, o as gate, oa as GateInstanceListQuerySchema, oi as StepRunnerBusAuthSchema, on as WorkflowRunnerCompletion, oo as WorkflowResolvedRoleSchema, or as WalkRelationship, ot as ArtifactContext, p as BuiltWorkflow, pa as WorkflowAutomationTriggerBinding, pi as WORKFLOW_CANCELLED_REASON, pn as WorkflowWorkerConfigSchema, po as WorkflowStationNode, pr as WorkflowArtifactRefSchema, pt as StationStepContext, qa as WorkflowNode, qi as EXECUTIONS_BY_ARTIFACT_REFS_MAX_REFS, qr as SpanRecord, qt as ExternalExecutionFrameStart, r as defineWorkflow, ra as ExecutionsByArtifactRefsQuery, ri as StepRunResult, rn as WorkflowAttemptTechnicalFailure, ro as WorkflowResolvedAgent, rr as WorkflowDefinitionPathSegment, s as iterate, sa as LoopGateOutcome, si as StepRunnerPlatformDefaults, sn as WorkflowRunnerRunOptions, so as WorkflowSequenceNode, sr as WorkflowNodeVisitor, st as ArtifactPatch, t as WorkflowBundle, ta as ExecutionStatus, ti as StepRunConfig, tn as WorkflowAttemptCancellation, to as WorkflowParallelNode, tr as ProjectedWorkflowGraph, u as station, ua as WorkflowArtifactBindingSchema, ui as StepTelemetrySchema, un as WorkflowWorkerBusAuth, uo as WorkflowSourceLocationSchema, ur as WorkflowRunContextSchema, ut as IterateHandler, v as LoopOptions, va as WorkflowDefinitionProvenance, vi as WorkflowRunnerStepTypeSchema, vr as WorkflowProgressUpdateSchema, vt as AutomationWorkflowTrigger, w as WorkflowZodSchemas, wa as WorkflowDelegateRoleNodeSchema, wi as WorkflowDelegateEconomicsSchema, wr as ArtifactQuerySourceSchema, wt as CronWorkflowTrigger, x as ParallelOptions, xa as WorkflowDelegateAgentNode, xi as createStepCancelSubject, xr as ArtifactPublishTarget, xt as CRON_AUTOMATION_TRIGGER_KIND, y as NodeOptions, ya as WorkflowDefinitionProvenanceSchema, yi as WorkflowStepType, yr as WorkflowSchemas, yt as BUS_EVENT_AUTOMATION_TRIGGER_KIND, za as WorkflowIterateChainNode, zi as WorkflowFinalizerId, zr as WorkflowError, zt as WorkLogStatsSchema } from "../../index-ClDAqLxW.mjs";
2
+ import { _ as StationNodeBlockRun, a as TransitionActionInvocation, b as WorkflowStepBlock, c as TransitionConditionSchema, d as TransitionEventTypeSchema, f as TransitionRuleDefinition, g as RegisteredStepBlock, h as DelegateRoleNodeBlockRun, i as TransitionActionHandler, l as TransitionEvaluationContext, m as DelegateAgentNodeBlockRun, n as ExtensionTransitionRulesContribution, o as TransitionActionInvocationSchema, p as TransitionRuleDefinitionSchema, r as TransitionActionFactory, s as TransitionCondition, t as ExtensionTransitionActionsContribution, u as TransitionEventType, v as WorkflowBlockCollection, x as WorkflowStepBlockRun, y as WorkflowBlockMetadata } from "../../transition-CzxHvafT.mjs";
3
3
  export { AgentConfig, ArtifactBindingOptions, ArtifactContext, ArtifactPatch, ArtifactPublishTarget, ArtifactPublishTargetSchema, ArtifactQuerySource, ArtifactQuerySourceSchema, ArtifactUpdateOperation, ArtifactUpdater, AutomationWorkflowTrigger, BUS_EVENT_AUTOMATION_TRIGGER_KIND, BuiltWorkflow, BusEventPublishTarget, BusEventPublishTargetSchema, BusEventWorkflowTrigger, BusRequestSource, BusRequestSourceSchema, CRON_AUTOMATION_TRIGGER_KIND, CompleteExternalExecutionRequest, CompleteExternalExecutionRequestSchema, ContextBundle, ContextBundleSchema, ContextPublishTarget, ContextPublishTargetSchema, ContextSource, ContextSourceSchema, CronAutomationTriggerParamsSchema, CronTriggerPayload, CronWorkflowTrigger, DEFAULT_CRON_TIMEZONE, DefineWorkflowOptions, DelegateAgentNodeBlockRun, DelegateRoleNodeBlockRun, EXECUTIONS_BY_ARTIFACT_REFS_DEFAULT_LIMIT_PER_REF, EXECUTIONS_BY_ARTIFACT_REFS_MAX_LIMIT_PER_REF, EXECUTIONS_BY_ARTIFACT_REFS_MAX_REFS, EXECUTION_LIST_DEFAULT_LIMIT, EXECUTION_LIST_MAX_LIMIT, EXECUTION_LIST_MIN_LIMIT, EXTERNAL_EXECUTION_ID_PREFIX, ExecutionLink, ExecutionLinkListQuery, ExecutionLinkListQuerySchema, ExecutionLinkSchema, ExecutionLinkType, ExecutionLinkTypeSchema, ExecutionListCursor, ExecutionListCursorSchema, ExecutionListQuery, ExecutionListQuerySchema, ExecutionStatus, ExecutionStatusSchema, ExecutionsByArtifactRefsQuery, ExecutionsByArtifactRefsQuerySchema, ExtensionTransitionActionsContribution, ExtensionTransitionRulesContribution, ExternalExecutionFrameCompletion, ExternalExecutionFrameCompletionSchema, ExternalExecutionFrameStart, ExternalExecutionFrameStartSchema, ExtractTriggerPayload, GateInstanceListQuery, GateInstanceListQuerySchema, GateOptions, IStepRunner, IWorkflowRunner, IterateHandler, IterateOptions, JsonPatchOperation, JsonPatchOperationSchema, LoopGateContext, LoopGateHandler, LoopGateOutcome, LoopGateOutcomeSchema, LoopGateRegistration, LoopOptions, NodeOptions, ParallelMode, ParallelOptions, PreviousStepOutput, ProjectedEdge, ProjectedEdgeKind, ProjectedNode, ProjectedNodeRole, ProjectedWorkflowGraph, RegisterExternalExecutionRequest, RegisterExternalExecutionRequestSchema, RegisteredStepBlock, ResolvedContextEntry, ResolvedContextEntrySchema, SpanRecord, SpanRecordSchema, SpanStatus, SpanStatusSchema, StationHandler, StationNodeBlockRun, StationStepContext, StepCancelPayload, StepCancelPayloadSchema, StepCancelSubject, StepContext, StepRunConfig, StepRunConfigSchema, StepRunResult, StepRunResultSchema, StepRunnerBusAuth, StepRunnerBusAuthSchema, StepRunnerPlatformDefaults, StepRunnerPlatformDefaultsSchema, StepTelemetry, StepTelemetrySchema, TokenUsage, TokenUsageSchema, TransitionActionFactory, TransitionActionHandler, TransitionActionInvocation, TransitionActionInvocationSchema, TransitionCondition, TransitionConditionSchema, TransitionEvaluationContext, TransitionEventType, TransitionEventTypeSchema, TransitionRuleDefinition, TransitionRuleDefinitionSchema, WORKFLOW_CANCELLED_REASON, WalkContext, WalkRelationship, WorkLogArtifactWrite, WorkLogArtifactWriteSchema, WorkLogDynamicNodeMaterialization, WorkLogDynamicNodeMaterializationSchema, WorkLogExecutionSummary, WorkLogExecutionSummarySchema, WorkLogFrameEntry, WorkLogFrameEntrySchema, WorkLogGateEvent, WorkLogGateEventSchema, WorkLogStats, WorkLogStatsSchema, WorkLogUsageSummary, WorkLogUsageSummarySchema, WorkerContributionManifest, WorkerContributionManifestSchema, WorkerRuntimeContext, WorkflowArtifactBinding, WorkflowArtifactBindingSchema, WorkflowArtifactRef, WorkflowArtifactRefSchema, WorkflowArtifactWriteDeclaration, WorkflowArtifactWriteDeclarationSchema, WorkflowAttemptCancellation, WorkflowAttemptOutcome, WorkflowAttemptTechnicalFailure, WorkflowAutomationTriggerBinding, WorkflowAutomationTriggerBindingSchema, WorkflowBlockCollection, WorkflowBlockMetadata, WorkflowBuilder, WorkflowBundle, WorkflowCancelPayload, WorkflowCancelPayloadSchema, WorkflowCancelSubject, WorkflowCondition, WorkflowConditionSchema, WorkflowContext, WorkflowContextBase, WorkflowDefinition, WorkflowDefinitionPath, WorkflowDefinitionPathSegment, WorkflowDefinitionProvenance, WorkflowDefinitionProvenanceSchema, WorkflowDefinitionSchema, WorkflowDelegateAgentNode, WorkflowDelegateAgentNodeSchema, WorkflowDelegateEconomics, WorkflowDelegateEconomicsSchema, WorkflowDelegateResultFinalizationGatewayRequest, WorkflowDelegateResultFinalizationGatewayRequestSchema, WorkflowDelegateResultFinalizationRequest, WorkflowDelegateResultFinalizationRequestSchema, WorkflowDelegateResultFinalizationResponse, WorkflowDelegateResultFinalizationResponseSchema, WorkflowDelegateResultFinalizerIdSchema, WorkflowDelegateRoleNode, WorkflowDelegateRoleNodeSchema, WorkflowDelegateToolObservation, WorkflowDelegateToolObservationSchema, WorkflowDynamicRegion, WorkflowDynamicRegionSchema, WorkflowError, WorkflowErrorCode, WorkflowErrorCode as WorkflowErrorCodeType, WorkflowExecution, WorkflowExecutionSchema, WorkflowExecutionScope, WorkflowExecutionScopeSchema, WorkflowFinalizationClaim, WorkflowFinalizationClaimSchema, WorkflowFinalizationDeliveryResultSchema, WorkflowFinalizationIntent, WorkflowFinalizationIntentSchema, WorkflowFinalizerId, WorkflowFinalizerIdSchema, WorkflowFrameState, WorkflowFrameStateSchema, WorkflowGateInstance, WorkflowGateInstanceSchema, WorkflowGateNode, WorkflowGateNodeSchema, WorkflowGateStatus, WorkflowGateStatusSchema, WorkflowIterateChainNode, WorkflowIterateChainNodeSchema, WorkflowIterateNode, WorkflowIterateNodeSchema, WorkflowListQuery, WorkflowListQuerySchema, WorkflowLoopNode, WorkflowLoopNodeSchema, WorkflowNamespace, WorkflowNode, WorkflowNodeBase, WorkflowNodeBaseSchema, WorkflowNodeSchema, WorkflowNodeType, WorkflowNodeTypeSchema, WorkflowNodeVisitor, WorkflowParallelMode, WorkflowParallelModeSchema, WorkflowParallelNode, WorkflowParallelNodeSchema, WorkflowProgressUpdate, WorkflowProgressUpdateSchema, WorkflowResolvedAgent, WorkflowResolvedAgentSchema, WorkflowResolvedRole, WorkflowResolvedRoleSchema, WorkflowRunContext, WorkflowRunContextSchema, WorkflowRunContextSource, WorkflowRunResult, WorkflowRunResultSchema, WorkflowRunnerCompletion, WorkflowRunnerRunOptions, WorkflowRunnerStepType, WorkflowRunnerStepTypeSchema, WorkflowSchemas, WorkflowSequenceNode, WorkflowSequenceNodeSchema, WorkflowSourceLocation, WorkflowSourceLocationSchema, WorkflowStateAuthoringDefinition, WorkflowStateContext, WorkflowStateDefinition, WorkflowStateDefinitionSchema, WorkflowStationNode, WorkflowStationNodeSchema, WorkflowStepBlock, WorkflowStepBlockRun, WorkflowStepType, WorkflowStepTypeSchema, WorkflowSubjects, WorkflowTerminalStatus, WorkflowTerminalStatusSchema, WorkflowTriggerDef, WorkflowTriggerMode, WorkflowTriggerModeSchema, WorkflowWorkerBusAuth, WorkflowWorkerBusAuthSchema, WorkflowWorkerConfig, WorkflowWorkerConfigSchema, WorkflowWorkerSource, WorkflowWorkerSourceSchema, WorkflowZodSchemas, createStepCancelSubject, createWorkflowCancelSubject, createWorkflowDelegateResultFinalizerNamespace, createWorkflowFinalizerNamespace, defineWorkflow, defineWorkflowBundle, delegateToAgent, delegateToRole, gate, iterate, iterateChain, loop, parseArtifactRef, projectWorkflowGraph, serializeArtifactRef, station, validateNoNestedLoops, walkWorkflowDefinition };
@@ -1,5 +1,5 @@
1
- import { l as AutomationTriggerType } from "./definition-DWhjp0db.mjs";
2
- import { n as ExtensionContext, r as NodeExtensionContext } from "./extension-context-DH84KOm9.mjs";
1
+ import { l as AutomationTriggerType } from "./definition-i4PufQpo.mjs";
2
+ import { n as ExtensionContext, r as NodeExtensionContext } from "./extension-context-BWrjVPXR.mjs";
3
3
 
4
4
  //#region core/contracts/src/automation-trigger/contribution.d.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { l as JsonValue$1 } from "./json-value--pv1-OHx.mjs";
1
+ import { l as JsonValue$1 } from "./json-value-B2gMynW3.mjs";
2
2
  import { z } from "zod";
3
3
  import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
4
4
 
@@ -1 +1 @@
1
- import{t as e}from"./descriptor-to-package-BPIArq6N.mjs";import{t}from"./jsonl-transport-Ct1RWs0h.mjs";import{z as n}from"zod";import{createBusNamespace as r}from"@makaio/framework/core";const i={idle:[`starting`],starting:[`running`,`crashed`,`stopping`],running:[`stopping`,`crashed`],stopping:[`stopped`],stopped:[`starting`],crashed:[`starting`,`stopped`]};function a(e,t){if(!i[e].includes(t))throw Error(`Invalid state transition: ${e} → ${t}`)}function o(e){return new Promise(t=>{if(e.exitCode!==null||e.signalCode!==null){t(!0);return}e.once(`exit`,()=>t(!0))})}function s(e){let{spawn:n,healthTimeoutMs:r=3e4,shutdownTimeoutMs:i=5e3,restartPolicy:s=`none`,onReady:c,onExit:l,onStateChange:u}=e,d=`idle`,f;function p(e){a(d,e),d=e,u?.(d)}function m(e){let t=f;if(f=void 0,t?.close(),d===`stopping`){p(`stopped`),l?.(e);return}if(d===`running`){if(e!==0){p(`crashed`),l?.(e),(s===`on-crash`||s===`always`)&&h().catch(e=>{console.error(`[ProcessLifecycle:${n.processName??n.command}] Restart failed:`,e instanceof Error?e.message:e)});return}p(`stopping`),p(`stopped`),l?.(e),s===`always`&&h().catch(e=>{console.error(`[ProcessLifecycle:${n.processName??n.command}] Restart failed:`,e instanceof Error?e.message:e)})}}async function h(){p(`starting`);let e=t(n);f=e;let i=e.process;await new Promise((t,a)=>{let o=!1;function s(e){o||(o=!0,clearTimeout(u),d(),i.off(`exit`,h),e())}let u=setTimeout(()=>{s(()=>{e.close(),f=void 0;try{p(`crashed`)}catch{}a(Error(`Process health timeout after ${r}ms: ${n.processName??n.command}`))})},r),d=e.onMessage(()=>{s(()=>{try{p(`running`)}catch(e){a(e);return}c?.(),i.once(`exit`,m),t()})});function h(e){s(()=>{f=void 0;try{p(`crashed`)}catch{}l?.(e),a(Error(`Process exited with code ${String(e)} before signaling readiness`))})}i.once(`exit`,h)})}async function g(){if(d===`stopped`||d===`idle`)return;if(d===`crashed`){f?.close(),f=void 0,p(`stopped`);return}if(d!==`stopping`&&p(`stopping`),!f){d===`stopping`&&p(`stopped`);return}let e=f,t=e.process;if(t.exitCode!==null){e.close(),f===e&&(f=void 0),d===`stopping`&&p(`stopped`);return}t.kill(`SIGTERM`);let n;await Promise.race([o(t).then(()=>(clearTimeout(n),!0)),new Promise(e=>{n=setTimeout(()=>e(!1),i)})])||(t.kill(`SIGKILL`),await o(t)),d===`stopping`&&p(`stopped`),e.close(),f===e&&(f=void 0)}return{get transport(){return f},get state(){return d},start:h,stop:g}}const c=n.object({dataDir:n.string().optional(),machineId:n.string().optional(),makaioHome:n.string().optional(),platform:n.string().optional(),username:n.string().optional()}),l={init:{request:n.object({config:n.unknown().optional(),context:c.optional()}),response:n.object({ready:n.boolean()})},ready:n.object({ready:n.boolean(),config:n.unknown().optional(),context:c.optional()}).passthrough(),destroy:{request:n.object({reason:n.string().optional()}),response:n.object({stopped:n.boolean()})},stopped:n.object({stopped:n.boolean()}).passthrough()};function u(e,t){return e.bus.registerNamespace(r(`extension.${t}`,l)).subjects}function d(e,t){let n;return()=>(n??=u(e,t),n)}function f(e){return{dataDir:e.dataDir,machineId:e.machineId,makaioHome:e.makaioHome,platform:e.platform,username:e.username}}var p=class{descriptor;ctx;extensionPath;getLifecycleSubjects;transport=null;unregister=null;constructor(e,t,n){this.descriptor=e,this.ctx=t,this.extensionPath=n,this.getLifecycleSubjects=d(t,e.name)}async init(){let{StdioServerTransport:e}=await import(`./src-CkKKoY0M.mjs`),{transport:t}=this.descriptor,n=this.getLifecycleSubjects(),r=new e({name:this.descriptor.name,spawn:{command:t.command,args:t.args,cwd:this.extensionPath,env:t.env,processName:this.descriptor.name}}),i=null;try{let e=this.ctx.bus.registerTransport(r);i=e.unregister,await r.connect(),await r.ready,await e.ready,this.transport=r,this.unregister=i,await this.ctx.bus.request(n.init,{config:this.ctx.config??this.descriptor.config?.defaults,context:f(this.ctx)},{timeout:t.healthTimeoutMs})}catch(e){throw i?.(),await r.disconnect(),this.transport=null,this.unregister=null,e}}async destroy(){if(this.transport!==null){let e=this.getLifecycleSubjects();try{await this.ctx.bus.request(e.destroy,{reason:`runtime-shutdown`},{timeout:this.descriptor.transport.shutdownTimeoutMs})}catch(e){console.warn(`[extensions] ${this.descriptor.name}: detached destroy lifecycle request did not complete before disconnect:`,e instanceof Error?e.message:e)}}this.unregister?.(),this.unregister=null,await this.transport?.disconnect(),this.transport=null}},m=class{descriptor;ctx;extensionPath;getLifecycleSubjects;lifecycle=null;constructor(e,t,n){this.descriptor=e,this.ctx=t,this.extensionPath=n,this.getLifecycleSubjects=d(t,e.name)}async init(){let{transport:e}=this.descriptor;if(!this.ctx.busUrl)throw Error(`[extensions] ${this.descriptor.name}: bus-websocket transport requires NodeExtensionContext.busUrl`);let t=this.getLifecycleSubjects();this.lifecycle=s({spawn:{command:e.command,args:e.args,cwd:this.extensionPath,env:{...e.env,MAKAIO_BUS_TRANSPORT:`websocket`,MAKAIO_BUS_URL:this.ctx.busUrl,MAKAIO_EXTENSION_NAME:this.descriptor.name},processName:this.descriptor.name},healthTimeoutMs:e.healthTimeoutMs,shutdownTimeoutMs:e.shutdownTimeoutMs,restartPolicy:`restartPolicy`in e?e.restartPolicy:void 0});try{await this.lifecycle.start(),await this.ctx.bus.request(t.init,{config:this.ctx.config??this.descriptor.config?.defaults,context:f(this.ctx)},{timeout:e.healthTimeoutMs})}catch(e){throw await this.lifecycle.stop(),this.lifecycle=null,e}}async destroy(){if(this.lifecycle!==null){let e=this.getLifecycleSubjects();try{await this.ctx.bus.request(e.destroy,{reason:`runtime-shutdown`},{timeout:this.descriptor.transport.shutdownTimeoutMs})}catch(e){console.warn(`[extensions] ${this.descriptor.name}: detached destroy lifecycle request did not complete before process stop:`,e instanceof Error?e.message:e)}await this.lifecycle.stop(),this.lifecycle=null}}},h=class{descriptor;ctx;extensionPath;bridge=null;constructor(e,t,n){this.descriptor=e,this.ctx=t,this.extensionPath=n}async init(){let{startMcpClientBridge:e}=await import(`@makaio/framework/mcp-http-server`),{transport:t}=this.descriptor;this.bridge=await e({command:t.command,args:t.args,env:t.env,cwd:this.extensionPath,extensionName:this.descriptor.name,bus:this.ctx.bus})}async destroy(){this.bridge!==null&&(await this.bridge.close(),this.bridge=null)}};function g(t,n){return{...e(t),create(e){return t.transport.type===`bus-stdio`?new p(t,e,n):t.transport.type===`mcp-stdio`?new h(t,e,n):new m(t,e,n)}}}export{g as createDetachedExtensionPackage};
1
+ import{t as e}from"./descriptor-to-package-BmbVrmaM.mjs";import{t}from"./jsonl-transport-_zPQoMpM.mjs";import{z as n}from"zod";import{createBusNamespace as r}from"@makaio/framework/core";const i={idle:[`starting`],starting:[`running`,`crashed`,`stopping`],running:[`stopping`,`crashed`],stopping:[`stopped`],stopped:[`starting`],crashed:[`starting`,`stopped`]};function a(e,t){if(!i[e].includes(t))throw Error(`Invalid state transition: ${e} → ${t}`)}function o(e){return new Promise(t=>{if(e.exitCode!==null||e.signalCode!==null){t(!0);return}e.once(`exit`,()=>t(!0))})}function s(e){let{spawn:n,healthTimeoutMs:r=3e4,shutdownTimeoutMs:i=5e3,restartPolicy:s=`none`,onReady:c,onExit:l,onStateChange:u}=e,d=`idle`,f;function p(e){a(d,e),d=e,u?.(d)}function m(e){let t=f;if(f=void 0,t?.close(),d===`stopping`){p(`stopped`),l?.(e);return}if(d===`running`){if(e!==0){p(`crashed`),l?.(e),(s===`on-crash`||s===`always`)&&h().catch(e=>{console.error(`[ProcessLifecycle:${n.processName??n.command}] Restart failed:`,e instanceof Error?e.message:e)});return}p(`stopping`),p(`stopped`),l?.(e),s===`always`&&h().catch(e=>{console.error(`[ProcessLifecycle:${n.processName??n.command}] Restart failed:`,e instanceof Error?e.message:e)})}}async function h(){p(`starting`);let e=t(n);f=e;let i=e.process;await new Promise((t,a)=>{let o=!1;function s(e){o||(o=!0,clearTimeout(u),d(),i.off(`exit`,h),e())}let u=setTimeout(()=>{s(()=>{e.close(),f=void 0;try{p(`crashed`)}catch{}a(Error(`Process health timeout after ${r}ms: ${n.processName??n.command}`))})},r),d=e.onMessage(()=>{s(()=>{try{p(`running`)}catch(e){a(e);return}c?.(),i.once(`exit`,m),t()})});function h(e){s(()=>{f=void 0;try{p(`crashed`)}catch{}l?.(e),a(Error(`Process exited with code ${String(e)} before signaling readiness`))})}i.once(`exit`,h)})}async function g(){if(d===`stopped`||d===`idle`)return;if(d===`crashed`){f?.close(),f=void 0,p(`stopped`);return}if(d!==`stopping`&&p(`stopping`),!f){d===`stopping`&&p(`stopped`);return}let e=f,t=e.process;if(t.exitCode!==null){e.close(),f===e&&(f=void 0),d===`stopping`&&p(`stopped`);return}t.kill(`SIGTERM`);let n;await Promise.race([o(t).then(()=>(clearTimeout(n),!0)),new Promise(e=>{n=setTimeout(()=>e(!1),i)})])||(t.kill(`SIGKILL`),await o(t)),d===`stopping`&&p(`stopped`),e.close(),f===e&&(f=void 0)}return{get transport(){return f},get state(){return d},start:h,stop:g}}const c=n.object({dataDir:n.string().optional(),machineId:n.string().optional(),makaioHome:n.string().optional(),platform:n.string().optional(),username:n.string().optional()}),l={init:{request:n.object({config:n.unknown().optional(),context:c.optional()}),response:n.object({ready:n.boolean()})},ready:n.object({ready:n.boolean(),config:n.unknown().optional(),context:c.optional()}).passthrough(),destroy:{request:n.object({reason:n.string().optional()}),response:n.object({stopped:n.boolean()})},stopped:n.object({stopped:n.boolean()}).passthrough()};function u(e,t){return e.bus.registerNamespace(r(`extension.${t}`,l)).subjects}function d(e,t){let n;return()=>(n??=u(e,t),n)}function f(e){return{dataDir:e.dataDir,machineId:e.machineId,makaioHome:e.makaioHome,platform:e.platform,username:e.username}}var p=class{descriptor;ctx;extensionPath;getLifecycleSubjects;transport=null;unregister=null;constructor(e,t,n){this.descriptor=e,this.ctx=t,this.extensionPath=n,this.getLifecycleSubjects=d(t,e.name)}async init(){let{StdioServerTransport:e}=await import(`./src-BDw_ijvA.mjs`),{transport:t}=this.descriptor,n=this.getLifecycleSubjects(),r=new e({name:this.descriptor.name,spawn:{command:t.command,args:t.args,cwd:this.extensionPath,env:t.env,processName:this.descriptor.name}}),i=null;try{let e=this.ctx.bus.registerTransport(r);i=e.unregister,await r.connect(),await r.ready,await e.ready,this.transport=r,this.unregister=i,await this.ctx.bus.request(n.init,{config:this.ctx.config??this.descriptor.config?.defaults,context:f(this.ctx)},{timeout:t.healthTimeoutMs})}catch(e){throw i?.(),await r.disconnect(),this.transport=null,this.unregister=null,e}}async destroy(){if(this.transport!==null){let e=this.getLifecycleSubjects();try{await this.ctx.bus.request(e.destroy,{reason:`runtime-shutdown`},{timeout:this.descriptor.transport.shutdownTimeoutMs})}catch(e){console.warn(`[extensions] ${this.descriptor.name}: detached destroy lifecycle request did not complete before disconnect:`,e instanceof Error?e.message:e)}}this.unregister?.(),this.unregister=null,await this.transport?.disconnect(),this.transport=null}},m=class{descriptor;ctx;extensionPath;getLifecycleSubjects;lifecycle=null;constructor(e,t,n){this.descriptor=e,this.ctx=t,this.extensionPath=n,this.getLifecycleSubjects=d(t,e.name)}async init(){let{transport:e}=this.descriptor;if(!this.ctx.busUrl)throw Error(`[extensions] ${this.descriptor.name}: bus-websocket transport requires NodeExtensionContext.busUrl`);let t=this.getLifecycleSubjects();this.lifecycle=s({spawn:{command:e.command,args:e.args,cwd:this.extensionPath,env:{...e.env,MAKAIO_BUS_TRANSPORT:`websocket`,MAKAIO_BUS_URL:this.ctx.busUrl,MAKAIO_EXTENSION_NAME:this.descriptor.name},processName:this.descriptor.name},healthTimeoutMs:e.healthTimeoutMs,shutdownTimeoutMs:e.shutdownTimeoutMs,restartPolicy:`restartPolicy`in e?e.restartPolicy:void 0});try{await this.lifecycle.start(),await this.ctx.bus.request(t.init,{config:this.ctx.config??this.descriptor.config?.defaults,context:f(this.ctx)},{timeout:e.healthTimeoutMs})}catch(e){throw await this.lifecycle.stop(),this.lifecycle=null,e}}async destroy(){if(this.lifecycle!==null){let e=this.getLifecycleSubjects();try{await this.ctx.bus.request(e.destroy,{reason:`runtime-shutdown`},{timeout:this.descriptor.transport.shutdownTimeoutMs})}catch(e){console.warn(`[extensions] ${this.descriptor.name}: detached destroy lifecycle request did not complete before process stop:`,e instanceof Error?e.message:e)}await this.lifecycle.stop(),this.lifecycle=null}}},h=class{descriptor;ctx;extensionPath;bridge=null;constructor(e,t,n){this.descriptor=e,this.ctx=t,this.extensionPath=n}async init(){let{startMcpClientBridge:e}=await import(`@makaio/framework/mcp-http-server`),{transport:t}=this.descriptor;this.bridge=await e({command:t.command,args:t.args,env:t.env,cwd:this.extensionPath,extensionName:this.descriptor.name,bus:this.ctx.bus})}async destroy(){this.bridge!==null&&(await this.bridge.close(),this.bridge=null)}};function g(t,n){return{...e(t),create(e){return t.transport.type===`bus-stdio`?new p(t,e,n):t.transport.type===`mcp-stdio`?new h(t,e,n):new m(t,e,n)}}}export{g as createDetachedExtensionPackage};
@@ -1 +1 @@
1
- import{a as e}from"./execution-attempt-repository-CY289HlC.mjs";import{canonicalStringify as t}from"@makaio/framework/utils";import{ExecutionAttemptInstructionSchema as n}from"@makaio/framework/contracts";function r(e){return typeof e==`object`&&!!e}function i(e){if(!(!r(e)||Object.isFrozen(e))){Object.freeze(e);for(let t of Object.values(e))i(t)}}function a(e,t){let n=t(structuredClone(e));return i(n),n}function o(e){return a(e,e=>n.parse(e))}function s(e,t){if(typeof e!=`string`||e.length===0)throw TypeError(`${t} must be a non-empty string`)}function c(e){let{executionId:t,requestKey:n}=e;return s(t,`executionId`),s(n,`requestKey`),{executionId:t,requestKey:n,instruction:o(e.instruction)}}function l(e){let{executionAttemptId:t,bootstrapTimeoutMs:n}=e;if(s(t,`executionAttemptId`),!Number.isSafeInteger(n)||n<=0)throw RangeError(`bootstrapTimeoutMs must be a positive safe integer`);return{...c(e),executionAttemptId:t,bootstrapTimeoutMs:n}}function u(e){let{executionId:t,executionAttemptId:n}=e;return s(t,`executionId`),s(n,`executionAttemptId`),{executionId:t,executionAttemptId:n}}function d(e,n){if(n===null||n.executionId!==e.executionId)throw Error(`Corrupt execution attempt request binding`);return t(n.instruction)===t(e.instruction)?{kind:`replayed`,attempt:structuredClone(n)}:{kind:`conflict`}}function f(t,n,r){let{attempt:i,activeAttemptId:a,outcomeText:o}=n;if(i===null||i.executionId!==t.executionId)return{kind:`not-found`};if(i.executionAttemptId!==t.executionAttemptId)throw Error(`Corrupt execution attempt settlement identity`);let s={attempt:structuredClone(i),isCurrentAttempt:a===i.executionAttemptId};if(i.status!==`settled`&&i.settlementKind==null&&o===null)return{kind:`unsettled`,...s};if(i.status===`settled`&&i.settlementKind===`outcome`&&o!==null)return{kind:`outcome`,...s,result:{text:o,outcome:e(r,o)},controlObservation:structuredClone(n.controlObservation)};if(i.status===`settled`&&(i.settlementKind===`abandoned`||i.settlementKind===`infrastructure-failure`)&&o===null)return{kind:`settled-without-outcome`,...s};throw Error(`Corrupt execution attempt settlement facts`)}export{u as a,l as i,d as n,o,c as r,a as s,f as t};
1
+ import{a as e}from"./execution-attempt-repository-BMbbbk7n.mjs";import{canonicalStringify as t}from"@makaio/framework/utils";import{ExecutionAttemptInstructionSchema as n}from"@makaio/framework/contracts";function r(e){return typeof e==`object`&&!!e}function i(e){if(!(!r(e)||Object.isFrozen(e))){Object.freeze(e);for(let t of Object.values(e))i(t)}}function a(e,t){let n=t(structuredClone(e));return i(n),n}function o(e){return a(e,e=>n.parse(e))}function s(e,t){if(typeof e!=`string`||e.length===0)throw TypeError(`${t} must be a non-empty string`)}function c(e){let{executionId:t,requestKey:n}=e;return s(t,`executionId`),s(n,`requestKey`),{executionId:t,requestKey:n,instruction:o(e.instruction)}}function l(e){let{executionAttemptId:t,bootstrapTimeoutMs:n}=e;if(s(t,`executionAttemptId`),!Number.isSafeInteger(n)||n<=0)throw RangeError(`bootstrapTimeoutMs must be a positive safe integer`);return{...c(e),executionAttemptId:t,bootstrapTimeoutMs:n}}function u(e){let{executionId:t,executionAttemptId:n}=e;return s(t,`executionId`),s(n,`executionAttemptId`),{executionId:t,executionAttemptId:n}}function d(e,n){if(n===null||n.executionId!==e.executionId)throw Error(`Corrupt execution attempt request binding`);return t(n.instruction)===t(e.instruction)?{kind:`replayed`,attempt:structuredClone(n)}:{kind:`conflict`}}function f(t,n,r){let{attempt:i,activeAttemptId:a,outcomeText:o}=n;if(i===null||i.executionId!==t.executionId)return{kind:`not-found`};if(i.executionAttemptId!==t.executionAttemptId)throw Error(`Corrupt execution attempt settlement identity`);let s={attempt:structuredClone(i),isCurrentAttempt:a===i.executionAttemptId};if(i.status!==`settled`&&i.settlementKind==null&&o===null)return{kind:`unsettled`,...s};if(i.status===`settled`&&i.settlementKind===`outcome`&&o!==null)return{kind:`outcome`,...s,result:{text:o,outcome:e(r,o)},controlObservation:structuredClone(n.controlObservation)};if(i.status===`settled`&&(i.settlementKind===`abandoned`||i.settlementKind===`infrastructure-failure`)&&o===null)return{kind:`settled-without-outcome`,...s};throw Error(`Corrupt execution attempt settlement facts`)}export{u as a,l as i,d as n,o,c as r,a as s,f as t};
@@ -1 +1 @@
1
- import{A as e,E as t,M as n,N as r,O as i,_ as a,j as o,k as s,m as c,v as l,w as u}from"./schemas-Djjq4LLs.mjs";import"./services/execution-target/namespace.mjs";import{z as d}from"zod";import{channelSubject as f,createBusNamespace as p,localSubject as m}from"@makaio/framework/core";const h=`docker-bootstrap`,g=p(`docker`,{"container.spawn":{request:i,response:s},"bootstrap.spawn":f({request:c,response:s}),"bootstrap.getChannelToken":m({request:d.object({}),response:d.object({token:d.string().min(1)})}),"container.stop":{request:n,response:r},"container.status":{request:e,response:o},"container.created":a,"container.started":u,"container.stopped":t,"container.destroyed":l}),_=g.subjects,v=g,y=_;export{_ as a,g as i,y as n,h as r,v as t};
1
+ import{A as e,E as t,M as n,N as r,O as i,_ as a,j as o,k as s,m as c,v as l,w as u}from"./schemas-D9hVAoP5.mjs";import"./services/execution-target/namespace.mjs";import{z as d}from"zod";import{channelSubject as f,createBusNamespace as p,localSubject as m}from"@makaio/framework/core";const h=`docker-bootstrap`,g=p(`docker`,{"container.spawn":{request:i,response:s},"bootstrap.spawn":f({request:c,response:s}),"bootstrap.getChannelToken":m({request:d.object({}),response:d.object({token:d.string().min(1)})}),"container.stop":{request:n,response:r},"container.status":{request:e,response:o},"container.created":a,"container.started":u,"container.stopped":t,"container.destroyed":l}),_=g.subjects,v=g,y=_;export{_ as a,g as i,y as n,h as r,v as t};
@@ -1 +1 @@
1
- import{n as e}from"./window-registry-2MZdZPdA.mjs";import{n as t}from"./namespace-BPf6AbBO.mjs";import{n}from"./extension-namespace-CeRpt6C8.mjs";import{t as r}from"./schema-introspection-_Yw9L_mB.mjs";import{z as i}from"zod";import a from"node:path";import{getErrorString as o,summarizeDiagnosticText as s}from"@makaio/framework/utils";import{MakaioError as c,createBusNamespace as l}from"@makaio/framework/core";import{EXTENSION_DATA_DIR_SEGMENT as u,ProviderDefinitionSchema as d,encodeExtensionNameAsPathSegment as f,primaryMigrationsPath as p,versionSatisfies as m}from"@makaio/framework/contracts";import{ToastSubjects as h}from"@makaio/framework/contracts/toast";import{ExtensionWarningSchema as ee,getExtensionWarningActionLabel as te}from"@makaio/framework/contracts/extension";import{TrayMenuSubjects as g}from"@makaio/framework/services/tray-menu";const _=i.object({name:i.string(),displayName:i.string()}),v=l(`kernel:boot`,{getState:{request:i.object({}),response:i.object({complete:i.boolean(),completedCount:i.number(),totalCount:i.number(),currentService:i.string().optional(),failedServices:i.array(i.string()),skippedServices:i.array(i.string()).default([]),totalDurationMs:i.number().optional()})},"service.starting":_,"service.ready":_.extend({durationMs:i.number().int().nonnegative()}),"service.failed":_.extend({errorMessage:i.string()}),"service.skipped":_.extend({reason:i.string()}),progress:i.object({completedCount:i.number(),totalCount:i.number(),currentService:i.string().optional()}),complete:i.object({totalDurationMs:i.number(),failedServices:i.array(i.string())})}),y=v.subjects;var b=class extends Error{reason;constructor(e){super(e),this.name=`ServiceSkipError`,this.reason=e}};function x(e){return{name:e.name,displayName:e.displayName}}var ne=class{bus;state;cleanup;constructor(e,t){this.bus=e,this.state={complete:!1,completedCount:0,totalCount:t,failedServices:[],skippedServices:[],startedAt:Date.now()},this.cleanup=this.bus.on(y.getState,e=>{e.setResult({complete:this.state.complete,completedCount:this.state.completedCount,totalCount:this.state.totalCount,...this.state.currentService===void 0?{}:{currentService:this.state.currentService},failedServices:[...this.state.failedServices],skippedServices:[...this.state.skippedServices],...this.state.totalDurationMs===void 0?{}:{totalDurationMs:this.state.totalDurationMs}})})}dispose(){this.cleanup()}starting(e){let t=x(e);this.state.currentService=t.displayName,this.state.currentServiceStartedAt=Date.now(),this.bus.emit(y.service.starting,t).catch(e=>{console.warn(`[ExtensionCoordinator] boot.service.starting emit failed for "${t.name}":`,e)})}ready(e){let t=x(e);this.state.completedCount+=1;let n=this.state.currentServiceStartedAt===void 0?0:Math.max(0,Date.now()-this.state.currentServiceStartedAt);this.bus.emit(y.service.ready,{...t,durationMs:n}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.service.ready emit failed for "${t.name}":`,e)}),this.emitProgress()}failed(e,t){let n=x(e);this.state.completedCount+=1,this.state.failedServices.push(n.name),this.bus.emit(y.service.failed,{...n,errorMessage:t}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.service.failed emit failed for "${n.name}":`,e)}),this.emitProgress()}skipped(e,t){let n=x(e);this.state.completedCount+=1,this.state.skippedServices.push(n.name),this.bus.emit(y.service.skipped,{...n,reason:t}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.service.skipped emit failed for "${n.name}":`,e)}),this.emitProgress()}complete(){this.state.complete=!0,delete this.state.currentService,delete this.state.currentServiceStartedAt,this.state.totalDurationMs=Date.now()-this.state.startedAt,this.bus.emit(y.complete,{totalDurationMs:this.state.totalDurationMs,failedServices:[...this.state.failedServices]}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.complete emit failed:`,e)})}emitProgress(){this.bus.emit(y.progress,{completedCount:this.state.completedCount,totalCount:this.state.totalCount,...this.state.currentService===void 0?{}:{currentService:this.state.currentService}}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.progress emit failed:`,e)})}};function re(e){return{subject:`wiring.apply`,$meta:{namespace:`client:${e}`,isRequest:!0,local:!1,channel:!1,payload:{request:{},response:{}}}}}const S=`action`;function C(e,t){return`${e}:${t}`}function ie(e,t,n){return e.on(h.interacted,r=>{let{toastId:i,actionId:a}=r.payload,o=C(i,a),s=t.get(o);s&&ae(e,s,i,n).catch(e=>{console.error(`[ExtensionCoordinator] Warning action dispatch failed for toast "${i}":`,e)})})}async function ae(e,t,n,r){switch(t.kind){case`configure-integration`:await se(e,t.clientId,n,r);break;case`open-url`:console.info(`[ExtensionCoordinator] Toast "${n}" open-url action not routable from runtime layer: ${t.url}`);break;case`run-command`:console.info(`[ExtensionCoordinator] Toast "${n}" run-command action not routable from runtime layer: ${t.command}`);break;case`install-extension`:console.info(`[ExtensionCoordinator] Toast "${n}" install-extension action not routable from runtime layer: ${t.extensionName}`);break;default:oe(t)}}function oe(e){throw Error(`[ExtensionCoordinator] Unsupported warning action: ${JSON.stringify(e)}`)}async function se(e,t,n,r){let i=re(t),a=await e.requestOptional(i,{scope:`user`,makaioCommand:r});if(!a.handled){console.warn(`[ExtensionCoordinator] Toast "${n}" configure-integration: no wiring handler for client "${t}". Is the client package loaded?`);return}let{applied:o,skipped:s}=a.data;console.info(`[ExtensionCoordinator] Toast "${n}" configure-integration: wired client "${t}" — ${o} applied, ${s} skipped.`)}function ce(e){return e.map(e=>({name:e.name,description:e.description,hasInteractive:!!e.interactive,subcommands:e.subcommands.map(e=>({name:e.name,description:e.description,args:r(e.schema)}))}))}async function le(e,t,n){let{command:r,subcommand:i,args:a}=e,o=t.find(e=>e.name===r);if(!o)return{exitCode:1,stdout:[],stderr:[`Unknown command: ${r}`]};let s=o.subcommands.find(e=>e.name===i);if(!s)return{exitCode:1,stdout:[],stderr:[`Unknown subcommand: ${i}`]};let c=s.schema.safeParse(a??{});if(!c.success)return{exitCode:1,stdout:[],stderr:[`Validation failed:`,...c.error.issues.map(e=>` ${e.path.join(`.`)||`(root)`}: ${e.message}`)]};if(o.beforeRun)try{let e=await o.beforeRun({subcommandName:i,args:c.data??{},bus:n});if(!e.proceed)return{exitCode:e.exitCode??1,stdout:[],stderr:[e.message]}}catch(e){return{exitCode:1,stdout:[],stderr:[`beforeRun hook failed: ${e instanceof Error?e.message:String(e)}`]}}let l=[],u=[],d={write:e=>l.push(e),error:e=>u.push(e)},f=0,p=new AbortController().signal;try{await s.handler({args:c.data,bus:n,output:d,signal:p,setExitCode:e=>{f=e}})}catch(e){f===0&&(f=1),u.push(e instanceof Error?e.message:String(e))}return{exitCode:f,stdout:l,stderr:u}}function w(e){let r=[];return r.push(e.bus.on(n.list,t=>{t.setResult({extensions:e.list()})})),r.push(e.bus.on(n.get,t=>{t.setResult({extension:e.getInfo(t.payload.name)})})),r.push(e.bus.on(n.setEnabled,async t=>{let{success:n,outcome:r,reason:i}=await e.handleSetEnabled(t.payload.name,t.payload.enabled);t.setResult({success:n,outcome:r,...i!==void 0&&{reason:i}})})),r.push(e.bus.on(n.catalog,async t=>{t.setResult({entries:await e.getInstalledCatalog()})})),r.push(e.bus.on(n.contributions.catalog,t=>{let n=[],r=[];for(let[t,i]of e.entries)if(i.state===`active`){for(let e of i.pkg.providers??[])n.push({packageName:t,definition:d.parse(e)});for(let e of i.pkg.clients??[])r.push({packageName:t,definition:e})}t.setResult({providers:n,clients:r})})),r.push(e.bus.on(t.listContributions,t=>{t.setResult({contributions:ce(e.cliContributions)})})),r.push(e.bus.on(t.execute,async t=>{t.setResult(await le(t.payload,e.cliContributions,e.bus))})),r.push(e.bus.on(n.warnings.list,t=>{let{extensionName:n}=t.payload;if(n!==void 0){let r=e.entries.get(n),i=r&&r.warnings.length>0?[{extensionName:n,warnings:[...r.warnings]}]:[];t.setResult({entries:i});return}let r=[];for(let[t,n]of e.entries)n.warnings.length>0&&r.push({extensionName:t,warnings:[...n.warnings]});t.setResult({entries:r})})),r}async function T(e){for(let[t,n]of e.entries)n.state===`active`&&await D(e,t,n)}function ue(e){if(e&&E(e))return[{id:S,label:te(e)}]}function E(e){return e.kind===`configure-integration`}function de(e,t){let n=`${t}:`;for(let t of e.keys())t.startsWith(n)&&e.delete(t)}async function D(e,t,n){de(e.warningActionMap,t);let r=n.warnings.filter(e=>e.severity===`degraded`);if(r.length!==0)for(let i=0;i<r.length;i++){let a=r[i];console.warn(`[${t}] ⚠ ${a.title}: ${a.message}`);let o=`${t}:${a.title}:${i}`,s=ue(a.action);try{await e.bus.emit(h.show,{level:`warning`,title:a.title,message:`${n.pkg.displayName}: ${a.message}`,toastId:o,durationMs:null,...s&&{actions:s}}),a.action&&E(a.action)&&e.warningActionMap.set(C(o,S),a.action)}catch(e){console.warn(`[${t}] toast emission failed for warning "${a.title}":`,e)}}}function O(e,t){let{pkg:n,state:r,error:i,enabled:a,extensionManaged:o}=e,s=o&&t?t(n.name)!==!1:void 0;return{name:n.name,displayName:n.displayName,state:r,...n.surface===void 0?{}:{surface:n.surface},enabled:a,extensionManaged:o,...s===void 0?{}:{persistedEnabled:s},critical:n.critical??!1,...n.browser===void 0?{}:{browser:n.browser},...i===void 0?{}:{error:i}}}function fe(e){return Object.freeze({extensionName:e})}var k=class extends c{extensionName;source;constructor(e){super(`Operator config for extension "${e.extensionName}" (source: ${e.source}) ${e.summary}`),this.extensionName=e.extensionName,this.source=e.source,e.cause!==void 0&&(this.cause=e.cause)}};const pe={unreadable:`could not be read`,"invalid-json":`is not valid JSON`,"not-an-object":`is not a JSON object`};function me(e){let{name:t,configSchema:n,configDefaults:r,storedConfig:i,operatorEntry:a,mode:c}=e,l=he(t,a,c);if(!n)return{config:void 0,usedSchemaDefaults:!1};let u={...r??{},...i??{},...l?.config??{}};try{return{config:n.parse(u),usedSchemaDefaults:!1}}catch(e){let r=s(o(e));if(c===`activate`&&l!==void 0)throw new k({extensionName:t,source:l.source,summary:`is part of a configuration rejected by the extension's config schema: ${r}`,cause:e});console.warn(`[ExtensionCoordinator] Config parse failed for "${t}", starting with schema defaults:`,r);try{return{config:n.parse({}),usedSchemaDefaults:!0}}catch{return console.warn(`[ExtensionCoordinator] Fallback config parse also failed for "${t}" — config will be absent`),{config:void 0,usedSchemaDefaults:!1}}}}function he(e,t,n){if(t===void 0)return;if(t.kind===`config`)return t;let r=new k({extensionName:e,source:t.source,summary:ge(t)});if(n===`activate`)throw r;console.warn(`[ExtensionCoordinator] ${r.message} — resolving without the operator layer`)}function ge(e){let t=pe[e.reason];if(e.detail===void 0)return t;let n=s(e.detail);return n.length===0?t:`${t}: ${n}`}function A(e,t,n,r){return j(e,t,n,r).config}function j(e,t,n,r){let i;if(n.pkg.configSchema)try{i=e.loadConfig?.(t)}catch(e){console.error(`[ExtensionCoordinator] loadConfig threw for "${t}":`,e)}return me({name:t,configSchema:n.pkg.configSchema,configDefaults:n.configDefaults,storedConfig:i,operatorEntry:e.operatorConfig?.get(t),mode:r})}function M(e){if(f(e)===void 0)return`Extension "${e}" cannot be encoded as a filesystem path segment and therefore has no addressable data directory. Valid extension names must be non-empty, must not be '.' or '..', must be well-formed Unicode, must not be a reserved Windows device basename (CON, NUL, COM1, etc.), and must encode within the filesystem component length limit.`}function N(e,t,n){if(!e.extensionContextBase)throw Error(`ExtensionCoordinator: extensionContextBase is required to start extensions with a create factory. Provide it via the constructor.`);let{extensionName:r}=t.identity,i=f(r);if(i===void 0)throw Error(`ExtensionCoordinator: extension "${r}" cannot be encoded as a filesystem path segment and therefore has no addressable data directory. Valid extension names must be non-empty, must not be '.' or '..', must be well-formed Unicode, must not be a reserved Windows device basename (CON, NUL, COM1, etc.), and must encode within the filesystem component length limit.`);return{...e.extensionContextBase,bus:e.bus,identity:t.identity,dataDir:a.join(e.extensionContextBase.makaioHome,u,i),getService:t=>e.getExtensionService(t.name),signal:e.signal,hasExtension:e.hasActiveExtension,...n===void 0?{}:{config:n}}}function _e(e){return{adapters:!!e.adapters?.length,tools:!!e.tools,hashTriggers:!!e.hashTriggers,providers:!!e.providers?.length,clients:!!e.clients?.length,ui:!!e.ui,storage:!!e.storage,sessionEventActions:!!e.sessionEventActions}}function P(e,t,r){let i=t.state;t.state=r,e.emit(n.stateChanged,{name:t.pkg.name,displayName:t.pkg.displayName,from:i,to:r,...t.error===void 0?{}:{error:t.error},contributes:_e(t.pkg)}).catch(e=>{console.error(`[ExtensionCoordinator] stateChanged emit failed for "${t.pkg.name}":`,e)})}async function F(e,t,n,r,i){return i===`activated`?(await I(e,t,n,r),[]):ve(e,n)}async function I(e,t,n,r){let i=[];try{for(let a of e){if(a.filter&&!a.filter(r.pkg))continue;let e=N(t,r,A(t,n,r,`activate`));await a.processActivated(n,r.pkg,e),i.push(a)}}catch(e){for(let e of i.reverse())if(e.processStopped)try{await e.processStopped(n)}catch(e){console.error(`[ExtensionCoordinator] Contribution processor rollback error for "${n}":`,e)}throw e}}async function ve(e,t){let n=[];for(let r of[...e].reverse())if(r.processStopped)try{await r.processStopped(t)}catch(e){n.push(e)}return n}async function L(e,t){if(!t.tray)return;let n=be(t);await e.request(g.register,{entry:n})}async function ye(e,t){t.tray&&await e.request(g.unregister,{packageName:t.name,entryId:R(t.tray)})}function be(e){let t=e.tray;if(!t)throw Error(`[tray-menu-entry-bridge] extension "${e.name}" does not declare a tray entry`);return{packageName:e.name,entryId:R(t),label:t.label,section:t.section??`views`,priority:50,enabled:!0,metadata:t.opensWindow?{registrationId:`${e.name}:${t.opensWindow}`}:t.action?{action:t.action}:void 0}}function R(e){return e.opensWindow??e.action??`default`}async function xe(e,t,r){let i=e.entries.get(t);if(!i)return`rejected`;let a=r?await Te(e,t,i):await De(e,t,i);return a===`rejected`||e.bus.emit(n.enabledChanged,{name:t,enabled:r}).catch(e=>{console.error(`[ExtensionCoordinator] enabledChanged emit failed for "${t}":`,e)}),a}async function Se(e,t,n,r){if(r.kind===`resolved`&&r.record?.collidesWith!==void 0)return{success:!1,outcome:`rejected`,reason:`name-collision`};let i=e.entries.get(t);return i?.extensionManaged?Ce(e,t,n,i):we(e,t,n,i!==void 0,r)}async function Ce(e,t,n,r){if(!e.persistEnabled)throw Error(`Cannot set enablement preference for "${t}": this runtime has no durable enablement store, so extension enablement is not persistable here.`);return!n&&r.pkg.critical?{success:!1,outcome:`rejected`,reason:`critical`}:(await e.persistEnabled(t,n),(r.state===`active`||r.state===`initializing`?!0:r.state===`discovered`?r.enabled:!1)===n?{success:!0,outcome:`applied`}:{success:!1,outcome:`restart-required`,reason:`runtime-state-diverges`})}async function we(e,t,n,r,i){if(!e.persistEnabled)throw Error(`Cannot set enablement preference for "${t}": this runtime has no durable enablement store, so extension enablement is not persistable here.`);if(i.kind!==`resolved`){if(r)throw Error(`Cannot set enablement preference for "${t}": framework packages are always loaded and have no operator enablement preference.`);return{success:!1,outcome:`rejected`,reason:`no-catalog`}}let a=i.record;if(!a)return{success:!1,outcome:`rejected`,reason:`not-installed`};if(!n&&a.critical)return{success:!1,outcome:`rejected`,reason:`critical`};if(!n&&a.criticalityUnknown)return{success:!1,outcome:`rejected`,reason:`criticality-unknown`};await e.persistEnabled(t,n);let o=r?`framework-package-shadowed`:`not-loaded`;return n?{success:!1,outcome:`restart-required`,reason:o}:{success:!0,outcome:`applied`,reason:o}}function z(e,t,n,r){return t.error=r,console.error(`[ExtensionCoordinator] Cannot re-enable "${n}":`,r),P(e.bus,t,`failed`),`rejected`}async function Te(e,t,n){if(n.state===`active`)return n.enabled=!0,`applied`;if(n.state!==`stopped`&&n.state!==`failed`&&n.state!==`skipped`)return`rejected`;if(n.state===`skipped`&&!n.surfacesCollected)return n.error=`Extension "${t}" was disabled at boot and never started this process; a restart is required to activate it.`,`rejected`;let{pkg:r}=n,i,a=(r.dependencies??[]).filter(t=>{if(t.optional)return!1;let n=e.entries.get(t.name);return!n||n.state!==`active`});if(a.length>0)return z(e,n,t,`Required dependencies not active: ${a.map(e=>e.name).join(`, `)}`);let s=M(n.identity.extensionName);if(s!==void 0)return z(e,n,t,s);n.enabled=!0,n.error=void 0,P(e.bus,n,`initializing`);let c;try{c=A(e,t,n,`activate`)}catch(r){return z(e,n,t,`Config resolution failed: ${o(r)}`)}if(r.storage?.registerHandlers&&e.db!==void 0)try{let t=N(e,n,c),a=r.storage.registerHandlers(e.bus,e.db,t);typeof a==`function`&&(i=a,n.storageCleanup=a)}catch(r){return n.error=o(r),console.error(`[ExtensionCoordinator] Extension "${t}" storage re-registration failed:`,r),P(e.bus,n,`failed`),`rejected`}if(!await Ee(e,t,n,c,i))return`rejected`;try{await F(e.contributionProcessors,e,t,n,`activated`)}catch(r){return await B(t,n.service,i,n),n.service=void 0,n.error=o(r),console.error(`[ExtensionCoordinator] Extension "${t}" contribution processing failed:`,r),P(e.bus,n,`failed`),`rejected`}P(e.bus,n,`active`);try{await L(e.bus,n.pkg)}catch(e){console.warn(`[ExtensionCoordinator] Failed to register tray entry for ${t}:`,e)}return await e.runHealthCheck(t),await e.emitWarningsForEntry(t,n),`applied`}async function Ee(e,t,n,r,i){let{create:a}=n.pkg;if(!a)return!0;let s;try{return s=await a(N(e,n,r)),await s.init?.(),n.service=s,!0}catch(r){return await B(t,s,i,n),r instanceof b?n.pkg.critical?(n.error=`Critical extension cannot skip startup: ${r.reason}`,console.error(`[ExtensionCoordinator] Extension "${t}" failed to re-initialize:`,n.error),P(e.bus,n,`failed`),!1):(n.error=r.reason,P(e.bus,n,`skipped`),!1):(n.error=o(r),console.error(`[ExtensionCoordinator] Extension "${t}" failed to re-initialize:`,r),P(e.bus,n,`failed`),!1)}}async function De(e,t,r){if(r.state===`initializing`)return`rejected`;if(r.state!==`active`)return r.enabled=!1,`applied`;let i=Array.from(e.entries.entries()).filter(([e,n])=>e===t||n.state!==`active`?!1:n.pkg.dependencies?.some(e=>!e.optional&&e.name===t)??!1).map(([e])=>e);if(i.length>0)return r.error=`Cannot disable "${t}" while active dependents remain: ${i.join(`, `)}`,console.error(`[ExtensionCoordinator] ${r.error}`),`rejected`;r.enabled=!1,r.error=void 0;let a=[];try{a.push(...await F(e.contributionProcessors,e,t,r,`stopped`))}catch(e){a.push(e),console.error(`[ExtensionCoordinator] Contribution processor error during disable of "${t}":`,e)}if(r.service)try{await r.service.destroy?.()}catch(e){a.push(e),console.error(`[ExtensionCoordinator] Error during disable destroy of "${t}":`,e)}finally{r.service=void 0}if(r.storageCleanup)try{r.storageCleanup()}catch(e){a.push(e),console.error(`[ExtensionCoordinator] Storage cleanup error during disable of "${t}":`,e)}finally{r.storageCleanup=void 0}try{await ye(e.bus,r.pkg)}catch(e){a.push(e),console.error(`[ExtensionCoordinator] Failed to unregister tray entry for ${t}:`,e)}if(a.length>0){let e=a.map(e=>o(e)).join(`; `);r.error=o(AggregateError(a,`Extension "${t}" disabled with ${a.length} teardown failure(s): ${e}`))}P(e.bus,r,`stopped`),r.warnings=[];try{await e.bus.emit(n.warnings.changed,{extensionName:t,warnings:[]})}catch(e){console.error(`[ExtensionCoordinator] warnings.changed emit failed for "${t}":`,e)}return`applied`}async function B(e,t,n,r){try{await t?.destroy?.()}catch(t){console.error(`[ExtensionCoordinator] Service cleanup error after failed enable of "${e}":`,t)}try{n?.()}catch(t){console.error(`[ExtensionCoordinator] Storage cleanup error after failed enable of "${e}":`,t)}finally{r.storageCleanup=void 0}}const Oe=new Set;function V(e,t=Oe){let n=new Map,r=new Set;for(let i of e){let e=n.get(i.name);if(e===void 0){n.set(i.name,i);continue}if(!t.has(i.name)||r.has(i.name))throw Error(ke(i.name,e,i));r.add(i.name),console.info(`[ExtensionCoordinator] Extension "${i.name}" overrides the framework package registered under the same name`),n.delete(i.name),n.set(i.name,i)}return[...n.values()]}function ke(e,t,n){return`Extension name collision: "${e}" is registered twice (${H(t)} and ${H(n)}). Extension package names are identities and cannot be shared — uninstall or rename one of them. Reaching load with two registrations under one name means discovery or boot selection admitted both, which they must not.`}function H(e){return`"${e.displayName}" v${e.version}`}function U(e,t,n){let r=new Set(e.map(e=>e.name)),i=e.filter(e=>Ae(e,t,n)),a=new Map(i.map(e=>[e.name,e])),o=new Set(a.keys()),s=!0;for(;s;){s=!1;for(let e of o)(a.get(e).dependencies??[]).some(e=>!e.optional&&r.has(e.name)&&!o.has(e.name))&&(o.delete(e),s=!0)}return i.filter(e=>o.has(e.name))}function Ae(e,t,n){if(!Me(e,t))return!1;let r=e.requires;return!r||r.length===0||!n?!0:r.every(e=>{switch(e.type){case`host`:return n.hosts.has(e.id);case`capability`:return n.capabilities.has(e.id)?e.version===void 0?!0:je(n,e.id,e.version):!1}})}function je(e,t,n){let r=e.capabilityVersions?.get(t);return r!==void 0&&m(r,n)}function Me(e,t){return e.surface===void 0||e.surface===`any`||e.surface===t}function Ne(e,t){let n=e.entries.get(t.name)?.extensionManaged??!0,r=n?e.loadEnabled?.(t.name):void 0;return{...t,extensionManaged:n,...r!==void 0&&{persistedEnabled:r}}}async function Pe(e){return e.installedCatalog?(await e.installedCatalog()).map(t=>Ne(e,t)):null}async function Fe(e,t){return e.installedCatalog?{kind:`resolved`,record:W(await e.installedCatalog(),t,e.surface)}:{kind:`unavailable`}}function W(e,t,n){let r=e.filter(e=>e.name===t),i=r.filter(e=>e.shadowedBy===void 0),a=i.length>0?i:r,o=a.filter(e=>e.surface===void 0||e.surface===n),s=i.length>0&&o.length>0,c=o.length>0?o:a,[l,...u]=c;if(l!==void 0)return Le(u.reduce(Re,l),Ie(r,c,s))}function Ie(e,t,n){let[r,...i]=t;if(r!==void 0)return e.length===1?r.collidesWith:n&&i.length>0?r.collidesWith??i[0]?.origin:t.find(e=>e.collisionIgnoresSurface===!0)?.collidesWith}function Le(e,t){let{collidesWith:n,collisionIgnoresSurface:r,...i}=e;return{...i,...t!==void 0&&{collidesWith:t}}}function Re(e,t){let n=e.critical===!0||t.critical===!0?!0:e.critical??t.critical,r=e.criticalityUnknown===!0||t.criticalityUnknown===!0?!0:e.criticalityUnknown??t.criticalityUnknown;return{...e,...n!==void 0&&{critical:n},...r!==void 0&&{criticalityUnknown:r}}}function ze(e,t={}){let n=Be(e);return Ve(e,n,new Map(e.map(e=>[e.name,e])),t),We(n,Ue(e,n),t)}function Be(e){let t=new Set;for(let n of e){if(t.has(n.name))throw Error(`ExtensionCoordinator: duplicate package name detected: "${n.name}"`);t.add(n.name)}return t}function Ve(e,t,n,r){for(let i of e)He(i,t,n,r)}function He(e,t,n,r){let i=r.enabledNames===void 0||r.enabledNames.has(e.name),a=e.dependencies??[],o=a.filter(e=>!e.optional&&!t.has(e.name));o.length>0&&G(r,i,e.name,`ExtensionCoordinator: package "${e.name}" declares missing dependencies: ${o.map(e=>e.name).join(`, `)}`);for(let t of a){let a=n.get(t.name);if(a===void 0)continue;let o=a.version;m(o,t.version)||G(r,i,e.name,`ExtensionCoordinator: package "${e.name}" dependency "${t.name}" version ${o} does not satisfy ${t.version}`)}}function G(e,t,n,r){if(t)throw Error(r);e.onSoftValidationWarning?.(n,r)}function Ue(e,t){let n=new Map;for(let r of e){let e=(r.dependencies??[]).filter(e=>t.has(e.name)).map(e=>e.name);n.set(r.name,new Set(e))}return n}function We(e,t,n){let r=[];for(let[e,n]of t)n.size===0&&r.push(e);let i=[],a=new Set;for(;r.length>0;){let e=r.shift();if(!a.has(e)){a.add(e),i.push(e);for(let[n,i]of t)i.has(e)&&(i.delete(e),i.size===0&&!a.has(n)&&r.push(n))}}if(i.length===e.size)return i;let o=[...e].filter(e=>!a.has(e));if((n.enabledNames===void 0?o:o.filter(e=>n.enabledNames.has(e))).length>0)throw Error(`ExtensionCoordinator: circular dependency detected among: ${o.join(`, `)}`);let s=`ExtensionCoordinator: circular dependency detected among disabled packages: ${o.join(`, `)}`;for(let e of o)n.onSoftValidationWarning?.(e,s),i.push(e);return i}function Ge(e,t,n){let r=new Set;for(let i of e){if(!(t?.has(i.name)??!0)){r.add(i.name);continue}let e=n?.(i.name)!==!1;(e||i.critical)&&r.add(i.name),!e&&i.critical&&console.warn(`[ExtensionCoordinator] Critical extension "${i.name}" is marked disabled in the enablement store but will start anyway to keep the runtime functional. Remove it from the disabled list in config/extensions.json to silence this warning.`)}return{enabled:r}}function K(e){let t=new Set(e.map(({name:e})=>e)),n=new Map(e.map(({name:e,entry:t})=>[e,t])),r=new Set(e.filter(({entry:e})=>e.enabled).map(({name:e})=>e)),i=[],a=!0;for(;a;){a=!1;for(let e of r){let o=(n.get(e).pkg.dependencies??[]).filter(e=>!e.optional&&t.has(e.name)&&!r.has(e.name)).map(e=>e.name);o.length!==0&&(r.delete(e),a=!0,i.push({name:e,missingDependencies:o}))}}return{closed:r,exclusions:i}}async function Ke(e){if(!e.runMigrations)return;let t=[];for(let n of e.loadOrder){let r=e.entries.get(n);if(!r)throw Error(`Extension "${n}" is in loadOrder but missing from entries`);t.push({name:n,entry:r})}let{closed:n,exclusions:r}=K(t);for(let{name:e,missingDependencies:t}of r)console.warn(`[ExtensionCoordinator] Excluding extension "%s" from migration collection: required dependency %s is disabled`,e,t.join(`, `));let i=[];for(let{name:e,entry:r}of t){if(!n.has(e))continue;let t=r.pkg.storage?.migrations;if(!t)continue;let a,o;if(typeof t==`string`)a=q(e,r.pkg,t);else{let n={};for(let[i,a]of Object.entries(t))a!==void 0&&(n[i]=q(e,r.pkg,a));let i=p(n);if(i===void 0)continue;a=i,o=n}i.push({name:e,migrationsPath:a,migrationSourceId:r.pkg.storage?.migrationSourceId??a,...o?{migrationsPathByDialect:o}:{}})}i.length!==0&&await e.runMigrations(i)}function q(e,t,n){if(a.isAbsolute(n))return n;let r=t.storage?.packageRoot;if(!r)throw Error(`Extension "${e}" declares relative storage.migrations "${n}" without storage.packageRoot`);let i=a.resolve(r),o=a.resolve(i,n),s=a.relative(i,o);if(s.startsWith(`..`)||a.isAbsolute(s))throw Error(`Extension "${e}" declares storage.migrations "${n}" outside storage.packageRoot`);return o}async function J(e,t){let r=e.entries.get(t);if(!r?.service||r.state!==`active`)return;let{checkHealth:i}=r.service;if(!i)return;let a;try{let e=await i.call(r.service),n=ee.array().safeParse(e);n.success?a=n.data:(console.error(`[ExtensionCoordinator] checkHealth for "${t}" returned invalid data:`,n.error),a=[])}catch(e){console.error(`[ExtensionCoordinator] checkHealth threw for "${t}":`,e),a=[]}r.warnings=a;try{await e.bus.emit(n.warnings.changed,{extensionName:t,warnings:[...a]})}catch(e){console.error(`[ExtensionCoordinator] warnings.changed emit failed for "${t}":`,e)}}function qe(e,t){if(t.windows)for(let n of t.windows)e.windowRegistry.register(t.name,t.displayName,n);if(t.tray&&e.trayEntries.push({...t.tray,packageName:t.name}),t.cli){let n=t.cli;`subcommands`in n&&e.cliContributions.push(n)}}function Je(e){return Array.from(e.values()).filter(e=>e.enabled).map(e=>e.pkg).filter(e=>!!e.http)}async function Ye(e){let t=[...e.loadOrder].reverse(),n=[],r=[];for(let i of t){let t=e.entries.get(i);if(!t)continue;let a=!1;if(t.state===`active`){let r=await F(e.contributionProcessors,e.contextHost,i,t,`stopped`);r.length>0&&(a=!0,n.push(...r))}if(t.service)try{await t.service.destroy?.()}catch(e){a=!0,n.push(e)}finally{t.service=void 0}if(t.storageCleanup)try{t.storageCleanup()}catch(e){a=!0,n.push(e)}finally{t.storageCleanup=void 0}a&&r.push(i),t.state===`active`&&P(e.contextHost.bus,t,`stopped`)}if(n.length>0)throw AggregateError(n,`Extensions failed to shut down cleanly: ${r.join(`, `)}`)}async function Xe(e,t,n){if(!n.enabled){P(e.bus,n,`skipped`),e.bootProgress.skipped(n.pkg,`disabled`);return}let r=(n.pkg.dependencies??[]).filter(t=>t.optional?!1:e.entries.get(t.name)?.state!==`active`);if(r.length>0){let i=`Required dependencies not active: ${r.map(e=>e.name).join(`, `)}`;if(Q(e,t,n,i),n.pkg.critical)throw Error(`Critical package "${t}" failed: ${i}`);return}let i=M(n.identity.extensionName);if(i!==void 0){if(Q(e,t,n,i),n.pkg.critical)throw Error(`Critical package "${t}" failed: ${i}`);return}e.bootProgress.starting(n.pkg),P(e.bus,n,`initializing`);let a;try{a=A(e.contextHost,t,n,`activate`)}catch(r){if(Q(e,t,n,o(r)),n.pkg.critical)throw r;return}if(Qe(e,t,n,a)){if(!n.pkg.create){await Ze(e,t,n);return}await Y(e,t,n,a)}}async function Ze(e,t,n){try{await F(e.contributionProcessors,e.contextHost,t,n,`activated`)}catch(r){if(Z(t,n),X(e,t,n,r))return;if(Q(e,t,n,r instanceof Error?r.message:String(r)),n.pkg.critical)throw r;return}P(e.bus,n,`active`),e.bootProgress.ready(n.pkg),await $(e.bus,t,n)}async function Y(e,t,n,r){let i;try{let a=N(e.contextHost,n,r);i=await n.pkg.create(a),await i.init?.(),n.service=i,await F(e.contributionProcessors,e.contextHost,t,n,`activated`),P(e.bus,n,`active`),e.bootProgress.ready(n.pkg),await $(e.bus,t,n)}catch(r){try{await i?.destroy?.()}catch(e){console.error(`[ExtensionCoordinator] Service cleanup error after failed start of "${t}":`,e)}if(n.service=void 0,Z(t,n),X(e,t,n,r))return;if(Q(e,t,n,r instanceof Error?r.message:String(r)),n.pkg.critical)throw r}}function X(e,t,n,r){if(!(r instanceof b))return!1;if(n.pkg.critical){let i=`Critical package cannot skip startup: ${r.reason}`;throw Q(e,t,n,i),Error(`Critical package "${t}" failed: ${i}`,{cause:r})}return n.error=r.reason,console.info(`[ExtensionCoordinator] Package "${t}" skipped: ${r.reason}`),P(e.bus,n,`skipped`),e.bootProgress.skipped(n.pkg,r.reason),!0}function Qe(e,t,n,r){if(!n.pkg.storage?.registerHandlers||e.db===void 0)return!0;try{let t=N(e.contextHost,n,r),i=n.pkg.storage.registerHandlers(e.bus,e.db,t);return i&&(n.storageCleanup=i),!0}catch(r){let i=r instanceof Error?r.message:String(r);if(console.error(`[ExtensionCoordinator] Package "${t}" storage registration failed:`,r),Q(e,t,n,i),n.pkg.critical)throw r;return!1}}function Z(e,t){if(t.storageCleanup)try{t.storageCleanup()}catch(t){console.error(`[ExtensionCoordinator] Storage cleanup error after failed start of "${e}":`,t)}finally{t.storageCleanup=void 0}}function Q(e,t,n,r){n.error=r,console.error(`[ExtensionCoordinator] Package "${t}" failed:`,r),P(e.bus,n,`failed`),e.bootProgress.failed(n.pkg,r)}async function $(e,t,n){try{await L(e,n.pkg)}catch(e){console.warn(`[ExtensionCoordinator] Failed to register tray entry for ${t}:`,e)}}var $e=class{bus;surface;db;extensionContextBase;runtimeEnvironment;shutdownController=new AbortController;entries=new Map;loadOrder=[];loaded=!1;started=!1;shutdownRequested=!1;shutdownPromise;lifecycleTail=Promise.resolve();rpcCleanups=[];contributionProcessors=[];warningActionMap=new Map;windowRegistry=new e;_trayEntries=[];_cliContributions=[];persistEnabled;loadEnabled;loadConfig;operatorConfig;runMigrations;extensionManagedNames;frameworkPackageNames;installedCatalog;constructor(e,t={}){this.bus=e,this.surface=t.surface??`headless`,this.db=t.db,this.extensionContextBase=t.extensionContextBase,this.runtimeEnvironment=t.runtimeEnvironment,this.persistEnabled=t.persistEnabled,this.loadEnabled=t.loadEnabled,this.loadConfig=t.loadConfig,this.operatorConfig=t.operatorConfig,this.runMigrations=t.runMigrations,this.extensionManagedNames=t.extensionManagedNames,this.frameworkPackageNames=t.frameworkPackageNames,this.installedCatalog=t.installedCatalog,this.rpcCleanups.push(ie(this.bus,this.warningActionMap,t.launcherCommand??`makaio`))}get trayEntries(){return this._trayEntries.map(e=>({...e}))}get cliContributions(){return this._cliContributions}extensionsWithHttp(){return Je(this.entries)}load(e,t){if(this.shutdownRequested)throw Error(`ExtensionCoordinator.load() called after shutdown(). The coordinator is terminal.`);if(this.loaded)throw Error(`ExtensionCoordinator.load() called twice. The coordinator is single-use; create a new instance if needed.`);let n=V(U(e,this.surface,this.runtimeEnvironment),this.frameworkPackageNames),{enabled:r}=Ge(n,this.extensionManagedNames,this.loadEnabled),i=new Map;this.loadOrder=ze(n,{enabledNames:r,onSoftValidationWarning:(e,t)=>{let n=i.get(e);n?n.push(t):i.set(e,[t])}});let a=[],o=[];for(let e of this.loadOrder){let s=n.find(t=>t.name===e);a.push(s);let c=i.get(e),l={pkg:s,identity:fe(s.name),state:`discovered`,enabled:r.has(e),extensionManaged:this.extensionManagedNames?.has(e)??!0,warnings:[],...c?{error:c.join(`; `)}:{}};if(t){let n=t.get(e);n&&(l.configDefaults=n)}this.entries.set(e,l),o.push({name:e,entry:l})}let{closed:s,exclusions:c}=K(o);for(let{name:e,missingDependencies:t}of c)console.warn(`[ExtensionCoordinator] Excluding extension "%s" from static surface collection and namespace registration: required dependency %s is disabled`,e,t.join(`, `));for(let{name:e,entry:t}of o)s.has(e)&&(t.pkg.namespaces&&this.bus.registerNamespaces(t.pkg.namespaces),qe({windowRegistry:this.windowRegistry,trayEntries:this._trayEntries,cliContributions:this._cliContributions},t.pkg),t.surfacesCollected=!0);return this.registerRpcHandlers(),this.loaded=!0,a}registerRpcHandlers(){this.rpcCleanups.push(...w({bus:this.bus,entries:this.entries,cliContributions:this._cliContributions,list:()=>this.list(),getInfo:e=>this.getInfo(e),handleSetEnabled:(e,t)=>this.handleSetEnabled(e,t),getInstalledCatalog:()=>Pe(this.createCatalogHost())}))}async startAll(){if(this.shutdownRequested)throw Error(`ExtensionCoordinator.startAll() called after shutdown(). The coordinator is terminal.`);if(!this.loaded)throw Error(`ExtensionCoordinator.startAll() called before load(). Call load() first.`);if(this.started)throw Error(`ExtensionCoordinator.startAll() called twice. The coordinator is single-use; create a new instance if needed.`);this.started=!0,await this.enqueueLifecycle(()=>this.startAllInLifecycleLane())}async startAllInLifecycleLane(){let e=new ne(this.bus,this.loadOrder.length);this.rpcCleanups.push(()=>e.dispose());try{await Ke({loadOrder:this.loadOrder,entries:this.entries,runMigrations:this.runMigrations});for(let t of this.loadOrder){let n=this.entries.get(t);n&&await Xe({bus:this.bus,db:this.db,entries:this.entries,contributionProcessors:this.contributionProcessors,contextHost:this.createExtensionContextHost(),bootProgress:e},t,n)}let t=this.createExtensionHealthHost();await Promise.all(this.loadOrder.map(e=>this.entries.get(e)?.state===`active`?J(t,e):void 0)),await T({bus:this.bus,entries:this.entries,warningActionMap:this.warningActionMap})}finally{e.complete()}}shutdown(){if(this.shutdownPromise)return this.shutdownPromise;this.shutdownRequested=!0;let e=this.enqueueLifecycle(()=>this.shutdownInLifecycleLane());return this.shutdownPromise=e,this.shutdownController.abort(),e}async shutdownInLifecycleLane(){let e=[],t;for(let t of this.rpcCleanups)try{t()}catch(t){e.push(t)}this.rpcCleanups=[],this.warningActionMap.clear();try{await Ye({entries:this.entries,loadOrder:this.loadOrder,contributionProcessors:this.contributionProcessors,contextHost:this.createExtensionContextHost()})}catch(n){n instanceof AggregateError?(t=n.message,e.push(...n.errors)):e.push(n)}if(e.length>0){let n=t===void 0?``:`; ${t}`;throw AggregateError(e,`Extension coordinator shutdown failed with ${e.length} error(s)${n}`)}}list(){return[...this.entries.values()].map(e=>O(e,this.loadEnabled))}getInfo(e){let t=this.entries.get(e);return t?O(t,this.loadEnabled):null}getExtensionService(e){let t=typeof e==`string`?e:e.name;return this.entries.get(t)?.service}getExtension(e){return this.entries.get(e)?.pkg}getResolvedConfig(e){let t=this.entries.get(e);if(t)return j(this.createExtensionContextHost(),e,t,`observe`)}getLoadedProviderDefinitionIds(){let e=new Set;for(let t of this.entries.values())if(t.enabled&&!(t.state===`failed`||t.state===`skipped`||t.state===`stopped`))for(let n of t.pkg.providers??[])e.add(n.id);return e}forEachActiveExtension(e){let t=this.createExtensionContextHost();for(let n of this.loadOrder){let r=this.entries.get(n);if(!r||r.state!==`active`)continue;let i=N(t,r,A(t,n,r,`observe`));e(n,r.pkg,i)}}forExtension(e,t){let n=this.entries.get(e);if(!n||n.state!==`active`)return;let r=this.createExtensionContextHost(),i=N(r,n,A(r,e,n,`observe`));t(e,n.pkg,i)}registerContributionProcessor(e){return this.contributionProcessors.push(e),()=>{let t=this.contributionProcessors.indexOf(e);t>=0&&this.contributionProcessors.splice(t,1)}}async handleSetEnabled(e,t){let n={success:!1,outcome:`rejected`,reason:`shutting-down`};if(this.shutdownRequested)return n;let r=await Fe(this.createCatalogHost(),e);return await this.admitLifecycle(()=>Se(this.createToggleHost(),e,t,r),n)}createCatalogHost(){return{entries:this.entries,loadEnabled:this.loadEnabled,installedCatalog:this.installedCatalog,surface:this.surface}}async applyExtensionTransition(e,t){return await this.admitLifecycle(()=>xe(this.createToggleHost(),e,t),`rejected`)}createToggleHost(){return{...this.createExtensionContextHost(),db:this.db,entries:this.entries,persistEnabled:this.persistEnabled,contributionProcessors:this.contributionProcessors,runHealthCheck:e=>J(this.createExtensionHealthHost(),e),emitWarningsForEntry:(e,t)=>D({bus:this.bus,entries:this.entries,warningActionMap:this.warningActionMap},e,t)}}async admitLifecycle(e,t){return this.shutdownRequested?t:await this.enqueueLifecycle(e)}enqueueLifecycle(e){let t=this.lifecycleTail.then(()=>e(),()=>e());return this.lifecycleTail=t.then(()=>void 0,()=>void 0),t}createExtensionContextHost(){return{bus:this.bus,extensionContextBase:this.extensionContextBase,loadConfig:this.loadConfig,operatorConfig:this.operatorConfig,signal:this.shutdownController.signal,hasActiveExtension:e=>this.hasActiveExtension(e),getExtensionService:e=>this.getExtensionService(e)}}createExtensionHealthHost(){return{bus:this.bus,entries:this.entries}}hasActiveExtension(e){return this.entries.get(e)?.state===`active`}};export{k as a,y as c,U as i,W as n,b as o,V as r,v as s,$e as t};
1
+ import{n as e}from"./window-registry-BB_bd5Yu.mjs";import{n as t}from"./namespace-CUKQ8osk.mjs";import{n}from"./extension-namespace-BwNmFrd3.mjs";import{t as r}from"./schema-introspection-CRLs6TZU.mjs";import{z as i}from"zod";import a from"node:path";import{getErrorString as o,summarizeDiagnosticText as s}from"@makaio/framework/utils";import{MakaioError as c,createBusNamespace as l}from"@makaio/framework/core";import{EXTENSION_DATA_DIR_SEGMENT as u,ProviderDefinitionSchema as d,encodeExtensionNameAsPathSegment as f,primaryMigrationsPath as p,versionSatisfies as m}from"@makaio/framework/contracts";import{ToastSubjects as h}from"@makaio/framework/contracts/toast";import{ExtensionWarningSchema as ee,getExtensionWarningActionLabel as te}from"@makaio/framework/contracts/extension";import{TrayMenuSubjects as g}from"@makaio/framework/services/tray-menu";const _=i.object({name:i.string(),displayName:i.string()}),v=l(`kernel:boot`,{getState:{request:i.object({}),response:i.object({complete:i.boolean(),completedCount:i.number(),totalCount:i.number(),currentService:i.string().optional(),failedServices:i.array(i.string()),skippedServices:i.array(i.string()).default([]),totalDurationMs:i.number().optional()})},"service.starting":_,"service.ready":_.extend({durationMs:i.number().int().nonnegative()}),"service.failed":_.extend({errorMessage:i.string()}),"service.skipped":_.extend({reason:i.string()}),progress:i.object({completedCount:i.number(),totalCount:i.number(),currentService:i.string().optional()}),complete:i.object({totalDurationMs:i.number(),failedServices:i.array(i.string())})}),y=v.subjects;var b=class extends Error{reason;constructor(e){super(e),this.name=`ServiceSkipError`,this.reason=e}};function x(e){return{name:e.name,displayName:e.displayName}}var ne=class{bus;state;cleanup;constructor(e,t){this.bus=e,this.state={complete:!1,completedCount:0,totalCount:t,failedServices:[],skippedServices:[],startedAt:Date.now()},this.cleanup=this.bus.on(y.getState,e=>{e.setResult({complete:this.state.complete,completedCount:this.state.completedCount,totalCount:this.state.totalCount,...this.state.currentService===void 0?{}:{currentService:this.state.currentService},failedServices:[...this.state.failedServices],skippedServices:[...this.state.skippedServices],...this.state.totalDurationMs===void 0?{}:{totalDurationMs:this.state.totalDurationMs}})})}dispose(){this.cleanup()}starting(e){let t=x(e);this.state.currentService=t.displayName,this.state.currentServiceStartedAt=Date.now(),this.bus.emit(y.service.starting,t).catch(e=>{console.warn(`[ExtensionCoordinator] boot.service.starting emit failed for "${t.name}":`,e)})}ready(e){let t=x(e);this.state.completedCount+=1;let n=this.state.currentServiceStartedAt===void 0?0:Math.max(0,Date.now()-this.state.currentServiceStartedAt);this.bus.emit(y.service.ready,{...t,durationMs:n}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.service.ready emit failed for "${t.name}":`,e)}),this.emitProgress()}failed(e,t){let n=x(e);this.state.completedCount+=1,this.state.failedServices.push(n.name),this.bus.emit(y.service.failed,{...n,errorMessage:t}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.service.failed emit failed for "${n.name}":`,e)}),this.emitProgress()}skipped(e,t){let n=x(e);this.state.completedCount+=1,this.state.skippedServices.push(n.name),this.bus.emit(y.service.skipped,{...n,reason:t}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.service.skipped emit failed for "${n.name}":`,e)}),this.emitProgress()}complete(){this.state.complete=!0,delete this.state.currentService,delete this.state.currentServiceStartedAt,this.state.totalDurationMs=Date.now()-this.state.startedAt,this.bus.emit(y.complete,{totalDurationMs:this.state.totalDurationMs,failedServices:[...this.state.failedServices]}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.complete emit failed:`,e)})}emitProgress(){this.bus.emit(y.progress,{completedCount:this.state.completedCount,totalCount:this.state.totalCount,...this.state.currentService===void 0?{}:{currentService:this.state.currentService}}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.progress emit failed:`,e)})}};function re(e){return{subject:`wiring.apply`,$meta:{namespace:`client:${e}`,isRequest:!0,local:!1,channel:!1,payload:{request:{},response:{}}}}}const S=`action`;function C(e,t){return`${e}:${t}`}function ie(e,t,n){return e.on(h.interacted,r=>{let{toastId:i,actionId:a}=r.payload,o=C(i,a),s=t.get(o);s&&ae(e,s,i,n).catch(e=>{console.error(`[ExtensionCoordinator] Warning action dispatch failed for toast "${i}":`,e)})})}async function ae(e,t,n,r){switch(t.kind){case`configure-integration`:await se(e,t.clientId,n,r);break;case`open-url`:console.info(`[ExtensionCoordinator] Toast "${n}" open-url action not routable from runtime layer: ${t.url}`);break;case`run-command`:console.info(`[ExtensionCoordinator] Toast "${n}" run-command action not routable from runtime layer: ${t.command}`);break;case`install-extension`:console.info(`[ExtensionCoordinator] Toast "${n}" install-extension action not routable from runtime layer: ${t.extensionName}`);break;default:oe(t)}}function oe(e){throw Error(`[ExtensionCoordinator] Unsupported warning action: ${JSON.stringify(e)}`)}async function se(e,t,n,r){let i=re(t),a=await e.requestOptional(i,{scope:`user`,makaioCommand:r});if(!a.handled){console.warn(`[ExtensionCoordinator] Toast "${n}" configure-integration: no wiring handler for client "${t}". Is the client package loaded?`);return}let{applied:o,skipped:s}=a.data;console.info(`[ExtensionCoordinator] Toast "${n}" configure-integration: wired client "${t}" — ${o} applied, ${s} skipped.`)}function ce(e){return e.map(e=>({name:e.name,description:e.description,hasInteractive:!!e.interactive,subcommands:e.subcommands.map(e=>({name:e.name,description:e.description,args:r(e.schema)}))}))}async function le(e,t,n){let{command:r,subcommand:i,args:a}=e,o=t.find(e=>e.name===r);if(!o)return{exitCode:1,stdout:[],stderr:[`Unknown command: ${r}`]};let s=o.subcommands.find(e=>e.name===i);if(!s)return{exitCode:1,stdout:[],stderr:[`Unknown subcommand: ${i}`]};let c=s.schema.safeParse(a??{});if(!c.success)return{exitCode:1,stdout:[],stderr:[`Validation failed:`,...c.error.issues.map(e=>` ${e.path.join(`.`)||`(root)`}: ${e.message}`)]};if(o.beforeRun)try{let e=await o.beforeRun({subcommandName:i,args:c.data??{},bus:n});if(!e.proceed)return{exitCode:e.exitCode??1,stdout:[],stderr:[e.message]}}catch(e){return{exitCode:1,stdout:[],stderr:[`beforeRun hook failed: ${e instanceof Error?e.message:String(e)}`]}}let l=[],u=[],d={write:e=>l.push(e),error:e=>u.push(e)},f=0,p=new AbortController().signal;try{await s.handler({args:c.data,bus:n,output:d,signal:p,setExitCode:e=>{f=e}})}catch(e){f===0&&(f=1),u.push(e instanceof Error?e.message:String(e))}return{exitCode:f,stdout:l,stderr:u}}function w(e){let r=[];return r.push(e.bus.on(n.list,t=>{t.setResult({extensions:e.list()})})),r.push(e.bus.on(n.get,t=>{t.setResult({extension:e.getInfo(t.payload.name)})})),r.push(e.bus.on(n.setEnabled,async t=>{let{success:n,outcome:r,reason:i}=await e.handleSetEnabled(t.payload.name,t.payload.enabled);t.setResult({success:n,outcome:r,...i!==void 0&&{reason:i}})})),r.push(e.bus.on(n.catalog,async t=>{t.setResult({entries:await e.getInstalledCatalog()})})),r.push(e.bus.on(n.contributions.catalog,t=>{let n=[],r=[];for(let[t,i]of e.entries)if(i.state===`active`){for(let e of i.pkg.providers??[])n.push({packageName:t,definition:d.parse(e)});for(let e of i.pkg.clients??[])r.push({packageName:t,definition:e})}t.setResult({providers:n,clients:r})})),r.push(e.bus.on(t.listContributions,t=>{t.setResult({contributions:ce(e.cliContributions)})})),r.push(e.bus.on(t.execute,async t=>{t.setResult(await le(t.payload,e.cliContributions,e.bus))})),r.push(e.bus.on(n.warnings.list,t=>{let{extensionName:n}=t.payload;if(n!==void 0){let r=e.entries.get(n),i=r&&r.warnings.length>0?[{extensionName:n,warnings:[...r.warnings]}]:[];t.setResult({entries:i});return}let r=[];for(let[t,n]of e.entries)n.warnings.length>0&&r.push({extensionName:t,warnings:[...n.warnings]});t.setResult({entries:r})})),r}async function T(e){for(let[t,n]of e.entries)n.state===`active`&&await D(e,t,n)}function ue(e){if(e&&E(e))return[{id:S,label:te(e)}]}function E(e){return e.kind===`configure-integration`}function de(e,t){let n=`${t}:`;for(let t of e.keys())t.startsWith(n)&&e.delete(t)}async function D(e,t,n){de(e.warningActionMap,t);let r=n.warnings.filter(e=>e.severity===`degraded`);if(r.length!==0)for(let i=0;i<r.length;i++){let a=r[i];console.warn(`[${t}] ⚠ ${a.title}: ${a.message}`);let o=`${t}:${a.title}:${i}`,s=ue(a.action);try{await e.bus.emit(h.show,{level:`warning`,title:a.title,message:`${n.pkg.displayName}: ${a.message}`,toastId:o,durationMs:null,...s&&{actions:s}}),a.action&&E(a.action)&&e.warningActionMap.set(C(o,S),a.action)}catch(e){console.warn(`[${t}] toast emission failed for warning "${a.title}":`,e)}}}function O(e,t){let{pkg:n,state:r,error:i,enabled:a,extensionManaged:o}=e,s=o&&t?t(n.name)!==!1:void 0;return{name:n.name,displayName:n.displayName,state:r,...n.surface===void 0?{}:{surface:n.surface},enabled:a,extensionManaged:o,...s===void 0?{}:{persistedEnabled:s},critical:n.critical??!1,...n.browser===void 0?{}:{browser:n.browser},...i===void 0?{}:{error:i}}}function fe(e){return Object.freeze({extensionName:e})}var k=class extends c{extensionName;source;constructor(e){super(`Operator config for extension "${e.extensionName}" (source: ${e.source}) ${e.summary}`),this.extensionName=e.extensionName,this.source=e.source,e.cause!==void 0&&(this.cause=e.cause)}};const pe={unreadable:`could not be read`,"invalid-json":`is not valid JSON`,"not-an-object":`is not a JSON object`};function me(e){let{name:t,configSchema:n,configDefaults:r,storedConfig:i,operatorEntry:a,mode:c}=e,l=he(t,a,c);if(!n)return{config:void 0,usedSchemaDefaults:!1};let u={...r??{},...i??{},...l?.config??{}};try{return{config:n.parse(u),usedSchemaDefaults:!1}}catch(e){let r=s(o(e));if(c===`activate`&&l!==void 0)throw new k({extensionName:t,source:l.source,summary:`is part of a configuration rejected by the extension's config schema: ${r}`,cause:e});console.warn(`[ExtensionCoordinator] Config parse failed for "${t}", starting with schema defaults:`,r);try{return{config:n.parse({}),usedSchemaDefaults:!0}}catch{return console.warn(`[ExtensionCoordinator] Fallback config parse also failed for "${t}" — config will be absent`),{config:void 0,usedSchemaDefaults:!1}}}}function he(e,t,n){if(t===void 0)return;if(t.kind===`config`)return t;let r=new k({extensionName:e,source:t.source,summary:ge(t)});if(n===`activate`)throw r;console.warn(`[ExtensionCoordinator] ${r.message} — resolving without the operator layer`)}function ge(e){let t=pe[e.reason];if(e.detail===void 0)return t;let n=s(e.detail);return n.length===0?t:`${t}: ${n}`}function A(e,t,n,r){return j(e,t,n,r).config}function j(e,t,n,r){let i;if(n.pkg.configSchema)try{i=e.loadConfig?.(t)}catch(e){console.error(`[ExtensionCoordinator] loadConfig threw for "${t}":`,e)}return me({name:t,configSchema:n.pkg.configSchema,configDefaults:n.configDefaults,storedConfig:i,operatorEntry:e.operatorConfig?.get(t),mode:r})}function M(e){if(f(e)===void 0)return`Extension "${e}" cannot be encoded as a filesystem path segment and therefore has no addressable data directory. Valid extension names must be non-empty, must not be '.' or '..', must be well-formed Unicode, must not be a reserved Windows device basename (CON, NUL, COM1, etc.), and must encode within the filesystem component length limit.`}function N(e,t,n){if(!e.extensionContextBase)throw Error(`ExtensionCoordinator: extensionContextBase is required to start extensions with a create factory. Provide it via the constructor.`);let{extensionName:r}=t.identity,i=f(r);if(i===void 0)throw Error(`ExtensionCoordinator: extension "${r}" cannot be encoded as a filesystem path segment and therefore has no addressable data directory. Valid extension names must be non-empty, must not be '.' or '..', must be well-formed Unicode, must not be a reserved Windows device basename (CON, NUL, COM1, etc.), and must encode within the filesystem component length limit.`);return{...e.extensionContextBase,bus:e.bus,identity:t.identity,dataDir:a.join(e.extensionContextBase.makaioHome,u,i),getService:t=>e.getExtensionService(t.name),signal:e.signal,hasExtension:e.hasActiveExtension,...n===void 0?{}:{config:n}}}function _e(e){return{adapters:!!e.adapters?.length,tools:!!e.tools,hashTriggers:!!e.hashTriggers,providers:!!e.providers?.length,clients:!!e.clients?.length,ui:!!e.ui,storage:!!e.storage,sessionEventActions:!!e.sessionEventActions}}function P(e,t,r){let i=t.state;t.state=r,e.emit(n.stateChanged,{name:t.pkg.name,displayName:t.pkg.displayName,from:i,to:r,...t.error===void 0?{}:{error:t.error},contributes:_e(t.pkg)}).catch(e=>{console.error(`[ExtensionCoordinator] stateChanged emit failed for "${t.pkg.name}":`,e)})}async function F(e,t,n,r,i){return i===`activated`?(await I(e,t,n,r),[]):ve(e,n)}async function I(e,t,n,r){let i=[];try{for(let a of e){if(a.filter&&!a.filter(r.pkg))continue;let e=N(t,r,A(t,n,r,`activate`));await a.processActivated(n,r.pkg,e),i.push(a)}}catch(e){for(let e of i.reverse())if(e.processStopped)try{await e.processStopped(n)}catch(e){console.error(`[ExtensionCoordinator] Contribution processor rollback error for "${n}":`,e)}throw e}}async function ve(e,t){let n=[];for(let r of[...e].reverse())if(r.processStopped)try{await r.processStopped(t)}catch(e){n.push(e)}return n}async function L(e,t){if(!t.tray)return;let n=be(t);await e.request(g.register,{entry:n})}async function ye(e,t){t.tray&&await e.request(g.unregister,{packageName:t.name,entryId:R(t.tray)})}function be(e){let t=e.tray;if(!t)throw Error(`[tray-menu-entry-bridge] extension "${e.name}" does not declare a tray entry`);return{packageName:e.name,entryId:R(t),label:t.label,section:t.section??`views`,priority:50,enabled:!0,metadata:t.opensWindow?{registrationId:`${e.name}:${t.opensWindow}`}:t.action?{action:t.action}:void 0}}function R(e){return e.opensWindow??e.action??`default`}async function xe(e,t,r){let i=e.entries.get(t);if(!i)return`rejected`;let a=r?await Te(e,t,i):await De(e,t,i);return a===`rejected`||e.bus.emit(n.enabledChanged,{name:t,enabled:r}).catch(e=>{console.error(`[ExtensionCoordinator] enabledChanged emit failed for "${t}":`,e)}),a}async function Se(e,t,n,r){if(r.kind===`resolved`&&r.record?.collidesWith!==void 0)return{success:!1,outcome:`rejected`,reason:`name-collision`};let i=e.entries.get(t);return i?.extensionManaged?Ce(e,t,n,i):we(e,t,n,i!==void 0,r)}async function Ce(e,t,n,r){if(!e.persistEnabled)throw Error(`Cannot set enablement preference for "${t}": this runtime has no durable enablement store, so extension enablement is not persistable here.`);return!n&&r.pkg.critical?{success:!1,outcome:`rejected`,reason:`critical`}:(await e.persistEnabled(t,n),(r.state===`active`||r.state===`initializing`?!0:r.state===`discovered`?r.enabled:!1)===n?{success:!0,outcome:`applied`}:{success:!1,outcome:`restart-required`,reason:`runtime-state-diverges`})}async function we(e,t,n,r,i){if(!e.persistEnabled)throw Error(`Cannot set enablement preference for "${t}": this runtime has no durable enablement store, so extension enablement is not persistable here.`);if(i.kind!==`resolved`){if(r)throw Error(`Cannot set enablement preference for "${t}": framework packages are always loaded and have no operator enablement preference.`);return{success:!1,outcome:`rejected`,reason:`no-catalog`}}let a=i.record;if(!a)return{success:!1,outcome:`rejected`,reason:`not-installed`};if(!n&&a.critical)return{success:!1,outcome:`rejected`,reason:`critical`};if(!n&&a.criticalityUnknown)return{success:!1,outcome:`rejected`,reason:`criticality-unknown`};await e.persistEnabled(t,n);let o=r?`framework-package-shadowed`:`not-loaded`;return n?{success:!1,outcome:`restart-required`,reason:o}:{success:!0,outcome:`applied`,reason:o}}function z(e,t,n,r){return t.error=r,console.error(`[ExtensionCoordinator] Cannot re-enable "${n}":`,r),P(e.bus,t,`failed`),`rejected`}async function Te(e,t,n){if(n.state===`active`)return n.enabled=!0,`applied`;if(n.state!==`stopped`&&n.state!==`failed`&&n.state!==`skipped`)return`rejected`;if(n.state===`skipped`&&!n.surfacesCollected)return n.error=`Extension "${t}" was disabled at boot and never started this process; a restart is required to activate it.`,`rejected`;let{pkg:r}=n,i,a=(r.dependencies??[]).filter(t=>{if(t.optional)return!1;let n=e.entries.get(t.name);return!n||n.state!==`active`});if(a.length>0)return z(e,n,t,`Required dependencies not active: ${a.map(e=>e.name).join(`, `)}`);let s=M(n.identity.extensionName);if(s!==void 0)return z(e,n,t,s);n.enabled=!0,n.error=void 0,P(e.bus,n,`initializing`);let c;try{c=A(e,t,n,`activate`)}catch(r){return z(e,n,t,`Config resolution failed: ${o(r)}`)}if(r.storage?.registerHandlers&&e.db!==void 0)try{let t=N(e,n,c),a=r.storage.registerHandlers(e.bus,e.db,t);typeof a==`function`&&(i=a,n.storageCleanup=a)}catch(r){return n.error=o(r),console.error(`[ExtensionCoordinator] Extension "${t}" storage re-registration failed:`,r),P(e.bus,n,`failed`),`rejected`}if(!await Ee(e,t,n,c,i))return`rejected`;try{await F(e.contributionProcessors,e,t,n,`activated`)}catch(r){return await B(t,n.service,i,n),n.service=void 0,n.error=o(r),console.error(`[ExtensionCoordinator] Extension "${t}" contribution processing failed:`,r),P(e.bus,n,`failed`),`rejected`}P(e.bus,n,`active`);try{await L(e.bus,n.pkg)}catch(e){console.warn(`[ExtensionCoordinator] Failed to register tray entry for ${t}:`,e)}return await e.runHealthCheck(t),await e.emitWarningsForEntry(t,n),`applied`}async function Ee(e,t,n,r,i){let{create:a}=n.pkg;if(!a)return!0;let s;try{return s=await a(N(e,n,r)),await s.init?.(),n.service=s,!0}catch(r){return await B(t,s,i,n),r instanceof b?n.pkg.critical?(n.error=`Critical extension cannot skip startup: ${r.reason}`,console.error(`[ExtensionCoordinator] Extension "${t}" failed to re-initialize:`,n.error),P(e.bus,n,`failed`),!1):(n.error=r.reason,P(e.bus,n,`skipped`),!1):(n.error=o(r),console.error(`[ExtensionCoordinator] Extension "${t}" failed to re-initialize:`,r),P(e.bus,n,`failed`),!1)}}async function De(e,t,r){if(r.state===`initializing`)return`rejected`;if(r.state!==`active`)return r.enabled=!1,`applied`;let i=Array.from(e.entries.entries()).filter(([e,n])=>e===t||n.state!==`active`?!1:n.pkg.dependencies?.some(e=>!e.optional&&e.name===t)??!1).map(([e])=>e);if(i.length>0)return r.error=`Cannot disable "${t}" while active dependents remain: ${i.join(`, `)}`,console.error(`[ExtensionCoordinator] ${r.error}`),`rejected`;r.enabled=!1,r.error=void 0;let a=[];try{a.push(...await F(e.contributionProcessors,e,t,r,`stopped`))}catch(e){a.push(e),console.error(`[ExtensionCoordinator] Contribution processor error during disable of "${t}":`,e)}if(r.service)try{await r.service.destroy?.()}catch(e){a.push(e),console.error(`[ExtensionCoordinator] Error during disable destroy of "${t}":`,e)}finally{r.service=void 0}if(r.storageCleanup)try{r.storageCleanup()}catch(e){a.push(e),console.error(`[ExtensionCoordinator] Storage cleanup error during disable of "${t}":`,e)}finally{r.storageCleanup=void 0}try{await ye(e.bus,r.pkg)}catch(e){a.push(e),console.error(`[ExtensionCoordinator] Failed to unregister tray entry for ${t}:`,e)}if(a.length>0){let e=a.map(e=>o(e)).join(`; `);r.error=o(AggregateError(a,`Extension "${t}" disabled with ${a.length} teardown failure(s): ${e}`))}P(e.bus,r,`stopped`),r.warnings=[];try{await e.bus.emit(n.warnings.changed,{extensionName:t,warnings:[]})}catch(e){console.error(`[ExtensionCoordinator] warnings.changed emit failed for "${t}":`,e)}return`applied`}async function B(e,t,n,r){try{await t?.destroy?.()}catch(t){console.error(`[ExtensionCoordinator] Service cleanup error after failed enable of "${e}":`,t)}try{n?.()}catch(t){console.error(`[ExtensionCoordinator] Storage cleanup error after failed enable of "${e}":`,t)}finally{r.storageCleanup=void 0}}const Oe=new Set;function V(e,t=Oe){let n=new Map,r=new Set;for(let i of e){let e=n.get(i.name);if(e===void 0){n.set(i.name,i);continue}if(!t.has(i.name)||r.has(i.name))throw Error(ke(i.name,e,i));r.add(i.name),console.info(`[ExtensionCoordinator] Extension "${i.name}" overrides the framework package registered under the same name`),n.delete(i.name),n.set(i.name,i)}return[...n.values()]}function ke(e,t,n){return`Extension name collision: "${e}" is registered twice (${H(t)} and ${H(n)}). Extension package names are identities and cannot be shared — uninstall or rename one of them. Reaching load with two registrations under one name means discovery or boot selection admitted both, which they must not.`}function H(e){return`"${e.displayName}" v${e.version}`}function U(e,t,n){let r=new Set(e.map(e=>e.name)),i=e.filter(e=>Ae(e,t,n)),a=new Map(i.map(e=>[e.name,e])),o=new Set(a.keys()),s=!0;for(;s;){s=!1;for(let e of o)(a.get(e).dependencies??[]).some(e=>!e.optional&&r.has(e.name)&&!o.has(e.name))&&(o.delete(e),s=!0)}return i.filter(e=>o.has(e.name))}function Ae(e,t,n){if(!Me(e,t))return!1;let r=e.requires;return!r||r.length===0||!n?!0:r.every(e=>{switch(e.type){case`host`:return n.hosts.has(e.id);case`capability`:return n.capabilities.has(e.id)?e.version===void 0?!0:je(n,e.id,e.version):!1}})}function je(e,t,n){let r=e.capabilityVersions?.get(t);return r!==void 0&&m(r,n)}function Me(e,t){return e.surface===void 0||e.surface===`any`||e.surface===t}function Ne(e,t){let n=e.entries.get(t.name)?.extensionManaged??!0,r=n?e.loadEnabled?.(t.name):void 0;return{...t,extensionManaged:n,...r!==void 0&&{persistedEnabled:r}}}async function Pe(e){return e.installedCatalog?(await e.installedCatalog()).map(t=>Ne(e,t)):null}async function Fe(e,t){return e.installedCatalog?{kind:`resolved`,record:W(await e.installedCatalog(),t,e.surface)}:{kind:`unavailable`}}function W(e,t,n){let r=e.filter(e=>e.name===t),i=r.filter(e=>e.shadowedBy===void 0),a=i.length>0?i:r,o=a.filter(e=>e.surface===void 0||e.surface===n),s=i.length>0&&o.length>0,c=o.length>0?o:a,[l,...u]=c;if(l!==void 0)return Le(u.reduce(Re,l),Ie(r,c,s))}function Ie(e,t,n){let[r,...i]=t;if(r!==void 0)return e.length===1?r.collidesWith:n&&i.length>0?r.collidesWith??i[0]?.origin:t.find(e=>e.collisionIgnoresSurface===!0)?.collidesWith}function Le(e,t){let{collidesWith:n,collisionIgnoresSurface:r,...i}=e;return{...i,...t!==void 0&&{collidesWith:t}}}function Re(e,t){let n=e.critical===!0||t.critical===!0?!0:e.critical??t.critical,r=e.criticalityUnknown===!0||t.criticalityUnknown===!0?!0:e.criticalityUnknown??t.criticalityUnknown;return{...e,...n!==void 0&&{critical:n},...r!==void 0&&{criticalityUnknown:r}}}function ze(e,t={}){let n=Be(e);return Ve(e,n,new Map(e.map(e=>[e.name,e])),t),We(n,Ue(e,n),t)}function Be(e){let t=new Set;for(let n of e){if(t.has(n.name))throw Error(`ExtensionCoordinator: duplicate package name detected: "${n.name}"`);t.add(n.name)}return t}function Ve(e,t,n,r){for(let i of e)He(i,t,n,r)}function He(e,t,n,r){let i=r.enabledNames===void 0||r.enabledNames.has(e.name),a=e.dependencies??[],o=a.filter(e=>!e.optional&&!t.has(e.name));o.length>0&&G(r,i,e.name,`ExtensionCoordinator: package "${e.name}" declares missing dependencies: ${o.map(e=>e.name).join(`, `)}`);for(let t of a){let a=n.get(t.name);if(a===void 0)continue;let o=a.version;m(o,t.version)||G(r,i,e.name,`ExtensionCoordinator: package "${e.name}" dependency "${t.name}" version ${o} does not satisfy ${t.version}`)}}function G(e,t,n,r){if(t)throw Error(r);e.onSoftValidationWarning?.(n,r)}function Ue(e,t){let n=new Map;for(let r of e){let e=(r.dependencies??[]).filter(e=>t.has(e.name)).map(e=>e.name);n.set(r.name,new Set(e))}return n}function We(e,t,n){let r=[];for(let[e,n]of t)n.size===0&&r.push(e);let i=[],a=new Set;for(;r.length>0;){let e=r.shift();if(!a.has(e)){a.add(e),i.push(e);for(let[n,i]of t)i.has(e)&&(i.delete(e),i.size===0&&!a.has(n)&&r.push(n))}}if(i.length===e.size)return i;let o=[...e].filter(e=>!a.has(e));if((n.enabledNames===void 0?o:o.filter(e=>n.enabledNames.has(e))).length>0)throw Error(`ExtensionCoordinator: circular dependency detected among: ${o.join(`, `)}`);let s=`ExtensionCoordinator: circular dependency detected among disabled packages: ${o.join(`, `)}`;for(let e of o)n.onSoftValidationWarning?.(e,s),i.push(e);return i}function Ge(e,t,n){let r=new Set;for(let i of e){if(!(t?.has(i.name)??!0)){r.add(i.name);continue}let e=n?.(i.name)!==!1;(e||i.critical)&&r.add(i.name),!e&&i.critical&&console.warn(`[ExtensionCoordinator] Critical extension "${i.name}" is marked disabled in the enablement store but will start anyway to keep the runtime functional. Remove it from the disabled list in config/extensions.json to silence this warning.`)}return{enabled:r}}function K(e){let t=new Set(e.map(({name:e})=>e)),n=new Map(e.map(({name:e,entry:t})=>[e,t])),r=new Set(e.filter(({entry:e})=>e.enabled).map(({name:e})=>e)),i=[],a=!0;for(;a;){a=!1;for(let e of r){let o=(n.get(e).pkg.dependencies??[]).filter(e=>!e.optional&&t.has(e.name)&&!r.has(e.name)).map(e=>e.name);o.length!==0&&(r.delete(e),a=!0,i.push({name:e,missingDependencies:o}))}}return{closed:r,exclusions:i}}async function Ke(e){if(!e.runMigrations)return;let t=[];for(let n of e.loadOrder){let r=e.entries.get(n);if(!r)throw Error(`Extension "${n}" is in loadOrder but missing from entries`);t.push({name:n,entry:r})}let{closed:n,exclusions:r}=K(t);for(let{name:e,missingDependencies:t}of r)console.warn(`[ExtensionCoordinator] Excluding extension "%s" from migration collection: required dependency %s is disabled`,e,t.join(`, `));let i=[];for(let{name:e,entry:r}of t){if(!n.has(e))continue;let t=r.pkg.storage?.migrations;if(!t)continue;let a,o;if(typeof t==`string`)a=q(e,r.pkg,t);else{let n={};for(let[i,a]of Object.entries(t))a!==void 0&&(n[i]=q(e,r.pkg,a));let i=p(n);if(i===void 0)continue;a=i,o=n}i.push({name:e,migrationsPath:a,migrationSourceId:r.pkg.storage?.migrationSourceId??a,...o?{migrationsPathByDialect:o}:{}})}i.length!==0&&await e.runMigrations(i)}function q(e,t,n){if(a.isAbsolute(n))return n;let r=t.storage?.packageRoot;if(!r)throw Error(`Extension "${e}" declares relative storage.migrations "${n}" without storage.packageRoot`);let i=a.resolve(r),o=a.resolve(i,n),s=a.relative(i,o);if(s.startsWith(`..`)||a.isAbsolute(s))throw Error(`Extension "${e}" declares storage.migrations "${n}" outside storage.packageRoot`);return o}async function J(e,t){let r=e.entries.get(t);if(!r?.service||r.state!==`active`)return;let{checkHealth:i}=r.service;if(!i)return;let a;try{let e=await i.call(r.service),n=ee.array().safeParse(e);n.success?a=n.data:(console.error(`[ExtensionCoordinator] checkHealth for "${t}" returned invalid data:`,n.error),a=[])}catch(e){console.error(`[ExtensionCoordinator] checkHealth threw for "${t}":`,e),a=[]}r.warnings=a;try{await e.bus.emit(n.warnings.changed,{extensionName:t,warnings:[...a]})}catch(e){console.error(`[ExtensionCoordinator] warnings.changed emit failed for "${t}":`,e)}}function qe(e,t){if(t.windows)for(let n of t.windows)e.windowRegistry.register(t.name,t.displayName,n);if(t.tray&&e.trayEntries.push({...t.tray,packageName:t.name}),t.cli){let n=t.cli;`subcommands`in n&&e.cliContributions.push(n)}}function Je(e){return Array.from(e.values()).filter(e=>e.enabled).map(e=>e.pkg).filter(e=>!!e.http)}async function Ye(e){let t=[...e.loadOrder].reverse(),n=[],r=[];for(let i of t){let t=e.entries.get(i);if(!t)continue;let a=!1;if(t.state===`active`){let r=await F(e.contributionProcessors,e.contextHost,i,t,`stopped`);r.length>0&&(a=!0,n.push(...r))}if(t.service)try{await t.service.destroy?.()}catch(e){a=!0,n.push(e)}finally{t.service=void 0}if(t.storageCleanup)try{t.storageCleanup()}catch(e){a=!0,n.push(e)}finally{t.storageCleanup=void 0}a&&r.push(i),t.state===`active`&&P(e.contextHost.bus,t,`stopped`)}if(n.length>0)throw AggregateError(n,`Extensions failed to shut down cleanly: ${r.join(`, `)}`)}async function Xe(e,t,n){if(!n.enabled){P(e.bus,n,`skipped`),e.bootProgress.skipped(n.pkg,`disabled`);return}let r=(n.pkg.dependencies??[]).filter(t=>t.optional?!1:e.entries.get(t.name)?.state!==`active`);if(r.length>0){let i=`Required dependencies not active: ${r.map(e=>e.name).join(`, `)}`;if(Q(e,t,n,i),n.pkg.critical)throw Error(`Critical package "${t}" failed: ${i}`);return}let i=M(n.identity.extensionName);if(i!==void 0){if(Q(e,t,n,i),n.pkg.critical)throw Error(`Critical package "${t}" failed: ${i}`);return}e.bootProgress.starting(n.pkg),P(e.bus,n,`initializing`);let a;try{a=A(e.contextHost,t,n,`activate`)}catch(r){if(Q(e,t,n,o(r)),n.pkg.critical)throw r;return}if(Qe(e,t,n,a)){if(!n.pkg.create){await Ze(e,t,n);return}await Y(e,t,n,a)}}async function Ze(e,t,n){try{await F(e.contributionProcessors,e.contextHost,t,n,`activated`)}catch(r){if(Z(t,n),X(e,t,n,r))return;if(Q(e,t,n,r instanceof Error?r.message:String(r)),n.pkg.critical)throw r;return}P(e.bus,n,`active`),e.bootProgress.ready(n.pkg),await $(e.bus,t,n)}async function Y(e,t,n,r){let i;try{let a=N(e.contextHost,n,r);i=await n.pkg.create(a),await i.init?.(),n.service=i,await F(e.contributionProcessors,e.contextHost,t,n,`activated`),P(e.bus,n,`active`),e.bootProgress.ready(n.pkg),await $(e.bus,t,n)}catch(r){try{await i?.destroy?.()}catch(e){console.error(`[ExtensionCoordinator] Service cleanup error after failed start of "${t}":`,e)}if(n.service=void 0,Z(t,n),X(e,t,n,r))return;if(Q(e,t,n,r instanceof Error?r.message:String(r)),n.pkg.critical)throw r}}function X(e,t,n,r){if(!(r instanceof b))return!1;if(n.pkg.critical){let i=`Critical package cannot skip startup: ${r.reason}`;throw Q(e,t,n,i),Error(`Critical package "${t}" failed: ${i}`,{cause:r})}return n.error=r.reason,console.info(`[ExtensionCoordinator] Package "${t}" skipped: ${r.reason}`),P(e.bus,n,`skipped`),e.bootProgress.skipped(n.pkg,r.reason),!0}function Qe(e,t,n,r){if(!n.pkg.storage?.registerHandlers||e.db===void 0)return!0;try{let t=N(e.contextHost,n,r),i=n.pkg.storage.registerHandlers(e.bus,e.db,t);return i&&(n.storageCleanup=i),!0}catch(r){let i=r instanceof Error?r.message:String(r);if(console.error(`[ExtensionCoordinator] Package "${t}" storage registration failed:`,r),Q(e,t,n,i),n.pkg.critical)throw r;return!1}}function Z(e,t){if(t.storageCleanup)try{t.storageCleanup()}catch(t){console.error(`[ExtensionCoordinator] Storage cleanup error after failed start of "${e}":`,t)}finally{t.storageCleanup=void 0}}function Q(e,t,n,r){n.error=r,console.error(`[ExtensionCoordinator] Package "${t}" failed:`,r),P(e.bus,n,`failed`),e.bootProgress.failed(n.pkg,r)}async function $(e,t,n){try{await L(e,n.pkg)}catch(e){console.warn(`[ExtensionCoordinator] Failed to register tray entry for ${t}:`,e)}}var $e=class{bus;surface;db;extensionContextBase;runtimeEnvironment;shutdownController=new AbortController;entries=new Map;loadOrder=[];loaded=!1;started=!1;shutdownRequested=!1;shutdownPromise;lifecycleTail=Promise.resolve();rpcCleanups=[];contributionProcessors=[];warningActionMap=new Map;windowRegistry=new e;_trayEntries=[];_cliContributions=[];persistEnabled;loadEnabled;loadConfig;operatorConfig;runMigrations;extensionManagedNames;frameworkPackageNames;installedCatalog;constructor(e,t={}){this.bus=e,this.surface=t.surface??`headless`,this.db=t.db,this.extensionContextBase=t.extensionContextBase,this.runtimeEnvironment=t.runtimeEnvironment,this.persistEnabled=t.persistEnabled,this.loadEnabled=t.loadEnabled,this.loadConfig=t.loadConfig,this.operatorConfig=t.operatorConfig,this.runMigrations=t.runMigrations,this.extensionManagedNames=t.extensionManagedNames,this.frameworkPackageNames=t.frameworkPackageNames,this.installedCatalog=t.installedCatalog,this.rpcCleanups.push(ie(this.bus,this.warningActionMap,t.launcherCommand??`makaio`))}get trayEntries(){return this._trayEntries.map(e=>({...e}))}get cliContributions(){return this._cliContributions}extensionsWithHttp(){return Je(this.entries)}load(e,t){if(this.shutdownRequested)throw Error(`ExtensionCoordinator.load() called after shutdown(). The coordinator is terminal.`);if(this.loaded)throw Error(`ExtensionCoordinator.load() called twice. The coordinator is single-use; create a new instance if needed.`);let n=V(U(e,this.surface,this.runtimeEnvironment),this.frameworkPackageNames),{enabled:r}=Ge(n,this.extensionManagedNames,this.loadEnabled),i=new Map;this.loadOrder=ze(n,{enabledNames:r,onSoftValidationWarning:(e,t)=>{let n=i.get(e);n?n.push(t):i.set(e,[t])}});let a=[],o=[];for(let e of this.loadOrder){let s=n.find(t=>t.name===e);a.push(s);let c=i.get(e),l={pkg:s,identity:fe(s.name),state:`discovered`,enabled:r.has(e),extensionManaged:this.extensionManagedNames?.has(e)??!0,warnings:[],...c?{error:c.join(`; `)}:{}};if(t){let n=t.get(e);n&&(l.configDefaults=n)}this.entries.set(e,l),o.push({name:e,entry:l})}let{closed:s,exclusions:c}=K(o);for(let{name:e,missingDependencies:t}of c)console.warn(`[ExtensionCoordinator] Excluding extension "%s" from static surface collection and namespace registration: required dependency %s is disabled`,e,t.join(`, `));for(let{name:e,entry:t}of o)s.has(e)&&(t.pkg.namespaces&&this.bus.registerNamespaces(t.pkg.namespaces),qe({windowRegistry:this.windowRegistry,trayEntries:this._trayEntries,cliContributions:this._cliContributions},t.pkg),t.surfacesCollected=!0);return this.registerRpcHandlers(),this.loaded=!0,a}registerRpcHandlers(){this.rpcCleanups.push(...w({bus:this.bus,entries:this.entries,cliContributions:this._cliContributions,list:()=>this.list(),getInfo:e=>this.getInfo(e),handleSetEnabled:(e,t)=>this.handleSetEnabled(e,t),getInstalledCatalog:()=>Pe(this.createCatalogHost())}))}async startAll(){if(this.shutdownRequested)throw Error(`ExtensionCoordinator.startAll() called after shutdown(). The coordinator is terminal.`);if(!this.loaded)throw Error(`ExtensionCoordinator.startAll() called before load(). Call load() first.`);if(this.started)throw Error(`ExtensionCoordinator.startAll() called twice. The coordinator is single-use; create a new instance if needed.`);this.started=!0,await this.enqueueLifecycle(()=>this.startAllInLifecycleLane())}async startAllInLifecycleLane(){let e=new ne(this.bus,this.loadOrder.length);this.rpcCleanups.push(()=>e.dispose());try{await Ke({loadOrder:this.loadOrder,entries:this.entries,runMigrations:this.runMigrations});for(let t of this.loadOrder){let n=this.entries.get(t);n&&await Xe({bus:this.bus,db:this.db,entries:this.entries,contributionProcessors:this.contributionProcessors,contextHost:this.createExtensionContextHost(),bootProgress:e},t,n)}let t=this.createExtensionHealthHost();await Promise.all(this.loadOrder.map(e=>this.entries.get(e)?.state===`active`?J(t,e):void 0)),await T({bus:this.bus,entries:this.entries,warningActionMap:this.warningActionMap})}finally{e.complete()}}shutdown(){if(this.shutdownPromise)return this.shutdownPromise;this.shutdownRequested=!0;let e=this.enqueueLifecycle(()=>this.shutdownInLifecycleLane());return this.shutdownPromise=e,this.shutdownController.abort(),e}async shutdownInLifecycleLane(){let e=[],t;for(let t of this.rpcCleanups)try{t()}catch(t){e.push(t)}this.rpcCleanups=[],this.warningActionMap.clear();try{await Ye({entries:this.entries,loadOrder:this.loadOrder,contributionProcessors:this.contributionProcessors,contextHost:this.createExtensionContextHost()})}catch(n){n instanceof AggregateError?(t=n.message,e.push(...n.errors)):e.push(n)}if(e.length>0){let n=t===void 0?``:`; ${t}`;throw AggregateError(e,`Extension coordinator shutdown failed with ${e.length} error(s)${n}`)}}list(){return[...this.entries.values()].map(e=>O(e,this.loadEnabled))}getInfo(e){let t=this.entries.get(e);return t?O(t,this.loadEnabled):null}getExtensionService(e){let t=typeof e==`string`?e:e.name;return this.entries.get(t)?.service}getExtension(e){return this.entries.get(e)?.pkg}getResolvedConfig(e){let t=this.entries.get(e);if(t)return j(this.createExtensionContextHost(),e,t,`observe`)}getLoadedProviderDefinitionIds(){let e=new Set;for(let t of this.entries.values())if(t.enabled&&!(t.state===`failed`||t.state===`skipped`||t.state===`stopped`))for(let n of t.pkg.providers??[])e.add(n.id);return e}forEachActiveExtension(e){let t=this.createExtensionContextHost();for(let n of this.loadOrder){let r=this.entries.get(n);if(!r||r.state!==`active`)continue;let i=N(t,r,A(t,n,r,`observe`));e(n,r.pkg,i)}}forExtension(e,t){let n=this.entries.get(e);if(!n||n.state!==`active`)return;let r=this.createExtensionContextHost(),i=N(r,n,A(r,e,n,`observe`));t(e,n.pkg,i)}registerContributionProcessor(e){return this.contributionProcessors.push(e),()=>{let t=this.contributionProcessors.indexOf(e);t>=0&&this.contributionProcessors.splice(t,1)}}async handleSetEnabled(e,t){let n={success:!1,outcome:`rejected`,reason:`shutting-down`};if(this.shutdownRequested)return n;let r=await Fe(this.createCatalogHost(),e);return await this.admitLifecycle(()=>Se(this.createToggleHost(),e,t,r),n)}createCatalogHost(){return{entries:this.entries,loadEnabled:this.loadEnabled,installedCatalog:this.installedCatalog,surface:this.surface}}async applyExtensionTransition(e,t){return await this.admitLifecycle(()=>xe(this.createToggleHost(),e,t),`rejected`)}createToggleHost(){return{...this.createExtensionContextHost(),db:this.db,entries:this.entries,persistEnabled:this.persistEnabled,contributionProcessors:this.contributionProcessors,runHealthCheck:e=>J(this.createExtensionHealthHost(),e),emitWarningsForEntry:(e,t)=>D({bus:this.bus,entries:this.entries,warningActionMap:this.warningActionMap},e,t)}}async admitLifecycle(e,t){return this.shutdownRequested?t:await this.enqueueLifecycle(e)}enqueueLifecycle(e){let t=this.lifecycleTail.then(()=>e(),()=>e());return this.lifecycleTail=t.then(()=>void 0,()=>void 0),t}createExtensionContextHost(){return{bus:this.bus,extensionContextBase:this.extensionContextBase,loadConfig:this.loadConfig,operatorConfig:this.operatorConfig,signal:this.shutdownController.signal,hasActiveExtension:e=>this.hasActiveExtension(e),getExtensionService:e=>this.getExtensionService(e)}}createExtensionHealthHost(){return{bus:this.bus,entries:this.entries}}hasActiveExtension(e){return this.entries.get(e)?.state===`active`}};export{k as a,y as c,U as i,W as n,b as o,V as r,v as s,$e as t};
@@ -1,4 +1,4 @@
1
- import { n as CredentialRef } from "./credential-ref-MsnUkz9G.mjs";
1
+ import { n as CredentialRef } from "./credential-ref-DHhA4VTS.mjs";
2
2
  import { z } from "zod";
3
3
  import { MakaioBusLike } from "@makaio/framework/core";
4
4
 
@@ -0,0 +1 @@
1
+ import{createBusInstance as e}from"@makaio/framework/bus";import{HmacAuth as t,WebSocketClientTransport as n}from"@makaio/framework/node/transports";function r(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0?e:250}function i(e){let t=performance.now()+e;return()=>Math.max(0,t-performance.now())}function a(e){try{e()}catch{}}const o=`ws://127.0.0.1:6252/bus`;async function s(i){let o;try{let r=i.busUrl?.trim()||process.env.MAKAIO_BUS_URL?.trim()||`ws://127.0.0.1:6252/bus`,a=(i.secret??process.env.MAKAIO_BUS_SECRET)?.trim(),s=a?new t({secret:a}):void 0;o=e({transports:[new n({url:r,name:i.name,autoReconnect:!1,auth:s,debug:i.debug??process.env.MAKAIO_DEBUG===`true`})]})}catch{return null}let s;try{let e=o.connect();return e.catch(()=>void 0),await Promise.race([e,new Promise((e,t)=>{s=setTimeout(()=>{t(Error(`hook bus connect timeout`))},r(i.timeoutMs))})]),{bus:o,dispose:()=>a(()=>o.disconnect())}}catch{return a(()=>o.disconnect()),null}finally{clearTimeout(s)}}export{i,s as n,r,o as t};
@@ -1 +1 @@
1
- import{FileSystemSubjects as e,FsSubjects as t}from"./services/filesystem/namespace.mjs";import*as n from"node:fs/promises";import*as r from"node:path";import{BaseService as i}from"@makaio/framework/service-base";import*as a from"node:os";const o=[`node_modules`,`.git`,`dist`,`build`,`.next`,`coverage`,`.turbo`,`.cache`];function s(e){return e.split(r.sep).filter(Boolean)}function c(e){let t=r.dirname(e);return t===e?null:t}function l(e){let t=s(e),n=[],i=r.parse(e).root;for(let e of t)i=r.join(i,e),n.push({name:e,path:i});return n}async function u(e,t){let i=r.resolve(e),a=await n.readdir(i,{withFileTypes:!0}),u=t?.includeHidden??!1,d=new Set(t?.excludeNames??o),f=[],p=[];for(let e of a){if(e.name.startsWith(`.`)&&!u||d.has(e.name))continue;let t=r.join(i,e.name),a=e.isDirectory();try{let i=!1;if(a)try{await n.access(r.join(t,`.git`)),i=!0}catch{}let o=await n.stat(t);f.push({name:e.name,path:t,type:a?`directory`:`file`,isGitRepo:a?i:void 0,size:a?void 0:o.size,modified:o.mtimeMs})}catch(t){let n=t;p.push({name:e.name,code:n.code??`UNKNOWN`,message:n.message})}}f.sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1);let m=!1;try{await n.access(r.join(i,`.git`)),m=!0}catch{}return{entries:f,isGitRepo:m,path:i,parentPath:c(i),segments:s(i),breadcrumbs:l(i),errors:p.length>0?p:void 0}}var d=class extends i{machineId;label;constructor(e,t,n=`Local`){super(e),this.machineId=t,this.label=n}async onInit(){this.registerHandler(e.listSources,e=>{e.identify?.(this.machineId),e.setResult({sources:[{machineId:this.machineId,label:this.label}]})}),this.addHandlerCleanup(this.bus.on(e.listDirectory,async e=>{let t=await u(e.payload.path??a.homedir(),e.payload.options);e.setResult(t)},{filter:{machineId:this.machineId}})),this.addHandlerCleanup(this.bus.on(e.getHomeDir,e=>{e.setResult({path:a.homedir()})},{filter:{machineId:this.machineId}})),this.registerHandler(t.glob,async e=>{let{pattern:t,cwd:i,limit:a=100,offset:o=0,ignore:s=[],machineId:c}=e.payload;if(this.requireMachineIdForRemote(e,c),c!==void 0&&!this.shouldHandle(c))return;let{globby:l}=await import(`./globby-CxGKRBGC.mjs`).then(e=>e.n),u=await l(t,{cwd:i,ignore:[`node_modules/**`,`.git/**`,...s],absolute:!0,onlyFiles:!1,expandDirectories:!1}),d=u.length,f=o+a<d,p=u.slice(o,o+a),m=await Promise.all(p.map(async e=>{let t=r.relative(i,e),a=`file`,o;try{let t=await n.stat(e);a=t.isDirectory()?`directory`:`file`,o=t.isFile()?t.size:void 0}catch{}return{path:e,relativePath:t,type:a,size:o}}));e.setResult({files:m,truncated:f,total:d})}),this.registerHandler(t.readFile,async e=>{let{path:t,machineId:r,encoding:i=`utf-8`}=e.payload;if(this.requireMachineIdForRemote(e,r),r!==void 0&&!this.shouldHandle(r))return;let a=await n.readFile(t,{encoding:i});e.setResult({content:a})}),this.registerHandler(t.writeFile,async e=>{let{path:t,content:r,machineId:i,encoding:a=`utf-8`}=e.payload;this.requireMachineIdForRemote(e,i),!(i!==void 0&&!this.shouldHandle(i))&&(await n.writeFile(t,r,{encoding:a}),e.setResult({success:!0}))})}requireMachineIdForRemote(e,t){if(!this.isHostOwnedOrigin(e)&&t===void 0)throw Error(`machineId is required for remote filesystem access`)}isHostOwnedOrigin(e){return e.origin.local||e.transport?.transportName===`worker`&&e.transport.peer===void 0}shouldHandle(e){return e===this.machineId}};export{d as t};
1
+ import{FileSystemSubjects as e,FsSubjects as t}from"./services/filesystem/namespace.mjs";import*as n from"node:fs/promises";import*as r from"node:path";import{BaseService as i}from"@makaio/framework/service-base";import*as a from"node:os";const o=[`node_modules`,`.git`,`dist`,`build`,`.next`,`coverage`,`.turbo`,`.cache`];function s(e){return e.split(r.sep).filter(Boolean)}function c(e){let t=r.dirname(e);return t===e?null:t}function l(e){let t=s(e),n=[],i=r.parse(e).root;for(let e of t)i=r.join(i,e),n.push({name:e,path:i});return n}async function u(e,t){let i=r.resolve(e),a=await n.readdir(i,{withFileTypes:!0}),u=t?.includeHidden??!1,d=new Set(t?.excludeNames??o),f=[],p=[];for(let e of a){if(e.name.startsWith(`.`)&&!u||d.has(e.name))continue;let t=r.join(i,e.name),a=e.isDirectory();try{let i=!1;if(a)try{await n.access(r.join(t,`.git`)),i=!0}catch{}let o=await n.stat(t);f.push({name:e.name,path:t,type:a?`directory`:`file`,isGitRepo:a?i:void 0,size:a?void 0:o.size,modified:o.mtimeMs})}catch(t){let n=t;p.push({name:e.name,code:n.code??`UNKNOWN`,message:n.message})}}f.sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1);let m=!1;try{await n.access(r.join(i,`.git`)),m=!0}catch{}return{entries:f,isGitRepo:m,path:i,parentPath:c(i),segments:s(i),breadcrumbs:l(i),errors:p.length>0?p:void 0}}var d=class extends i{machineId;label;constructor(e,t,n=`Local`){super(e),this.machineId=t,this.label=n}async onInit(){this.registerHandler(e.listSources,e=>{e.identify?.(this.machineId),e.setResult({sources:[{machineId:this.machineId,label:this.label}]})}),this.addHandlerCleanup(this.bus.on(e.listDirectory,async e=>{let t=await u(e.payload.path??a.homedir(),e.payload.options);e.setResult(t)},{filter:{machineId:this.machineId}})),this.addHandlerCleanup(this.bus.on(e.getHomeDir,e=>{e.setResult({path:a.homedir()})},{filter:{machineId:this.machineId}})),this.registerHandler(t.glob,async e=>{let{pattern:t,cwd:i,limit:a=100,offset:o=0,ignore:s=[],machineId:c}=e.payload;if(this.requireMachineIdForRemote(e,c),c!==void 0&&!this.shouldHandle(c))return;let{globby:l}=await import(`./globby-DBl3Lybh.mjs`).then(e=>e.n),u=await l(t,{cwd:i,ignore:[`node_modules/**`,`.git/**`,...s],absolute:!0,onlyFiles:!1,expandDirectories:!1}),d=u.length,f=o+a<d,p=u.slice(o,o+a),m=await Promise.all(p.map(async e=>{let t=r.relative(i,e),a=`file`,o;try{let t=await n.stat(e);a=t.isDirectory()?`directory`:`file`,o=t.isFile()?t.size:void 0}catch{}return{path:e,relativePath:t,type:a,size:o}}));e.setResult({files:m,truncated:f,total:d})}),this.registerHandler(t.readFile,async e=>{let{path:t,machineId:r,encoding:i=`utf-8`}=e.payload;if(this.requireMachineIdForRemote(e,r),r!==void 0&&!this.shouldHandle(r))return;let a=await n.readFile(t,{encoding:i});e.setResult({content:a})}),this.registerHandler(t.writeFile,async e=>{let{path:t,content:r,machineId:i,encoding:a=`utf-8`}=e.payload;this.requireMachineIdForRemote(e,i),!(i!==void 0&&!this.shouldHandle(i))&&(await n.writeFile(t,r,{encoding:a}),e.setResult({success:!0}))})}requireMachineIdForRemote(e,t){if(!this.isHostOwnedOrigin(e)&&t===void 0)throw Error(`machineId is required for remote filesystem access`)}isHostOwnedOrigin(e){return e.origin.local||e.transport?.transportName===`worker`&&e.transport.peer===void 0}shouldHandle(e){return e===this.machineId}};export{d as t};
@@ -1 +1 @@
1
- import{wt as e,x as t}from"./handlers-CfWqy2KP.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-Tj_635zr.mjs";import{r as f,t as oe}from"./namespace-J87EeVTm.mjs";import{_ as se,a as ce,c as le,o as ue,s as de}from"./packages-vF9F4M41.mjs";import{n as fe}from"./package-BCKYMTYG.mjs";import"./services/adapter-subsystem/index.mjs";import{i as pe,s as me}from"./model-registry-CeDu27XL.mjs";import{d as he,f as ge,n as _e}from"./package-BwlW7N32.mjs";import{t as ve}from"./tool-approval-service-BCN4W8eS.mjs";import{t as ye}from"./tray-menu-service-BRrnoqaY.mjs";import{r as p,t as be}from"./handler-Cc1MhaR4.mjs";import{r as xe}from"./package-BSz4hbav.mjs";import{t as Se}from"./filesystem-service-CIaAqTRi.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{AdapterSubjects as Ee,ArtifactSubjects as g,CanonicalModelSubjects as De,DEFAULT_HARNESSES as Oe,HarnessDefinitionCreateSchema as ke,HarnessSubjects as _,JsonValueSchema as Ae,ReactionDescriptorSchema as je,ToolSubjects as v,TransitionRuleDefinitionSchema as Me,WorkflowBlocksSubjects as y,WorkflowSubjects as Ne,dep as b,extensionToken as x,validateToolAdapterIdentity as Pe,zodSchemaToJsonRecord as S}from"@makaio/framework/contracts";import{MakaioBus as C}from"@makaio/framework/bus";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(g.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=C){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:[b(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,`unknown-reaction`,`Reaction kind '${e}' is not registered`);let a=Ye(n.deadlineEpochMs),o=this.cancelledBeforeValidation(e,r,n,a);if(o)return o;let s=Xe(n.hostSignal,a),c=Ze(r,s.controller.signal,n);try{let n;try{n=await i.parameterSchema.safeParseAsync(t)}catch(t){return this.cancelledAfterValidation(e,r,c.correlationId,s,a)||this.failure(e,r,c.correlationId,`invalid-parameters`,`Parameter validation for Reaction '${e}' threw: ${h(t)}`,t)}return this.cancelledAfterValidation(e,r,c.correlationId,s,a)||(n.success?(await i.handler(n.data,c),{success:!0}):this.failure(e,r,c.correlationId,`invalid-parameters`,`Invalid parameters for Reaction '${e}': ${n.error.message}`))}catch(t){return this.logFailure(e,r,c.correlationId,`Reaction '${e}' handler threw`,t),{success:!1,error:{code:`handler-failed`,message:h(t)}}}finally{s.release()}}failure(e,t,n,r,i,a){return this.logFailure(e,t,n,i,a),{success:!1,error:{code:r,message:i}}}cancelledBeforeHandler(e,t,n,r){return this.failure(e,t,n,`cancelled`,`Reaction '${e}' cancelled before handler entry: ${h(r)}`,r)}cancelledBeforeValidation(e,t,n,r){if(n.hostSignal?.aborted)return this.failure(e,t,n.correlationId,`cancelled`,`Reaction '${e}' host signal already aborted`);if(r!==void 0&&r<=Date.now())return this.failure(e,t,n.correlationId,`cancelled`,`Reaction '${e}' deadline already passed`)}cancelledAfterValidation(e,t,n,r,i){return i!==void 0&&H(r.controller,i),r.controller.signal.aborted?this.cancelledBeforeHandler(e,t,n,r.controller.signal.reason):void 0}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=x(`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??C,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(v.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(v.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 ${v.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(v.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.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 ${v.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(v.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(v.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(v.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(v.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(v.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(v.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(y.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:S(r.configSchema),inputSchema:S(r.inputSchema),outputSchema:S(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(y.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(g.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(g.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(g.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(g.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(g.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=x(`session-storage`).name;var St=class extends w{constructor(e=C){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:[b(xt),b(`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=C){super(e)}async onInit(){await Tt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(_.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(_.list,async e=>{let{harnesses:t}=await this.bus.request(p.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(_.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(_.delete,async e=>{let{deleted:t}=await this.bus.request(p.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(_.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(_.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(_.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=x(`session-storage`),X=x(`session-bridge`),Z=x(`session`),Ot=x(`session-orchestrator`),kt=x(`observed-session-ingestion`),Q=x(`tool-registry`),At=x(`tool-approval`),jt=x(`tray-menu`),Mt=x(`model-registry`),Nt=x(`workflow-block-registry`),Pt=x(`transition-pipeline`),Ft=x(`filesystem`),It=x(`git`),Lt=x(`artifact-lifecycle-hook-registry`),Rt=x(`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:[b(Y.name)],critical:!0,create:e=>new i(e.bus)},Ht={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[b(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:[b(Z.name),b(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:[b(X.name)],critical:!1,create:e=>new d(e.bus)};function Gt(e={}){return{name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:t=>new G({...e,bus:t.bus})}}const Kt=Gt();function qt(e={}){return{name:At.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[b(Q.name)],critical:!0,create:t=>new ve(t.bus,e)}}const Jt=qt(),Yt={name:jt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new ye(e.bus)},Xt={name:Nt.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new nt(e.bus)},Zt={name:Pt.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new ut(e.bus)},Qt={name:Ft.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new Se(e.bus,e.machineId)},$t={name:It.name,displayName:`Git`,version:`0.1.0`,dependencies:[b(Ft.name)],critical:!0,create:e=>new Ue(e.bus)};function en(e){return{name:Mt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new pe({bus:t.bus,fetcher:e})}}const tn=rn(Kt,Jt);function nn(e={}){return e.fileAccessRuleProvider?rn(Gt(e),qt(e)):tn}function rn(e,t){return[se,zt,Bt,le,de,ce,ue,$,Vt,Ct,Ht,Ut,Wt,xe,e,t,Yt,fe,Dt,B,wt,Xt,W,ge,he,_e,Zt,$t,Qt]}export{K as A,I as B,Kt as C,ut as D,Xt as E,V as F,j as H,B as I,z as L,G as M,U as N,lt as O,W as P,R,Jt as S,Yt as T,P as V,tn as _,Ot as a,Ht as b,At as c,jt as d,Nt as f,Bt as g,en as h,X as i,nt as j,ct as k,Q as l,nn as m,Rt as n,Y as o,zt as p,Mt as r,Z as s,Lt as t,Pt as u,Vt as v,Zt as w,$ as x,Ut as y,L as z};
1
+ import{wt as e,x as t}from"./handlers-DmEPQqPX.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-BjV4HPCQ.mjs";import{r as f,t as oe}from"./namespace-DaFbUCqO.mjs";import{_ as se,a as ce,c as le,o as ue,s as de}from"./packages-CZ2x-Ver.mjs";import{n as fe}from"./package-B6mFblgK.mjs";import"./services/adapter-subsystem/index.mjs";import{i as pe,s as me}from"./model-registry-BJbUh4uw.mjs";import{d as he,f as ge,n as _e}from"./package-Dke3gaTJ.mjs";import{t as ve}from"./tool-approval-service-Bc0IC6Hj.mjs";import{t as ye}from"./tray-menu-service-DGhHTNyy.mjs";import{r as p,t as be}from"./handler-BY2DDdyI.mjs";import{r as xe}from"./package-C_PVR-xw.mjs";import{t as Se}from"./filesystem-service-yIGQgXXP.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{AdapterSubjects as Ee,ArtifactSubjects as g,CanonicalModelSubjects as De,DEFAULT_HARNESSES as Oe,HarnessDefinitionCreateSchema as ke,HarnessSubjects as _,JsonValueSchema as Ae,ReactionDescriptorSchema as je,ToolSubjects as v,TransitionRuleDefinitionSchema as Me,WorkflowBlocksSubjects as y,WorkflowSubjects as Ne,dep as b,extensionToken as x,validateToolAdapterIdentity as Pe,zodSchemaToJsonRecord as S}from"@makaio/framework/contracts";import{MakaioBus as C}from"@makaio/framework/bus";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(g.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=C){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:[b(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,`unknown-reaction`,`Reaction kind '${e}' is not registered`);let a=Ye(n.deadlineEpochMs),o=this.cancelledBeforeValidation(e,r,n,a);if(o)return o;let s=Xe(n.hostSignal,a),c=Ze(r,s.controller.signal,n);try{let n;try{n=await i.parameterSchema.safeParseAsync(t)}catch(t){return this.cancelledAfterValidation(e,r,c.correlationId,s,a)||this.failure(e,r,c.correlationId,`invalid-parameters`,`Parameter validation for Reaction '${e}' threw: ${h(t)}`,t)}return this.cancelledAfterValidation(e,r,c.correlationId,s,a)||(n.success?(await i.handler(n.data,c),{success:!0}):this.failure(e,r,c.correlationId,`invalid-parameters`,`Invalid parameters for Reaction '${e}': ${n.error.message}`))}catch(t){return this.logFailure(e,r,c.correlationId,`Reaction '${e}' handler threw`,t),{success:!1,error:{code:`handler-failed`,message:h(t)}}}finally{s.release()}}failure(e,t,n,r,i,a){return this.logFailure(e,t,n,i,a),{success:!1,error:{code:r,message:i}}}cancelledBeforeHandler(e,t,n,r){return this.failure(e,t,n,`cancelled`,`Reaction '${e}' cancelled before handler entry: ${h(r)}`,r)}cancelledBeforeValidation(e,t,n,r){if(n.hostSignal?.aborted)return this.failure(e,t,n.correlationId,`cancelled`,`Reaction '${e}' host signal already aborted`);if(r!==void 0&&r<=Date.now())return this.failure(e,t,n.correlationId,`cancelled`,`Reaction '${e}' deadline already passed`)}cancelledAfterValidation(e,t,n,r,i){return i!==void 0&&H(r.controller,i),r.controller.signal.aborted?this.cancelledBeforeHandler(e,t,n,r.controller.signal.reason):void 0}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=x(`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??C,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(v.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(v.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 ${v.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(v.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.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 ${v.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(v.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(v.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(v.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(v.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(v.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(v.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(y.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:S(r.configSchema),inputSchema:S(r.inputSchema),outputSchema:S(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(y.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(g.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(g.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(g.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(g.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(g.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=x(`session-storage`).name;var St=class extends w{constructor(e=C){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:[b(xt),b(`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=C){super(e)}async onInit(){await Tt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(_.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(_.list,async e=>{let{harnesses:t}=await this.bus.request(p.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(_.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(_.delete,async e=>{let{deleted:t}=await this.bus.request(p.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(_.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(_.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(_.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=x(`session-storage`),X=x(`session-bridge`),Z=x(`session`),Ot=x(`session-orchestrator`),kt=x(`observed-session-ingestion`),Q=x(`tool-registry`),At=x(`tool-approval`),jt=x(`tray-menu`),Mt=x(`model-registry`),Nt=x(`workflow-block-registry`),Pt=x(`transition-pipeline`),Ft=x(`filesystem`),It=x(`git`),Lt=x(`artifact-lifecycle-hook-registry`),Rt=x(`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:[b(Y.name)],critical:!0,create:e=>new i(e.bus)},Ht={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[b(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:[b(Z.name),b(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:[b(X.name)],critical:!1,create:e=>new d(e.bus)};function Gt(e={}){return{name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:t=>new G({...e,bus:t.bus})}}const Kt=Gt();function qt(e={}){return{name:At.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[b(Q.name)],critical:!0,create:t=>new ve(t.bus,e)}}const Jt=qt(),Yt={name:jt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new ye(e.bus)},Xt={name:Nt.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new nt(e.bus)},Zt={name:Pt.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new ut(e.bus)},Qt={name:Ft.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new Se(e.bus,e.machineId)},$t={name:It.name,displayName:`Git`,version:`0.1.0`,dependencies:[b(Ft.name)],critical:!0,create:e=>new Ue(e.bus)};function en(e){return{name:Mt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new pe({bus:t.bus,fetcher:e})}}const tn=rn(Kt,Jt);function nn(e={}){return e.fileAccessRuleProvider?rn(Gt(e),qt(e)):tn}function rn(e,t){return[se,zt,Bt,le,de,ce,ue,$,Vt,Ct,Ht,Ut,Wt,xe,e,t,Yt,fe,Dt,B,wt,Xt,W,ge,he,_e,Zt,$t,Qt]}export{K as A,I as B,Kt as C,ut as D,Xt as E,V as F,j as H,B as I,z as L,G as M,U as N,lt as O,W as P,R,Jt as S,Yt as T,P as V,tn as _,Ot as a,Ht as b,At as c,jt as d,Nt as f,Bt as g,en as h,X as i,nt as j,ct as k,Q as l,nn as m,Rt as n,Y as o,zt as p,Mt as r,Z as s,Lt as t,Pt as u,Vt as v,Zt as w,$ as x,Ut as y,L as z};