@makaio/framework 1.0.0-dev-1785409369816 → 1.0.0-dev-1786014320559

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 (508) hide show
  1. package/dist/.makaio-build.json +4 -3
  2. package/dist/{account-identity-DFx8pwKL.mjs → account-identity-DGpXd8h_.mjs} +1 -1
  3. package/dist/adapter-BkdJaOOG.mjs +1 -0
  4. package/dist/adapter-subsystem/index.d.mts +138 -6
  5. package/dist/adapter-subsystem/index.mjs +1 -1
  6. package/dist/adapters/acp-client/index.d.mts +105 -7
  7. package/dist/adapters/acp-client/index.mjs +2 -2
  8. package/dist/adapters/config/index.d.mts +1 -1
  9. package/dist/adapters/config/index.mjs +1 -1
  10. package/dist/adapters/index.d.mts +362 -801
  11. package/dist/adapters/index.mjs +6 -6
  12. package/dist/adapters/node.d.mts +1 -1
  13. package/dist/adapters/node.mjs +1 -1
  14. package/dist/adapters/stream-session/index.d.mts +28 -7
  15. package/dist/adapters/stream-session/index.mjs +1 -1
  16. package/dist/agent-namespace-D51PODFf.mjs +1 -0
  17. package/dist/{ajv-DD3SIL2i.mjs → ajv-L5fKxaia.mjs} +2 -2
  18. package/dist/artifact-k3veR4Yx.mjs +1 -0
  19. package/dist/attach-error-BSlc7JfL.mjs +1 -0
  20. package/dist/{auth-DGEdiHF6.mjs → auth-A1K_7q-8.mjs} +1 -1
  21. package/dist/authority-state-bootstrap-YwtEImIB.mjs +1 -0
  22. package/dist/automation-trigger-CuSdQwir.mjs +1 -0
  23. package/dist/await-trigger-ph1S0zVI.mjs +1 -0
  24. package/dist/bus/index.d.mts +19 -5
  25. package/dist/bus/index.mjs +1 -1
  26. package/dist/bus-BIj0_aG6.mjs +1 -0
  27. package/dist/bus-CqgrphNE.mjs +2 -0
  28. package/dist/{canonical-model-BAytQ4NV.mjs → canonical-model-DJASlL4m.mjs} +1 -1
  29. package/dist/{capabilities-BQEp34ir.mjs → capabilities-Bqckjh7G.mjs} +1 -1
  30. package/dist/{client-DbS847wW.mjs → client-BL5__WT0.mjs} +1 -1
  31. package/dist/clients/index.d.mts +2 -2
  32. package/dist/clients/index.mjs +1 -1
  33. package/dist/clients/managed-install.d.mts +1 -1
  34. package/dist/clients/managed-install.mjs +1 -1
  35. package/dist/{compression-74fFeBha.mjs → compression-BbttSqm8.mjs} +1 -1
  36. package/dist/{config-namespace-TVX-hG4I.mjs → config-namespace-CyzeLWSg.mjs} +1 -1
  37. package/dist/{context-resolution-DdyhpH4L.d.mts → context-resolution-CW0ya4QO.d.mts} +13 -13
  38. package/dist/contracts/adapter/index.d.mts +3 -3
  39. package/dist/contracts/adapter/index.mjs +1 -1
  40. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  41. package/dist/contracts/artifact/index.d.mts +3 -3
  42. package/dist/contracts/artifact/index.mjs +1 -1
  43. package/dist/contracts/auth/index.d.mts +2 -2
  44. package/dist/contracts/auth/index.mjs +1 -1
  45. package/dist/contracts/automation-trigger/index.d.mts +4 -0
  46. package/dist/contracts/automation-trigger/index.mjs +1 -0
  47. package/dist/contracts/canonical-model/index.d.mts +1 -1
  48. package/dist/contracts/canonical-model/index.mjs +1 -1
  49. package/dist/contracts/capabilities/index.d.mts +1 -1
  50. package/dist/contracts/capabilities/index.mjs +1 -1
  51. package/dist/contracts/client/index.d.mts +2 -2
  52. package/dist/contracts/client/index.mjs +1 -1
  53. package/dist/contracts/common/index.d.mts +1 -1
  54. package/dist/contracts/config/index.d.mts +1 -1
  55. package/dist/contracts/config/index.mjs +1 -1
  56. package/dist/contracts/extension/index.d.mts +6 -5
  57. package/dist/contracts/extension/index.mjs +1 -1
  58. package/dist/contracts/facet/index.d.mts +1 -1
  59. package/dist/contracts/facet/index.mjs +1 -1
  60. package/dist/contracts/harness/index.d.mts +1 -1
  61. package/dist/contracts/harness/index.mjs +1 -1
  62. package/dist/contracts/host/index.d.mts +1 -1
  63. package/dist/contracts/host/index.mjs +1 -1
  64. package/dist/contracts/index.d.mts +181 -120
  65. package/dist/contracts/index.mjs +1 -1
  66. package/dist/contracts/materialization/index.d.mts +3 -3
  67. package/dist/contracts/materialization/index.mjs +1 -1
  68. package/dist/contracts/model-registry/index.d.mts +1 -1
  69. package/dist/contracts/model-registry/index.mjs +1 -1
  70. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  71. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  72. package/dist/contracts/platform/index.d.mts +1 -1
  73. package/dist/contracts/platform/index.mjs +1 -1
  74. package/dist/contracts/provider/index.d.mts +2 -2
  75. package/dist/contracts/provider/index.mjs +1 -1
  76. package/dist/contracts/reaction/index.d.mts +2 -0
  77. package/dist/contracts/reaction/index.mjs +1 -0
  78. package/dist/contracts/session/index.d.mts +3 -3
  79. package/dist/contracts/session/index.mjs +1 -1
  80. package/dist/contracts/shared/index.d.mts +3 -3
  81. package/dist/contracts/shared/index.mjs +1 -1
  82. package/dist/contracts/skill/index.d.mts +1 -1
  83. package/dist/contracts/skill/index.mjs +1 -1
  84. package/dist/contracts/telemetry/index.d.mts +1 -1
  85. package/dist/contracts/telemetry/index.mjs +1 -1
  86. package/dist/contracts/timeout/index.d.mts +1 -1
  87. package/dist/contracts/timeout/index.mjs +1 -1
  88. package/dist/contracts/toast/index.mjs +1 -1
  89. package/dist/contracts/variant/index.d.mts +1 -1
  90. package/dist/contracts/variant/index.mjs +1 -1
  91. package/dist/contracts/worker-node/index.d.mts +1 -1
  92. package/dist/contracts/worker-node/index.mjs +1 -1
  93. package/dist/contracts/workflow/index.d.mts +3 -3
  94. package/dist/contracts/workflow/index.mjs +1 -1
  95. package/dist/contribution-BH-wKsWI.d.mts +35 -0
  96. package/dist/core/index.d.mts +60 -1
  97. package/dist/core/index.mjs +1 -1
  98. package/dist/definition-BYgHlmMw.d.mts +375 -0
  99. package/dist/{definition-CJfiv8xm.mjs → definition-CDg-Jq1T.mjs} +1 -1
  100. package/dist/{detached-extension-handle-Ddfquy5_.mjs → detached-extension-handle-DKd17UB6.mjs} +1 -1
  101. package/dist/drizzle/0031_adapter_session_currency.sql +66 -0
  102. package/dist/drizzle/0032_native_session_ownership.sql +77 -0
  103. package/dist/drizzle/0033_m_msf3hu2s.sql +1 -0
  104. package/dist/drizzle/meta/_journal.json +21 -0
  105. package/dist/{execution-attempt-repository-DWXKY41_.d.mts → execution-attempt-repository-DFyAnchJ.d.mts} +1 -1
  106. package/dist/{execution-target-Cf645pDj.mjs → execution-target-ByNwZh5-.mjs} +1 -1
  107. package/dist/extension-DMdmj9gi.mjs +1 -0
  108. package/dist/extension-DUmibvMk.mjs +1 -0
  109. package/dist/extension-context-CqfddWXs.d.mts +295 -0
  110. package/dist/{extension-discovery-CQRdbVQ6.d.mts → extension-discovery-Fhps4icD.d.mts} +2 -0
  111. package/dist/{extension-namespace-Yu41YepM.mjs → extension-namespace-B554RmCp.mjs} +1 -1
  112. package/dist/extension-package-provenance-Dh_-Z-tE.mjs +1 -0
  113. package/dist/{filesystem-service-DlP2HfDg.mjs → filesystem-service-FAtd9gWH.mjs} +1 -1
  114. package/dist/framework-packages-D_2hBZ-p.mjs +1 -0
  115. package/dist/git/index.mjs +1 -1
  116. package/dist/{globby-1yCVCk8s.mjs → globby-BBLuT_vy.mjs} +1 -1
  117. package/dist/handlers-2yd00VEq.mjs +57 -0
  118. package/dist/{harness-DpwsFsE7.mjs → harness-KxbWGL4I.mjs} +1 -1
  119. package/dist/{hook-responses-Dh1PWXqJ.d.mts → hook-responses-CQZIv3L3.d.mts} +2 -293
  120. package/dist/{index-DCZ8BX9S.d.mts → index-3eUIRy7T.d.mts} +304 -74
  121. package/dist/{index-brqfk9JQ.d.mts → index-B4xdTT3c.d.mts} +6 -6
  122. package/dist/{index-4VfqCjl2.d.mts → index-B5op6AsV.d.mts} +49 -39
  123. package/dist/{index-CMgLxw14.d.mts → index-B6GOuxVy2.d.mts} +18 -18
  124. package/dist/index-BFhJe-Sb.d.mts +302 -0
  125. package/dist/{index-EjsSBQXy2.d.mts → index-BSQ30wYP.d.mts} +1 -1
  126. package/dist/{index-DlsHL9Jg.d.mts → index-BiAYXjgM.d.mts} +25 -25
  127. package/dist/{index-B9UW_vPM.d.mts → index-ByZi9bml.d.mts} +4967 -1509
  128. package/dist/{index-BVlXneHH.d.mts → index-C7HcDpHE.d.mts} +14 -10
  129. package/dist/{index-BskPjMet.d.mts → index-CB4aIUoF.d.mts} +16 -16
  130. package/dist/{index-cqLS1eFV.d.mts → index-CDusRXio.d.mts} +70 -71
  131. package/dist/{index-DnG-QFpG.d.mts → index-CSN_0sCo.d.mts} +18 -1
  132. package/dist/{index-BAXkicoQ.d.mts → index-C__EQfKa.d.mts} +1 -1
  133. package/dist/{index-CLvQsL6s2.d.mts → index-CqQYgsbB.d.mts} +1660 -218
  134. package/dist/{index-BNMnIe-j.d.mts → index-CwDiyJkJ.d.mts} +276 -705
  135. package/dist/{index-GHASUiem.d.mts → index-DBadVauL.d.mts} +1 -1
  136. package/dist/{index-gUhidukN.d.mts → index-DI7-tIL3.d.mts} +299 -2
  137. package/dist/index-DP3o_13U.d.mts +165 -0
  138. package/dist/{index-DSBT83c0.d.mts → index-DcYAAJ0V.d.mts} +24 -3
  139. package/dist/{index-D5Nb7IEP.d.mts → index-Dch_AxUg.d.mts} +77 -39
  140. package/dist/{index-D_ODXsBv.d.mts → index-DcqSUsX6.d.mts} +35 -79
  141. package/dist/{index-B0Kf_OWi.d.mts → index-DgOfgjx3.d.mts} +1 -1
  142. package/dist/{index-Ds5_rDEJ.d.mts → index-DwLRZscE.d.mts} +1 -12
  143. package/dist/{index-DkiTJM5p.d.mts → index-DxYDRoDE2.d.mts} +17 -3
  144. package/dist/{index-CRvpVIqA.d.mts → index-OsbtyMgx2.d.mts} +10 -1
  145. package/dist/{index-BaZeoZoS.d.mts → index-bIe_57cL.d.mts} +1 -1
  146. package/dist/{json-value-Brslhqbm.d.mts → json-value-C1RGgS0a.d.mts} +16 -1
  147. package/dist/{json-value-DmU8ibo_.mjs → json-value-D57aJhVn.mjs} +1 -1
  148. package/dist/kernel/cli/index.d.mts +2 -2
  149. package/dist/kernel/cli/index.mjs +1 -1
  150. package/dist/kernel/cli/register.d.mts +1 -1
  151. package/dist/kernel/cli/register.mjs +1 -1
  152. package/dist/kernel/cli/schemas.mjs +1 -1
  153. package/dist/kernel/extension/index.d.mts +1 -1
  154. package/dist/kernel/extension/index.mjs +1 -1
  155. package/dist/kernel/index.d.mts +9 -9
  156. package/dist/kernel/index.mjs +1 -1
  157. package/dist/kernel/namespace/index.d.mts +2 -2
  158. package/dist/kernel/namespace/index.mjs +1 -1
  159. package/dist/kernel/observability/index.d.mts +1 -1
  160. package/dist/kernel/observability/index.mjs +1 -1
  161. package/dist/kernel/providers/index.d.mts +1 -1
  162. package/dist/kernel/providers/index.mjs +1 -1
  163. package/dist/kernel/window/index.d.mts +1 -1
  164. package/dist/kernel/window/index.mjs +1 -1
  165. package/dist/{lib-C7-s68uf.mjs → lib-B_rJ6r0T.mjs} +1 -1
  166. package/dist/{lib-DErgth_E.mjs → lib-CnOAtohU.mjs} +1 -1
  167. package/dist/load-extensions-CW9uzNR5.mjs +1 -0
  168. package/dist/{load-extensions-BxsDB87B.d.mts → load-extensions-DUpaMQ7G.d.mts} +17 -13
  169. package/dist/{materialization-Jd198K3y.mjs → materialization-CcpCDhXh.mjs} +1 -1
  170. package/dist/mcp-http-server/index.mjs +1 -1
  171. package/dist/model-ZH3L1dPW.mjs +1 -0
  172. package/dist/{namespace-BqxtpNAn.mjs → namespace-B7bntOB8.mjs} +1 -1
  173. package/dist/{namespace-CWUDFGOy.mjs → namespace-BFqkUTJp.mjs} +1 -1
  174. package/dist/{namespace-CjjFvrIA2.d.mts → namespace-CAy4P5mW.d.mts} +29 -29
  175. package/dist/{namespace-B8uKAzWJ.mjs → namespace-CFjdyNXG.mjs} +1 -1
  176. package/dist/{namespace-DV-Hr9sZ.d.mts → namespace-ChnRTUG4.d.mts} +11 -1
  177. package/dist/namespace-CxrOLeeP.mjs +1 -0
  178. package/dist/{namespace-g_mbIZq_.d.mts → namespace-DSlfFhB1.d.mts} +410 -26
  179. package/dist/{namespace-CupOzbRv.d.mts → namespace-DwZwGXgF.d.mts} +24 -20
  180. package/dist/{namespace-TseEI3Pu.d.mts → namespace-Rge9mMI-.d.mts} +36 -28
  181. package/dist/{native-session-supervisor-DRx0MX-d.mjs → native-session-supervisor-fZYPUk0-.mjs} +1 -1
  182. package/dist/node/bus-server/index.d.mts +1 -1
  183. package/dist/node/bus-server/index.mjs +1 -1
  184. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  185. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  186. package/dist/{orchestrator-shared-BHCv-l2O.d.mts → orchestrator-shared-B-KRW1Z0.d.mts} +1 -0
  187. package/dist/orchestrator-shared-CTCZc6Vl.mjs +1 -0
  188. package/dist/ownership-memory-handler-Bblp93YC.mjs +1 -0
  189. package/dist/{package-DWMxGfzK.d.mts → package-Bf3hyuzs.d.mts} +234 -84
  190. package/dist/package-CBdvjyyZ.mjs +1 -0
  191. package/dist/package-CddkNbZI.mjs +1 -0
  192. package/dist/package-ypz4rKvn.mjs +7 -0
  193. package/dist/package.json +1 -1
  194. package/dist/{profile-BTAI31Nt.mjs → profile-BtznZlq3.mjs} +1 -1
  195. package/dist/{provider-context-Dq53Cgzz.mjs → provider-context-BrLZYnDW.mjs} +1 -1
  196. package/dist/{provider-context-PZIQWcqQ.mjs → provider-context-Dh-VOOYF.mjs} +1 -1
  197. package/dist/reaction-BS0k4eNN.mjs +1 -0
  198. package/dist/{registry-wfF2uTty.mjs → registry-BO_bOoky.mjs} +2 -2
  199. package/dist/{resolved-DZgqql2Z.mjs → resolved-DMByz1_2.mjs} +1 -1
  200. package/dist/rules/index.d.mts +1 -1
  201. package/dist/rules/index.mjs +1 -1
  202. package/dist/rules/schemas.d.mts +1 -1
  203. package/dist/runtime-bun/index.mjs +1 -1
  204. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  205. package/dist/runtime-node/extension-validation.d.mts +1 -1
  206. package/dist/runtime-node/extension-validation.mjs +1 -1
  207. package/dist/runtime-node/index.d.mts +4 -4
  208. package/dist/runtime-node/index.mjs +24 -24
  209. package/dist/runtime-node/makaio-config.d.mts +1 -1
  210. package/dist/runtime-node/makaio-config.mjs +1 -1
  211. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  212. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  213. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  214. package/dist/{schema-Dd-e89MO.mjs → schema-DBG7Jq5_.mjs} +1 -1
  215. package/dist/{schema-DKUb4rkr.d.mts → schema-DKTzriEY.d.mts} +519 -9
  216. package/dist/{schemas-DrVg4aQQ.d.mts → schemas-9qeeHGBf.d.mts} +8 -8
  217. package/dist/{schemas-CRB2O5zo.mjs → schemas-BqD8LlQw.mjs} +1 -1
  218. package/dist/{schemas-DaHQzpgm.mjs → schemas-CsjN7cmM.mjs} +1 -1
  219. package/dist/schemas-DSkBOdx_.mjs +1 -0
  220. package/dist/schemas-DplrlAyR.mjs +1 -0
  221. package/dist/{schemas-DnYiAvfz.d.mts → schemas-VbB1FTxx.d.mts} +24 -20
  222. package/dist/scoped-bus-ClwTWqX8.mjs +1 -0
  223. package/dist/{selection-BNwTKEVT.mjs → selection-7Ku8DBnh.mjs} +1 -1
  224. package/dist/services/adapter-runtime/index.d.mts +3 -3
  225. package/dist/services/adapter-runtime/index.mjs +1 -1
  226. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  227. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  228. package/dist/services/adapter-subsystem/index.d.mts +4 -4
  229. package/dist/services/adapter-subsystem/index.mjs +1 -1
  230. package/dist/services/adapter-subsystem/namespace.d.mts +2 -2
  231. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  232. package/dist/services/agent-runtime/index.d.mts +2 -2
  233. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  234. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  235. package/dist/services/automation-trigger/index.d.mts +943 -0
  236. package/dist/services/automation-trigger/index.mjs +1 -0
  237. package/dist/services/capability/index.d.mts +1 -1
  238. package/dist/services/capability/index.mjs +1 -1
  239. package/dist/services/codebase/index.d.mts +2 -2
  240. package/dist/services/codebase/namespace.d.mts +1 -1
  241. package/dist/services/codebase/schemas.d.mts +1 -1
  242. package/dist/services/compression/index.d.mts +2 -2
  243. package/dist/services/compression/namespace.d.mts +1 -1
  244. package/dist/services/compression/schemas.d.mts +1 -1
  245. package/dist/services/context-rules/index.d.mts +4 -4
  246. package/dist/services/context-rules/index.mjs +1 -1
  247. package/dist/services/execution-target/index.d.mts +3 -3
  248. package/dist/services/execution-target/index.mjs +1 -1
  249. package/dist/services/execution-target/namespace.d.mts +1 -1
  250. package/dist/services/execution-target/namespace.mjs +1 -1
  251. package/dist/services/execution-target/schemas.d.mts +1 -1
  252. package/dist/services/execution-target/schemas.mjs +1 -1
  253. package/dist/services/filesystem/index.d.mts +1 -1
  254. package/dist/services/filesystem/index.mjs +1 -1
  255. package/dist/services/filesystem/namespace.d.mts +6 -6
  256. package/dist/services/filesystem/schemas.d.mts +3 -3
  257. package/dist/services/git/namespace.mjs +1 -1
  258. package/dist/services/git/schemas.mjs +1 -1
  259. package/dist/services/harness/index.mjs +1 -1
  260. package/dist/services/index.d.mts +459 -93
  261. package/dist/services/index.mjs +1 -1
  262. package/dist/services/log-import/browser.d.mts +2 -2
  263. package/dist/services/log-import/index.d.mts +3 -3
  264. package/dist/services/log-import/log-import.d.mts +1 -1
  265. package/dist/services/log-import/log-import.mjs +1 -1
  266. package/dist/services/log-import/namespace.mjs +1 -1
  267. package/dist/services/log-import/schemas.mjs +1 -1
  268. package/dist/services/materialization/index.d.mts +1 -1
  269. package/dist/services/materialization/index.mjs +1 -1
  270. package/dist/services/model-registry/index.d.mts +1 -1
  271. package/dist/services/model-registry/index.mjs +1 -1
  272. package/dist/services/preferences/index.d.mts +2 -2
  273. package/dist/services/preferences/schemas.d.mts +1 -1
  274. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  275. package/dist/services/provider-context/index.d.mts +1 -1
  276. package/dist/services/provider-context/index.mjs +1 -1
  277. package/dist/services/provider-runtime/index.mjs +1 -1
  278. package/dist/services/session/handlers/index.d.mts +2 -2
  279. package/dist/services/session/handlers/index.mjs +1 -1
  280. package/dist/services/session/index.d.mts +10 -10
  281. package/dist/services/session/index.mjs +1 -1
  282. package/dist/services/session/messages/namespace.d.mts +1 -1
  283. package/dist/services/session/messages/namespace.mjs +1 -1
  284. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  285. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  286. package/dist/services/session/session-events/namespace.d.mts +1 -1
  287. package/dist/services/session/session-events/namespace.mjs +1 -1
  288. package/dist/services/session/storage/namespace.d.mts +1 -1
  289. package/dist/services/session/storage/schema.d.mts +2 -2
  290. package/dist/services/session/storage/schema.mjs +1 -1
  291. package/dist/services/session/testing/index.d.mts +12 -4
  292. package/dist/services/session/testing/index.mjs +36 -4
  293. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  294. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  295. package/dist/services/session/turns/namespace.d.mts +1 -1
  296. package/dist/services/session/turns/namespace.mjs +1 -1
  297. package/dist/services/session-editor/index.d.mts +1 -1
  298. package/dist/services/session-editor/index.mjs +1 -1
  299. package/dist/services/settings/index.d.mts +3 -3
  300. package/dist/services/settings/index.mjs +1 -1
  301. package/dist/services/settings/namespace.d.mts +8 -8
  302. package/dist/services/settings/namespace.mjs +1 -1
  303. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  304. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  305. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  306. package/dist/services/settings/storage/index.d.mts +3 -3
  307. package/dist/services/settings/storage/index.mjs +1 -1
  308. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  309. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  310. package/dist/services/subagent/index.d.mts +1 -1
  311. package/dist/services/subagent/index.mjs +1 -1
  312. package/dist/services/subagent-template/index.d.mts +2 -2
  313. package/dist/services/subagent-template/namespace.d.mts +1 -1
  314. package/dist/services/subagent-template/schemas.d.mts +1 -1
  315. package/dist/services/tool-approval/index.d.mts +1 -1
  316. package/dist/services/tool-approval/index.mjs +1 -1
  317. package/dist/services/tools/index.d.mts +1 -1
  318. package/dist/services/tools/index.mjs +1 -1
  319. package/dist/services/tray-menu/index.d.mts +3 -3
  320. package/dist/services/tray-menu/index.mjs +1 -1
  321. package/dist/services/tray-menu/namespace.d.mts +1 -1
  322. package/dist/services/tray-menu/schemas.d.mts +1 -1
  323. package/dist/services/turn/index.d.mts +1 -1
  324. package/dist/services/turn/namespace.d.mts +1 -1
  325. package/dist/services/workflow-transitions/index.d.mts +1 -1
  326. package/dist/services/workflow-transitions/index.mjs +1 -1
  327. package/dist/session-BMy2kRpX.mjs +90 -0
  328. package/dist/session-Cipx34j6.mjs +1 -0
  329. package/dist/{session-lineage-B_JW5LpF.d.mts → session-lineage-B_PVa1XN.d.mts} +1 -1
  330. package/dist/shared-BFVuCDPx.mjs +1 -0
  331. package/dist/{skill-BR6rkfLe.mjs → skill-C1D51nhh.mjs} +1 -1
  332. package/dist/{src-DD0v-nIj.mjs → src-xbmzokNe.mjs} +1 -1
  333. package/dist/storage/drizzle/client.d.mts +1 -1
  334. package/dist/storage/drizzle/client.mjs +1 -1
  335. package/dist/storage/drizzle/index.d.mts +42 -2
  336. package/dist/storage/drizzle/index.mjs +1 -1
  337. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  338. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  339. package/dist/storage/handlers/index.d.mts +1 -1
  340. package/dist/storage/handlers/index.mjs +1 -1
  341. package/dist/tool-approval-service-BVgN9Q1r.mjs +1 -0
  342. package/dist/{tools-PdG9fO1M.mjs → tools-DxwHox1a.mjs} +1 -1
  343. package/dist/{transition-Du3MQzJV.d.mts → transition-BF1nevaC.d.mts} +7 -34
  344. package/dist/{types-DMLDHFR9.d.mts → types-BNjPhj_a.d.mts} +1 -1
  345. package/dist/{types-Dzrwa1GY.d.mts → types-CijlWGwb.d.mts} +2036 -618
  346. package/dist/types-ClpEaoAm.d.mts +2917 -0
  347. package/dist/{types-D7_kevBK.d.mts → types-xCdGghb2.d.mts} +1 -1
  348. package/dist/ui-hooks/index.d.mts +29 -2
  349. package/dist/ui-hooks/index.mjs +1 -1
  350. package/dist/ui-kernel/index.d.mts +2 -2
  351. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  352. package/dist/ui-views/index.d.mts +1 -1
  353. package/dist/utils/index.d.mts +77 -1
  354. package/dist/utils/index.mjs +2 -2
  355. package/dist/{version-CoCeMxDT.mjs → version-BfNnVAGr.mjs} +1 -1
  356. package/dist/{view-builder-DeFd-k7C.d.mts → view-builder-Bc9dx6jF.d.mts} +1 -1
  357. package/dist/{visibility-qhGWmpSJ.mjs → visibility-Dl1o2I01.mjs} +1 -1
  358. package/dist/{worker-node-Bl9_vqYi.mjs → worker-node-BDOYPEpi.mjs} +1 -1
  359. package/dist/{worker-node-DZTuT1DS.mjs → worker-node-DJ41Tr-F.mjs} +1 -1
  360. package/dist/workflow-Hzc5jlnV.mjs +1 -0
  361. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  362. package/dist/workflow-engine/index.d.mts +114 -395
  363. package/dist/workflow-engine/index.mjs +1 -1
  364. package/dist/workflow-engine/package.d.mts +1 -1
  365. package/dist/workflow-engine/package.mjs +1 -1
  366. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  367. package/dist/workflow-engine/testing/index.d.mts +2 -2
  368. package/dist/workflow-engine/testing/index.mjs +1 -1
  369. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  370. package/dist/workflow-engine/testing/sqlite.mjs +27 -27
  371. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  372. package/dist/workflow-engine/workflow-trigger-binding-consumer.d.mts +46 -0
  373. package/dist/workflow-engine/workflow-trigger-binding-consumer.mjs +1 -0
  374. package/dist/{workflow-transitions-DSc45ixc.mjs → workflow-transitions-DM0fN_eP.mjs} +1 -1
  375. package/dist/workflow-worker-DARC7UZl.mjs +1 -0
  376. package/dist/zod-json-schema-BAGAFfCN.mjs +1 -0
  377. package/package.json +29 -1
  378. package/dist/adapter-D5c5LrPN.mjs +0 -1
  379. package/dist/artifact-DGiXqb11.mjs +0 -1
  380. package/dist/attach-error-C3tngg6J.mjs +0 -1
  381. package/dist/authority-state-bootstrap-GPL_tqaT.mjs +0 -1
  382. package/dist/await-trigger-I3lrepb8.mjs +0 -1
  383. package/dist/bus-B6SAjgOC.mjs +0 -2
  384. package/dist/bus-C2l3K74u.mjs +0 -1
  385. package/dist/extension-DCA4pYrY.mjs +0 -1
  386. package/dist/extension-hjOPs10e.mjs +0 -1
  387. package/dist/framework-packages-C3RWfJDk.mjs +0 -1
  388. package/dist/handlers-CfnLyLfE.mjs +0 -57
  389. package/dist/load-extensions-D0DfjYLC.mjs +0 -1
  390. package/dist/model-BGgVmRnN.mjs +0 -1
  391. package/dist/namespace-DJfUADSV.mjs +0 -1
  392. package/dist/orchestrator-shared-BxmHCPvx.mjs +0 -1
  393. package/dist/package-CNUPPcU1.mjs +0 -7
  394. package/dist/package-Dft_RItb.mjs +0 -1
  395. package/dist/schemas-Cm09dXL4.mjs +0 -1
  396. package/dist/scoped-bus-C9BdNwfM.mjs +0 -1
  397. package/dist/session-BOGCd18q.mjs +0 -1
  398. package/dist/session-BTFiDoGz.mjs +0 -76
  399. package/dist/shared-BQ0CHIVy.mjs +0 -1
  400. package/dist/tool-approval-service-kBA0fRzm.mjs +0 -1
  401. package/dist/types-CJ_QZ1yW.d.mts +0 -1487
  402. package/dist/workflow-BfDbgtIQ.mjs +0 -1
  403. package/dist/workflow-worker-BN9XPxQO.mjs +0 -1
  404. package/dist/{adapter-auth-runtime-DO-FVTXg.mjs → adapter-auth-runtime-D9Lnl7cc.mjs} +0 -0
  405. package/dist/{adapter-binding-DQchUtrK.d.mts → adapter-binding-B-FBoCys.d.mts} +0 -0
  406. package/dist/{attempt-record-codec-CqO1_XnE.mjs → attempt-record-codec-DaFLKR5C.mjs} +0 -0
  407. package/dist/{base-orchestrator-BilsQNW1.d.mts → base-orchestrator-D9u4NyiM.d.mts} +0 -0
  408. package/dist/{capability-service-BqiLlRGA.mjs → capability-service-CJHNkjvm.mjs} +0 -0
  409. package/dist/{client-B--e2qcU.d.mts → client-4ihewPUm.d.mts} +0 -0
  410. package/dist/{client-binary-version-verifier-taewmKTY.mjs → client-binary-version-verifier-DJajc_Ff.mjs} +0 -0
  411. package/dist/{client-binary-version-verifier-CgjM_vGF.d.mts → client-binary-version-verifier-jDDZ64Ah.d.mts} +0 -0
  412. package/dist/{clients-namespace-DfxjG2ZP.d.mts → clients-namespace-DFWuUawf.d.mts} +0 -0
  413. package/dist/{config-namespace-BCqvufbD.d.mts → config-namespace-D1kyZj0B.d.mts} +0 -0
  414. package/dist/{create-static-mount-bbQhTt6W.mjs → create-static-mount-9tnGpIeK.mjs} +0 -0
  415. package/dist/{cross-spawn-B57KZuns.mjs → cross-spawn-BIgueAqr.mjs} +0 -0
  416. package/dist/{cursor-storage-DIFK_9hg.mjs → cursor-storage-ROWfiTh1.mjs} +0 -0
  417. package/dist/{definition-gnKgXU91.d.mts → definition-DB-kKc0d.d.mts} +0 -0
  418. package/dist/{definitions-xrrY0wgz.mjs → definitions-CF6YmEhL.mjs} +0 -0
  419. package/dist/{descriptor-to-package-DvF08krT.mjs → descriptor-to-package-BecVCopf.mjs} +0 -0
  420. package/dist/{drizzle-z_0SiGY8.mjs → drizzle-CPv3vdTE.mjs} +0 -0
  421. package/dist/{esm-CltRnX8_.mjs → esm-CBFWM8u_.mjs} +0 -0
  422. package/dist/{event-CmVjR6Ib.mjs → event-DR8U9Efx.mjs} +0 -0
  423. package/dist/{facet-BCI00njh.mjs → facet-DVsW12iF.mjs} +0 -0
  424. package/dist/{filesystem-service-CQ9yVkSz.d.mts → filesystem-service-Cm2RHKBa.d.mts} +0 -0
  425. package/dist/{handler-Cbv9FqDO.mjs → handler-Bqlk-6BY.mjs} +0 -0
  426. package/dist/{host-Caq6ZfSJ.mjs → host-k5yoyKHg.mjs} +0 -0
  427. package/dist/{identity-D6guMtmi.mjs → identity-DC3Pk0ps.mjs} +0 -0
  428. package/dist/{index-dtsLKOID.d.mts → index-42UdYStR.d.mts} +0 -0
  429. package/dist/{index-DR40QWlw.d.mts → index-BJAB-BW_.d.mts} +0 -0
  430. package/dist/{index-Dm1nUxCF.d.mts → index-BJMezANn.d.mts} +0 -0
  431. package/dist/{index-CnMu8BQl.d.mts → index-BQprJNA_.d.mts} +0 -0
  432. package/dist/{index-Cv-o5Krs.d.mts → index-BRCrFirq.d.mts} +0 -0
  433. package/dist/{index-BVRQEpAg.d.mts → index-BRzHs7Bx.d.mts} +6 -6
  434. /package/dist/{index-DXN_L5D6.d.mts → index-BSbGB23v.d.mts} +0 -0
  435. /package/dist/{index-vA--0lOM.d.mts → index-BVcQcphK.d.mts} +0 -0
  436. /package/dist/{index-ye0oklfU.d.mts → index-BcvqDfcN.d.mts} +0 -0
  437. /package/dist/{index-CGZQVTid.d.mts → index-BeENojSx2.d.mts} +0 -0
  438. /package/dist/{index-DjgLchuQ.d.mts → index-Beo_Ik8-.d.mts} +0 -0
  439. /package/dist/{index-sS6KUlrx.d.mts → index-BgGe9WZz.d.mts} +0 -0
  440. /package/dist/{index-CWHfOz6d.d.mts → index-CK3f0bAL.d.mts} +0 -0
  441. /package/dist/{index-DZunhZec.d.mts → index-CQuRTeRa.d.mts} +0 -0
  442. /package/dist/{index-jTaAHsul.d.mts → index-CRmE88hi.d.mts} +0 -0
  443. /package/dist/{index-CjdRdsd0.d.mts → index-CvW9_SzR.d.mts} +0 -0
  444. /package/dist/{index-ByKi34v5.d.mts → index-CxSSdIZz.d.mts} +0 -0
  445. /package/dist/{index-vcSj12YQ.d.mts → index-E4SET1AA.d.mts} +0 -0
  446. /package/dist/{index-DN4NOCqN2.d.mts → index-Ol9RBB0W2.d.mts} +0 -0
  447. /package/dist/{index-BIdsFcQs2.d.mts → index-aoxdnhJ42.d.mts} +0 -0
  448. /package/dist/{index-SsBHjUqA.d.mts → index-nydhGvXa.d.mts} +0 -0
  449. /package/dist/{jsonl-transport-bQl3JwIu.mjs → jsonl-transport-Bp_6pB2a.mjs} +0 -0
  450. /package/dist/{lib-DOBXZmYX.mjs → lib-Bwdd2m81.mjs} +0 -0
  451. /package/dist/{model-registry-CmgcPDH3.mjs → model-registry-Y854mUml.mjs} +0 -0
  452. /package/dist/{model-registry-xyBKSye-.mjs → model-registry-yURX738J.mjs} +0 -0
  453. /package/dist/{modes-BheyN7SS.mjs → modes-DmUsjHdV.mjs} +0 -0
  454. /package/dist/{namespace-HO2J9sO8.mjs → namespace-B9FEGuEu.mjs} +0 -0
  455. /package/dist/{namespace-jDhZjw-i.d.mts → namespace-Bi3CmYQy.d.mts} +0 -0
  456. /package/dist/{namespace-GPA7zots.d.mts → namespace-BusZERU8.d.mts} +0 -0
  457. /package/dist/{namespace-BOkKoq34.d.mts → namespace-ByP1Iipi.d.mts} +0 -0
  458. /package/dist/{namespace-YytVKIgI.d.mts → namespace-C1D77w7U.d.mts} +0 -0
  459. /package/dist/{namespace-CErHuXtb.d.mts → namespace-C6CVEGH8.d.mts} +0 -0
  460. /package/dist/{namespace-C-9si-fV.mjs → namespace-CfIW0hpQ.mjs} +0 -0
  461. /package/dist/{namespace-YxU1xf-K.mjs → namespace-CkBbNFSU.mjs} +0 -0
  462. /package/dist/{namespace-DWCEo-9M.d.mts → namespace-DX1Ec15L.d.mts} +0 -0
  463. /package/dist/{namespace-CWGKCNZm.mjs → namespace-DbNWsPFY.mjs} +0 -0
  464. /package/dist/{namespace-Cv1RFP7n.d.mts → namespace-Dgg0uoe6.d.mts} +0 -0
  465. /package/dist/{namespace-tGRAod3o.d.mts → namespace-s2y_NFKf.d.mts} +0 -0
  466. /package/dist/{namespace-Blp4c8GK.d.mts → namespace-yREpGJgG.d.mts} +0 -0
  467. /package/dist/{out-CvjtANXN.mjs → out-DrhwCgqM.mjs} +0 -0
  468. /package/dist/{packages-DtEEP0Vt.mjs → packages-FBv3fAOR.mjs} +0 -0
  469. /package/dist/{packages-BZ6pzFIq.d.mts → packages-N3-2Kl-Y.d.mts} +0 -0
  470. /package/dist/{platform-Bv8llU9c.mjs → platform-BrsMv_S3.mjs} +0 -0
  471. /package/dist/{provider-operation-Cxoe2SUr.d.mts → provider-operation-DJ_TLZFf.d.mts} +0 -0
  472. /package/dist/{providers-Co5UszRH.mjs → providers-CCcn4Ndp.mjs} +0 -0
  473. /package/dist/{providers-namespace-DjFkmvBR.d.mts → providers-namespace-DeJBh6MP.d.mts} +0 -0
  474. /package/dist/{quick-lru-CrOpWwrf.mjs → quick-lru-uwB0hP-y.mjs} +0 -0
  475. /package/dist/{schema-introspection-DgWQCpwx.mjs → schema-introspection-C1wvklj9.mjs} +0 -0
  476. /package/dist/{schema-Db-y-09L.mjs → schema-jIapW8Kb.mjs} +0 -0
  477. /package/dist/{schemas-CR8hSqTy.d.mts → schemas-B7zo7Zcx.d.mts} +0 -0
  478. /package/dist/{schemas-CqRm0i9a.mjs → schemas-BNdiVBWh.mjs} +0 -0
  479. /package/dist/{schemas-B1NWNASS.d.mts → schemas-C-Bm6Oac.d.mts} +0 -0
  480. /package/dist/{schemas-BO7uOum6.d.mts → schemas-CD0wOQxx.d.mts} +0 -0
  481. /package/dist/{schemas-N6x2z7Lf.d.mts → schemas-CeUI2i5j.d.mts} +0 -0
  482. /package/dist/{schemas-CwbYk_kZ.d.mts → schemas-Cg-Kwp8c.d.mts} +0 -0
  483. /package/dist/{schemas-BtZqovRH.d.mts → schemas-Cv3rR9Sz.d.mts} +0 -0
  484. /package/dist/{schemas-tDf_WiC8.mjs → schemas-CvHFbzdy.mjs} +0 -0
  485. /package/dist/{schemas-BsVYZviy.d.mts → schemas-DZH9lpxs.d.mts} +0 -0
  486. /package/dist/{schemas-BGExwp3j.mjs → schemas-DgwEVUt-.mjs} +0 -0
  487. /package/dist/{schemas-Bfxskx_2.mjs → schemas-mLpOfMoN.mjs} +0 -0
  488. /package/dist/{schemas-CQyRBqD6.d.mts → schemas-qA279_j_.d.mts} +0 -0
  489. /package/dist/{schemas-miYxK_Z1.d.mts → schemas-sMoRnBdZ.d.mts} +0 -0
  490. /package/dist/{semver-DlM8znk4.mjs → semver-DTXuyLcK.mjs} +0 -0
  491. /package/dist/{server-lifecycle-Dsq56aqC.d.mts → server-lifecycle-C_8iKgat.d.mts} +0 -0
  492. /package/dist/{server-lifecycle-kmQ5PUDv.mjs → server-lifecycle-DKx_fWlq.mjs} +0 -0
  493. /package/dist/{shared-schemas-DXwyMCwZ.mjs → shared-schemas-aahW97QW.mjs} +0 -0
  494. /package/dist/{src-CCu8TwL6.mjs → src-DHqsl5Pg.mjs} +0 -0
  495. /package/dist/{storage-namespace-BSrv0vXR.mjs → storage-namespace-Dz2jsssp.mjs} +0 -0
  496. /package/dist/{storage-namespace-dfywhXR3.d.mts → storage-namespace-Tf3P5yJ5.d.mts} +0 -0
  497. /package/dist/{storage-namespace-definition-BvlX0QV_.d.mts → storage-namespace-definition-BsnYAPot.d.mts} +0 -0
  498. /package/dist/{storage-namespace-definition-CkMKt7-I.mjs → storage-namespace-definition-CDef0E20.mjs} +0 -0
  499. /package/dist/{supports-color-DUugCQsK.mjs → supports-color-i7OTnKcZ.mjs} +0 -0
  500. /package/dist/{telemetry-Pr3oP2rk.mjs → telemetry-BvCBUjFg.mjs} +0 -0
  501. /package/dist/{timeout-DWDhddRJ.mjs → timeout-B0nYjLc8.mjs} +0 -0
  502. /package/dist/{tray-menu-service-BBLa-Rcv.mjs → tray-menu-service-Deo6yyP8.mjs} +0 -0
  503. /package/dist/{types-BrcjaNPZ.d.mts → types-CNS55jvt.d.mts} +0 -0
  504. /package/dist/{types-b54n1o57.d.mts → types-Ce6LL25v.d.mts} +0 -0
  505. /package/dist/{ui-config-CyCdlns_.mjs → ui-config-BIyGzMNL.mjs} +0 -0
  506. /package/dist/{variant-krjlTdJt.mjs → variant-B4uWdxW7.mjs} +0 -0
  507. /package/dist/{window-registry-BDnZLPVx.d.mts → window-registry-BLtVx3Iw.d.mts} +0 -0
  508. /package/dist/{window-registry-I-imZHV_.mjs → window-registry-CoBJq3u4.mjs} +0 -0
@@ -0,0 +1,66 @@
1
+ -- Hand-corrected after generation: drizzle-kit's SQLite table rebuild listed the
2
+ -- two newly added columns (`current_adapter_session_id`,
3
+ -- `current_adapter_session_id_state`) in the copy SELECT as well, which reads them
4
+ -- from the pre-migration table where they do not exist yet. They are omitted from
5
+ -- both the INSERT and SELECT lists so existing rows adopt NULL plus the
6
+ -- 'inherited' default, which is the intended migration semantics. The rebuild
7
+ -- itself is required: SQLite cannot ALTER TABLE ADD CONSTRAINT for the new
8
+ -- currency check. The generated CHECK constraints qualified their column
9
+ -- references with the temporary table name ("__new_sessions"."col"); SQLite
10
+ -- versions before 3.53.0 do not rewrite table-qualified CHECK references on
11
+ -- ALTER TABLE ... RENAME, so the rename fails with "no such column". The
12
+ -- references are unqualified ("col") to stay valid across the rename on every
13
+ -- supported SQLite. Paired with drizzle-postgres/0021_adapter_session_currency.sql.
14
+ PRAGMA foreign_keys=OFF;--> statement-breakpoint
15
+ CREATE TABLE `__new_sessions` (
16
+ `session_id` text PRIMARY KEY NOT NULL,
17
+ `created_at` integer NOT NULL,
18
+ `last_activity_at` integer NOT NULL,
19
+ `status` text NOT NULL,
20
+ `lead_agent_id` text,
21
+ `parent_session_id` text,
22
+ `context_inheritance` text,
23
+ `root_session_id` text,
24
+ `fork_point_message_id` text,
25
+ `branch_kind` text,
26
+ `adapter_name` text,
27
+ `adapter_session_id` text,
28
+ `current_adapter_session_id` text,
29
+ `current_adapter_session_id_state` text DEFAULT 'inherited' NOT NULL,
30
+ `adapter_id` text,
31
+ `client_id` text,
32
+ `client_account_id` text,
33
+ `last_client_identity_observation` text,
34
+ `is_orchestrated` integer DEFAULT false,
35
+ `title` text,
36
+ `summary` text,
37
+ `summary_updated_at` integer,
38
+ `is_imported` integer DEFAULT false,
39
+ `fork_transforms` text,
40
+ `target_working_directory` text,
41
+ `execution_target_id` text,
42
+ `approval_policy_override` text,
43
+ `metadata` text,
44
+ `spawning_tool_call_id` text,
45
+ `source` text,
46
+ `parent_external_session_id` text,
47
+ `log_file_path` text,
48
+ `discovered_at` integer,
49
+ `import_status` text,
50
+ `is_sidechain` integer,
51
+ `machine_id` text,
52
+ CONSTRAINT "sessions_import_status_check" CHECK("import_status" IS NULL OR "import_status" IN ('discovered', 'imported', 'tracking')),
53
+ CONSTRAINT "sessions_context_inheritance_check" CHECK("context_inheritance" IS NULL OR "context_inheritance" IN ('parent-history', 'none')),
54
+ CONSTRAINT "sessions_current_adapter_session_id_currency_check" CHECK("current_adapter_session_id_state" IN ('inherited', 'moved', 'confirmed') AND ("current_adapter_session_id_state" <> 'confirmed' OR "current_adapter_session_id" IS NOT NULL) AND ("current_adapter_session_id_state" = 'confirmed' OR "current_adapter_session_id" IS NULL))
55
+ );
56
+ --> statement-breakpoint
57
+ INSERT INTO `__new_sessions`("session_id", "created_at", "last_activity_at", "status", "lead_agent_id", "parent_session_id", "context_inheritance", "root_session_id", "fork_point_message_id", "branch_kind", "adapter_name", "adapter_session_id", "adapter_id", "client_id", "client_account_id", "last_client_identity_observation", "is_orchestrated", "title", "summary", "summary_updated_at", "is_imported", "fork_transforms", "target_working_directory", "execution_target_id", "approval_policy_override", "metadata", "spawning_tool_call_id", "source", "parent_external_session_id", "log_file_path", "discovered_at", "import_status", "is_sidechain", "machine_id") SELECT "session_id", "created_at", "last_activity_at", "status", "lead_agent_id", "parent_session_id", "context_inheritance", "root_session_id", "fork_point_message_id", "branch_kind", "adapter_name", "adapter_session_id", "adapter_id", "client_id", "client_account_id", "last_client_identity_observation", "is_orchestrated", "title", "summary", "summary_updated_at", "is_imported", "fork_transforms", "target_working_directory", "execution_target_id", "approval_policy_override", "metadata", "spawning_tool_call_id", "source", "parent_external_session_id", "log_file_path", "discovered_at", "import_status", "is_sidechain", "machine_id" FROM `sessions`;--> statement-breakpoint
58
+ DROP TABLE `sessions`;--> statement-breakpoint
59
+ ALTER TABLE `__new_sessions` RENAME TO `sessions`;--> statement-breakpoint
60
+ PRAGMA foreign_keys=ON;--> statement-breakpoint
61
+ CREATE UNIQUE INDEX `uniq_sessions_source_adapter_session_id` ON `sessions` (`source`,`adapter_session_id`);--> statement-breakpoint
62
+ CREATE UNIQUE INDEX `uniq_sessions_log_file_path` ON `sessions` (`log_file_path`);--> statement-breakpoint
63
+ CREATE INDEX `sessions_adapter_session_id_idx` ON `sessions` (`adapter_session_id`);--> statement-breakpoint
64
+ CREATE INDEX `idx_sessions_import_status` ON `sessions` (`import_status`);--> statement-breakpoint
65
+ CREATE INDEX `sessions_execution_target_id_idx` ON `sessions` (`execution_target_id`);--> statement-breakpoint
66
+ CREATE INDEX `idx_sessions_parent_session_id` ON `sessions` (`parent_session_id`);
@@ -0,0 +1,77 @@
1
+ -- Hand-corrected after generation, for the same reason as
2
+ -- 0031_adapter_session_currency.sql: drizzle-kit's SQLite table rebuild listed
3
+ -- the four newly added `agents` columns (`current_adapter_session_id`,
4
+ -- `current_adapter_session_id_state`, `revision`, `currency_fence`) in the copy
5
+ -- SELECT as well, which reads them from the pre-migration table where they do
6
+ -- not exist yet. They are omitted from both the INSERT and SELECT lists so
7
+ -- existing rows adopt NULL / 'inherited' / 0, which is the intended migration
8
+ -- semantics. The rebuild itself is required: SQLite cannot ALTER TABLE ADD
9
+ -- CONSTRAINT for the new currency and counter checks. As in 0031, the rebuild's
10
+ -- CHECK constraints are unqualified ("col", not "__new_agents"."col") because
11
+ -- SQLite versions before 3.53.0 do not rewrite table-qualified CHECK references
12
+ -- on ALTER TABLE ... RENAME.
13
+ --
14
+ -- The `adapter_session_claims` creation is also moved after the rebuild, so its
15
+ -- foreign key never points at a table that the same migration is about to drop.
16
+ -- Paired with drizzle-postgres/0022_native_session_ownership.sql.
17
+ PRAGMA foreign_keys=OFF;--> statement-breakpoint
18
+ CREATE TABLE `__new_agents` (
19
+ `agent_id` text PRIMARY KEY NOT NULL,
20
+ `adapter_id` text NOT NULL,
21
+ `adapter_name` text NOT NULL,
22
+ `session_id` text NOT NULL,
23
+ `adapter_session_id` text,
24
+ `current_adapter_session_id` text,
25
+ `current_adapter_session_id_state` text DEFAULT 'inherited' NOT NULL,
26
+ `revision` integer DEFAULT 0 NOT NULL,
27
+ `currency_fence` integer DEFAULT 0 NOT NULL,
28
+ `model` text,
29
+ `cwd` text,
30
+ `allowed_directories` text,
31
+ `provider_config_id` text,
32
+ `persona_id` text,
33
+ `profile_id` text,
34
+ `harness_id` text,
35
+ `client_id` text,
36
+ `compression_mode` text,
37
+ `role` text NOT NULL,
38
+ `status` text NOT NULL,
39
+ `created_at` integer NOT NULL,
40
+ `last_activity_at` integer NOT NULL,
41
+ FOREIGN KEY (`session_id`) REFERENCES `sessions`(`session_id`) ON UPDATE no action ON DELETE cascade,
42
+ CONSTRAINT "agents_current_adapter_session_id_currency_check" CHECK("current_adapter_session_id_state" IN ('inherited', 'moved', 'confirmed') AND ("current_adapter_session_id_state" <> 'confirmed' OR "current_adapter_session_id" IS NOT NULL) AND ("current_adapter_session_id_state" = 'confirmed' OR "current_adapter_session_id" IS NULL)),
43
+ CONSTRAINT "agents_ownership_counters_check" CHECK("revision" >= 0 AND "currency_fence" >= 0)
44
+ );
45
+ --> statement-breakpoint
46
+ INSERT INTO `__new_agents`("agent_id", "adapter_id", "adapter_name", "session_id", "adapter_session_id", "model", "cwd", "allowed_directories", "provider_config_id", "persona_id", "profile_id", "harness_id", "client_id", "compression_mode", "role", "status", "created_at", "last_activity_at") SELECT "agent_id", "adapter_id", "adapter_name", "session_id", "adapter_session_id", "model", "cwd", "allowed_directories", "provider_config_id", "persona_id", "profile_id", "harness_id", "client_id", "compression_mode", "role", "status", "created_at", "last_activity_at" FROM `agents`;--> statement-breakpoint
47
+ DROP TABLE `agents`;--> statement-breakpoint
48
+ ALTER TABLE `__new_agents` RENAME TO `agents`;--> statement-breakpoint
49
+ PRAGMA foreign_keys=ON;--> statement-breakpoint
50
+ CREATE INDEX `agents_session_id_idx` ON `agents` (`session_id`);--> statement-breakpoint
51
+ CREATE INDEX `agents_adapter_name_idx` ON `agents` (`adapter_name`);--> statement-breakpoint
52
+ CREATE INDEX `agents_status_idx` ON `agents` (`status`);--> statement-breakpoint
53
+ CREATE INDEX `agents_client_id_idx` ON `agents` (`client_id`);--> statement-breakpoint
54
+ CREATE TABLE `adapter_session_claims` (
55
+ `claim_id` text PRIMARY KEY NOT NULL,
56
+ `machine_id` text NOT NULL,
57
+ `adapter_id` text NOT NULL,
58
+ `adapter_name` text NOT NULL,
59
+ `provider_session_id` text NOT NULL,
60
+ `session_id` text NOT NULL,
61
+ `agent_id` text NOT NULL,
62
+ `claim_token` text NOT NULL,
63
+ `fence` integer NOT NULL,
64
+ `status` text DEFAULT 'held' NOT NULL,
65
+ `claimed_at` integer NOT NULL,
66
+ `updated_at` integer NOT NULL,
67
+ FOREIGN KEY (`session_id`) REFERENCES `sessions`(`session_id`) ON UPDATE no action ON DELETE cascade,
68
+ FOREIGN KEY (`agent_id`) REFERENCES `agents`(`agent_id`) ON UPDATE no action ON DELETE cascade,
69
+ CONSTRAINT "adapter_session_claims_status_check" CHECK("adapter_session_claims"."status" IN ('held', 'releasing', 'abandoned')),
70
+ CONSTRAINT "adapter_session_claims_fence_check" CHECK("adapter_session_claims"."fence" >= 1)
71
+ );
72
+ --> statement-breakpoint
73
+ CREATE UNIQUE INDEX `uniq_adapter_session_claims_owner` ON `adapter_session_claims` (`machine_id`,`adapter_id`,`provider_session_id`);--> statement-breakpoint
74
+ CREATE UNIQUE INDEX `uniq_adapter_session_claims_token` ON `adapter_session_claims` (`claim_token`);--> statement-breakpoint
75
+ CREATE UNIQUE INDEX `uniq_adapter_session_claims_agent_fence` ON `adapter_session_claims` (`agent_id`,`fence`);--> statement-breakpoint
76
+ CREATE INDEX `adapter_session_claims_agent_id_idx` ON `adapter_session_claims` (`agent_id`);--> statement-breakpoint
77
+ CREATE INDEX `adapter_session_claims_session_id_idx` ON `adapter_session_claims` (`session_id`);
@@ -0,0 +1 @@
1
+ ALTER TABLE `workflow_run_contexts` ADD `trigger_mode` text DEFAULT 'immediate' NOT NULL;
@@ -218,6 +218,27 @@
218
218
  "when": 1784915828724,
219
219
  "tag": "0030_remote-worker-execution",
220
220
  "breakpoints": true
221
+ },
222
+ {
223
+ "idx": 31,
224
+ "version": "6",
225
+ "when": 1785338350827,
226
+ "tag": "0031_adapter_session_currency",
227
+ "breakpoints": true
228
+ },
229
+ {
230
+ "idx": 32,
231
+ "version": "6",
232
+ "when": 1785509240690,
233
+ "tag": "0032_native_session_ownership",
234
+ "breakpoints": true
235
+ },
236
+ {
237
+ "idx": 33,
238
+ "version": "6",
239
+ "when": 1785874381055,
240
+ "tag": "0033_m_msf3hu2s",
241
+ "breakpoints": true
221
242
  }
222
243
  ]
223
244
  }
@@ -1,4 +1,4 @@
1
- import { a as ProviderOperationClaim, i as ProcessBoundProvisionerLossProof, l as ProviderOperationOwnershipRecord, o as ProviderOperationClaimDecision, s as ProviderOperationMutationDecision } from "./provider-operation-Cxoe2SUr.mjs";
1
+ import { a as ProviderOperationClaim, i as ProcessBoundProvisionerLossProof, l as ProviderOperationOwnershipRecord, o as ProviderOperationClaimDecision, s as ProviderOperationMutationDecision } from "./provider-operation-DJ_TLZFf.mjs";
2
2
  import { BoundedRecoveryEvidence, ProviderAllocationRef, WorkerNodeAllocationLifetime, WorkflowRunResult } from "@makaio/framework/contracts";
3
3
 
4
4
  //#region subsystems/workflow-engine/src/execution-attempt-repository.d.ts
@@ -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-tDf_WiC8.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-CvHFbzdy.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};
@@ -0,0 +1 @@
1
+ import{n as e}from"./definition-CDg-Jq1T.mjs";import{n as t,t as n}from"./version-BfNnVAGr.mjs";import{z as r}from"zod";const i=r.object({entrypoint:r.string().startsWith(`/`,{message:`Entrypoint must be a URL path starting with "/"`})}),a=r.object({endpoint:r.string().url().optional()}),o=r.union([e,r.object({anthropic:a.optional(),openai:a.optional()}).refine(e=>Object.keys(e).length>0,{message:`ProtocolRef config object must specify at least one protocol`})]),s=r.object({id:r.string().min(1),version:t,binaryVersion:t.optional()}),c=r.object({name:r.string().min(1),displayName:r.string().min(1).optional(),description:r.string().optional(),clients:r.array(s).readonly().optional(),protocols:r.array(o).readonly(),defaultProvider:r.string().min(1).optional()}),l=r.object({id:r.string().min(1),name:r.string().min(1),description:r.string().optional(),binary:r.object({name:r.string().min(1),managed:r.boolean().optional(),version:n.optional()}).strict().refine(e=>e.managed!==!0||e.version!==void 0,{message:`binary.version is required when binary.managed is true`,path:[`version`]}).refine(e=>e.version===void 0||e.managed===!0,{message:`binary.managed must be true when binary.version is provided`,path:[`managed`]}).optional()}).strict(),u=r.object({id:r.string().min(1),name:r.string().min(1),description:r.string().optional()}),d=r.object({prefix:r.string().min(1),description:r.string().optional(),stage:r.enum([`gather`,`transform`,`action`]).optional()}),f=r.object({adapterName:r.string().min(1),displayName:r.string().min(1),logFilePattern:r.string().min(1).optional()}),p=r.object({id:r.string().min(1),label:r.string().min(1),description:r.string().optional(),icon:r.string().min(1).optional(),selectionMode:r.enum([`single`,`multi`]),messageRoles:r.array(r.enum([`user`,`assistant`])).readonly().optional()}),m=r.enum([`beforeCreate`,`beforeRevise`,`afterCreate`,`afterRevise`,`afterStatusChanged`,`afterObservationAdded`]),h=r.object({id:r.string().min(1),event:m,kind:r.string().min(1).optional(),schemaVersion:r.string().min(1).optional()}),g=r.object({tiles:r.boolean().optional(),widgets:r.boolean().optional(),pages:r.boolean().optional(),routes:r.boolean().optional()}),_={adapters:`adapter`,clients:`client`,providers:`provider`,hashTriggers:`hash trigger`,logImporters:`log importer`,sessionEventActions:`session event action`,artifactLifecycleHooks:`artifact lifecycle hook`};function v(e,t,n){e.addIssue({code:r.ZodIssueCode.custom,path:[t],message:`Duplicate ${_[t]} contribution identifier "${n}"`})}function y(e,t){let n=new Set,r=new Set,i=[];for(let a of e??[]){let e=t(a);if(n.has(e)){r.has(e)||(r.add(e),i.push(e));continue}n.add(e)}return i}const b=r.object({adapters:r.array(c).readonly().optional(),clients:r.array(l).readonly().optional(),providers:r.array(u).readonly().optional(),hashTriggers:r.array(d).readonly().optional(),logImporters:r.array(f).readonly().optional(),sessionEventActions:r.array(p).readonly().optional(),artifactLifecycleHooks:r.array(h).readonly().optional(),create:r.boolean().optional(),tools:r.boolean().optional(),bootstrap:r.boolean().optional(),namespace:r.boolean().optional(),configSchema:r.boolean().optional(),uiConfig:r.boolean().optional(),ui:g.optional()}).strict().superRefine((e,t)=>{for(let n of y(e.adapters,e=>e.name))v(t,`adapters`,n);for(let n of y(e.clients,e=>e.id))v(t,`clients`,n);for(let n of y(e.providers,e=>e.id))v(t,`providers`,n);for(let n of y(e.hashTriggers,e=>e.prefix))v(t,`hashTriggers`,n);for(let n of y(e.logImporters,e=>e.adapterName))v(t,`logImporters`,n);for(let n of y(e.sessionEventActions,e=>e.id))v(t,`sessionEventActions`,n);for(let n of y(e.artifactLifecycleHooks,e=>e.id))v(t,`artifactLifecycleHooks`,n)}),x=r.string().trim().min(1).transform(e=>e),S=r.object({name:r.string().min(1),required:r.boolean().optional()}),C=r.object({id:r.string(),style:r.enum([`tray-popover`,`utility`,`panel`]),width:r.number().optional(),height:r.number().optional(),singleton:r.boolean().optional(),params:r.array(S).readonly().optional()}).superRefine((e,t)=>{let n=new Set;for(let[i,a]of e.params?.entries()??[]){if(!n.has(a.name)){n.add(a.name);continue}t.addIssue({code:r.ZodIssueCode.custom,message:`Duplicate window param "${a.name}"`,path:[`params`,i,`name`]})}}),w=r.object({label:r.string(),section:r.enum([`utilities`,`tools`,`views`]).optional(),opensWindow:r.string().optional(),action:r.string().optional()}),T=r.object({name:r.string().min(1),description:r.string(),required:r.boolean().optional(),positional:r.boolean().optional(),short:r.string().regex(/^-[A-Za-z0-9]$/,`Expected a short flag like -p`).optional(),type:r.enum([`string`,`boolean`,`number`]).optional()}),E=r.object({name:r.string().min(1),description:r.string(),args:r.array(T).readonly().optional()}),D=r.object({name:r.string().min(1),description:r.string(),subcommands:r.array(E).readonly().optional(),hasInteractive:r.boolean().optional(),canProvideBus:r.boolean().optional()}),O=[`sqlite`,`postgres`];function k(e){if(e!==void 0)return typeof e==`string`?e:e.sqlite??Object.values(e).find(e=>e!==void 0)}function A(e){if(e===void 0)return[];if(typeof e==`string`)return[e];let t=new Set;for(let n of Object.values(e))n!==void 0&&t.add(n);return[...t]}const j=r.string().min(1).refine(e=>!/^(?:[\\/]|[A-Za-z]:)/.test(e),`Expected a relative path`).refine(e=>!e.split(/[\\/]/).some(e=>e===``||e===`.`||e===`..`),`Path must not contain empty or dot segments`),M=r.object({migrations:r.union([j,r.object({sqlite:j.optional(),postgres:j.optional()}).strict().refine(e=>Object.values(e).some(e=>e!==void 0),`Per-dialect storage.migrations must declare at least one chain`)]).optional(),migrationSourceId:r.string().min(1).optional()}),N=r.object({type:r.literal(`extension`),name:r.string().min(1),version:t,optional:r.boolean().optional()});function P(e,t=`>=0.1.0`,n){return n===void 0?{type:`extension`,name:e,version:t}:{type:`extension`,name:e,version:t,optional:n}}const F=r.discriminatedUnion(`type`,[r.object({type:r.literal(`host`),id:r.string().min(1)}),r.object({type:r.literal(`capability`),id:r.string().min(1),version:t.optional()})]),I=r.object({name:r.string().min(1).regex(/^(@[^/\\]+\/)?[^/\\]+$/,`Extension name must be a plain identifier or an npm-scoped name (@scope/pkg)`).refine(e=>(e.startsWith(`@`)?e.split(`/`):[e]).every(e=>e!==`.`&&e!==`..`),`Extension name must not be a dot-segment`),displayName:r.string().min(1),version:n,surface:r.enum([`interactive`,`headless`,`any`]).optional(),dependencies:r.array(N).readonly().optional(),requires:r.array(F).readonly().optional(),provides:r.array(x).readonly().optional(),windows:r.array(C).readonly().optional(),tray:w.optional(),cli:D.optional(),storage:M.optional(),browser:i.optional(),contributions:b.optional()});function L(e){return Object.freeze({name:e})}const R=r.object({command:r.string().min(1),args:r.array(r.string()).optional(),env:r.record(r.string(),r.string()).optional(),healthTimeoutMs:r.number().int().positive().optional(),shutdownTimeoutMs:r.number().int().positive().optional()}),z=r.enum([`none`,`on-crash`,`always`]),B=R.extend({restartPolicy:z.optional()}),V=r.discriminatedUnion(`type`,[B.extend({type:r.literal(`bus-stdio`)}),B.extend({type:r.literal(`bus-websocket`)}),R.extend({type:r.literal(`mcp-stdio`)})]);function H(e){if(e.includes(`\\`)||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`/`))return!1;let t=e.split(`/`),n=t.at(-1);return!n||n.includes(`.`)?!1:t.every(e=>e!==``&&e!==`.`&&e!==`..`&&e!==`src`&&e!==`dist`)}const U=r.union([r.literal(!0),r.string().min(1).refine(H,{message:`entrypoint stem must use forward-slash path stems, must not contain empty, . or .. segments, must not include a dotted final segment, and must not contain src or dist segments`})]),W=r.object({server:U.optional(),browser:U.optional(),cli:U.optional()}).refine(e=>e.server!==void 0||e.browser!==void 0||e.cli!==void 0,{message:`at least one entrypoint must be declared`});function G(e){return e.execution===`detached`}const K=I.extend({version:n,makaio:r.object({framework:t}).strict().readonly(),entrypoints:W.optional(),execution:r.enum([`embedded`,`detached`]).optional(),transport:V.optional(),prebundleDependencies:r.array(r.string().regex(/\S/,`prebundleDependencies entries must not be blank`)).readonly().optional(),config:r.object({defaults:r.record(r.string(),r.unknown()).optional()}).optional()}).superRefine((e,t)=>{e.prebundleDependencies!==void 0&&e.entrypoints?.browser===void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`prebundleDependencies requires a browser entrypoint`,path:[`prebundleDependencies`]}),e.execution===`detached`?(e.transport===void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`detached extensions must declare a 'transport' config`,path:[`transport`]}),e.entrypoints!==void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`detached extensions must not declare entrypoints`,path:[`entrypoints`]})):(e.entrypoints===void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`embedded extensions must declare at least one entrypoint`,path:[`entrypoints`]}),e.transport!==void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`embedded extensions must not declare a transport config`,path:[`transport`]}))});function q(e){return e}function J(e){return q(K.parse(e))}function Y(e){let t=K.safeParse(e);return t.success?{success:!0,data:q(t.data)}:t}const X=r.discriminatedUnion(`kind`,[r.object({kind:r.literal(`configure-integration`),clientId:r.string().min(1),bundle:r.string().min(1)}),r.object({kind:r.literal(`install-extension`),extensionName:r.string().min(1)}),r.object({kind:r.literal(`open-url`),url:r.string().url()}),r.object({kind:r.literal(`run-command`),command:r.string().min(1)})]),Z=r.enum([`info`,`recommended`,`degraded`]),Q=r.object({severity:Z,title:r.string().min(1),message:r.string().min(1),action:X.optional()});function $(e){switch(e.kind){case`configure-integration`:return`Configure`;case`install-extension`:return`Install`;case`open-url`:return`Open`;case`run-command`:return`Run`}}const ee=r.object({extensionName:r.string().min(1),warnings:r.array(Q)});function te(e,t){return e.parse(t??{})}function ne(e){return JSON.stringify([e.extensionId,e.type,e.name,e.filename])}export{s as A,u as B,w as C,P as D,A as E,b as F,g as H,d as I,f as L,m as M,h as N,k as O,l as P,a as R,M as S,S as T,i as U,p as V,E as _,Q as a,F as b,V as c,G as d,J as f,D as g,T as h,ee as i,c as j,x as k,K as l,L as m,te as n,Z as o,Y as p,X as r,$ as s,ne as t,W as u,N as v,C as w,O as x,I as y,o as z};
@@ -0,0 +1 @@
1
+ import{n as e}from"./window-registry-CoBJq3u4.mjs";import{n as t}from"./namespace-CxrOLeeP.mjs";import{n}from"./extension-namespace-B554RmCp.mjs";import{t as r}from"./schema-introspection-C1wvklj9.mjs";import{z as i}from"zod";import a from"node:path";import{getErrorString as o}from"@makaio/framework/utils";import{createBusNamespace as s}from"@makaio/framework/core";import{ProviderDefinitionSchema as c,primaryMigrationsPath as l,versionSatisfies as u}from"@makaio/framework/contracts";import{ToastSubjects as d}from"@makaio/framework/contracts/toast";import{ExtensionWarningSchema as f,getExtensionWarningActionLabel as p}from"@makaio/framework/contracts/extension";import{TrayMenuSubjects as m}from"@makaio/framework/services/tray-menu";const h=i.object({name:i.string(),displayName:i.string()}),g=s(`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":h,"service.ready":h.extend({durationMs:i.number().int().nonnegative()}),"service.failed":h.extend({errorMessage:i.string()}),"service.skipped":h.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())})}),_=g.subjects;var v=class extends Error{reason;constructor(e){super(e),this.name=`ServiceSkipError`,this.reason=e}};function y(e){return{name:e.name,displayName:e.displayName}}var b=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(_.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=y(e);this.state.currentService=t.displayName,this.state.currentServiceStartedAt=Date.now(),this.bus.emit(_.service.starting,t).catch(e=>{console.warn(`[ExtensionCoordinator] boot.service.starting emit failed for "${t.name}":`,e)})}ready(e){let t=y(e);this.state.completedCount+=1;let n=this.state.currentServiceStartedAt===void 0?0:Math.max(0,Date.now()-this.state.currentServiceStartedAt);this.bus.emit(_.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=y(e);this.state.completedCount+=1,this.state.failedServices.push(n.name),this.bus.emit(_.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=y(e);this.state.completedCount+=1,this.state.skippedServices.push(n.name),this.bus.emit(_.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(_.complete,{totalDurationMs:this.state.totalDurationMs,failedServices:[...this.state.failedServices]}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.complete emit failed:`,e)})}emitProgress(){this.bus.emit(_.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 x(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 ee(e,t,n){return e.on(d.interacted,r=>{let{toastId:i,actionId:a}=r.payload,o=C(i,a),s=t.get(o);s&&w(e,s,i,n).catch(e=>{console.error(`[ExtensionCoordinator] Warning action dispatch failed for toast "${i}":`,e)})})}async function w(e,t,n,r){switch(t.kind){case`configure-integration`:await ne(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:te(t)}}function te(e){throw Error(`[ExtensionCoordinator] Unsupported warning action: ${JSON.stringify(e)}`)}async function ne(e,t,n,r){let i=x(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 T(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 E(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 D(e){let{pkg:t,state:n,error:r,enabled:i}=e;return{name:t.name,displayName:t.displayName,state:n,...t.surface===void 0?{}:{surface:t.surface},enabled:i,...t.browser===void 0?{}:{browser:t.browser},...r===void 0?{}:{error:r}}}function O(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=>{let n=e.entries.get(t.payload.name);t.setResult({extension:n?D(n):null})})),r.push(e.bus.on(n.setEnabled,async t=>{let n=await e.handleSetEnabled(t.payload.name,t.payload.enabled);t.setResult({success:n})})),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:c.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:T(e.cliContributions)})})),r.push(e.bus.on(t.execute,async t=>{t.setResult(await E(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 re(e){for(let[t,n]of e.entries)n.state===`active`&&await A(e,t,n)}function ie(e){if(e&&k(e))return[{id:S,label:p(e)}]}function k(e){return e.kind===`configure-integration`}function ae(e,t){let n=`${t}:`;for(let t of e.keys())t.startsWith(n)&&e.delete(t)}async function A(e,t,n){ae(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=ie(a.action);try{await e.bus.emit(d.show,{level:`warning`,title:a.title,message:`${n.pkg.displayName}: ${a.message}`,toastId:o,durationMs:null,...s&&{actions:s}}),a.action&&k(a.action)&&e.warningActionMap.set(C(o,S),a.action)}catch(e){console.warn(`[${t}] toast emission failed for warning "${a.title}":`,e)}}}function oe(e){return Object.freeze({extensionName:e})}function se(e,t,n,r){if(!t)return;let i={...n??{},...r??{}};try{return t.parse(i)}catch(n){console.warn(`[ExtensionCoordinator] Config parse failed for "${e}", starting with schema defaults:`,n instanceof Error?n.message:n);try{return t.parse({})}catch{console.warn(`[ExtensionCoordinator] Fallback config parse also failed for "${e}" — config will be absent`);return}}}function j(e,t,n){let r;if(n.pkg.configSchema)try{r=e.loadConfig?.(t)}catch(e){console.error(`[ExtensionCoordinator] loadConfig threw for "${t}":`,e)}return se(t,n.pkg.configSchema,n.configDefaults,r)}function M(e,t,n){if(!e.extensionContextBase)throw Error(`ExtensionCoordinator: extensionContextBase is required to start extensions with a create factory. Provide it via the constructor.`);return{...e.extensionContextBase,bus:e.bus,identity:t.identity,dataDir:a.join(e.extensionContextBase.makaioHome,t.identity.extensionName),getService:t=>e.getExtensionService(t.name),signal:e.signal,hasExtension:e.hasActiveExtension,...n===void 0?{}:{config:n}}}function N(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:N(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),[]):L(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=M(t,r,j(t,n,r));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 L(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 R(e,t,r){let i=e.entries.get(t);if(!i)return!1;let a=i.enabled,o=r!==a;o&&await e.persistEnabled?.(t,r);let s;try{s=r?await z(e,t,i):await B(e,t,i)}catch(n){if(o&&e.persistEnabled)try{await e.persistEnabled(t,a)}catch(e){throw AggregateError([n,e],`Extension "${t}" transition and preference rollback both failed`)}throw n}return i.enabled===a&&!s?(o&&await e.persistEnabled?.(t,a),!1):(e.bus.emit(n.enabledChanged,{name:t,enabled:r}).catch(e=>{console.error(`[ExtensionCoordinator] enabledChanged emit failed for "${t}":`,e)}),s)}async function z(e,t,n){if(n.state!==`stopped`&&n.state!==`failed`&&n.state!==`skipped`)return!1;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 n.error=`Required dependencies not active: ${a.map(e=>e.name).join(`, `)}`,console.error(`[ExtensionCoordinator] Cannot re-enable "${t}":`,n.error),P(e.bus,n,`failed`),!1;n.enabled=!0,n.error=void 0,P(e.bus,n,`initializing`);let s=j(e,t,n);if(r.storage?.registerHandlers&&e.db!==void 0)try{let t=M(e,n,s),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`),!1}if(r.create){let a;try{let t=M(e,n,s);a=await r.create(t),await a.init?.(),n.service=a}catch(r){return await V(t,a,i,n),r instanceof v?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)}}try{await F(e.contributionProcessors,e,t,n,`activated`)}catch(r){return await V(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`),!1}return P(e.bus,n,`active`),await e.runHealthCheck(t),await e.emitWarningsForEntry(t,n),!0}async function B(e,t,r){if(r.state!==`active`)return!1;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}`),!1;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}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 a.length===0}async function V(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}}function H(e){let t=new Map;for(let n of e)t.has(n.name)&&(console.info(`[ExtensionCoordinator] Extension "${n.name}" overrides an earlier registration`),t.delete(n.name)),t.set(n.name,n);return[...t.values()]}function U(e,t,n){let r=new Set(e.map(e=>e.name)),i=e.filter(e=>W(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 W(e,t,n){if(!K(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:G(n,e.id,e.version):!1}})}function G(e,t,n){let r=e.capabilityVersions?.get(t);return r!==void 0&&u(r,n)}function K(e,t){return e.surface===void 0||e.surface===`any`||e.surface===t}function ce(e){let t=le(e);return ue(e,t,new Map(e.map(e=>[e.name,e]))),pe(t,fe(e,t))}function le(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 ue(e,t,n){for(let r of e)de(r,t,n)}function de(e,t,n){let r=e.dependencies??[],i=r.filter(e=>!e.optional&&!t.has(e.name));if(i.length>0)throw Error(`ExtensionCoordinator: package "${e.name}" declares missing dependencies: ${i.map(e=>e.name).join(`, `)}`);for(let t of r){let r=n.get(t.name);if(r===void 0)continue;let i=r.version;if(!u(i,t.version))throw Error(`ExtensionCoordinator: package "${e.name}" dependency "${t.name}" version ${i} does not satisfy ${t.version}`)}}function fe(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 pe(e,t){let n=[];for(let[e,r]of t)r.size===0&&n.push(e);let r=[],i=new Set;for(;n.length>0;){let e=n.shift();if(!i.has(e)){i.add(e),r.push(e);for(let[r,a]of t)a.has(e)&&(a.delete(e),a.size===0&&!i.has(r)&&n.push(r))}}if(r.length!==e.size){let t=[...e].filter(e=>!i.has(e));throw Error(`ExtensionCoordinator: circular dependency detected among: ${t.join(`, `)}`)}return r}async function me(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`);let i=r.pkg.storage?.migrations;if(!i)continue;let a,o;if(typeof i==`string`)a=q(n,r.pkg,i);else{let e={};for(let[t,a]of Object.entries(i))a!==void 0&&(e[t]=q(n,r.pkg,a));let t=l(e);if(t===void 0)continue;a=t,o=e}t.push({name:n,migrationsPath:a,migrationSourceId:r.pkg.storage?.migrationSourceId??a,...o?{migrationsPathByDialect:o}:{}})}t.length!==0&&await e.runMigrations(t)}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=f.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 he(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 Y(e){return Array.from(e.values()).filter(e=>e.enabled).map(e=>e.pkg).filter(e=>!!e.http)}async function ge(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 _e(e,t){if(!t.tray)return;let n=ve(t);await e.request(m.register,{entry:n})}function ve(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:t.opensWindow??t.action??`default`,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}}async function ye(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}e.bootProgress.starting(n.pkg),P(e.bus,n,`initializing`);let i=j(e.contextHost,t,n);if(Se(e,t,n,i)){if(!n.pkg.create){await be(e,t,n);return}await xe(e,t,n,i)}}async function be(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 xe(e,t,n,r){let i;try{let a=M(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 v))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 Se(e,t,n,r){if(!n.pkg.storage?.registerHandlers||e.db===void 0)return!0;try{let t=M(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 _e(e,n.pkg)}catch(e){console.warn(`[ExtensionCoordinator] Failed to register tray entry for ${t}:`,e)}}var Ce=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;runMigrations;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.runMigrations=t.runMigrations,this.rpcCleanups.push(ee(this.bus,this.warningActionMap,t.launcherCommand??`makaio`))}get trayEntries(){return this._trayEntries.map(e=>({...e}))}get cliContributions(){return this._cliContributions}extensionsWithHttp(){return Y(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=H(U(e,this.surface,this.runtimeEnvironment));this.loadOrder=ce(n);for(let e of this.loadOrder){let r=n.find(t=>t.name===e),i={pkg:r,identity:oe(r.name),state:`discovered`,enabled:this.loadEnabled?.(e)!==!1,warnings:[]};if(t){let n=t.get(e);n&&(i.configDefaults=n)}this.entries.set(e,i),r.namespaces&&this.bus.registerNamespaces(r.namespaces),he({windowRegistry:this.windowRegistry,trayEntries:this._trayEntries,cliContributions:this._cliContributions},r)}this.rpcCleanups.push(...O({bus:this.bus,entries:this.entries,cliContributions:this._cliContributions,list:()=>this.list(),handleSetEnabled:(e,t)=>this.handleSetEnabled(e,t)})),this.loaded=!0}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 b(this.bus,this.loadOrder.length);this.rpcCleanups.push(()=>e.dispose());try{await me({loadOrder:this.loadOrder,entries:this.entries,runMigrations:this.runMigrations});for(let t of this.loadOrder){let n=this.entries.get(t);n&&await ye({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 re({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 ge({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=>D(e))}getExtensionService(e){let t=typeof e==`string`?e:e.name;return this.entries.get(t)?.service}getExtension(e){return this.entries.get(e)?.pkg}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=M(t,r,j(t,n,r));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=M(r,n,j(r,e,n));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){return this.shutdownRequested?!1:await this.enqueueLifecycle(()=>R({bus:this.bus,db:this.db,entries:this.entries,extensionContextBase:this.extensionContextBase,loadConfig:this.loadConfig,signal:this.shutdownController.signal,hasActiveExtension:e=>this.hasActiveExtension(e),persistEnabled:this.persistEnabled,contributionProcessors:this.contributionProcessors,getExtensionService:e=>this.getExtensionService(e),runHealthCheck:e=>J(this.createExtensionHealthHost(),e),emitWarningsForEntry:(e,t)=>A({bus:this.bus,entries:this.entries,warningActionMap:this.warningActionMap},e,t)},e,t))}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,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{g as a,v as i,H as n,_ as o,U as r,Ce as t};
@@ -0,0 +1,295 @@
1
+ import { z } from "zod";
2
+ import { MakaioBusLike } from "@makaio/framework/core";
3
+
4
+ //#region core/contracts/src/extension/extension-token.d.ts
5
+ /**
6
+ * Typed extension service tokens.
7
+ *
8
+ * Extension tokens pair a runtime extension name with the service type the
9
+ * extension exposes. Consumers import an extension-owned token instead of
10
+ * repeating string literals at service lookup call sites.
11
+ */
12
+ /**
13
+ * Typed token for retrieving an extension service from an extension context.
14
+ *
15
+ * The type parameter is intentionally phantom: the runtime uses {@link name}
16
+ * while TypeScript carries the expected service type through `getService`.
17
+ * @typeParam T - Service type exposed by the extension.
18
+ */
19
+ interface ExtensionToken<T = unknown> {
20
+ /** Extension name registered with the runtime coordinator. */
21
+ readonly name: string;
22
+ /** Phantom marker for the token's service type. */
23
+ readonly __service?: T;
24
+ }
25
+ /**
26
+ * Create a typed extension service token.
27
+ * @param name - Extension name registered with the runtime coordinator.
28
+ * @returns Frozen token carrying the extension name and service type.
29
+ */
30
+ declare function extensionToken<T>(name: string): ExtensionToken<T>;
31
+ //#endregion
32
+ //#region core/contracts/src/extension/extension-warning.d.ts
33
+ /**
34
+ * Discriminated union of actionable responses to an extension warning.
35
+ *
36
+ * Each variant carries the data the host needs to execute the action without
37
+ * further round-trips to the extension.
38
+ *
39
+ * - `configure-integration` — open the integration settings for a client.
40
+ * - `install-extension` — prompt the user to install another extension.
41
+ * - `open-url` — navigate to an external or internal URL.
42
+ * - `run-command` — invoke a registered bus command by name.
43
+ */
44
+ declare const ExtensionWarningActionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
45
+ kind: z.ZodLiteral<"configure-integration">;
46
+ clientId: z.ZodString;
47
+ bundle: z.ZodString;
48
+ }, z.core.$strip>, z.ZodObject<{
49
+ kind: z.ZodLiteral<"install-extension">;
50
+ extensionName: z.ZodString;
51
+ }, z.core.$strip>, z.ZodObject<{
52
+ kind: z.ZodLiteral<"open-url">;
53
+ url: z.ZodString;
54
+ }, z.core.$strip>, z.ZodObject<{
55
+ kind: z.ZodLiteral<"run-command">;
56
+ command: z.ZodString;
57
+ }, z.core.$strip>], "kind">;
58
+ /**
59
+ * Severity levels for an {@link ExtensionWarning}.
60
+ *
61
+ * - `'info'` — informational note; the extension functions normally.
62
+ * - `'recommended'` — a recommended configuration is missing; functionality is reduced.
63
+ * - `'degraded'` — the extension is operating in a degraded fallback mode.
64
+ */
65
+ declare const ExtensionWarningSeveritySchema: z.ZodEnum<{
66
+ degraded: "degraded";
67
+ info: "info";
68
+ recommended: "recommended";
69
+ }>;
70
+ /**
71
+ * A single health warning emitted by a package's `checkHealth` hook.
72
+ *
73
+ * The host collects these after startup and may display them in the UI as
74
+ * notification toasts or persistent status indicators.
75
+ */
76
+ declare const ExtensionWarningSchema: z.ZodObject<{
77
+ severity: z.ZodEnum<{
78
+ degraded: "degraded";
79
+ info: "info";
80
+ recommended: "recommended";
81
+ }>;
82
+ title: z.ZodString;
83
+ message: z.ZodString;
84
+ action: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
85
+ kind: z.ZodLiteral<"configure-integration">;
86
+ clientId: z.ZodString;
87
+ bundle: z.ZodString;
88
+ }, z.core.$strip>, z.ZodObject<{
89
+ kind: z.ZodLiteral<"install-extension">;
90
+ extensionName: z.ZodString;
91
+ }, z.core.$strip>, z.ZodObject<{
92
+ kind: z.ZodLiteral<"open-url">;
93
+ url: z.ZodString;
94
+ }, z.core.$strip>, z.ZodObject<{
95
+ kind: z.ZodLiteral<"run-command">;
96
+ command: z.ZodString;
97
+ }, z.core.$strip>], "kind">>;
98
+ }, z.core.$strip>;
99
+ /** Inferred TypeScript type for {@link ExtensionWarningSchema}. */
100
+ type ExtensionWarning = z.infer<typeof ExtensionWarningSchema>;
101
+ /** Inferred TypeScript type for {@link ExtensionWarningActionSchema}. */
102
+ type ExtensionWarningAction = z.infer<typeof ExtensionWarningActionSchema>;
103
+ /** Inferred TypeScript type for {@link ExtensionWarningSeveritySchema}. */
104
+ type ExtensionWarningSeverity = z.infer<typeof ExtensionWarningSeveritySchema>;
105
+ /**
106
+ * Return the default user-facing label for an extension warning action.
107
+ *
108
+ * Kept with the action contract so every surface labels the same action kind
109
+ * consistently without duplicating switch statements.
110
+ * @param action - Extension warning action to label.
111
+ * @returns Short button label for the action kind.
112
+ */
113
+ declare function getExtensionWarningActionLabel(action: ExtensionWarningAction): string;
114
+ /**
115
+ * Aggregated warning entry grouping all health warnings for a single extension.
116
+ *
117
+ * Used as the payload shape for `kernel:extension.warnings.list` responses and
118
+ * `kernel:extension.warnings.changed` events so consumers receive extension identity
119
+ * alongside the full warning array in one atomic value.
120
+ */
121
+ declare const ExtensionWarningEntrySchema: z.ZodObject<{
122
+ extensionName: z.ZodString;
123
+ warnings: z.ZodArray<z.ZodObject<{
124
+ severity: z.ZodEnum<{
125
+ degraded: "degraded";
126
+ info: "info";
127
+ recommended: "recommended";
128
+ }>;
129
+ title: z.ZodString;
130
+ message: z.ZodString;
131
+ action: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
132
+ kind: z.ZodLiteral<"configure-integration">;
133
+ clientId: z.ZodString;
134
+ bundle: z.ZodString;
135
+ }, z.core.$strip>, z.ZodObject<{
136
+ kind: z.ZodLiteral<"install-extension">;
137
+ extensionName: z.ZodString;
138
+ }, z.core.$strip>, z.ZodObject<{
139
+ kind: z.ZodLiteral<"open-url">;
140
+ url: z.ZodString;
141
+ }, z.core.$strip>, z.ZodObject<{
142
+ kind: z.ZodLiteral<"run-command">;
143
+ command: z.ZodString;
144
+ }, z.core.$strip>], "kind">>;
145
+ }, z.core.$strip>>;
146
+ }, z.core.$strip>;
147
+ /** Inferred TypeScript type for {@link ExtensionWarningEntrySchema}. */
148
+ type ExtensionWarningEntry = z.infer<typeof ExtensionWarningEntrySchema>;
149
+ //#endregion
150
+ //#region core/contracts/src/extension/extension-lifecycle.d.ts
151
+ declare const extensionIdentityBrand: unique symbol;
152
+ /**
153
+ * Opaque extension identity minted by the runtime coordinator.
154
+ *
155
+ * This identity proves which loaded extension is calling runtime-owned seams
156
+ * such as future direct channels. Extension code receives it through
157
+ * {@link ExtensionContext.identity}; external callers cannot construct one
158
+ * without a type assertion.
159
+ */
160
+ interface ExtensionIdentity {
161
+ /** Extension name associated with this identity. */
162
+ readonly extensionName: string;
163
+ /** Opaque brand preventing structural construction. */
164
+ readonly [extensionIdentityBrand]: true;
165
+ }
166
+ /**
167
+ * Minimal lifecycle shape accepted as an extension service.
168
+ *
169
+ * BaseService satisfies this interface, but plain service classes can also
170
+ * participate in extension startup when they expose the same lifecycle.
171
+ */
172
+ interface ExtensionServiceLifecycle {
173
+ /** Initialize the service when startup work is not constructor-owned. */
174
+ init?(): Promise<void> | void;
175
+ /** Destroy the service and release resources when teardown is required. */
176
+ destroy?(): Promise<void> | void;
177
+ /**
178
+ * Called after the extension reaches active state.
179
+ *
180
+ * Returns zero or more {@link ExtensionWarning} entries describing integration
181
+ * health issues the user may want to act on. An empty array (or omitting the
182
+ * hook entirely) signals that the extension is fully healthy.
183
+ * @returns Active health warnings, or an empty array when the extension is healthy.
184
+ */
185
+ checkHealth?(): Promise<ExtensionWarning[]> | ExtensionWarning[];
186
+ }
187
+ /**
188
+ * Service shape returned by {@link MakaioExtension.create}.
189
+ *
190
+ * Any class that extends `BaseService` satisfies this interface structurally
191
+ * because `BaseService` exposes the same lifecycle methods.
192
+ */
193
+ type ExtensionService = ExtensionServiceLifecycle;
194
+ //#endregion
195
+ //#region core/contracts/src/extension/extension-context.d.ts
196
+ /**
197
+ * Generic context provided by a host runtime when creating an extension's service.
198
+ *
199
+ * Contains host-agnostic runtime seams: the bus instance, extension identity,
200
+ * extension-local data directory, machine identity, config, service lookup, and
201
+ * lifecycle controls. Host-specific environment details belong on explicit
202
+ * context extensions such as {@link NodeExtensionContext}.
203
+ */
204
+ interface ExtensionContext<TBus extends MakaioBusLike = MakaioBusLike> {
205
+ /** Bus instance for registering handlers and emitting events. */
206
+ readonly bus: TBus;
207
+ /** Coordinator-minted identity for the extension being created. */
208
+ readonly identity: ExtensionIdentity;
209
+ /**
210
+ * Per-extension writable data directory resolved by the host runtime.
211
+ *
212
+ * Use this for extension-local persistence (caches, state files, etc.).
213
+ */
214
+ readonly dataDir: string;
215
+ /**
216
+ * Stable machine identifier used for machine-scoped persistence and
217
+ * encryption key derivation.
218
+ *
219
+ * Resolved by the composition root (e.g., `node-machine-id`) before
220
+ * extensions are started.
221
+ */
222
+ readonly machineId: string;
223
+ /**
224
+ * Resolved configuration for this extension, merged from stored values and
225
+ * descriptor defaults. Present only when the extension declared a
226
+ * `configSchema` on its {@link MakaioExtension}.
227
+ *
228
+ * Extensions should parse this with their Zod schema to get typed config:
229
+ * ```ts
230
+ * const config = parseExtensionConfig(MyConfigSchema, ctx.config);
231
+ * ```
232
+ */
233
+ readonly config?: unknown;
234
+ /**
235
+ * Retrieve a service exposed by another active extension.
236
+ * @param token - Extension-owned token identifying the desired service.
237
+ * @returns The active service instance, or `undefined` when unavailable.
238
+ */
239
+ getService<T>(token: ExtensionToken<T>): T | undefined;
240
+ /**
241
+ * Attempt a dynamic import, returning `null` when the package is not installed.
242
+ *
243
+ * Only swallows errors caused by the package itself being absent. Transitive
244
+ * dependency failures and module evaluation errors are re-thrown.
245
+ * @typeParam T - Expected module shape (caller-asserted, not runtime-verified).
246
+ * @param specifier - Package specifier to import.
247
+ * @returns The imported module cast to `T`, or `null` when the package is not installed.
248
+ */
249
+ readonly tryImport: <T>(specifier: string) => Promise<T | null>;
250
+ /**
251
+ * Abort signal triggered during graceful shutdown.
252
+ *
253
+ * Extensions can pass this to long-running operations (fetch, timers, streams)
254
+ * so they cancel promptly when the runtime is stopping.
255
+ */
256
+ readonly signal: AbortSignal;
257
+ /**
258
+ * Check whether an extension with the given name is active.
259
+ *
260
+ * Returns `true` when the named extension has been loaded and reached
261
+ * `active` state. Use this for optional integration checks without
262
+ * requiring an ExtensionToken.
263
+ * @param name - Extension name to check.
264
+ * @returns `true` when the extension is active.
265
+ */
266
+ readonly hasExtension: (name: string) => boolean;
267
+ }
268
+ /**
269
+ * Node.js host extension context.
270
+ *
271
+ * Adds the OS and filesystem fields supplied by Node-based composition roots.
272
+ * Extensions that need these fields should opt into this context explicitly;
273
+ * host-agnostic extensions can type themselves against {@link ExtensionContext}.
274
+ */
275
+ interface NodeExtensionContext<TBus extends MakaioBusLike = MakaioBusLike> extends ExtensionContext<TBus> {
276
+ /** Working directory selected by the Node host for relative filesystem operations. */
277
+ readonly cwd?: string;
278
+ /** Current platform identifier (e.g., `'darwin'`, `'linux'`, `'win32'`). */
279
+ readonly platform: NodeJS.Platform;
280
+ /** User's home directory path. */
281
+ readonly homedir: string;
282
+ /** Resolved `.makaio` directory root (e.g., `~/.makaio`). */
283
+ readonly makaioHome: string;
284
+ /** Current OS username. */
285
+ readonly username: string;
286
+ /**
287
+ * WebSocket URL for the host bus, when the runtime exposes one.
288
+ *
289
+ * Detached `bus-websocket` extensions use this to connect back to the host.
290
+ * Hosts without a WebSocket bus omit it.
291
+ */
292
+ readonly busUrl?: string;
293
+ }
294
+ //#endregion
295
+ export { ExtensionServiceLifecycle as a, ExtensionWarningActionSchema as c, ExtensionWarningSchema as d, ExtensionWarningSeverity as f, extensionToken as g, ExtensionToken as h, ExtensionService as i, ExtensionWarningEntry as l, getExtensionWarningActionLabel as m, NodeExtensionContext as n, ExtensionWarning as o, ExtensionWarningSeveritySchema as p, ExtensionIdentity as r, ExtensionWarningAction as s, ExtensionContext as t, ExtensionWarningEntrySchema as u };
@@ -5,6 +5,8 @@ import { ExtensionDescriptor } from "@makaio/framework/contracts";
5
5
  interface ExtensionEntrypointModule {
6
6
  /** Server entry default export, validated by the extension loader. */
7
7
  readonly default: unknown;
8
+ /** Optional owner-anchored host cron scheduler policy, validated separately from descriptor-owned packages. */
9
+ readonly automationCronSchedulerHostPolicy?: unknown;
8
10
  }
9
11
  /**
10
12
  * An extension discovered on the filesystem.
@@ -1 +1 @@
1
- import{z as e}from"zod";import{createBusNamespace as t}from"@makaio/framework/core";import{BrowserEntrypointSchema as n,ClientDefinitionSchema as r,ProviderDefinitionSchema as i}from"@makaio/framework/contracts";import{ExtensionWarningEntrySchema as a}from"@makaio/framework/contracts/extension";const o=e.enum([`discovered`,`initializing`,`active`,`failed`,`skipped`,`stopped`]),s=e.object({name:e.string(),displayName:e.string()}),c=s.extend({state:o,error:e.string().optional()}),l=c.extend({critical:e.boolean()}),u=c.extend({surface:e.enum([`interactive`,`headless`,`any`]).optional(),enabled:e.boolean(),browser:n.optional()}),d=e.object({packageName:e.string()}),f=d.extend({definition:i}),p=d.extend({definition:r}),m=t(`kernel:extension`,{stateChanged:e.object({name:e.string(),displayName:e.string(),from:o,to:o,error:e.string().optional(),contributes:e.object({adapters:e.boolean(),tools:e.boolean(),triggers:e.boolean(),providers:e.boolean(),clients:e.boolean(),ui:e.boolean(),storage:e.boolean(),sessionEventActions:e.boolean()}).optional()}),list:{request:e.object({}),response:e.object({extensions:e.array(u)})},get:{request:e.object({name:e.string()}),response:e.object({extension:u.nullable()})},setEnabled:{request:e.object({name:e.string(),enabled:e.boolean()}),response:e.object({success:e.boolean()})},"contributions.catalog":{request:e.object({}),response:e.object({providers:e.array(f),clients:e.array(p)})},enabledChanged:e.object({name:e.string(),enabled:e.boolean()}),"warnings.list":{request:e.object({extensionName:e.string().optional()}),response:e.object({entries:e.array(a)})},"warnings.changed":a}),h=m.subjects;export{o as a,l as c,c as i,h as n,u as o,s as r,a as s,m as t};
1
+ import{z as e}from"zod";import{createBusNamespace as t}from"@makaio/framework/core";import{BrowserEntrypointSchema as n,ClientDefinitionSchema as r,ProviderDefinitionSchema as i}from"@makaio/framework/contracts";import{ExtensionWarningEntrySchema as a}from"@makaio/framework/contracts/extension";const o=e.enum([`discovered`,`initializing`,`active`,`failed`,`skipped`,`stopped`]),s=e.object({name:e.string(),displayName:e.string()}),c=s.extend({state:o,error:e.string().optional()}),l=c.extend({critical:e.boolean()}),u=c.extend({surface:e.enum([`interactive`,`headless`,`any`]).optional(),enabled:e.boolean(),browser:n.optional()}),d=e.object({packageName:e.string()}),f=d.extend({definition:i}),p=d.extend({definition:r}),m=t(`kernel:extension`,{stateChanged:e.object({name:e.string(),displayName:e.string(),from:o,to:o,error:e.string().optional(),contributes:e.object({adapters:e.boolean(),tools:e.boolean(),hashTriggers:e.boolean(),providers:e.boolean(),clients:e.boolean(),ui:e.boolean(),storage:e.boolean(),sessionEventActions:e.boolean()}).optional()}),list:{request:e.object({}),response:e.object({extensions:e.array(u)})},get:{request:e.object({name:e.string()}),response:e.object({extension:u.nullable()})},setEnabled:{request:e.object({name:e.string(),enabled:e.boolean()}),response:e.object({success:e.boolean()})},"contributions.catalog":{request:e.object({}),response:e.object({providers:e.array(f),clients:e.array(p)})},enabledChanged:e.object({name:e.string(),enabled:e.boolean()}),"warnings.list":{request:e.object({extensionName:e.string().optional()}),response:e.object({entries:e.array(a)})},"warnings.changed":a}),h=m.subjects;export{o as a,l as c,c as i,h as n,u as o,s as r,a as s,m as t};
@@ -0,0 +1 @@
1
+ const e=new WeakMap;function t(t,r){return e.set(t,n(r)),t}function n(t){return e.get(t)??t}export{t as n,n 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.addCleanup(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.addCleanup(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-1yCVCk8s.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.addCleanup(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.addCleanup(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-BBLuT_vy.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};