@makaio/framework 1.0.0-dev-1781022866275 → 1.0.0-dev-1781023871421

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 (456) hide show
  1. package/dist/.makaio-build.json +5 -0
  2. package/dist/account-identity-DT5NOtFi.mjs +1 -0
  3. package/dist/adapter-C1eI-fGV.mjs +1 -0
  4. package/dist/adapters/acp-client/index.d.mts +6208 -0
  5. package/dist/adapters/acp-client/index.mjs +3 -0
  6. package/dist/adapters/config/index.d.mts +429 -0
  7. package/dist/adapters/config/index.mjs +1 -0
  8. package/dist/adapters/index.d.mts +4202 -0
  9. package/dist/adapters/index.mjs +18 -0
  10. package/dist/adapters/node.d.mts +263 -0
  11. package/dist/adapters/node.mjs +4 -0
  12. package/dist/adapters/stream-session/index.d.mts +1414 -0
  13. package/dist/adapters/stream-session/index.mjs +1 -0
  14. package/dist/adapters/stream-session/testing/index.d.mts +29 -0
  15. package/dist/adapters/stream-session/testing/index.mjs +1 -0
  16. package/dist/artifact-B3npq1cy.mjs +1 -0
  17. package/dist/base-orchestrator-wyumsn3b.d.mts +772 -0
  18. package/dist/bus/index.d.mts +3994 -0
  19. package/dist/bus/index.mjs +1 -0
  20. package/dist/bus-Caz3Jpbc.mjs +1 -0
  21. package/dist/bus-Hb-LGzgb.mjs +2 -0
  22. package/dist/capability-service-CJbmhfv9.mjs +1 -0
  23. package/dist/chunk-DTipWd-i.mjs +1 -0
  24. package/dist/chunk-cpUYaJdV.mjs +1 -0
  25. package/dist/cleanEnvForAdapter-KkYzQa1f.mjs +1 -0
  26. package/dist/client-bx74gm4R.mjs +1 -0
  27. package/dist/clients/index.d.mts +2639 -0
  28. package/dist/clients/index.mjs +2 -0
  29. package/dist/clients-namespace-GmSJpBUV.d.mts +332 -0
  30. package/dist/config-namespace-CPY9YsR8.d.mts +638 -0
  31. package/dist/config-namespace-ncYg2ct_.mjs +1 -0
  32. package/dist/contracts/adapter/index.d.mts +3 -0
  33. package/dist/contracts/adapter/index.mjs +1 -0
  34. package/dist/contracts/adapter/schemas/session-lineage.d.mts +2 -0
  35. package/dist/contracts/adapter/schemas/session-lineage.mjs +1 -0
  36. package/dist/contracts/artifact/index.d.mts +2 -0
  37. package/dist/contracts/artifact/index.mjs +1 -0
  38. package/dist/contracts/client/index.d.mts +3 -0
  39. package/dist/contracts/client/index.mjs +1 -0
  40. package/dist/contracts/common/index.d.mts +2 -0
  41. package/dist/contracts/common/index.mjs +1 -0
  42. package/dist/contracts/config/index.d.mts +455 -0
  43. package/dist/contracts/config/index.mjs +1 -0
  44. package/dist/contracts/extension/index.d.mts +4 -0
  45. package/dist/contracts/extension/index.mjs +1 -0
  46. package/dist/contracts/facet/index.d.mts +2 -0
  47. package/dist/contracts/facet/index.mjs +1 -0
  48. package/dist/contracts/harness/index.d.mts +2 -0
  49. package/dist/contracts/harness/index.mjs +1 -0
  50. package/dist/contracts/host/index.d.mts +2 -0
  51. package/dist/contracts/host/index.mjs +1 -0
  52. package/dist/contracts/index.d.mts +23046 -0
  53. package/dist/contracts/index.mjs +1 -0
  54. package/dist/contracts/materialization/index.d.mts +4 -0
  55. package/dist/contracts/materialization/index.mjs +1 -0
  56. package/dist/contracts/model-registry/index.d.mts +2 -0
  57. package/dist/contracts/model-registry/index.mjs +1 -0
  58. package/dist/contracts/native-session-supervisor/index.d.mts +2 -0
  59. package/dist/contracts/native-session-supervisor/index.mjs +1 -0
  60. package/dist/contracts/platform/index.d.mts +2 -0
  61. package/dist/contracts/platform/index.mjs +1 -0
  62. package/dist/contracts/provider/index.d.mts +3 -0
  63. package/dist/contracts/provider/index.mjs +1 -0
  64. package/dist/contracts/session/index.d.mts +3 -0
  65. package/dist/contracts/session/index.mjs +1 -0
  66. package/dist/contracts/shared/index.d.mts +2 -0
  67. package/dist/contracts/shared/index.mjs +1 -0
  68. package/dist/contracts/skill/index.d.mts +2 -0
  69. package/dist/contracts/skill/index.mjs +1 -0
  70. package/dist/contracts/telemetry/index.d.mts +2 -0
  71. package/dist/contracts/telemetry/index.mjs +1 -0
  72. package/dist/contracts/timeout/index.d.mts +2 -0
  73. package/dist/contracts/timeout/index.mjs +1 -0
  74. package/dist/contracts/toast/index.d.mts +198 -0
  75. package/dist/contracts/toast/index.mjs +1 -0
  76. package/dist/contracts/variant/index.d.mts +2 -0
  77. package/dist/contracts/variant/index.mjs +1 -0
  78. package/dist/core/index.d.mts +1263 -0
  79. package/dist/core/index.mjs +1 -0
  80. package/dist/credential-ref-YWQQENEo.mjs +1 -0
  81. package/dist/cursor-storage-CtVJ3JzB.mjs +1 -0
  82. package/dist/definition-BLCdXGzh.d.mts +383 -0
  83. package/dist/definition-CrgHIpTK.d.mts +60 -0
  84. package/dist/definition-DZMXOnjX.mjs +1 -0
  85. package/dist/definition-pkJ6szUl.d.mts +158 -0
  86. package/dist/drizzle-Eq8W1EbD.mjs +1 -0
  87. package/dist/event-Ca2yUf5i.mjs +1 -0
  88. package/dist/execution-target-CRPTfZlc.mjs +1 -0
  89. package/dist/extension-C-4BHMRI.mjs +1 -0
  90. package/dist/extension-CpIUgBKI.mjs +1 -0
  91. package/dist/extension-namespace-cMh_mMiL.mjs +1 -0
  92. package/dist/facet-BuwhrThl.mjs +1 -0
  93. package/dist/filesystem-service-B8rhBRgB.mjs +1 -0
  94. package/dist/filesystem-service-p_iJVHd4.d.mts +66 -0
  95. package/dist/git/index.d.mts +210 -0
  96. package/dist/git/index.mjs +18 -0
  97. package/dist/globby-rtWVaFHv.mjs +41 -0
  98. package/dist/handlers-CkTsQLra.mjs +41 -0
  99. package/dist/harness-BRCMcvQN.mjs +1 -0
  100. package/dist/hooks/index.d.mts +423 -0
  101. package/dist/hooks/index.mjs +1 -0
  102. package/dist/host-Br9VuOyr.mjs +1 -0
  103. package/dist/identity-Cz2IeEtm.mjs +1 -0
  104. package/dist/index-472sOmsW.d.mts +218 -0
  105. package/dist/index-8SZkg7s6.d.mts +353 -0
  106. package/dist/index-B3PK4FIn.d.mts +5116 -0
  107. package/dist/index-B80L4YqA.d.mts +180 -0
  108. package/dist/index-BFg9BUpx.d.mts +355 -0
  109. package/dist/index-BGfWS6GE.d.mts +483 -0
  110. package/dist/index-BVgfS-AJ.d.mts +109 -0
  111. package/dist/index-B_zQC98V.d.mts +995 -0
  112. package/dist/index-Bh_Ne7LF.d.mts +1008 -0
  113. package/dist/index-Bvb2mMH6.d.mts +1730 -0
  114. package/dist/index-CCGVh9BF2.d.mts +749 -0
  115. package/dist/index-CGmcS0Ma.d.mts +412 -0
  116. package/dist/index-CHQ1SqT0.d.mts +117 -0
  117. package/dist/index-CLpjm52M.d.mts +183 -0
  118. package/dist/index-Caig6TeF.d.mts +6746 -0
  119. package/dist/index-CelJCBjk.d.mts +2992 -0
  120. package/dist/index-ChunCFu4.d.mts +11 -0
  121. package/dist/index-Cm0dUkWL.d.mts +4651 -0
  122. package/dist/index-CokQYGVP.d.mts +184 -0
  123. package/dist/index-Cs0kZXIz2.d.mts +37 -0
  124. package/dist/index-D5d5HeWI2.d.mts +259 -0
  125. package/dist/index-D90OmGmV.d.mts +389 -0
  126. package/dist/index-D9MwJ2Q8.d.mts +67 -0
  127. package/dist/index-DANINzMu.d.mts +40 -0
  128. package/dist/index-DBw-89vC2.d.mts +3640 -0
  129. package/dist/index-DGBu6bHi2.d.mts +438 -0
  130. package/dist/index-DKC62dY5.d.mts +146 -0
  131. package/dist/index-DKia0MX1.d.mts +43 -0
  132. package/dist/index-DMKnON5s.d.mts +28 -0
  133. package/dist/index-DUaw0Dw8.d.mts +14747 -0
  134. package/dist/index-De3kPhlN.d.mts +72 -0
  135. package/dist/index-L4GjJDKb.d.mts +822 -0
  136. package/dist/index-U-A8eyGT.d.mts +1490 -0
  137. package/dist/index-eemAKwsB.d.mts +362 -0
  138. package/dist/index-mNec7V-9.d.mts +1075 -0
  139. package/dist/index-soFznFCy2.d.mts +89 -0
  140. package/dist/index-vtXJuwrz.d.mts +40 -0
  141. package/dist/index-x_lVDp_J.d.mts +134 -0
  142. package/dist/json-value-CmhSGMLv.mjs +1 -0
  143. package/dist/kernel/cli/index.d.mts +143 -0
  144. package/dist/kernel/cli/index.mjs +1 -0
  145. package/dist/kernel/cli/schemas.d.mts +64 -0
  146. package/dist/kernel/cli/schemas.mjs +1 -0
  147. package/dist/kernel/extension/index.d.mts +2 -0
  148. package/dist/kernel/extension/index.mjs +1 -0
  149. package/dist/kernel/index.d.mts +296 -0
  150. package/dist/kernel/index.mjs +1 -0
  151. package/dist/kernel/namespace/index.d.mts +2 -0
  152. package/dist/kernel/namespace/index.mjs +1 -0
  153. package/dist/kernel/observability/index.d.mts +2 -0
  154. package/dist/kernel/observability/index.mjs +1 -0
  155. package/dist/kernel/providers/index.d.mts +2 -0
  156. package/dist/kernel/providers/index.mjs +1 -0
  157. package/dist/kernel/window/index.d.mts +2 -0
  158. package/dist/kernel/window/index.mjs +1 -0
  159. package/dist/materialization-CuUBu4XI.mjs +1 -0
  160. package/dist/model-registry-CfXytvzx.mjs +1 -0
  161. package/dist/model-registry-Scn_MC2d.mjs +1 -0
  162. package/dist/namespace-5QQqbF-B.d.mts +3133 -0
  163. package/dist/namespace-BM7Djng9.d.mts +189 -0
  164. package/dist/namespace-BoD94mrN.mjs +1 -0
  165. package/dist/namespace-BwzZJqTV.mjs +1 -0
  166. package/dist/namespace-CFLAmQfh.mjs +1 -0
  167. package/dist/namespace-CTm3nEvh.d.mts +51 -0
  168. package/dist/namespace-CaaNnKcR.d.mts +921 -0
  169. package/dist/namespace-CaoZ3S78.d.mts +43 -0
  170. package/dist/namespace-CxhsoFUP.d.mts +607 -0
  171. package/dist/namespace-DD8Oiqo7.d.mts +580 -0
  172. package/dist/namespace-DLovh2Ws.d.mts +1313 -0
  173. package/dist/namespace-DgqkaOVu.d.mts +768 -0
  174. package/dist/namespace-DkRgbZYn.mjs +1 -0
  175. package/dist/namespace-Dr8K0MCp.d.mts +2047 -0
  176. package/dist/namespace-DuXK5AYN.mjs +1 -0
  177. package/dist/namespace-EQniz-Aw.d.mts +142 -0
  178. package/dist/namespace-IV1QK__V.d.mts +159 -0
  179. package/dist/namespace-LViZ-EQk.mjs +1 -0
  180. package/dist/namespace-TyiTsLFv.d.mts +3020 -0
  181. package/dist/namespace-Yna5-Pws.mjs +1 -0
  182. package/dist/namespace-xcmbQlxh.mjs +1 -0
  183. package/dist/native-session-supervisor-B1TnaPUF.mjs +1 -0
  184. package/dist/node/bus-server/index.d.mts +178 -0
  185. package/dist/node/bus-server/index.mjs +1 -0
  186. package/dist/node/bus-server/server-lifecycle.d.mts +2 -0
  187. package/dist/node/bus-server/server-lifecycle.mjs +1 -0
  188. package/dist/node/machine-identity/index.d.mts +85 -0
  189. package/dist/node/machine-identity/index.mjs +3 -0
  190. package/dist/node/transports/index.d.mts +1945 -0
  191. package/dist/node/transports/index.mjs +2 -0
  192. package/dist/orchestrator-shared-CIDiFJMD.mjs +1 -0
  193. package/dist/orchestrator-shared-Dfa7FMyw.d.mts +249 -0
  194. package/dist/package-DKVlsMP3.mjs +1 -0
  195. package/dist/platform-DZ7z-wXD.mjs +1 -0
  196. package/dist/profile-6ynCD5k3.mjs +1 -0
  197. package/dist/provider-context-CK6B4X_8.mjs +1 -0
  198. package/dist/providers/index.d.mts +135 -0
  199. package/dist/providers/index.mjs +1 -0
  200. package/dist/providers-namespace-DSEpli4A.d.mts +583 -0
  201. package/dist/providers-u8i15co9.mjs +1 -0
  202. package/dist/schema-CoyE6mPt.mjs +1 -0
  203. package/dist/schema-M5YTvSAG.d.mts +949 -0
  204. package/dist/schema-e0wU_lcV.mjs +1 -0
  205. package/dist/schema-introspection-Dn1jWQs1.mjs +1 -0
  206. package/dist/schemas-Bd0OjRQf.d.mts +46 -0
  207. package/dist/schemas-C46QfKzv.d.mts +459 -0
  208. package/dist/schemas-CDBSjg7o.d.mts +237 -0
  209. package/dist/schemas-CR1Rripy.mjs +1 -0
  210. package/dist/schemas-CVvwIfG4.mjs +1 -0
  211. package/dist/schemas-CaLhkkLn.mjs +1 -0
  212. package/dist/schemas-ClOOT1W6.d.mts +174 -0
  213. package/dist/schemas-DATniTHb.d.mts +182 -0
  214. package/dist/schemas-DE-GNmSD.mjs +1 -0
  215. package/dist/schemas-DVF1A4DF.d.mts +160 -0
  216. package/dist/schemas-DaRSfYLf.d.mts +73 -0
  217. package/dist/schemas-DiYVzG6e.d.mts +315 -0
  218. package/dist/schemas-hSrzflwZ.mjs +1 -0
  219. package/dist/schemas-j7ivZ2HI.d.mts +944 -0
  220. package/dist/schemas-jFe1AuI-.mjs +1 -0
  221. package/dist/schemas-wg_6PAdV.d.mts +153 -0
  222. package/dist/scoped-bus-04pwo1uM.mjs +1 -0
  223. package/dist/server-lifecycle-FXTPW39-.mjs +1 -0
  224. package/dist/server-lifecycle-YoSGFGnU.d.mts +160 -0
  225. package/dist/service-base/index.d.mts +98 -0
  226. package/dist/service-base/index.mjs +1 -0
  227. package/dist/services/adapter-runtime/index.d.mts +4 -0
  228. package/dist/services/adapter-runtime/index.mjs +1 -0
  229. package/dist/services/adapter-runtime/namespace.d.mts +2 -0
  230. package/dist/services/adapter-runtime/namespace.mjs +1 -0
  231. package/dist/services/adapter-runtime/schemas.d.mts +2 -0
  232. package/dist/services/adapter-runtime/schemas.mjs +1 -0
  233. package/dist/services/adapter-subsystem/index.d.mts +3 -0
  234. package/dist/services/adapter-subsystem/index.mjs +1 -0
  235. package/dist/services/adapter-subsystem/namespace.d.mts +2 -0
  236. package/dist/services/adapter-subsystem/namespace.mjs +1 -0
  237. package/dist/services/agent-runtime/index.d.mts +3 -0
  238. package/dist/services/agent-runtime/index.mjs +1 -0
  239. package/dist/services/agent-runtime/namespace.d.mts +2 -0
  240. package/dist/services/agent-runtime/namespace.mjs +1 -0
  241. package/dist/services/agent-runtime/schemas.d.mts +2 -0
  242. package/dist/services/agent-runtime/schemas.mjs +1 -0
  243. package/dist/services/capability/index.d.mts +2 -0
  244. package/dist/services/capability/index.mjs +1 -0
  245. package/dist/services/cli-detection/namespace.d.mts +56 -0
  246. package/dist/services/cli-detection/namespace.mjs +1 -0
  247. package/dist/services/codebase/index.d.mts +3 -0
  248. package/dist/services/codebase/index.mjs +1 -0
  249. package/dist/services/codebase/namespace.d.mts +2 -0
  250. package/dist/services/codebase/namespace.mjs +1 -0
  251. package/dist/services/codebase/schemas.d.mts +2 -0
  252. package/dist/services/codebase/schemas.mjs +1 -0
  253. package/dist/services/compression/index.d.mts +3 -0
  254. package/dist/services/compression/index.mjs +1 -0
  255. package/dist/services/compression/namespace.d.mts +2 -0
  256. package/dist/services/compression/namespace.mjs +1 -0
  257. package/dist/services/compression/schemas.d.mts +2 -0
  258. package/dist/services/compression/schemas.mjs +1 -0
  259. package/dist/services/context-rules/index.d.mts +412 -0
  260. package/dist/services/context-rules/index.mjs +1 -0
  261. package/dist/services/credential-change/index.d.mts +17 -0
  262. package/dist/services/credential-change/index.mjs +1 -0
  263. package/dist/services/definition/index.d.mts +2 -0
  264. package/dist/services/definition/index.mjs +1 -0
  265. package/dist/services/definition/namespace.d.mts +71 -0
  266. package/dist/services/definition/namespace.mjs +1 -0
  267. package/dist/services/definition/schemas.d.mts +38 -0
  268. package/dist/services/definition/schemas.mjs +1 -0
  269. package/dist/services/dialog/namespace.d.mts +105 -0
  270. package/dist/services/dialog/namespace.mjs +1 -0
  271. package/dist/services/dialog/schemas.d.mts +109 -0
  272. package/dist/services/dialog/schemas.mjs +1 -0
  273. package/dist/services/execution-target/index.d.mts +4 -0
  274. package/dist/services/execution-target/index.mjs +1 -0
  275. package/dist/services/execution-target/namespace.d.mts +2 -0
  276. package/dist/services/execution-target/namespace.mjs +1 -0
  277. package/dist/services/execution-target/schemas.d.mts +2 -0
  278. package/dist/services/execution-target/schemas.mjs +1 -0
  279. package/dist/services/filesystem/index.d.mts +3 -0
  280. package/dist/services/filesystem/index.mjs +1 -0
  281. package/dist/services/filesystem/namespace.d.mts +432 -0
  282. package/dist/services/filesystem/namespace.mjs +1 -0
  283. package/dist/services/filesystem/schemas.d.mts +240 -0
  284. package/dist/services/filesystem/schemas.mjs +1 -0
  285. package/dist/services/git/namespace.d.mts +1163 -0
  286. package/dist/services/git/namespace.mjs +1 -0
  287. package/dist/services/git/schemas.d.mts +932 -0
  288. package/dist/services/git/schemas.mjs +1 -0
  289. package/dist/services/harness/index.d.mts +861 -0
  290. package/dist/services/harness/index.mjs +1 -0
  291. package/dist/services/harness/storage/schema.d.mts +424 -0
  292. package/dist/services/harness/storage/schema.mjs +1 -0
  293. package/dist/services/index.d.mts +6185 -0
  294. package/dist/services/index.mjs +1 -0
  295. package/dist/services/local-notification/index.d.mts +25 -0
  296. package/dist/services/local-notification/index.mjs +1 -0
  297. package/dist/services/local-notification/namespace.d.mts +73 -0
  298. package/dist/services/local-notification/namespace.mjs +1 -0
  299. package/dist/services/local-notification/schemas.d.mts +88 -0
  300. package/dist/services/local-notification/schemas.mjs +1 -0
  301. package/dist/services/log-import/browser.d.mts +3 -0
  302. package/dist/services/log-import/browser.mjs +1 -0
  303. package/dist/services/log-import/index.d.mts +274 -0
  304. package/dist/services/log-import/index.mjs +2 -0
  305. package/dist/services/log-import/log-import.d.mts +3 -0
  306. package/dist/services/log-import/log-import.mjs +1 -0
  307. package/dist/services/log-import/namespace.d.mts +327 -0
  308. package/dist/services/log-import/namespace.mjs +1 -0
  309. package/dist/services/log-import/schemas.d.mts +217 -0
  310. package/dist/services/log-import/schemas.mjs +1 -0
  311. package/dist/services/model-registry/index.d.mts +2 -0
  312. package/dist/services/model-registry/index.mjs +1 -0
  313. package/dist/services/preferences/index.d.mts +3 -0
  314. package/dist/services/preferences/index.mjs +1 -0
  315. package/dist/services/preferences/schemas.d.mts +2 -0
  316. package/dist/services/preferences/schemas.mjs +1 -0
  317. package/dist/services/preferences/storage-namespace.d.mts +3 -0
  318. package/dist/services/preferences/storage-namespace.mjs +1 -0
  319. package/dist/services/provider-context/index.d.mts +2 -0
  320. package/dist/services/provider-context/index.mjs +1 -0
  321. package/dist/services/provider-runtime/index.d.mts +136 -0
  322. package/dist/services/provider-runtime/index.mjs +1 -0
  323. package/dist/services/session/handlers/index.d.mts +2 -0
  324. package/dist/services/session/handlers/index.mjs +1 -0
  325. package/dist/services/session/index.d.mts +10 -0
  326. package/dist/services/session/index.mjs +1 -0
  327. package/dist/services/session/messages/namespace.d.mts +2 -0
  328. package/dist/services/session/messages/namespace.mjs +1 -0
  329. package/dist/services/session/orchestrator-testing/index.d.mts +2 -0
  330. package/dist/services/session/orchestrator-testing/index.mjs +1 -0
  331. package/dist/services/session/session-events/namespace.d.mts +2 -0
  332. package/dist/services/session/session-events/namespace.mjs +1 -0
  333. package/dist/services/session/storage/namespace.d.mts +2 -0
  334. package/dist/services/session/storage/namespace.mjs +1 -0
  335. package/dist/services/session/storage/schema.d.mts +2 -0
  336. package/dist/services/session/storage/schema.mjs +1 -0
  337. package/dist/services/session/testing/index.d.mts +35 -0
  338. package/dist/services/session/testing/index.mjs +65 -0
  339. package/dist/services/session/testing/orchestrator-shared.d.mts +2 -0
  340. package/dist/services/session/testing/orchestrator-shared.mjs +1 -0
  341. package/dist/services/session/turns/namespace.d.mts +2 -0
  342. package/dist/services/session/turns/namespace.mjs +1 -0
  343. package/dist/services/session-editor/index.d.mts +119 -0
  344. package/dist/services/session-editor/index.mjs +1 -0
  345. package/dist/services/settings/index.d.mts +47 -0
  346. package/dist/services/settings/index.mjs +1 -0
  347. package/dist/services/settings/namespace.d.mts +663 -0
  348. package/dist/services/settings/namespace.mjs +1 -0
  349. package/dist/services/settings/storage/clients-namespace.d.mts +2 -0
  350. package/dist/services/settings/storage/clients-namespace.mjs +1 -0
  351. package/dist/services/settings/storage/extension-configs/namespace.d.mts +184 -0
  352. package/dist/services/settings/storage/extension-configs/namespace.mjs +1 -0
  353. package/dist/services/settings/storage/index.d.mts +4 -0
  354. package/dist/services/settings/storage/index.mjs +1 -0
  355. package/dist/services/settings/storage/providers-namespace.d.mts +2 -0
  356. package/dist/services/settings/storage/providers-namespace.mjs +1 -0
  357. package/dist/services/subagent/index.d.mts +2 -0
  358. package/dist/services/subagent/index.mjs +1 -0
  359. package/dist/services/subagent-template/index.d.mts +3 -0
  360. package/dist/services/subagent-template/index.mjs +1 -0
  361. package/dist/services/subagent-template/namespace.d.mts +2 -0
  362. package/dist/services/subagent-template/namespace.mjs +1 -0
  363. package/dist/services/subagent-template/schemas.d.mts +2 -0
  364. package/dist/services/subagent-template/schemas.mjs +1 -0
  365. package/dist/services/tool-approval/index.d.mts +2 -0
  366. package/dist/services/tool-approval/index.mjs +1 -0
  367. package/dist/services/tools/index.d.mts +2 -0
  368. package/dist/services/tools/index.mjs +1 -0
  369. package/dist/services/tray-menu/index.d.mts +4 -0
  370. package/dist/services/tray-menu/index.mjs +1 -0
  371. package/dist/services/tray-menu/namespace.d.mts +2 -0
  372. package/dist/services/tray-menu/namespace.mjs +1 -0
  373. package/dist/services/tray-menu/schemas.d.mts +2 -0
  374. package/dist/services/tray-menu/schemas.mjs +1 -0
  375. package/dist/services/turn/index.d.mts +2 -0
  376. package/dist/services/turn/index.mjs +1 -0
  377. package/dist/services/turn/namespace.d.mts +2 -0
  378. package/dist/services/turn/namespace.mjs +1 -0
  379. package/dist/services/turn/schemas.d.mts +335 -0
  380. package/dist/services/turn/schemas.mjs +1 -0
  381. package/dist/session-BoldSdNZ2.mjs +134 -0
  382. package/dist/session-DuVOYctZ.mjs +1 -0
  383. package/dist/session-lineage-CRsc9g1x.d.mts +65 -0
  384. package/dist/shared-DpOEfD8F.mjs +1 -0
  385. package/dist/shared-schemas-CPShiLNp.mjs +1 -0
  386. package/dist/skill-CQO4mDqK.mjs +1 -0
  387. package/dist/storage/drizzle/client.d.mts +78 -0
  388. package/dist/storage/drizzle/client.mjs +1 -0
  389. package/dist/storage/drizzle/index.d.mts +137 -0
  390. package/dist/storage/drizzle/index.mjs +1 -0
  391. package/dist/storage/handlers/drizzle/index.d.mts +2 -0
  392. package/dist/storage/handlers/drizzle/index.mjs +1 -0
  393. package/dist/storage/handlers/index.d.mts +33 -0
  394. package/dist/storage/handlers/index.mjs +1 -0
  395. package/dist/storage/index.d.mts +192 -0
  396. package/dist/storage/index.mjs +1 -0
  397. package/dist/storage-namespace-BXkoh5Sy.d.mts +221 -0
  398. package/dist/storage-namespace-DWsYLAXa.mjs +1 -0
  399. package/dist/storage-namespace-definition-Bkx5rSto.d.mts +17 -0
  400. package/dist/storage-namespace-definition-CqSdsuCC.mjs +1 -0
  401. package/dist/style.css +3782 -0
  402. package/dist/telemetry-CvdLBWuk.mjs +1 -0
  403. package/dist/testing/drizzle-harness.d.mts +130 -0
  404. package/dist/testing/drizzle-harness.mjs +1 -0
  405. package/dist/testing/index.d.mts +106 -0
  406. package/dist/testing/index.mjs +1 -0
  407. package/dist/timeout-XsYIOKrc.mjs +1 -0
  408. package/dist/tool-approval-service-BvZWhYZp.mjs +1 -0
  409. package/dist/tools/index.d.mts +835 -0
  410. package/dist/tools/index.mjs +1 -0
  411. package/dist/tools/testing/index.d.mts +53 -0
  412. package/dist/tools/testing/index.mjs +1 -0
  413. package/dist/tools-D-luYcDw.mjs +1431 -0
  414. package/dist/tray-menu-service-DuXq5k22.mjs +1 -0
  415. package/dist/types-BCMUtBj1.d.mts +1106 -0
  416. package/dist/types-C2Ob9zz_.d.mts +128 -0
  417. package/dist/types-CCdqjeuH.d.mts +262 -0
  418. package/dist/types-DZHvOc_Q.d.mts +305 -0
  419. package/dist/types-Dy3YTcTF.d.mts +6777 -0
  420. package/dist/types-MfJZ67e9.d.mts +315 -0
  421. package/dist/types-dyP-bXXE.d.mts +31 -0
  422. package/dist/ui-components/index.d.mts +2342 -0
  423. package/dist/ui-components/index.mjs +8 -0
  424. package/dist/ui-config-9bDRwFZr.mjs +1 -0
  425. package/dist/ui-hooks/index.d.mts +1915 -0
  426. package/dist/ui-hooks/index.mjs +1 -0
  427. package/dist/ui-kernel/index.d.mts +2793 -0
  428. package/dist/ui-kernel/index.mjs +1 -0
  429. package/dist/ui-kernel/pages/namespace.d.mts +88 -0
  430. package/dist/ui-kernel/pages/namespace.mjs +1 -0
  431. package/dist/ui-kernel/pages/schemas.d.mts +2 -0
  432. package/dist/ui-kernel/pages/schemas.mjs +1 -0
  433. package/dist/ui-views/index.d.mts +487 -0
  434. package/dist/ui-views/index.mjs +30 -0
  435. package/dist/utils/health-probe.d.mts +26 -0
  436. package/dist/utils/health-probe.mjs +1 -0
  437. package/dist/utils/index.d.mts +262 -0
  438. package/dist/utils/index.mjs +2 -0
  439. package/dist/utils/keychain.d.mts +31 -0
  440. package/dist/utils/keychain.mjs +1 -0
  441. package/dist/utils/project-manifest.d.mts +130 -0
  442. package/dist/utils/project-manifest.mjs +1 -0
  443. package/dist/utils/resolve-package-root.d.mts +12 -0
  444. package/dist/utils/resolve-package-root.mjs +1 -0
  445. package/dist/utils/scope-paths.d.mts +33 -0
  446. package/dist/utils/scope-paths.mjs +1 -0
  447. package/dist/utils/workspace-packages.d.mts +59 -0
  448. package/dist/utils/workspace-packages.mjs +1 -0
  449. package/dist/utils/workspace-root.d.mts +24 -0
  450. package/dist/utils/workspace-root.mjs +2 -0
  451. package/dist/variant-CT6XBP6T.mjs +1 -0
  452. package/dist/version-BeT3ASEe.mjs +1 -0
  453. package/dist/visibility-Cb62p9bv.mjs +1 -0
  454. package/dist/window-registry-CBcrGTv4.d.mts +130 -0
  455. package/dist/window-registry-DW-dKRjQ.mjs +1 -0
  456. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ import{z as e}from"zod";import*as t from"node:fs/promises";import*as n from"node:path";import{randomUUID as r}from"node:crypto";import{createBusNamespace as i}from"@makaio/framework/core";import{MakaioBus as a}from"@makaio/framework/bus";import{extensionToken as o,isUniversalRange as s,versionSatisfies as c}from"@makaio/framework/contracts";import{BaseService as l}from"@makaio/framework/service-base";import{index as u,integer as d,sqliteTable as f,text as p,unique as m,uniqueIndex as h}from"drizzle-orm/sqlite-core";import{and as g,eq as _,gt as ee,sql as te}from"drizzle-orm";import{didAffectRows as ne,executeTransaction as v,registerDrizzleHandlers as re}from"@makaio/framework/storage/drizzle";import{ClientProfileNameSchema as y,ClientProfileSchema as ie,ClientSubjects as ae,ClientSubjects as b,ClientWiringEntrySchema as x,ManagedInstallDescriptorSchema as oe,SessionConfigIdSchema as se}from"@makaio/framework/contracts/client";import*as S from"node:os";import{CLIDetectionSubjects as ce}from"@makaio/framework/services/cli-detection/namespace";import{ClientStorageSubjects as le}from"@makaio/framework/services/settings/storage";import{SessionSubjects as ue}from"@makaio/framework/contracts/session";async function de(e,t,n,r,i){let a,o=(n.get(e)??Promise.resolve()).then(async()=>{let n=await i(r(await fe(e,t)));n.changed&&await pe(e,n.content),a=n.result}),s=o.then(()=>void 0,()=>void 0);n.set(e,s);try{await o}finally{n.get(e)===s&&n.delete(e)}return a}async function fe(e,n){let r;try{r=await t.readFile(e,`utf-8`)}catch(e){if(e.code===`ENOENT`)return n;throw e}return JSON.parse(r)}async function pe(e,i){let a=n.dirname(e),o=n.join(a,`${n.basename(e)}.${r()}.tmp`);await t.mkdir(a,{recursive:!0});try{await t.writeFile(o,`${JSON.stringify(i,null,2)}\n`,`utf-8`),await t.rename(o,e)}catch(e){throw await t.unlink(o).catch(()=>void 0),e}}var me=class e extends Error{code=`BINARY_NOT_FOUND`;constructor(t){super(`client.resolveBinary: no binary found for client '${t}' — install a managed version or ensure the binary is on PATH`),this.name=`BinaryNotFoundError`,Error.captureStackTrace?.(this,e)}},he=class{nextAccountSequence=1;accountIdsByIdentifier=new Map;accounts=new Map;upsertAccount(e){let t=_e(e.displayLabel),n=new Map;for(let t of e.identifiers)n.set(ge(e.clientId,t.scheme,t.value),t);let r=ve(n,this.accountIdsByIdentifier,`strong`),i=ve(n,this.accountIdsByIdentifier,`alias`),a=r[0]??(i.length===1?i[0]:i.length>1?ye(i):this.createAccount()),o=(r.length>0?xe(a,r,i):[]).flatMap(e=>this.mergeInto(a,e)),s=this.accounts.get(a);if(!s)throw Error(`Client account registry invariant violated: missing account ${a}`);for(let[e,t]of n){let n=this.accountIdsByIdentifier.get(e);r.length===0&&t.strength===`alias`&&n!==void 0&&n!==a||(s.identifiers.set(e,t),this.accountIdsByIdentifier.set(e,a))}return t!==void 0&&(s.displayLabel=t),{clientAccountId:a,displayLabel:s.displayLabel,mergedAccountIds:o}}clear(){this.accountIdsByIdentifier.clear(),this.accounts.clear(),this.nextAccountSequence=1}createAccount(){let e=`client-account-${this.nextAccountSequence}`;return this.nextAccountSequence+=1,this.accounts.set(e,{clientAccountId:e,identifiers:new Map}),e}mergeInto(e,t){if(e===t)return[];let n=this.accounts.get(e),r=this.accounts.get(t);if(!n||!r)return[];for(let[t,i]of r.identifiers)n.identifiers.set(t,i),this.accountIdsByIdentifier.set(t,e);return n.displayLabel===void 0&&r.displayLabel!==void 0&&(n.displayLabel=r.displayLabel),this.accounts.delete(t),[t]}};function ge(e,t,n){return`${e}\u0000${t}\u0000${n}`}function _e(e){return e?.trim()||void 0}function ve(e,t,n){let r=new Set;for(let[i,a]of e){if(a.strength!==n)continue;let e=t.get(i);e!==void 0&&r.add(e)}return Array.from(r).sort(C)}function ye(e){return[...e].sort(C)[0]}function C(e,t){let n=be(e),r=be(t);return n!==null&&r!==null&&n!==r?n-r:e.localeCompare(t)}function be(e){let t=e.match(/^client-account-(\d+)$/);return t?Number(t[1]):null}function xe(e,t,n){let r=new Set([...t,...n]);return r.delete(e),Array.from(r).sort(C)}function Se(e){return{subject:`config.prime`,$meta:{namespace:`client:${e}`,isRequest:!0,local:!1,channel:!1}}}async function w(e,t){let n=await e.requestOptional(Se(t.clientId),t);return n.handled?n.data:{primed:!1}}function Ce(){let e=e=>async()=>{throw Error(`StrategyDependencies.${e} is not implemented`)};return{fetchText:e(`fetchText`),fetchJson:e(`fetchJson`),downloadFile:e(`downloadFile`),exec:e(`exec`),extractArchive:e(`extractArchive`),deleteFile:e(`deleteFile`),computeChecksum:e(`computeChecksum`),removeDirectory:e(`removeDirectory`)}}var we=class{resolveInstallVersion(e,t,n){let r=t.version;if(n===void 0)return{version:r,explicit:!1};let i=n.trim();if(i.length===0)throw Error(`Explicit version returned an empty version string`);if(i!==r)throw Error(`client.install: requested version ${i} for client '${e}' does not match pinned version ${r}`);return{version:i,explicit:!0}}};function Te(e){if(e!==void 0)return(t,n)=>{n!==null&&n>0?e(`downloading`,t/n*100):e(`downloading`,null)}}var Ee=class{#e;#t;constructor(e,t){this.#e=e,this.#t=t}async execute(e,t,n){if(e!==this.#e.version)throw Error(`npm managed install requested version ${e} but descriptor pins ${this.#e.version}`);n?.(`installing`,null);let r=`${this.#e.package}@${this.#e.version}`;return await this.#t.exec(`npm`,[`install`,r,`--prefix`,t,`--no-save`,`--ignore-scripts`]),n?.(`installing`,100),{installPath:t,version:this.#e.version,strategy:`npm`}}};function De(){if(process.platform!==`linux`)return!1;try{let e=process.report?.getReport?.();if(typeof e!=`object`||!e||!(`header`in e))return!0;let{header:t}=e;return typeof t!=`object`||!t?!0:!(`glibcVersionRuntime`in t)}catch{return!1}}function Oe(e){return e.replace(/[^0-9a-fA-F]/g,``).toUpperCase()}function T(e,t,n,r){let i=e.replaceAll(`{version}`,t);return n!==void 0&&(i=i.replaceAll(`{platform}`,n)),r!==void 0&&(i=i.replaceAll(`{binary}`,r)),i}function ke(e){let t=`${e.platform}-${e.arch}`;return e.platform===`linux`&&e.isMusl?`${t}-musl`:t}function Ae(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Signed manifest must be a JSON object`);let n=e,r=n.version;if(r!==t)throw Error(`Signed manifest version ${String(r)} does not match descriptor pin ${t}`);let i=n.platforms;if(typeof i!=`object`||!i||Array.isArray(i))throw Error(`Signed manifest must contain a platforms object`);return{version:r,platforms:i}}function je(e,t){let n=e.platforms[t];if(typeof n!=`object`||!n||Array.isArray(n))throw Error(`Signed manifest does not contain a platform entry for '${t}'`);let{binary:r,checksum:i}=n;if(typeof r!=`string`||!Me(r))throw Error(`Manifest entry for '${t}' has unsafe binary filename`);if(typeof i!=`string`||i.length===0)throw Error(`Manifest entry for '${t}' is missing a valid 'checksum' field`);return{binary:r,checksum:i}}function Me(e){return e.length>0&&e!==`.`&&e!==`..`&&!e.includes(`/`)&&!e.includes(`\\`)}var Ne=class{#e;#t;#n;constructor(e,t,n){this.#e=e,this.#t=t,this.#n={platform:n?.platform??process.platform,arch:n?.arch??process.arch,isMusl:n?.isMusl??De()}}async execute(e,r,i){if(e!==this.#e.version)throw Error(`signed-binary-bucket managed install requested version ${e} but descriptor pins ${this.#e.version}`);let{config:a}=this.#e,o=ke(this.#n),s=a.platforms[o];if(s===void 0)throw Error(`signed-binary-bucket descriptor has no platform entry for '${o}'. Supported platforms: ${Object.keys(a.platforms).join(`, `)}`);await t.mkdir(r,{recursive:!0});let c=n.join(r,`.gnupg`),l=n.join(r,`signing-key.asc`),u=n.join(r,`manifest.json`),d=n.join(r,`manifest.json.sig`);i?.(`resolving`,null),await this.#r(a,e,l,u,d),i?.(`verifying`,null);let f=await this.#i(a,c,l,u,d,o);i?.(`downloading`,null);let p=T(a.binaryPathTemplate,e,s,f.binary),m=n.resolve(r,f.binary);await this.#t.downloadFile(`${a.baseUrl}/${p}`,m,Te(i)),i?.(`verifying`,null);let h=await this.#t.computeChecksum(m);if(h!==f.checksum)throw Error(`Binary checksum mismatch: expected ${f.checksum} but computed ${h}`);return i?.(`installing`,null),this.#n.platform!==`win32`&&await t.chmod(m,493),await this.#t.removeDirectory(c),await this.#t.deleteFile(l),await this.#t.deleteFile(d),i?.(`installing`,100),{installPath:r,version:this.#e.version,strategy:`signed-binary-bucket`}}async#r(e,n,r,i,a){let o=`${e.baseUrl}/${T(e.manifestPathTemplate,n)}`,s=`${e.baseUrl}/${T(e.manifestSignaturePathTemplate,n)}`,c=await this.#t.fetchText(e.publicKeyUrl);await t.writeFile(r,c,`utf-8`),await this.#t.downloadFile(o,i),await this.#t.downloadFile(s,a)}async#i(e,n,r,i,a,o){await t.mkdir(n,{recursive:!0,mode:448}),await this.#t.exec(`gpg`,[`--homedir`,n,`--import`,r]);let s=await this.#t.exec(`gpg`,[`--homedir`,n,`--with-colons`,`--fingerprint`,`--list-keys`]),c=this.#a(s);if(Oe(c)!==Oe(e.publicKeyFingerprint))throw Error(`GPG key fingerprint mismatch: expected ${e.publicKeyFingerprint} but got ${c}`);await this.#t.exec(`gpg`,[`--homedir`,n,`--verify`,a,i]).catch(e=>{throw Error(`Manifest GPG signature verification failed: ${e.message}`)});let l=await t.readFile(i,`utf-8`);return je(Ae(JSON.parse(l),this.#e.version),o)}#a(e){for(let t of e.split(`
2
+ `)){let e=t.split(`:`);if(e[0]===`fpr`&&e[9]!==void 0&&e[9].length>0)return e[9]}throw Error(`Could not extract GPG key fingerprint from output`)}};function Pe(e,t){let n=oe.safeParse(e);if(n.success)switch(n.data.type){case`npm`:return new Ee(n.data,t);case`signed-binary-bucket`:return new Ne(n.data,t)}}function Fe(e,t){let r=n.relative(e,t);return r!==``&&!r.startsWith(`..${n.sep}`)&&r!==`..`&&!n.isAbsolute(r)}function E(e,t){return!n.isAbsolute(e)||!n.isAbsolute(t)?!1:Fe(n.resolve(e),n.resolve(t))}function D(e,t){if(!e||!n.isAbsolute(e))throw Error(`${t} requires a non-empty absolute basePath`);return n.resolve(e)}async function Ie(e,r,i,a){let[o,...s]=i;if(Re(o))throw Error(`versionCommand[0] must be a relative path; received absolute path "${o}"`);if(o.split(/[/\\]/).includes(`..`))throw Error(`versionCommand[0] must not contain path traversal segments; received "${o}"`);let c=n.normalize(o),l=n.join(r,c),u=await t.realpath(r),d=await t.realpath(l);if(!Fe(u,d))throw Error(`versionCommand[0] must not escape the install directory; "${o}" resolves outside installPath`);let f;try{f=await e(d,s,{cwd:u})}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Version verification failed: command "${l}" exited with an error: ${t}`,{cause:e})}let p=Le(a);if(!ze(f,p))throw Error(`Version mismatch: expected "${a}" but command output was "${f.trim()}"`)}function Le(e){return e[0]===`v`||e[0]===`V`?e.slice(1):e}function Re(e){return e.startsWith(`/`)||/^[A-Za-z]:[/\\]/.test(e)||e.startsWith(`\\`)}function ze(e,t){return(e.match(/[A-Za-z0-9][A-Za-z0-9._+-]*/g)??[]).some(e=>Le(e)===t)}var Be=class{strategyDeps;config;jobs=new Map;#e=!1;resolvedBasePath;constructor(e,t){this.strategyDeps=e,this.config=t,this.resolvedBasePath=D(t.basePath,`ClientBinaryJobRunner`)}startJob(e,t,n,r,i,a,o){let s={...e,status:`running`};return this.jobs.set(e.jobId,s),this.runJob(s,t,n,r,i,a,o),e.jobId}cancelAll(){this.#e=!0,this.jobs.clear()}safeOnProgress(e,t){try{e(t)}catch{}}emitProgressIfActive(e,t){return this.#e?!1:(this.safeOnProgress(e,t),!this.#e)}async runJob(e,t,n,r,i,a,o){try{let s=this.resolveTargetDir(e.clientId,e.version),c=Pe(t,this.strategyDeps);if(c===void 0)throw Error(`Unsupported managed install descriptor type: ${t.type}`);let l=await this.executeStrategy(e,c,s,n);if(this.#e)return;let u;try{if(u=await this.runPostInstall(e,l.installPath,a,n),this.#e)return;o!==void 0&&await this.runVersionVerification(e,l.installPath,o,n)}catch(e){throw this.#e||await this.cleanupStagedArtifact(l.installPath),e}if(this.#e)return;await this.finalizeSuccess(e,l,u,n,r,i)}catch(t){if(this.#e)return;let n=t instanceof Error?t.message:String(t),r=t instanceof Error&&`code`in t?String(t.code):void 0;try{await i({jobId:e.jobId,clientId:e.clientId,version:e.version,strategy:e.strategy,status:`error`,activeVersion:null,error:{message:n,...r===void 0?{}:{code:r}}})}catch{}}finally{this.jobs.delete(e.jobId)}}async finalizeSuccess(e,t,n,r,i,a){if(!(e.makeActive&&!this.emitProgressIfActive(r,{jobId:e.jobId,clientId:e.clientId,version:t.version,strategy:e.strategy,stage:`activating`,progress:null,installPath:t.installPath,activeAfterCompletion:!0}))&&!this.#e){try{await i({jobId:e.jobId,clientId:e.clientId,version:t.version,installPath:t.installPath,makeActive:e.makeActive,reason:e.reason})}catch(e){try{await this.strategyDeps.removeDirectory(t.installPath)}catch{}throw e}if(!this.#e)try{await a({jobId:e.jobId,clientId:e.clientId,version:t.version,strategy:e.strategy,status:`success`,installPath:t.installPath,activeVersion:e.makeActive?t.version:null,...n===void 0?{}:{metadata:{postInstall:n}}})}catch{}}}async cleanupStagedArtifact(e){try{await this.strategyDeps.removeDirectory(e)}catch{}}async executeStrategy(e,t,n,r){try{return await t.execute(e.version,n,(t,i)=>{this.emitProgressIfActive(r,{jobId:e.jobId,clientId:e.clientId,version:e.version,strategy:e.strategy,stage:t,progress:i,installPath:t===`installing`?n:void 0,activeAfterCompletion:e.makeActive})})}catch(e){throw this.#e||await this.cleanupStagedArtifact(n),e}}async runPostInstall(e,t,n,r){if(n===void 0)return;let i=this.resolvePostInstallHandler(n),a=this.buildProgressPayload(e,`post-install`,null,t,{kind:n.kind});if(!this.emitProgressIfActive(r,a))return;let o=await i({clientId:e.clientId,version:e.version,installPath:t,descriptor:n});return this.emitProgressIfActive(r,this.buildProgressPayload(e,`post-install`,100,t,{kind:n.kind,...o??{}})),o??void 0}async runVersionVerification(e,t,n,r){this.emitProgressIfActive(r,this.buildProgressPayload(e,`verifying`,null,t,{kind:`version-command`}))&&(this.#e||await Ie(this.strategyDeps.exec,t,n,e.version))}resolvePostInstallHandler(e){let t=this.config.postInstallHandlers?.get(e.kind);if(t===void 0)throw Error(`No post-install handler registered for kind "${e.kind}"`);return t}buildProgressPayload(e,t,n,r,i){return{jobId:e.jobId,clientId:e.clientId,version:e.version,strategy:e.strategy,stage:t,progress:n,installPath:r,activeAfterCompletion:e.makeActive,...i===void 0?{}:{metadata:i}}}resolveTargetDir(e,t){let r=n.resolve(this.resolvedBasePath,e,t);if(!E(this.resolvedBasePath,r))throw Error(`Invalid install target path for client "${e}" and version "${t}"`);return r}};const O=e.object({id:e.string(),clientId:e.string(),version:e.string(),installPath:e.string(),installedAt:e.number().int().nonnegative(),createdAt:e.number().int().nonnegative()}),k=e.object({clientId:e.string(),activeVersion:e.string().nullable(),updatedAt:e.number().int().nonnegative()}),A=e.object({previousActiveVersion:e.string().nullable(),activeVersion:e.string().nullable()}),j=i(`client-binary:storage`,{insertVersion:{request:O,response:e.object({success:e.boolean()})},recordInstalledVersion:{request:e.object({versionRecord:O,makeActive:e.boolean(),updatedAt:e.number().int().nonnegative()}),response:A},listVersions:{request:e.object({clientId:e.string()}),response:e.object({versions:e.array(O)})},getSnapshot:{request:e.object({clientId:e.string()}),response:e.object({state:k.nullable(),versions:e.array(O)})},loadAllVersions:{request:e.object({}),response:e.object({versions:e.array(O)})},upsertState:{request:k,response:e.object({success:e.boolean()})},setActiveVersion:{request:e.object({clientId:e.string(),activeVersion:e.string().nullable(),updatedAt:e.number().int().nonnegative()}),response:A},getState:{request:e.object({clientId:e.string()}),response:e.object({state:k.nullable()})},loadAllState:{request:e.object({}),response:e.object({states:e.array(k)})},loadSnapshot:{request:e.object({}),response:e.object({states:e.array(k),versions:e.array(O)})},removeVersionAndClearActive:{request:e.object({clientId:e.string(),version:e.string(),updatedAt:e.number().int().nonnegative()}),response:A.extend({removedVersion:e.string().nullable()})}}),M=j.subjects;var N=class{definitions=new Map;constructor(e=[]){for(let t of e)this.registerUnique(t)}getDefinition(e){return this.definitions.get(e)}listDefinitions(){return[...this.definitions.values()]}register(e){this.definitions.set(e.id,e)}registerUnique(e){if(this.definitions.has(e.id))throw Error(`ClientDefinitionRegistry: duplicate client definition id '${e.id}'`);this.definitions.set(e.id,e)}};function P(e,t,n,r,i){if(n===null){if(s(r))return;throw Error(`${e}: ${i} for client '${t}' did not report a version; requires ${r}`)}if(!c(n,r))throw Error(`${e}: ${i} ${n} for client '${t}' does not satisfy ${r}`)}var Ve=class{bus;resolvedBasePath;resolvedConfigBasePath;definitionLookup;constructor(e){this.bus=e.bus,this.resolvedBasePath=e.resolvedBasePath,this.resolvedConfigBasePath=e.resolvedConfigBasePath,this.definitionLookup=e.definitionLookup}async resolve(e){let t=this.definitionLookup.getDefinition(e);if(t===void 0)throw Error(`client.resolveBinary: no definition registered for client '${e}'`);let{state:n,versions:r}=await this.bus.request(M.getSnapshot,{clientId:e}),i=n?.activeVersion??null;return i===null?this.buildGlobalContext(e,t):this.buildManagedContext(e,i,t,r)}isInstallPathWithinBase(e){return E(this.resolvedBasePath,e)}async isExpectedInstallPath(e,r,i){if(!n.isAbsolute(e)||!this.isInstallPathWithinBase(e))return!1;let a=n.resolve(this.resolvedBasePath,r,i);if(!this.isInstallPathWithinBase(a))return!1;try{let[n,r,i]=await Promise.all([t.realpath(this.resolvedBasePath),t.realpath(a),t.realpath(e)]);return E(n,r)?i===r||E(r,i):!1}catch{return!1}}async buildManagedContext(e,t,r,i){let a=i.find(e=>e.version===t);if(a===void 0)throw Error(`client.resolveBinary: active version '${t}' is not installed for client '${e}'`);if(!await this.isExpectedInstallPath(a.installPath,e,t))throw Error(`client.resolveBinary: stored installPath "${a.installPath}" does not match the expected install directory for ${e}@${t}`);r.binary!==void 0&&P(`client.resolveBinary`,e,t,r.binary.supportedVersions,`managed binary version`);let o=F(r.versionCommand)?.[0];if(o===void 0)throw Error(`client.resolveBinary: definition for '${e}' has no versionCommand — cannot derive binary path`);let s=n.resolve(a.installPath,o),c=n.resolve(a.installPath);if(!s.startsWith(c+n.sep)&&s!==c)throw Error(`client.resolveBinary: versionCommand for '${e}' resolves outside the install directory`);let{configDir:l,env:u}=this.resolveIsolatedConfig(e,r);return{binaryPath:s,env:u,configDir:l,source:`managed`,version:t}}async buildGlobalContext(e,t){if(!t.binary?.name)throw Error(`client.resolveBinary: definition for '${e}' has no binary.name — cannot scan PATH`);let n={clientId:e,binaryName:t.binary.name,supportedVersions:t.binary.supportedVersions},{results:r}=await this.bus.request(b.scan,{targets:[n]}),i=r.find(t=>t.clientId===e);if(i===void 0||!i.found)throw new me(e);let a=i.version??null;return P(`client.resolveBinary`,e,a,t.binary.supportedVersions,`detected global binary version`),{binaryPath:null,env:{},configDir:this.resolveGlobalConfigDir(t),source:`global`,version:a}}resolveIsolatedConfig(e,t){let{configIsolation:r}=t;if(r===void 0)return{configDir:null,env:{}};let i=n.join(this.resolvedConfigBasePath,e,`config`),a=r.pathKind===`file`?n.join(i,n.basename(r.defaultPath)):i;return{configDir:i,env:{[r.envVar]:a}}}resolveGlobalConfigDir(e){let{configIsolation:t}=e;if(t===void 0)return null;let r=t.defaultPath,i=r===`~`?S.homedir():r.startsWith(`~/`)?n.join(S.homedir(),r.slice(2)):r,a=t.pathKind===`file`?n.dirname(i):i;if(!n.isAbsolute(a))throw Error(`ConfigIsolation defaultPath for '${e.id}' resolved to non-absolute path '${i}'; use an absolute or tilde-expanded path (e.g. '~/.myapp')`);return a}};function F(e){if(e===void 0)return;let{executable:t,args:n}=e,r=typeof t==`string`?t:t[process.platform]??t.default;if(typeof r!=`string`||r.trim()===``)throw Error(`client.resolveBinary: versionCommand executable is missing for this platform`);return[r,...n]}async function He(e,t){let{versions:n,states:r}=await e.request(M.loadSnapshot,{}),i=Map.groupBy(n,e=>e.clientId),a=new Map;for(let e of r)a.set(e.clientId,e.activeVersion);let o=new Map;for(let e of t.listDefinitions())e.managedInstall!==void 0&&o.set(e.id,e.managedInstall);return[...new Set(o.keys())].map(e=>{let t=o.get(e);if(t===void 0)throw Error(`assembleBinaryList: missing descriptor for client '${e}'`);let n=a.get(e)??null,r=(i.get(e)??[]).map(e=>({version:e.version,installPath:e.installPath,installedAt:e.installedAt,isActive:e.version===n})),s=t.version;return{clientId:e,installedVersions:r,activeVersion:n,pinnedVersion:s,updateAvailable:n!==null&&n!==s}})}var Ue=class extends l{config;definitionLookup;versionResolver;jobRunner;strategyDeps;resolvedBasePath;resolvedConfigBasePath;resolver;pendingClients=new Set;constructor(e=a,t,n=new N([]),r=Ce()){super(e),this.config=t,this.definitionLookup=n,this.resolvedBasePath=D(t.basePath,`ClientBinaryManager`),this.resolvedConfigBasePath=D(t.configBasePath,`ClientBinaryManager configBasePath`),this.strategyDeps=r,this.versionResolver=new we,this.jobRunner=new Be(r,t),this.resolver=new Ve({bus:e,resolvedBasePath:this.resolvedBasePath,resolvedConfigBasePath:this.resolvedConfigBasePath,definitionLookup:n})}async onInit(){this.registerHandler(b.list,async e=>{let t=await this.handleList();e.setResult({clients:t})}),this.registerHandler(b.install,async e=>{let t=await this.handleInstall(e.payload.clientId,e.payload.version);e.setResult(t)}),this.registerHandler(b.update,async e=>{let t=await this.handleUpdate(e.payload.clientId);e.setResult(t)}),this.registerHandler(b.setActive,async e=>{let t=await this.handleSetActive(e.payload.clientId,e.payload.version);e.setResult(t)}),this.registerHandler(b.uninstall,async e=>{let t=await this.handleUninstall(e.payload.clientId,e.payload.version);e.setResult(t)}),this.registerHandler(b.resolveBinary,async e=>{let t=await this.resolver.resolve(e.payload.clientId);e.setResult(t)})}onDestroy(){this.jobRunner.cancelAll(),this.pendingClients.clear()}async handleList(){return He(this.bus,this.definitionLookup)}async handleInstall(e,t){let{definition:n,descriptor:r}=this.requireManagedDefinition(e,`client.install`);return this.withClientLock(e,async()=>{let{version:i}=this.versionResolver.resolveInstallVersion(e,r,t);return n.binary!==void 0&&P(`client.install`,e,i,n.binary.supportedVersions,t===void 0?`resolved binary version`:`requested binary version`),{jobId:this.startInstallJob(e,i,r,n,!1,`install`),requestedVersion:t??null,resolvedVersion:i}})}async handleUpdate(e){let{definition:t,descriptor:n}=this.requireManagedDefinition(e,`client.update`);return this.withClientLock(e,async()=>{let{version:r}=this.versionResolver.resolveInstallVersion(e,n);return t.binary!==void 0&&P(`client.update`,e,r,t.binary.supportedVersions,`resolved binary version`),{jobId:this.startInstallJob(e,r,n,t,!0,`update`),resolvedVersion:r}})}async handleSetActive(e,t){if(this.pendingClients.has(e))throw Error(`Operation already in progress for client "${e}"`);this.pendingClients.add(e);try{let{versions:n}=await this.bus.request(M.listVersions,{clientId:e}),r=n.find(e=>e.version===t);if(r===void 0)throw Error(`client.setActive: version '${t}' is not installed for client '${e}'`);let i=this.definitionLookup.getDefinition(e);if(i===void 0)throw Error(`client.setActive: no definition registered for client '${e}'`);i.binary!==void 0&&P(`client.setActive`,e,t,i.binary.supportedVersions,`requested binary version`);let a=F(i.versionCommand);if(a===void 0)throw Error(`client.setActive: no versionCommand registered for client '${e}'`);if(!await this.resolver.isExpectedInstallPath(r.installPath,e,t))throw Error(`client.setActive: stored installPath "${r.installPath}" does not match the expected install directory for ${e}@${t}`);return await Ie(this.strategyDeps.exec,r.installPath,a,t),await this.patchActiveVersion(e,t,`set-active`),{clientId:e,activeVersion:t}}finally{this.pendingClients.delete(e)}}async handleUninstall(e,t){if(this.pendingClients.has(e))throw Error(`Operation already in progress for client "${e}"`);this.pendingClients.add(e);try{let{versions:r}=await this.bus.request(M.listVersions,{clientId:e}),i=r.find(e=>e.version===t);if(i===void 0)throw Error(`client.uninstall: version '${t}' is not installed for client '${e}'`);let{removedVersion:a,previousActiveVersion:o,activeVersion:s}=await this.bus.request(M.removeVersionAndClearActive,{clientId:e,version:t,updatedAt:Date.now()});if(a===null)throw Error(`client.uninstall: failed to delete version '${t}' for client '${e}'`);let c=i.installPath,l=typeof c==`string`&&c.length>0?n.resolve(c):null;if(typeof c!=`string`||c.length===0||l===null||!n.isAbsolute(c)||!await this.resolver.isExpectedInstallPath(l,e,t)?console.warn(`[ClientBinaryManager] Skipping removeDirectory: stored installPath "${String(c)}" does not match the expected install directory for ${e}@${t}`):await this.strategyDeps.removeDirectory(l).catch(n=>{console.warn(`[ClientBinaryManager] Failed to remove binary directory "${l}" for ${e}@${t}:`,n)}),o!==null&&s===null)try{await this.bus.emit(b.version.changed,{clientId:e,previousActiveVersion:o,activeVersion:null,reason:`uninstall`})}catch(e){console.warn(`[ClientBinaryManager] Failed to emit client.version.changed:`,e)}return{clientId:e,removedVersion:t,activeVersion:s}}finally{this.pendingClients.delete(e)}}async patchActiveVersion(e,t,n){let r=(await this.bus.request(M.setActiveVersion,{clientId:e,activeVersion:t,updatedAt:Date.now()})).previousActiveVersion;if(r!==t)try{await this.bus.emit(b.version.changed,{clientId:e,previousActiveVersion:r,activeVersion:t,reason:n})}catch(e){console.warn(`[ClientBinaryManager] Failed to emit client.version.changed:`,e)}return r}requireManagedDefinition(e,t){let n=this.definitionLookup.getDefinition(e);if(n===void 0)throw Error(`${t}: no definition registered for client '${e}'`);let r=n.managedInstall;if(r===void 0)throw Error(`${t}: client '${e}' does not declare a managed install descriptor`);return{definition:n,descriptor:r}}async withClientLock(e,t){if(this.pendingClients.has(e))throw Error(`Operation already in progress for client "${e}"`);this.pendingClients.add(e);try{return await t()}catch(t){throw this.pendingClients.delete(e),t}}startInstallJob(e,t,n,r,i,a){let o={jobId:crypto.randomUUID(),clientId:e,version:t,strategy:n.type,status:`pending`,makeActive:i,reason:a};return this.jobRunner.startJob(o,n,e=>{this.bus.emit(b.installJob.progress,e).catch(e=>{console.warn(`[ClientBinaryManager] Failed to emit client.installJob.progress:`,e)})},this.makeCompletionCallback(),async e=>{this.pendingClients.delete(e.clientId),await this.bus.emit(b.installJob.completed,e).catch(e=>{console.warn(`[ClientBinaryManager] Failed to emit client.installJob.completed:`,e)})},r.postInstall,F(r.versionCommand)),o.jobId}makeCompletionCallback(){return async({clientId:e,version:t,installPath:n,makeActive:r,reason:i})=>{let a=Date.now();await w(this.bus,{clientId:e,configDir:this.resolveManagedConfigDir(e),phase:`managed-install`,binaryVersion:t});let o=await this.bus.request(M.recordInstalledVersion,{versionRecord:{id:crypto.randomUUID(),clientId:e,version:t,installPath:n,installedAt:a,createdAt:a},makeActive:r,updatedAt:a});if(r&&o.previousActiveVersion!==o.activeVersion)try{await this.bus.emit(b.version.changed,{clientId:e,previousActiveVersion:o.previousActiveVersion,activeVersion:o.activeVersion,reason:i})}catch(e){console.warn(`[ClientBinaryManager] Failed to emit client.version.changed:`,e)}}}resolveManagedConfigDir(e){return n.join(this.resolvedConfigBasePath,e,`config`)}};function I(e,t){return`${e}${t}`}function L(e,t){return`${e}${t}`}var We=class{records=new Map;bySupervisorSessionId=new Map;byPidClientId=new Map;byAdapterSessionClientId=new Map;set(e){let t=this.records.get(e.clientRuntimeId);t&&this.removeIndexEntries(t),this.records.set(e.clientRuntimeId,e),this.addIndexEntries(e)}setFromStorage(e,t,n){this.records.set(e.clientRuntimeId,e),e.supervisorSessionId!==void 0&&this.bySupervisorSessionId.set(e.supervisorSessionId,e.clientRuntimeId),t-e.updatedAt<=n&&(e.pid!==void 0&&this.byPidClientId.set(I(e.pid,e.clientId),e.clientRuntimeId),e.adapterSessionId!==void 0&&this.byAdapterSessionClientId.set(L(e.adapterSessionId,e.clientId),e.clientRuntimeId))}delete(e){let t=this.records.get(e);t&&(this.removeIndexEntries(t),this.records.delete(e))}get(e){return this.records.get(e)}findByEvidence(e,t,n,r){if(e!==void 0){let t=this.bySupervisorSessionId.get(e);if(t!==void 0)return this.records.get(t)}if(t!==void 0){let e=this.byPidClientId.get(I(t,r));if(e!==void 0)return this.records.get(e)}if(n!==void 0){let e=this.byAdapterSessionClientId.get(L(n,r));if(e!==void 0)return this.records.get(e)}}values(){return this.records.values()}clear(){this.records.clear(),this.bySupervisorSessionId.clear(),this.byPidClientId.clear(),this.byAdapterSessionClientId.clear()}get size(){return this.records.size}addIndexEntries(e){e.supervisorSessionId!==void 0&&this.bySupervisorSessionId.set(e.supervisorSessionId,e.clientRuntimeId),e.pid!==void 0&&this.byPidClientId.set(I(e.pid,e.clientId),e.clientRuntimeId),e.adapterSessionId!==void 0&&this.byAdapterSessionClientId.set(L(e.adapterSessionId,e.clientId),e.clientRuntimeId)}removeIndexEntries(e){e.supervisorSessionId!==void 0&&this.bySupervisorSessionId.delete(e.supervisorSessionId),e.pid!==void 0&&this.byPidClientId.delete(I(e.pid,e.clientId)),e.adapterSessionId!==void 0&&this.byAdapterSessionClientId.delete(L(e.adapterSessionId,e.clientId))}};const R=[`observed`,`started`],z=e.object({clientRuntimeId:e.string(),clientId:e.string(),status:e.enum(R),supervisorSessionId:e.string().optional(),pid:e.number().int().positive().optional(),parentPid:e.number().int().positive().optional(),adapterSessionId:e.string().optional(),sessionId:e.string().optional(),cwd:e.string().optional(),argv:e.array(e.string()).optional(),metadata:e.record(e.string(),e.unknown()).optional(),observedAt:e.number().int().nonnegative(),createdAt:e.number().int().nonnegative(),updatedAt:e.number().int().nonnegative()}),B=i(`client-runtime:storage`,{upsert:{request:z,response:e.object({success:e.boolean()})},loadAll:{request:e.object({}),response:e.object({records:e.array(z)})}}),V=B.subjects;function Ge(e){return e.supervisorSessionId!==void 0||e.adapterSessionId!==void 0}function H(e){return{...e,argv:e.argv===void 0?void 0:[...e.argv],metadata:e.metadata===void 0?void 0:structuredClone(e.metadata)}}function Ke(e){return Math.max(Date.now(),e+1)}function qe(e,t){let n=!1;return t.supervisorSessionId!==void 0&&e.supervisorSessionId!==t.supervisorSessionId&&(e.supervisorSessionId=t.supervisorSessionId,n=!0),t.pid!==void 0&&e.pid!==t.pid&&(e.pid=t.pid,n=!0),t.parentPid!==void 0&&e.parentPid!==t.parentPid&&(e.parentPid=t.parentPid,n=!0),t.adapterSessionId!==void 0&&e.adapterSessionId!==t.adapterSessionId&&(e.adapterSessionId=t.adapterSessionId,n=!0),t.sessionId!==void 0&&e.sessionId!==t.sessionId&&(e.sessionId=t.sessionId,n=!0),t.cwd!==void 0&&e.cwd!==t.cwd&&(e.cwd=t.cwd,n=!0),t.argv!==void 0&&JSON.stringify(e.argv)!==JSON.stringify(t.argv)&&(e.argv=[...t.argv],n=!0),t.metadata!==void 0&&JSON.stringify(e.metadata)!==JSON.stringify(t.metadata)&&(e.metadata=structuredClone(t.metadata),n=!0),n}var Je=class{runtimeMap=new We;bus;constructor(e){this.bus=e}async loadFromStorage(){if(!this.bus)return;let e=await this.bus.requestOptional(V.loadAll,{});if(!e.handled)return;let t=Date.now();for(let n of e.data.records)this.runtimeMap.setFromStorage(H(n),t,864e5)}async upsertRuntime(e){let t=this.runtimeMap.findByEvidence(e.supervisorSessionId,e.pid,e.adapterSessionId,e.clientId);if(t){let n=t.status===`observed`,r=n&&Ge(e),i=qe(t,e),a=n&&e.observedAt>t.observedAt;return r&&(t.status=`started`),(i||r||a)&&(t.updatedAt=Ke(t.updatedAt),a&&(t.observedAt=e.observedAt),this.runtimeMap.set(t),await this.persistRecord(t)),{clientRuntimeId:t.clientRuntimeId,created:!1,promoted:r,record:H(t)}}let n=Date.now(),i=r(),a=Ge(e)?`started`:`observed`,o={clientRuntimeId:i,clientId:e.clientId,status:a,supervisorSessionId:e.supervisorSessionId,pid:e.pid,parentPid:e.parentPid,adapterSessionId:e.adapterSessionId,sessionId:e.sessionId,cwd:e.cwd,argv:e.argv?[...e.argv]:void 0,metadata:e.metadata?structuredClone(e.metadata):void 0,observedAt:e.observedAt,createdAt:n,updatedAt:n};return this.runtimeMap.set(o),await this.persistRecord(o),{clientRuntimeId:i,created:!0,promoted:!1,record:H(o)}}getRuntime(e){let t=this.runtimeMap.get(e);return t?H(t):void 0}clear(){this.runtimeMap.clear()}get size(){return this.runtimeMap.size}async persistRecord(e){this.bus&&await this.bus.requestOptional(V.upsert,H(e))}};const Ye=e.object({eventName:e.string(),receivedAt:e.number().int().finite().nonnegative().describe(`Unix epoch timestamp in milliseconds`),payload:e.record(e.string(),e.unknown()),metadata:e.record(e.string(),e.unknown()).optional()}),Xe=/^[a-z0-9-]+$/;function U(e,t=`canonicalizeClientId`){let n=e.trim().toLowerCase(),r=n.startsWith(`client:`)?n.slice(7):n;if(r.length===0)throw Error(`[${t}] clientId must be a non-empty string`);if(!Xe.test(r))throw Error(`[${t}] clientId must contain only lowercase letters, numbers, and hyphens after an optional client: prefix`);return r}function Ze(e){return{subject:`hook.received`,$meta:{namespace:`client:${U(e,`createRawClientHookReceivedSubject`)}`,isRequest:!1,local:!1,channel:!1}}}const Qe=5e3,$e=e.object({exitCode:e.number().int().min(0).max(255).default(0),stdout:e.string().default(``),stderr:e.string().default(``)});function et(e){return{subject:`hook.handle`,$meta:{namespace:`client:${U(e,`createRawClientHookHandleSubject`)}`,isRequest:!0,local:!1,channel:!1}}}function tt(e){if(typeof e!=`string`)return;let t=e.trim();return t.length>0?t:void 0}function nt(e,t){return tt(e[t])}function rt(e){return{clientId:e.clientId,source:`adapter-derived`,observedAt:Date.now(),...e.sessionId!==void 0&&{sessionId:e.sessionId},...e.adapterSessionId!==void 0&&{adapterSessionId:e.adapterSessionId}}}function it(e){try{e().catch(at)}catch(e){at(e)}}function at(e){(process.env.DEBUG||process.env.MAKAIO_DEBUG)&&console.debug(`[emitBestEffort] observed-semantics emission failed`,e)}function ot(e,t){return{subject:t,$meta:{namespace:`client:${U(e,`createClientWiringSubjectDef`)}`,isRequest:!0,local:!1,channel:!1}}}function st(e){return ot(e,`wiring.list`)}const ct=e.string().min(1).refine(n.isAbsolute,{message:`projectDir must be an absolute path`}),lt=e.object({entries:e.array(x)}),ut=e.object({applied:e.number().int().nonnegative(),skipped:e.number().int().nonnegative()}),dt=e.object({removed:e.number().int().nonnegative()}),ft=e.object({clientId:e.string().trim().min(1),entries:e.array(x)});function pt(e){if(e!==void 0&&!n.isAbsolute(e))throw Error(`projectDir must be an absolute path, got: ${e}`)}var mt=class extends l{accountRegistry;runtimeRegistry;latestSnapshots=new Map;activeIdentities=new Map;constructor(e=a,t=new he,n=new Je(e)){super(e),this.accountRegistry=t,this.runtimeRegistry=n}async onInit(){await this.runtimeRegistry.loadFromStorage(),this.registerHandler(b.account.observe,e=>this.handleAccountObserve(e)),this.registerHandler(b.usage.ingest,e=>this.handleUsageIngest(e)),this.registerHandler(b.scan,async e=>{let t=await this.scanClients(e.payload.targets);e.setResult({results:t})}),this.registerHandler(b.runtime.observe,e=>this.handleRuntimeObserve(e)),this.registerHandler(b.wiring.list,async e=>{let t=await this.listWirings(e.payload);e.setResult({results:t})}),this.registerHandler(b.account.activate,e=>{this.activeIdentities.set(e.payload.clientId,{clientAccountId:e.payload.clientAccountId,identifiers:e.payload.identifiers,displayLabel:e.payload.displayLabel}),e.setResult({accepted:!0})}),this.registerHandler(b.account.getActive,e=>{let t=this.activeIdentities.get(e.payload.clientId);e.setResult({identity:t??null})})}onDestroy(){this.latestSnapshots.clear(),this.activeIdentities.clear(),this.accountRegistry.clear(),this.runtimeRegistry.clear()}getLatestSnapshot(e){return this.latestSnapshots.get(e)}async handleAccountObserve(e){let t=this.accountRegistry.upsertAccount({clientId:e.payload.clientId,identifiers:e.payload.identifiers,displayLabel:e.payload.displayLabel}),n=this.latestSnapshots.get(t.clientAccountId),r=_t(this.consolidateMergedSnapshots(t.clientAccountId,t.mergedAccountIds)??n,t.displayLabel);r&&this.latestSnapshots.set(t.clientAccountId,r),r&&(t.mergedAccountIds.length>0||r!==n)&&await this.bus.emit(b.usage.snapshot,r),e.setResult({clientAccountId:t.clientAccountId,displayLabel:t.displayLabel})}async handleUsageIngest(e){let t=this.accountRegistry.upsertAccount({clientId:e.payload.clientId,identifiers:e.payload.account.identifiers,displayLabel:e.payload.account.displayLabel});this.consolidateMergedSnapshots(t.clientAccountId,t.mergedAccountIds);let n=ht(t.clientAccountId,e.payload,t.displayLabel),r=_t(gt(this.latestSnapshots.get(t.clientAccountId),n),t.displayLabel);this.latestSnapshots.set(t.clientAccountId,r),await this.bus.emit(b.usage.snapshot,r),e.setResult({clientAccountId:t.clientAccountId,snapshot:r})}async handleRuntimeObserve(e){let{payload:t}=e;if(t.supervisorSessionId===void 0&&t.pid===void 0&&t.adapterSessionId===void 0)throw Error(`client.runtime.observe: at least one hard-evidence field is required (supervisorSessionId, pid, or adapterSessionId)`);let{record:n,...r}=await this.runtimeRegistry.upsertRuntime(t);(r.created||r.promoted)&&await this.bus.emit(b.runtime.started,{clientRuntimeId:n.clientRuntimeId,clientId:n.clientId,status:n.status,source:t.source,observedAt:t.observedAt,supervisorSessionId:n.supervisorSessionId,pid:n.pid,parentPid:n.parentPid,adapterSessionId:n.adapterSessionId,sessionId:n.sessionId,cwd:n.cwd,argv:n.argv,metadata:n.metadata}),e.setResult({clientRuntimeId:r.clientRuntimeId,created:r.created,promoted:r.promoted})}async scanClients(e){let t=e??await this.listScannableStoredClients();if(t.length===0)return[];let n=Array.from(new Set(t.map(e=>e.binaryName))),{results:r}=await this.bus.request(ce.scan,{binaries:n}),i=new Map(r.map(e=>[e.binary,e]));return t.map(e=>{let t=i.get(e.binaryName),n=t?.found??!1,r=t?.version;return{clientId:e.clientId,found:n,version:r,warningMessage:yt(n,r,e.supportedVersions)}})}async listScannableStoredClients(){let{clients:e}=await this.bus.request(le.list,{});return e.filter(vt).map(e=>({clientId:e.id,binaryName:e.binary.name,supportedVersions:e.binary.supportedVersions}))}async listWirings(e){pt(e.projectDir);let{clients:t}=await this.bus.request(le.list,{}),n=e.clientId===void 0?void 0:U(e.clientId,`listWirings`),r=t.filter(e=>e.enabled).filter(e=>n===void 0||e.id===n),i=await Promise.allSettled(r.map(async t=>{let n=st(t.id),r=await this.bus.requestOptional(n,{projectDir:e.projectDir,makaioCommand:e.makaioCommand});return r.handled?{clientId:t.id,entries:r.data.entries}:null}));for(let e=0;e<i.length;e++){let t=i[e];if(t.status===`rejected`){let n=t.reason instanceof Error?t.reason.message:String(t.reason);console.warn(`[ClientRuntimeService] wiring.list for ${r[e].id} failed: ${n}`)}}return i.filter(e=>e.status===`fulfilled`).map(e=>e.value).filter(e=>e!==null)}consolidateMergedSnapshots(e,t){let n=this.latestSnapshots.get(e),r=!1;for(let i of t){if(i===e)continue;let t=this.latestSnapshots.get(i);t&&(n===void 0||t.observedAt>n.observedAt)&&(n={...t,clientAccountId:e},r=!0),this.latestSnapshots.delete(i)}return n&&this.latestSnapshots.set(e,n),r?n:void 0}};function ht(e,t,n){return{clientAccountId:e,clientId:t.clientId,observedAt:t.observedAt,source:t.source,displayLabel:n,usage:{windows:t.usage.windows.map(e=>({...e}))},metadata:t.metadata?{...t.metadata}:void 0}}function gt(e,t){return e&&e.observedAt>t.observedAt?e:t}function _t(e,t){return!e||t===void 0||e.displayLabel===t?e:{...e,displayLabel:t}}function vt(e){return e.enabled&&e.binary!==void 0}function yt(e,t,n){if(e&&t!==void 0&&t!==`unknown`&&n!==void 0&&!c(t,n))return`Unsupported version: requires ${n}`}var bt=class extends l{constructor(e=a){super(e)}onInit(){this.registerHandler(b.config.prime,async e=>{e.setResult(await w(this.bus,e.payload))})}};const W=ie,G=e.string().trim().min(1),xt=i(`client-profile:storage`,{get:{request:e.object({clientId:G,name:y}),response:e.object({record:W.nullable()})},getById:{request:e.object({id:G}),response:e.object({record:W.nullable()})},list:{request:e.object({clientId:G}),response:e.object({records:e.array(W)})},set:{request:W,response:e.object({success:e.boolean()})},delete:{request:e.object({clientId:G,name:y}),response:e.object({success:e.boolean()})},clearDefault:{request:e.object({clientId:G}),response:e.object({success:e.boolean()})},setDefault:{request:e.object({clientId:G,name:y}),response:e.object({record:W.nullable()})}}),K=xt.subjects;function St(e,t,r){let i=n.resolve(e),a=n.resolve(t),o=n.relative(i,a);if(o!==``&&!o.startsWith(`..`)&&!n.isAbsolute(o))return a;throw Error(`${r} refused to access path outside client profile root`)}var Ct=class extends l{clientsBasePath;constructor(e,t){super(e),this.clientsBasePath=t}async onInit(){this.registerCreateHandler(),this.registerListHandler(),this.registerGetHandler(),this.registerUpdateHandler(),this.registerDeleteHandler(),this.registerSetDefaultHandler()}registerCreateHandler(){this.registerHandler(b.profile.create,async e=>{let i=U(e.payload.clientId,`profile.create`),{name:a,description:o}=e.payload;if((await this.bus.request(K.get,{clientId:i,name:a})).record!==null)throw Error(`Profile '${a}' already exists for client '${i}'`);let s=n.join(this.clientsBasePath,i,`profiles`),c=St(s,n.join(s,a),`profile.create`);await t.mkdir(c,{recursive:!0});try{await w(this.bus,{clientId:i,configDir:c,phase:`profile-create`});let t=Date.now(),n={id:r(),clientId:i,name:a,description:o??null,configDir:c,isDefault:!1,createdAt:t,updatedAt:t};await this.bus.request(K.set,n),e.setResult({profile:n})}catch(e){throw await t.rm(c,{recursive:!0,force:!0}),e}})}registerListHandler(){this.registerHandler(b.profile.list,async e=>{let t=U(e.payload.clientId,`profile.list`),n=await this.bus.request(K.list,{clientId:t});e.setResult({profiles:n.records})})}registerGetHandler(){this.registerHandler(b.profile.get,async e=>{let t=U(e.payload.clientId,`profile.get`),n=await this.bus.request(K.get,{clientId:t,name:e.payload.name});e.setResult({profile:n.record})})}registerUpdateHandler(){this.registerHandler(b.profile.update,async e=>{let t=U(e.payload.clientId,`profile.update`),{name:n,description:r}=e.payload,i=await this.bus.request(K.get,{clientId:t,name:n});if(i.record===null)throw Error(`Profile '${n}' not found for client '${t}'`);let a={...i.record,description:r===void 0?i.record.description:r,updatedAt:Date.now()};await this.bus.request(K.set,a),e.setResult({profile:a})})}registerDeleteHandler(){this.registerHandler(b.profile.delete,async e=>{let r=U(e.payload.clientId,`profile.delete`),{name:i}=e.payload,a=await this.bus.request(K.get,{clientId:r,name:i});a.record!==null&&(St(n.join(this.clientsBasePath,r,`profiles`),a.record.configDir,`profile.delete`),await t.rm(a.record.configDir,{recursive:!0,force:!0}));let o=await this.bus.request(K.delete,{clientId:r,name:i});e.setResult({success:o.success})})}registerSetDefaultHandler(){this.registerHandler(b.profile.setDefault,async e=>{let t=U(e.payload.clientId,`profile.setDefault`),{name:n}=e.payload,r=await this.bus.request(K.setDefault,{clientId:t,name:n});if(r.record===null)throw Error(`Profile '${n}' not found for client '${t}'`);e.setResult({profile:r.record})})}};function wt(e){return{subject:`sessionConfig.setup`,$meta:{namespace:`client:${e}`,isRequest:!0,local:!1,channel:!1}}}function Tt(e){return{subject:`sessionConfig.destroy`,$meta:{namespace:`client:${e}`,isRequest:!0,local:!1,channel:!1}}}const Et=()=>Date.now();function Dt(){let e=S.platform();if(e===`darwin`||e===`linux`||e===`win32`)return e;throw Error(`client.sessionConfig does not support platform '${e}'`)}function Ot(e,t,r){let i=se.safeParse(t);if(!i.success)throw Error(`${r} received an unsafe session ID`);let a=n.resolve(e),o=n.resolve(a,i.data),s=n.relative(a,o);if(s===``||!s.startsWith(`..`)&&!n.isAbsolute(s))return o;throw Error(`${r} refused to access path outside client sessions root`)}var kt=class extends l{clientsBasePath;getNow;constructor(e,t,n=Et){super(e),this.clientsBasePath=t,this.getNow=n}async onInit(){this.registerHandler(b.sessionConfig.create,async e=>{let{clientId:n,sessionId:r,profileName:i,baseConfigDir:a,projectDir:o,configInheritance:s=`full`}=e.payload,c=U(n,`sessionConfig.create`),l=this.resolveClientSessionDir(c,r,`sessionConfig.create`);await t.mkdir(l,{recursive:!0});try{let t=await this.resolveBaseConfigDir(c,l,i,a),n=wt(c),r=await this.bus.requestOptional(n,{sessionDir:l,baseConfigDir:t,projectDir:o,platform:Dt(),configInheritance:s}),u=r.handled?r.data.env??{}:{};await w(this.bus,{clientId:c,configDir:l,phase:`session-create`,projectDir:o}),e.setResult({sessionDir:l,env:u})}catch(e){throw await t.rm(l,{recursive:!0,force:!0}),e}}),this.registerHandler(b.sessionConfig.destroy,async e=>{let{clientId:t,sessionId:n}=e.payload,r=U(t,`sessionConfig.destroy`),i=this.resolveClientSessionDir(r,n,`sessionConfig.destroy`);await this.destroyClientSessionDir(r,i),e.setResult({success:!0})}),this.registerHandler(b.sessionConfig.cleanup,async e=>{let{clientId:t}=e.payload,n=t===void 0?void 0:U(t,`sessionConfig.cleanup`),r=await this.cleanupOrphanedDirs(n);e.setResult({removed:r})}),this.registerHandler(ue.closed,async e=>{await this.destroySessionDirsForSessionId(e.payload.sessionId)}),await this.cleanupOrphanedDirs()}async resolveBaseConfigDir(e,t,n,r){if(r!==void 0)return r;if(n!==void 0){let t=await this.bus.request(K.get,{clientId:e,name:n});if(t.record!==null)return t.record.configDir;throw Error(`Profile '${n}' not found for client '${e}'`)}let i=(await this.bus.request(K.list,{clientId:e})).records.find(e=>e.isDefault);return i?i.configDir:t}async cleanupOrphanedDirs(e){let r=[],i=this.getNow(),a=e===void 0?await this.listClientIds():[e];return await Promise.all(a.map(async e=>{let a=n.join(this.clientsBasePath,e,`sessions`),o=await t.readdir(a).catch(()=>[]);await Promise.all(o.map(async n=>{try{let o=Ot(a,n,`sessionConfig.cleanup`),s=await t.stat(o),c=s.birthtimeMs>0?s.birthtimeMs:s.ctimeMs;s.isDirectory()&&i-c>36e5&&!await this.isActiveSession(n)&&(await this.destroyClientSessionDir(e,o),r.push(o))}catch{}}))})),r}async destroySessionDirsForSessionId(e){if(!se.safeParse(e).success)return;let t=await this.listClientIds();await Promise.all(t.map(async t=>{let n=this.resolveClientSessionDir(t,e,`session.closed`);await this.destroyClientSessionDir(t,n)}))}async destroyClientSessionDir(e,n){await t.stat(n).then(e=>e.isDirectory(),e=>{let t=e.code;if(t===`ENOENT`||t===`ENOTDIR`)return!1;throw e})&&(await this.bus.requestOptional(Tt(e),{sessionDir:n,platform:Dt()}),await t.rm(n,{recursive:!0,force:!0}))}async isActiveSession(e){let t=await this.bus.requestOptional(ue.get,{sessionId:e});return t.handled&&t.data.session?.status===`active`}resolveClientSessionDir(e,t,r){return Ot(n.join(this.clientsBasePath,e,`sessions`),t,r)}async listClientIds(){return(await t.readdir(this.clientsBasePath,{withFileTypes:!0}).catch(()=>[])).filter(e=>e.isDirectory()).map(e=>e.name)}};const At=new Set([`hook.received`,`hook.handle`]);function jt(e,t){return a.registerNamespace(i(`client:${e}`,{"hook.received":Ye,"hook.handle":{request:Ye,response:$e},...t})).subjects}function Mt(e,t){let n=Object.keys(t).filter(e=>At.has(e));if(n.length===0)return;let r=n.join(`, `);throw Error([`[createClientNamespace] additionalSchemas for client:${e}`,`cannot override reserved shared hook subjects: ${r}`].join(` `))}function Nt(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n||!(e in n))return!1;n=n[e]}return!0}function Pt(e,t,n){let r=Object.keys(n).filter(e=>!Nt(t,e));if(r.length!==0)throw Error(`[createClientNamespace] client:${e} was already registered without required subjects: ${r.join(`, `)}`)}function Ft(e,t){let n=U(e,`createClientNamespace`),r=t??{};Mt(n,r);let i=jt(n,r);return Pt(n,i,r),{namespaceDomain:`client:${n}`,subjects:i}}const q=f(`client_runtimes`,{id:p(`id`).primaryKey(),clientId:p(`client_id`).notNull(),status:p(`status`).notNull(),supervisorSessionId:p(`supervisor_session_id`),pid:d(`pid`),parentPid:d(`parent_pid`),adapterSessionId:p(`adapter_session_id`),sessionId:p(`session_id`),cwd:p(`cwd`),argv:p(`argv`,{mode:`json`}).$type(),metadata:p(`metadata`,{mode:`json`}).$type(),observedAt:d(`observed_at`).notNull(),createdAt:d(`created_at`).notNull(),updatedAt:d(`updated_at`).notNull()},e=>[u(`idx_client_runtimes_supervisor_session_id`).on(e.supervisorSessionId),u(`idx_client_runtimes_pid_client_id`).on(e.pid,e.clientId),u(`idx_client_runtimes_adapter_session_id_client_id`).on(e.adapterSessionId,e.clientId)]),It=new Set(R);function Lt(e){if(!It.has(e.status))throw Error(`Unknown ClientRuntimeStatus in DB: '${e.status}'`);return{clientRuntimeId:e.id,clientId:e.clientId,status:e.status,supervisorSessionId:e.supervisorSessionId??void 0,pid:e.pid??void 0,parentPid:e.parentPid??void 0,adapterSessionId:e.adapterSessionId??void 0,sessionId:e.sessionId??void 0,cwd:e.cwd??void 0,argv:e.argv??void 0,metadata:e.metadata??void 0,observedAt:e.observedAt,createdAt:e.createdAt,updatedAt:e.updatedAt}}function Rt(e,t,n){let r=e.on(V.upsert,async e=>{let n=e.payload,r={clientId:n.clientId,status:n.status,supervisorSessionId:n.supervisorSessionId??null,pid:n.pid??null,parentPid:n.parentPid??null,adapterSessionId:n.adapterSessionId??null,sessionId:n.sessionId??null,cwd:n.cwd??null,argv:n.argv??null,metadata:n.metadata??null,observedAt:n.observedAt,updatedAt:n.updatedAt};await t.insert(q).values({id:n.clientRuntimeId,createdAt:n.createdAt,...r}).onConflictDoUpdate({target:q.id,set:r,setWhere:ee(te`excluded.updated_at`,q.updatedAt)}),e.setResult({success:!0})}),i=e.on(V.loadAll,async e=>{let n=await t.select().from(q);e.setResult({records:n.map(Lt)})});return()=>{r(),i()}}const J=f(`client_binary_versions`,{id:p(`id`).primaryKey(),clientId:p(`client_id`).notNull(),version:p(`version`).notNull(),installPath:p(`install_path`).notNull(),installedAt:d(`installed_at`).notNull(),createdAt:d(`created_at`).notNull()},e=>[m(`uq_client_binary_versions_client_version`).on(e.clientId,e.version)]),Y=f(`client_binary_state`,{clientId:p(`client_id`).primaryKey(),activeVersion:p(`active_version`),updatedAt:d(`updated_at`).notNull()});function X(e){return{id:e.id,clientId:e.clientId,version:e.version,installPath:e.installPath,installedAt:e.installedAt,createdAt:e.createdAt}}function Z(e){return{clientId:e.clientId,activeVersion:e.activeVersion??null,updatedAt:e.updatedAt}}function zt(e){return{id:e.id,clientId:e.clientId,version:e.version,installPath:e.installPath,installedAt:e.installedAt,createdAt:e.createdAt}}async function Bt(e,t){await e.insert(J).values(zt(t)).onConflictDoNothing({target:[J.clientId,J.version]})}function Vt(e,t,n){return{clientId:e,activeVersion:t,updatedAt:n}}async function Ht(e,t,n,r){await e.insert(Y).values(Vt(t,n,r)).onConflictDoUpdate({target:Y.clientId,set:{activeVersion:n,updatedAt:r}})}async function Ut(e,t){await Bt(e,t)}async function Wt(e,t,n,r){return v(e,async e=>{let[i]=await e.select().from(Y).where(_(Y.clientId,t.clientId)).limit(1),a=i?.activeVersion??null;return await Bt(e,t),n?(await Ht(e,t.clientId,t.version,r),{previousActiveVersion:a,activeVersion:t.version}):{previousActiveVersion:a,activeVersion:a}})}async function Gt(e,t){return v(e,async e=>{let[n]=await e.select().from(Y).where(_(Y.clientId,t)).limit(1),r=await e.select().from(J).where(_(J.clientId,t));return{state:n?Z(n):null,versions:r.map(X)}})}async function Kt(e){return v(e,async e=>{let t=await e.select().from(Y),n=await e.select().from(J);return{states:t.map(Z),versions:n.map(X)}})}async function qt(e,t){let n={clientId:t.clientId,activeVersion:t.activeVersion??null,updatedAt:t.updatedAt};await e.insert(Y).values(n).onConflictDoUpdate({target:Y.clientId,set:n})}async function Jt(e,t,n,r){return v(e,async e=>{let[i]=await e.select().from(Y).where(_(Y.clientId,t)).limit(1),a=i?.activeVersion??null;return await Ht(e,t,n,r),{previousActiveVersion:a,activeVersion:n}})}async function Yt(e,t,n,r){return v(e,async e=>{let[i]=await e.select().from(Y).where(_(Y.clientId,t)).limit(1),a=i?.activeVersion??null;if(!ne(await e.delete(J).where(g(_(J.clientId,t),_(J.version,n)))))return{removedVersion:null,previousActiveVersion:a,activeVersion:a};await e.update(Y).set({activeVersion:null,updatedAt:r}).where(g(_(Y.clientId,t),_(Y.activeVersion,n)));let[o]=await e.select().from(Y).where(_(Y.clientId,t)).limit(1);return{removedVersion:n,previousActiveVersion:a,activeVersion:o?.activeVersion??null}})}function Xt(e,t,n){let r=[e.on(M.insertVersion,async e=>{await Ut(t,e.payload),e.setResult({success:!0})}),e.on(M.recordInstalledVersion,async e=>{let{versionRecord:n,makeActive:r,updatedAt:i}=e.payload,a=await Wt(t,n,r,i);e.setResult(a)}),e.on(M.listVersions,async e=>{let n=await t.select().from(J).where(_(J.clientId,e.payload.clientId));e.setResult({versions:n.map(X)})}),e.on(M.getSnapshot,async e=>{let{state:n,versions:r}=await Gt(t,e.payload.clientId);e.setResult({state:n,versions:r})}),e.on(M.loadAllVersions,async e=>{let n=await t.select().from(J);e.setResult({versions:n.map(X)})}),e.on(M.upsertState,async e=>{await qt(t,e.payload),e.setResult({success:!0})}),e.on(M.setActiveVersion,async e=>{let{clientId:n,activeVersion:r,updatedAt:i}=e.payload,a=await Jt(t,n,r,i);e.setResult(a)}),e.on(M.getState,async e=>{let[n]=await t.select().from(Y).where(_(Y.clientId,e.payload.clientId)).limit(1);e.setResult({state:n?Z(n):null})}),e.on(M.loadAllState,async e=>{let n=await t.select().from(Y);e.setResult({states:n.map(Z)})}),e.on(M.loadSnapshot,async e=>{let{states:n,versions:r}=await Kt(t);e.setResult({states:n,versions:r})}),e.on(M.removeVersionAndClearActive,async e=>{let{clientId:n,version:r,updatedAt:i}=e.payload,a=await Yt(t,n,r,i);e.setResult(a)})];return()=>{for(let e of r)e()}}const Q=f(`client_profiles`,{id:p(`id`).primaryKey(),clientId:p(`client_id`).notNull(),name:p(`name`).notNull(),description:p(`description`),configDir:p(`config_dir`).notNull(),isDefault:d(`is_default`,{mode:`boolean`}).notNull().default(!1),createdAt:d(`created_at`).notNull(),updatedAt:d(`updated_at`).notNull()},e=>[h(`uq_client_profiles_client_name`).on(e.clientId,e.name),h(`uq_client_profiles_default`).on(e.clientId).where(te`${e.isDefault} = 1`)]);function $(e){return{id:e.id,clientId:e.clientId,name:e.name,description:e.description??null,configDir:e.configDir,isDefault:e.isDefault,createdAt:e.createdAt,updatedAt:e.updatedAt}}async function Zt(e,t,n){let r=Date.now();return v(e,async e=>{let[i]=await e.select().from(Q).where(g(_(Q.clientId,t),_(Q.name,n))).limit(1);if(i===void 0)return null;await e.update(Q).set({isDefault:!1,updatedAt:r}).where(g(_(Q.clientId,t),_(Q.isDefault,!0))),await e.update(Q).set({isDefault:!0,updatedAt:r}).where(g(_(Q.clientId,t),_(Q.name,n)));let[a]=await e.select().from(Q).where(g(_(Q.clientId,t),_(Q.name,n))).limit(1);return a===void 0?null:$(a)})}function Qt(e,t,n){let r=[e.on(K.get,async e=>{let{clientId:n,name:r}=e.payload,[i]=await t.select().from(Q).where(g(_(Q.clientId,n),_(Q.name,r))).limit(1);e.setResult({record:i?$(i):null})}),e.on(K.getById,async e=>{let[n]=await t.select().from(Q).where(_(Q.id,e.payload.id)).limit(1);e.setResult({record:n?$(n):null})}),e.on(K.list,async e=>{let n=await t.select().from(Q).where(_(Q.clientId,e.payload.clientId));e.setResult({records:n.map($)})}),e.on(K.set,async e=>{let n=e.payload,r={id:n.id,clientId:n.clientId,name:n.name,description:n.description??null,configDir:n.configDir,isDefault:n.isDefault,createdAt:n.createdAt,updatedAt:n.updatedAt};await t.insert(Q).values(r).onConflictDoUpdate({target:Q.id,set:{name:n.name,description:n.description??null,configDir:n.configDir,isDefault:n.isDefault,updatedAt:n.updatedAt}}),e.setResult({success:!0})}),e.on(K.delete,async e=>{let{clientId:n,name:r}=e.payload,i=await t.delete(Q).where(g(_(Q.clientId,n),_(Q.name,r)));e.setResult({success:ne(i)})}),e.on(K.clearDefault,async e=>{await t.update(Q).set({isDefault:!1,updatedAt:Date.now()}).where(g(_(Q.clientId,e.payload.clientId),_(Q.isDefault,!0))),e.setResult({success:!0})}),e.on(K.setDefault,async e=>{let{clientId:n,name:r}=e.payload,i=await Zt(t,n,r);e.setResult({record:i})})];return()=>{for(let e of r)e()}}var $t=class{runtimeService;binaryManager;configPrimeService;profileService;sessionConfigService;constructor(e,t,n,r,i){this.runtimeService=e,this.binaryManager=t,this.configPrimeService=n,this.profileService=r,this.sessionConfigService=i}async init(){let e=(await Promise.allSettled([this.runtimeService.init(),this.binaryManager.init(),this.configPrimeService.init(),this.profileService.init(),this.sessionConfigService.init()])).filter(e=>e.status===`rejected`);if(e.length>0){for(let t=1;t<e.length;t++)console.warn(`[ClientsCoreService] Multiple init failures, secondary:`,e[t].reason);throw e[0].reason}}async destroy(){let e=(await Promise.allSettled([this.runtimeService.destroy(),this.binaryManager.destroy(),this.configPrimeService.destroy(),this.profileService.destroy(),this.sessionConfigService.destroy()])).filter(e=>e.status===`rejected`);for(let t of e)console.warn(`[ClientsCoreService] destroy failure:`,t.reason)}};const en=o(`makaio.clients-core`);function tn(e){let t=[],n=()=>{for(let e of[...t].reverse())e()};try{for(let n of e)t.push(n())}catch(e){throw n(),e}return n}function nn(e={}){let{definitions:t=[],strategyDependencies:r,postInstallHandlers:i}=e,a=[...t];return{name:`makaio.clients-core`,displayName:`Clients Core`,version:`0.1.0`,critical:!0,namespaces:[j,B,xt],storage:{registerHandlers:re((e,t,n)=>tn([()=>Rt(e,t,n),()=>Xt(e,t,n),()=>Qt(e,t,n)]))},create:e=>{let t=new N(a),o=n.join(e.makaioHome,`clients`),s=new Ue(e.bus,{basePath:n.join(e.makaioHome,`binaries`),configBasePath:o,postInstallHandlers:i},t,r),c=new Ct(e.bus,o),l=new kt(e.bus,o);return new $t(new mt(e.bus),s,new bt(e.bus),c,l)}}}async function rn(e){let t=await a.requestOptional(b.resolveBinary,{clientId:e});return t.handled?t.data:void 0}function an(e,t,n){return[...n??[],e,...t].map(cn).join(` `)}function on(e,t,n,r,i){return an(e,[...i??[],...t.split(` `),n],r)}function sn(e){return e.runtimeCapabilities.hookEvents.filter(e=>e.frameworkSubject!==void 0).map(e=>({eventName:e.name,mode:e.mode}))}function cn(e){return/^[A-Za-z0-9_@%+=:,./-]+$/.test(e)?e:`'${e.replaceAll(`'`,`'\\''`)}'`}export{ct as AbsolutePathSchema,me as BinaryNotFoundError,R as CLIENT_RUNTIME_STATUSES,he as ClientAccountRegistry,Be as ClientBinaryJobRunner,Ue as ClientBinaryManager,k as ClientBinaryStateRecordSchema,j as ClientBinaryStorageNamespace,M as ClientBinaryStorageSubjects,O as ClientBinaryVersionRecordSchema,we as ClientBinaryVersionResolver,bt as ClientConfigPrimeService,N as ClientDefinitionRegistry,$e as ClientHookHandleResponseSchema,W as ClientProfileRecordSchema,Ct as ClientProfileService,xt as ClientProfileStorageNamespace,K as ClientProfileStorageSubjects,Je as ClientRuntimeRegistry,mt as ClientRuntimeService,B as ClientRuntimeStorageNamespace,V as ClientRuntimeStorageSubjects,kt as ClientSessionConfigService,ae as ClientSubjects,ft as ClientWiringAggregatedResultSchema,ut as ClientWiringApplyResponseSchema,x as ClientWiringEntrySchema,lt as ClientWiringListResponseSchema,dt as ClientWiringRemoveResponseSchema,$t as ClientsCoreService,en as ClientsCoreToken,Qe as DEFAULT_HOOK_HANDLE_TIMEOUT_MS,Ye as RawClientHookPayloadSchema,z as RuntimeRecordSchema,pt as assertAbsoluteProjectDir,de as atomicModifyFile,an as buildClientCommand,rt as buildClientSessionBase,on as buildHookCommand,U as canonicalizeClientId,Ft as createClientNamespace,st as createClientWiringListSubjectDef,ot as createClientWiringSubjectDef,nn as createClientsCorePackage,et as createRawClientHookHandleSubject,Ze as createRawClientHookReceivedSubject,sn as deriveSessionEventDescriptors,it as emitBestEffort,E as isPathWithinBase,nt as pickNonEmptyString,tt as pickNonEmptyStringValue,tn as registerStorageHandlersWithRollback,D as resolveAndValidateBasePath,rn as resolveClientBinary};
@@ -0,0 +1,332 @@
1
+ import { z } from "zod";
2
+ import * as _$_makaio_core0 from "@makaio/framework/core";
3
+ import * as _$_makaio_storage_core0 from "@makaio/framework/storage";
4
+
5
+ //#region services/core/src/settings/storage/clients-namespace.d.ts
6
+ /**
7
+ * Schema for a client record returned from storage.
8
+ *
9
+ * Mirrors the `clients` table columns with nulls converted to undefined.
10
+ * This is a read-only view — all writes are owned by the client sync service.
11
+ */
12
+ declare const ClientRecordSchema: z.ZodObject<{
13
+ id: z.ZodString;
14
+ packageName: z.ZodString;
15
+ name: z.ZodString;
16
+ description: z.ZodOptional<z.ZodString>;
17
+ binary: z.ZodOptional<z.ZodObject<{
18
+ name: z.ZodString;
19
+ supportedVersions: z.ZodString;
20
+ }, z.core.$strict>>;
21
+ nativeTools: z.ZodArray<z.ZodObject<{
22
+ name: z.ZodString;
23
+ friendlyName: z.ZodString;
24
+ description: z.ZodOptional<z.ZodString>;
25
+ category: z.ZodOptional<z.ZodString>;
26
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodObject<{
27
+ tag: z.ZodString;
28
+ description: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strip>>>;
30
+ }, z.core.$strip>>;
31
+ defaultApprovalPolicy: z.ZodEnum<{
32
+ reject: "reject";
33
+ "always-ask": "always-ask";
34
+ "full-access": "full-access";
35
+ }>;
36
+ logSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
37
+ id: z.ZodString;
38
+ name: z.ZodString;
39
+ description: z.ZodOptional<z.ZodString>;
40
+ glob: z.ZodOptional<z.ZodString>;
41
+ }, z.core.$strip>>>;
42
+ defaultProviderId: z.ZodOptional<z.ZodString>;
43
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
44
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
45
+ cwd: z.ZodOptional<z.ZodString>;
46
+ enabled: z.ZodBoolean;
47
+ createdAt: z.ZodNumber;
48
+ updatedAt: z.ZodNumber;
49
+ }, z.core.$strip>;
50
+ type ClientRecord = z.infer<typeof ClientRecordSchema>;
51
+ /**
52
+ * Storage namespace for system-managed client records.
53
+ *
54
+ * Exposes read-only bus subjects for querying client data.
55
+ * All writes are internal — owned by the client sync service at boot time.
56
+ *
57
+ * - `get`: Retrieve a single client by ID
58
+ * - `list`: Retrieve all clients
59
+ * - `listByBinaryName`: Retrieve all clients that use a given binary name
60
+ */
61
+ declare const ClientStorageNamespace: _$_makaio_storage_core0.StorageNamespaceDefinition<"client", {
62
+ get: {
63
+ request: z.ZodObject<{
64
+ id: z.ZodString;
65
+ }, z.core.$strip>;
66
+ response: z.ZodObject<{
67
+ client: z.ZodNullable<z.ZodObject<{
68
+ id: z.ZodString;
69
+ packageName: z.ZodString;
70
+ name: z.ZodString;
71
+ description: z.ZodOptional<z.ZodString>;
72
+ binary: z.ZodOptional<z.ZodObject<{
73
+ name: z.ZodString;
74
+ supportedVersions: z.ZodString;
75
+ }, z.core.$strict>>;
76
+ nativeTools: z.ZodArray<z.ZodObject<{
77
+ name: z.ZodString;
78
+ friendlyName: z.ZodString;
79
+ description: z.ZodOptional<z.ZodString>;
80
+ category: z.ZodOptional<z.ZodString>;
81
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodObject<{
82
+ tag: z.ZodString;
83
+ description: z.ZodOptional<z.ZodString>;
84
+ }, z.core.$strip>>>;
85
+ }, z.core.$strip>>;
86
+ defaultApprovalPolicy: z.ZodEnum<{
87
+ reject: "reject";
88
+ "always-ask": "always-ask";
89
+ "full-access": "full-access";
90
+ }>;
91
+ logSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
92
+ id: z.ZodString;
93
+ name: z.ZodString;
94
+ description: z.ZodOptional<z.ZodString>;
95
+ glob: z.ZodOptional<z.ZodString>;
96
+ }, z.core.$strip>>>;
97
+ defaultProviderId: z.ZodOptional<z.ZodString>;
98
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
99
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
100
+ cwd: z.ZodOptional<z.ZodString>;
101
+ enabled: z.ZodBoolean;
102
+ createdAt: z.ZodNumber;
103
+ updatedAt: z.ZodNumber;
104
+ }, z.core.$strip>>;
105
+ }, z.core.$strip>;
106
+ };
107
+ list: {
108
+ request: z.ZodObject<{}, z.core.$strip>;
109
+ response: z.ZodObject<{
110
+ clients: z.ZodArray<z.ZodObject<{
111
+ id: z.ZodString;
112
+ packageName: z.ZodString;
113
+ name: z.ZodString;
114
+ description: z.ZodOptional<z.ZodString>;
115
+ binary: z.ZodOptional<z.ZodObject<{
116
+ name: z.ZodString;
117
+ supportedVersions: z.ZodString;
118
+ }, z.core.$strict>>;
119
+ nativeTools: z.ZodArray<z.ZodObject<{
120
+ name: z.ZodString;
121
+ friendlyName: z.ZodString;
122
+ description: z.ZodOptional<z.ZodString>;
123
+ category: z.ZodOptional<z.ZodString>;
124
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodObject<{
125
+ tag: z.ZodString;
126
+ description: z.ZodOptional<z.ZodString>;
127
+ }, z.core.$strip>>>;
128
+ }, z.core.$strip>>;
129
+ defaultApprovalPolicy: z.ZodEnum<{
130
+ reject: "reject";
131
+ "always-ask": "always-ask";
132
+ "full-access": "full-access";
133
+ }>;
134
+ logSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
135
+ id: z.ZodString;
136
+ name: z.ZodString;
137
+ description: z.ZodOptional<z.ZodString>;
138
+ glob: z.ZodOptional<z.ZodString>;
139
+ }, z.core.$strip>>>;
140
+ defaultProviderId: z.ZodOptional<z.ZodString>;
141
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
142
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
143
+ cwd: z.ZodOptional<z.ZodString>;
144
+ enabled: z.ZodBoolean;
145
+ createdAt: z.ZodNumber;
146
+ updatedAt: z.ZodNumber;
147
+ }, z.core.$strip>>;
148
+ }, z.core.$strip>;
149
+ };
150
+ listByBinaryName: {
151
+ request: z.ZodObject<{
152
+ binaryName: z.ZodString;
153
+ }, z.core.$strip>;
154
+ response: z.ZodObject<{
155
+ clients: z.ZodArray<z.ZodObject<{
156
+ id: z.ZodString;
157
+ packageName: z.ZodString;
158
+ name: z.ZodString;
159
+ description: z.ZodOptional<z.ZodString>;
160
+ binary: z.ZodOptional<z.ZodObject<{
161
+ name: z.ZodString;
162
+ supportedVersions: z.ZodString;
163
+ }, z.core.$strict>>;
164
+ nativeTools: z.ZodArray<z.ZodObject<{
165
+ name: z.ZodString;
166
+ friendlyName: z.ZodString;
167
+ description: z.ZodOptional<z.ZodString>;
168
+ category: z.ZodOptional<z.ZodString>;
169
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodObject<{
170
+ tag: z.ZodString;
171
+ description: z.ZodOptional<z.ZodString>;
172
+ }, z.core.$strip>>>;
173
+ }, z.core.$strip>>;
174
+ defaultApprovalPolicy: z.ZodEnum<{
175
+ reject: "reject";
176
+ "always-ask": "always-ask";
177
+ "full-access": "full-access";
178
+ }>;
179
+ logSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
180
+ id: z.ZodString;
181
+ name: z.ZodString;
182
+ description: z.ZodOptional<z.ZodString>;
183
+ glob: z.ZodOptional<z.ZodString>;
184
+ }, z.core.$strip>>>;
185
+ defaultProviderId: z.ZodOptional<z.ZodString>;
186
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
187
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
188
+ cwd: z.ZodOptional<z.ZodString>;
189
+ enabled: z.ZodBoolean;
190
+ createdAt: z.ZodNumber;
191
+ updatedAt: z.ZodNumber;
192
+ }, z.core.$strip>>;
193
+ }, z.core.$strip>;
194
+ };
195
+ }, _$_makaio_storage_core0.StorageNamespaceExtensions>;
196
+ declare const ClientStorageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.FlatSubjectDefinitions<"storage:client", {
197
+ get: {
198
+ request: z.ZodObject<{
199
+ id: z.ZodString;
200
+ }, z.core.$strip>;
201
+ response: z.ZodObject<{
202
+ client: z.ZodNullable<z.ZodObject<{
203
+ id: z.ZodString;
204
+ packageName: z.ZodString;
205
+ name: z.ZodString;
206
+ description: z.ZodOptional<z.ZodString>;
207
+ binary: z.ZodOptional<z.ZodObject<{
208
+ name: z.ZodString;
209
+ supportedVersions: z.ZodString;
210
+ }, z.core.$strict>>;
211
+ nativeTools: z.ZodArray<z.ZodObject<{
212
+ name: z.ZodString;
213
+ friendlyName: z.ZodString;
214
+ description: z.ZodOptional<z.ZodString>;
215
+ category: z.ZodOptional<z.ZodString>;
216
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodObject<{
217
+ tag: z.ZodString;
218
+ description: z.ZodOptional<z.ZodString>;
219
+ }, z.core.$strip>>>;
220
+ }, z.core.$strip>>;
221
+ defaultApprovalPolicy: z.ZodEnum<{
222
+ reject: "reject";
223
+ "always-ask": "always-ask";
224
+ "full-access": "full-access";
225
+ }>;
226
+ logSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
227
+ id: z.ZodString;
228
+ name: z.ZodString;
229
+ description: z.ZodOptional<z.ZodString>;
230
+ glob: z.ZodOptional<z.ZodString>;
231
+ }, z.core.$strip>>>;
232
+ defaultProviderId: z.ZodOptional<z.ZodString>;
233
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
234
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
235
+ cwd: z.ZodOptional<z.ZodString>;
236
+ enabled: z.ZodBoolean;
237
+ createdAt: z.ZodNumber;
238
+ updatedAt: z.ZodNumber;
239
+ }, z.core.$strip>>;
240
+ }, z.core.$strip>;
241
+ };
242
+ list: {
243
+ request: z.ZodObject<{}, z.core.$strip>;
244
+ response: z.ZodObject<{
245
+ clients: z.ZodArray<z.ZodObject<{
246
+ id: z.ZodString;
247
+ packageName: z.ZodString;
248
+ name: z.ZodString;
249
+ description: z.ZodOptional<z.ZodString>;
250
+ binary: z.ZodOptional<z.ZodObject<{
251
+ name: z.ZodString;
252
+ supportedVersions: z.ZodString;
253
+ }, z.core.$strict>>;
254
+ nativeTools: z.ZodArray<z.ZodObject<{
255
+ name: z.ZodString;
256
+ friendlyName: z.ZodString;
257
+ description: z.ZodOptional<z.ZodString>;
258
+ category: z.ZodOptional<z.ZodString>;
259
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodObject<{
260
+ tag: z.ZodString;
261
+ description: z.ZodOptional<z.ZodString>;
262
+ }, z.core.$strip>>>;
263
+ }, z.core.$strip>>;
264
+ defaultApprovalPolicy: z.ZodEnum<{
265
+ reject: "reject";
266
+ "always-ask": "always-ask";
267
+ "full-access": "full-access";
268
+ }>;
269
+ logSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
270
+ id: z.ZodString;
271
+ name: z.ZodString;
272
+ description: z.ZodOptional<z.ZodString>;
273
+ glob: z.ZodOptional<z.ZodString>;
274
+ }, z.core.$strip>>>;
275
+ defaultProviderId: z.ZodOptional<z.ZodString>;
276
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
277
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
278
+ cwd: z.ZodOptional<z.ZodString>;
279
+ enabled: z.ZodBoolean;
280
+ createdAt: z.ZodNumber;
281
+ updatedAt: z.ZodNumber;
282
+ }, z.core.$strip>>;
283
+ }, z.core.$strip>;
284
+ };
285
+ listByBinaryName: {
286
+ request: z.ZodObject<{
287
+ binaryName: z.ZodString;
288
+ }, z.core.$strip>;
289
+ response: z.ZodObject<{
290
+ clients: z.ZodArray<z.ZodObject<{
291
+ id: z.ZodString;
292
+ packageName: z.ZodString;
293
+ name: z.ZodString;
294
+ description: z.ZodOptional<z.ZodString>;
295
+ binary: z.ZodOptional<z.ZodObject<{
296
+ name: z.ZodString;
297
+ supportedVersions: z.ZodString;
298
+ }, z.core.$strict>>;
299
+ nativeTools: z.ZodArray<z.ZodObject<{
300
+ name: z.ZodString;
301
+ friendlyName: z.ZodString;
302
+ description: z.ZodOptional<z.ZodString>;
303
+ category: z.ZodOptional<z.ZodString>;
304
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodObject<{
305
+ tag: z.ZodString;
306
+ description: z.ZodOptional<z.ZodString>;
307
+ }, z.core.$strip>>>;
308
+ }, z.core.$strip>>;
309
+ defaultApprovalPolicy: z.ZodEnum<{
310
+ reject: "reject";
311
+ "always-ask": "always-ask";
312
+ "full-access": "full-access";
313
+ }>;
314
+ logSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
315
+ id: z.ZodString;
316
+ name: z.ZodString;
317
+ description: z.ZodOptional<z.ZodString>;
318
+ glob: z.ZodOptional<z.ZodString>;
319
+ }, z.core.$strip>>>;
320
+ defaultProviderId: z.ZodOptional<z.ZodString>;
321
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
322
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
323
+ cwd: z.ZodOptional<z.ZodString>;
324
+ enabled: z.ZodBoolean;
325
+ createdAt: z.ZodNumber;
326
+ updatedAt: z.ZodNumber;
327
+ }, z.core.$strip>>;
328
+ }, z.core.$strip>;
329
+ };
330
+ }>, "storage:client">;
331
+ //#endregion
332
+ export { ClientStorageSubjects as i, ClientRecordSchema as n, ClientStorageNamespace as r, ClientRecord as t };