@makaio/framework 1.0.0-dev-1781729807808 → 1.0.0-dev-1781884053376

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 (392) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/{account-identity-D-9gunfD.mjs → account-identity-D5TUafYg.mjs} +1 -1
  3. package/dist/adapter-BmdC3QwV.mjs +1 -0
  4. package/dist/adapter-subsystem/index.mjs +1 -1
  5. package/dist/adapters/config/index.d.mts +1 -1
  6. package/dist/adapters/config/index.mjs +1 -1
  7. package/dist/adapters/index.d.mts +2 -2
  8. package/dist/adapters/index.mjs +1 -1
  9. package/dist/adapters/node.d.mts +1 -1
  10. package/dist/adapters/node.mjs +1 -1
  11. package/dist/await-trigger-DwVldnMt.mjs +1 -0
  12. package/dist/bus/index.d.mts +20 -20
  13. package/dist/bus/index.mjs +1 -1
  14. package/dist/canonical-model-BM5WAnQW.mjs +1 -0
  15. package/dist/{client-D24ebgGH.mjs → client-BO-0jTSV.mjs} +1 -1
  16. package/dist/clients/index.mjs +1 -1
  17. package/dist/compression-CXEHx0rS.mjs +1 -0
  18. package/dist/contracts/adapter/index.d.mts +2 -2
  19. package/dist/contracts/adapter/index.mjs +1 -1
  20. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  21. package/dist/contracts/artifact/index.d.mts +1 -1
  22. package/dist/contracts/canonical-model/index.d.mts +1 -1
  23. package/dist/contracts/canonical-model/index.mjs +1 -1
  24. package/dist/contracts/client/index.d.mts +2 -2
  25. package/dist/contracts/client/index.mjs +1 -1
  26. package/dist/contracts/common/index.d.mts +1 -1
  27. package/dist/contracts/config/index.d.mts +7 -7
  28. package/dist/contracts/config/index.mjs +1 -1
  29. package/dist/contracts/extension/index.d.mts +3 -3
  30. package/dist/contracts/extension/index.mjs +1 -1
  31. package/dist/contracts/facet/index.d.mts +1 -1
  32. package/dist/contracts/facet/index.mjs +1 -1
  33. package/dist/contracts/harness/index.d.mts +1 -1
  34. package/dist/contracts/harness/index.mjs +1 -1
  35. package/dist/contracts/host/index.d.mts +1 -1
  36. package/dist/contracts/host/index.mjs +1 -1
  37. package/dist/contracts/index.d.mts +202 -9904
  38. package/dist/contracts/index.mjs +1 -1
  39. package/dist/contracts/materialization/index.d.mts +3 -3
  40. package/dist/contracts/materialization/index.mjs +1 -1
  41. package/dist/contracts/model-registry/index.d.mts +1 -1
  42. package/dist/contracts/model-registry/index.mjs +1 -1
  43. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  44. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  45. package/dist/contracts/platform/index.d.mts +1 -1
  46. package/dist/contracts/platform/index.mjs +1 -1
  47. package/dist/contracts/provider/index.d.mts +2 -2
  48. package/dist/contracts/session/index.d.mts +2 -2
  49. package/dist/contracts/session/index.mjs +1 -1
  50. package/dist/contracts/shared/index.d.mts +2 -1
  51. package/dist/contracts/skill/index.d.mts +1 -1
  52. package/dist/contracts/skill/index.mjs +1 -1
  53. package/dist/contracts/telemetry/index.d.mts +1 -1
  54. package/dist/contracts/telemetry/index.mjs +1 -1
  55. package/dist/contracts/timeout/index.d.mts +1 -1
  56. package/dist/contracts/toast/index.mjs +1 -1
  57. package/dist/contracts/variant/index.d.mts +1 -1
  58. package/dist/contracts/variant/index.mjs +1 -1
  59. package/dist/contracts/workflow/index.d.mts +3 -0
  60. package/dist/contracts/workflow/index.mjs +1 -0
  61. package/dist/{definition-CZcVOhXZ.d.mts → definition-D_3U4OLJ.d.mts} +1 -1
  62. package/dist/{detached-extension-handle-BYxNmLfv.mjs → detached-extension-handle-Cx6-0eqg.mjs} +1 -1
  63. package/dist/{extension-CTkoi8MV.mjs → extension-BJHRahFl.mjs} +1 -1
  64. package/dist/{extension-CkU_hqra.mjs → extension-CfL70C5n.mjs} +1 -1
  65. package/dist/{filesystem-service-T8JOIWeP.mjs → filesystem-service-Bmyqo6po.mjs} +1 -1
  66. package/dist/git/index.mjs +1 -1
  67. package/dist/{globby-Bos1vjKj.mjs → globby-D4SANVoq.mjs} +1 -1
  68. package/dist/{handlers-dnpT_hsm.mjs → handlers-BAycjV02.mjs} +1 -1
  69. package/dist/{harness-HEpELa_v.mjs → harness-DkUpbsuY.mjs} +1 -1
  70. package/dist/{index-HiAth5G0.d.mts → index--diIlm1t.d.mts} +42 -42
  71. package/dist/{index-Cy75lJ1O.d.mts → index-BUrNl0QJ.d.mts} +16 -16
  72. package/dist/{index-XcnFGiKL.d.mts → index-BvjLe_w9.d.mts} +8 -8
  73. package/dist/{index-WWYQEH0q.d.mts → index-BwZpSUql.d.mts} +16 -16
  74. package/dist/{index-Dn73XrXA.d.mts → index-CBN898N1.d.mts} +13 -460
  75. package/dist/{index-xeg-bqxO.d.mts → index-CqImyhjX.d.mts} +100 -100
  76. package/dist/{index-CkpGuNLe.d.mts → index-D2WJ0Zpt.d.mts} +10 -10
  77. package/dist/index-D6sjCuQA.d.mts +10036 -0
  78. package/dist/{index-6QvT0ljq.d.mts → index-D9-vOJvZ.d.mts} +1 -1
  79. package/dist/{index-BQ8H7cvY.d.mts → index-D94cDExW2.d.mts} +16 -16
  80. package/dist/{index-CUYDEQvN.d.mts → index-DYcyc2rR.d.mts} +5 -5
  81. package/dist/{index-Dbd0Tgba.d.mts → index-Di84JjS0.d.mts} +1 -1
  82. package/dist/{index-ByRAbcZd.d.mts → index-DiifAKRu.d.mts} +7 -2
  83. package/dist/{index-BuaP2Q0b.d.mts → index-DoWQjCE-.d.mts} +336 -336
  84. package/dist/{index-C2XLjebs.d.mts → index-Mi_UJoUV.d.mts} +8 -8
  85. package/dist/{index-BZuF4I8O.d.mts → index-NkNbYFud.d.mts} +1 -55
  86. package/dist/{index-BFW1X6SW.d.mts → index-SAGZBNB0.d.mts} +363 -363
  87. package/dist/{index-Dpu4e9NK.d.mts → index-UKndP4iV.d.mts} +3 -3
  88. package/dist/{index-cN4DkU5Y2.d.mts → index-q8nLr74m.d.mts} +9 -9
  89. package/dist/{index-DLPjliGd.d.mts → index-wfSedMR9.d.mts} +1 -1
  90. package/dist/{index-DUI1W-zN.d.mts → index-xyXYG5WO.d.mts} +8 -8
  91. package/dist/json-value-DtIkQN7g.d.mts +57 -0
  92. package/dist/kernel/cli/index.d.mts +2 -2
  93. package/dist/kernel/cli/index.mjs +1 -1
  94. package/dist/kernel/cli/register.d.mts +1 -1
  95. package/dist/kernel/cli/register.mjs +1 -1
  96. package/dist/kernel/cli/schemas.mjs +1 -1
  97. package/dist/kernel/extension/index.d.mts +1 -1
  98. package/dist/kernel/extension/index.mjs +1 -1
  99. package/dist/kernel/index.d.mts +5 -5
  100. package/dist/kernel/index.mjs +1 -1
  101. package/dist/kernel/namespace/index.d.mts +1 -1
  102. package/dist/kernel/namespace/index.mjs +1 -1
  103. package/dist/kernel/observability/index.d.mts +1 -1
  104. package/dist/kernel/observability/index.mjs +1 -1
  105. package/dist/kernel/providers/index.d.mts +1 -1
  106. package/dist/kernel/providers/index.mjs +1 -1
  107. package/dist/kernel/window/index.d.mts +1 -1
  108. package/dist/kernel/window/index.mjs +1 -1
  109. package/dist/{lib-B-R6VZW0.mjs → lib-Ba55od_d.mjs} +1 -1
  110. package/dist/{lib-BwYODPdd.mjs → lib-CM_BUxN8.mjs} +1 -1
  111. package/dist/{load-extensions-D-DyzN4j.mjs → load-extensions-Cze1RHcG.mjs} +1 -1
  112. package/dist/{load-extensions-CQqw0Smr.d.mts → load-extensions-DNRIy4zC.d.mts} +1 -1
  113. package/dist/loop-gate-handlers-BLoGCWMQ.mjs +1 -0
  114. package/dist/mcp-http-server/index.mjs +2 -2
  115. package/dist/{namespace-Ba1gUpUu.d.mts → namespace-3yGm4WF9.d.mts} +2 -2
  116. package/dist/{namespace-B091meTj.d.mts → namespace-65uwTpbg.d.mts} +6 -6
  117. package/dist/{namespace-Daq_-170.d.mts → namespace-Bcn5EuKq.d.mts} +5 -5
  118. package/dist/{namespace-B1Bldc48.d.mts → namespace-BeMGmLrp.d.mts} +9 -9
  119. package/dist/{namespace-BxrHvS5c.mjs → namespace-C-piH3w4.mjs} +1 -1
  120. package/dist/{namespace-BQgZChZl.d.mts → namespace-CGGzwaCj.d.mts} +154 -154
  121. package/dist/{namespace-6u1Uf-iw2.d.mts → namespace-D8P8Sxce2.d.mts} +2 -2
  122. package/dist/namespace-DibbhCPP.mjs +1 -0
  123. package/dist/{namespace-CZgcOQTh.d.mts → namespace-d_0I6P7N.d.mts} +26 -26
  124. package/dist/{namespace-CO3DK1v_.d.mts → namespace-qC3OUGCB.d.mts} +42 -42
  125. package/dist/{native-session-supervisor-DbrqcFq9.mjs → native-session-supervisor-7ElwM6Is.mjs} +1 -1
  126. package/dist/node/bus-server/index.d.mts +1 -1
  127. package/dist/node/bus-server/index.mjs +1 -1
  128. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  129. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  130. package/dist/{orchestrator-shared-yFP8e7d5.mjs → orchestrator-shared-Cxk3x8Vs.mjs} +1 -1
  131. package/dist/package-B1AXe-oz.mjs +1 -0
  132. package/dist/{package-fwIv7zzj.d.mts → package-MmQvNJ3u.d.mts} +1 -1
  133. package/dist/package.json +1 -1
  134. package/dist/{profile-r4G32bCH.mjs → profile-BMBXUqqh.mjs} +1 -1
  135. package/dist/{provider-context-Ds6GNYnE.mjs → provider-context-DC_eq7es.mjs} +1 -1
  136. package/dist/provider-context-DjSUpHSM.mjs +1 -0
  137. package/dist/rules/index.d.mts +1 -1
  138. package/dist/rules/index.mjs +1 -1
  139. package/dist/rules/schemas.d.mts +1 -1
  140. package/dist/runtime-bun/index.mjs +1 -1
  141. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  142. package/dist/runtime-node/extension-validation.d.mts +1 -1
  143. package/dist/runtime-node/extension-validation.mjs +1 -1
  144. package/dist/runtime-node/index.d.mts +3 -3
  145. package/dist/runtime-node/index.mjs +2 -2
  146. package/dist/runtime-node/makaio-config.d.mts +1 -1
  147. package/dist/runtime-node/makaio-config.mjs +1 -1
  148. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  149. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  150. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  151. package/dist/{schema-DcZifH6p.d.mts → schema-BD0TvgFP.d.mts} +2 -2
  152. package/dist/{schema-atatXwNg.mjs → schema-D6WAI8OL.mjs} +1 -1
  153. package/dist/schemas-CE1gbhxu.mjs +1 -0
  154. package/dist/{schemas-IDGAJ_zv.d.mts → schemas-CscdPqCt.d.mts} +3 -3
  155. package/dist/{schemas-fEoe6H0K.d.mts → schemas-CyL5UEV7.d.mts} +154 -154
  156. package/dist/{schemas-BqscWIoC.d.mts → schemas-D4zaFE2p.d.mts} +6 -6
  157. package/dist/{schemas-BbFAwUpf.d.mts → schemas-DXjyGVpx.d.mts} +5 -5
  158. package/dist/{schemas-CTIaU6Rt2.d.mts → schemas-TQPiRl642.d.mts} +13 -13
  159. package/dist/schemas-yNBjlOKi.mjs +1 -0
  160. package/dist/services/adapter-runtime/index.d.mts +3 -3
  161. package/dist/services/adapter-runtime/index.mjs +1 -1
  162. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  163. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  164. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  165. package/dist/services/adapter-subsystem/index.mjs +1 -1
  166. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  167. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  168. package/dist/services/agent-runtime/index.d.mts +2 -2
  169. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  170. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  171. package/dist/services/capability/index.d.mts +1 -1
  172. package/dist/services/capability/index.mjs +1 -1
  173. package/dist/services/codebase/index.d.mts +2 -2
  174. package/dist/services/codebase/namespace.d.mts +1 -1
  175. package/dist/services/codebase/schemas.d.mts +1 -1
  176. package/dist/services/compression/index.d.mts +2 -2
  177. package/dist/services/compression/namespace.d.mts +1 -1
  178. package/dist/services/compression/schemas.d.mts +1 -1
  179. package/dist/services/context-rules/index.d.mts +12 -12
  180. package/dist/services/context-rules/index.mjs +1 -1
  181. package/dist/services/execution-target/index.d.mts +3 -3
  182. package/dist/services/execution-target/index.mjs +1 -1
  183. package/dist/services/execution-target/namespace.d.mts +1 -1
  184. package/dist/services/execution-target/schemas.d.mts +1 -1
  185. package/dist/services/filesystem/index.d.mts +1 -1
  186. package/dist/services/filesystem/index.mjs +1 -1
  187. package/dist/services/filesystem/namespace.d.mts +6 -6
  188. package/dist/services/filesystem/schemas.d.mts +3 -3
  189. package/dist/services/git/namespace.mjs +1 -1
  190. package/dist/services/git/schemas.mjs +1 -1
  191. package/dist/services/harness/index.mjs +1 -1
  192. package/dist/services/index.d.mts +141 -141
  193. package/dist/services/index.mjs +1 -1
  194. package/dist/services/log-import/browser.d.mts +2 -2
  195. package/dist/services/log-import/index.d.mts +2 -2
  196. package/dist/services/log-import/log-import.d.mts +1 -1
  197. package/dist/services/log-import/log-import.mjs +1 -1
  198. package/dist/services/log-import/namespace.d.mts +2 -2
  199. package/dist/services/log-import/namespace.mjs +1 -1
  200. package/dist/services/log-import/schemas.d.mts +1 -1
  201. package/dist/services/log-import/schemas.mjs +1 -1
  202. package/dist/services/model-registry/index.d.mts +1 -1
  203. package/dist/services/model-registry/index.mjs +1 -1
  204. package/dist/services/preferences/index.d.mts +2 -2
  205. package/dist/services/preferences/schemas.d.mts +1 -1
  206. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  207. package/dist/services/provider-context/index.d.mts +1 -1
  208. package/dist/services/provider-context/index.mjs +1 -1
  209. package/dist/services/provider-runtime/index.mjs +1 -1
  210. package/dist/services/session/handlers/index.d.mts +1 -1
  211. package/dist/services/session/handlers/index.mjs +1 -1
  212. package/dist/services/session/index.d.mts +9 -9
  213. package/dist/services/session/index.mjs +1 -1
  214. package/dist/services/session/messages/namespace.d.mts +1 -1
  215. package/dist/services/session/messages/namespace.mjs +1 -1
  216. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  217. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  218. package/dist/services/session/session-events/namespace.d.mts +1 -1
  219. package/dist/services/session/session-events/namespace.mjs +1 -1
  220. package/dist/services/session/storage/namespace.d.mts +1 -1
  221. package/dist/services/session/storage/schema.d.mts +1 -1
  222. package/dist/services/session/testing/index.mjs +1 -1
  223. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  224. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  225. package/dist/services/session/turns/namespace.d.mts +1 -1
  226. package/dist/services/session/turns/namespace.mjs +1 -1
  227. package/dist/services/session-editor/index.d.mts +1 -1
  228. package/dist/services/session-editor/index.mjs +1 -1
  229. package/dist/services/settings/index.d.mts +3 -3
  230. package/dist/services/settings/index.mjs +1 -1
  231. package/dist/services/settings/namespace.d.mts +10 -10
  232. package/dist/services/settings/namespace.mjs +1 -1
  233. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  234. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  235. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  236. package/dist/services/settings/storage/index.d.mts +3 -3
  237. package/dist/services/settings/storage/index.mjs +1 -1
  238. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  239. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  240. package/dist/services/subagent/index.d.mts +1 -1
  241. package/dist/services/subagent/index.mjs +1 -1
  242. package/dist/services/subagent-template/index.d.mts +2 -2
  243. package/dist/services/subagent-template/namespace.d.mts +1 -1
  244. package/dist/services/subagent-template/schemas.d.mts +1 -1
  245. package/dist/services/tool-approval/index.d.mts +1 -1
  246. package/dist/services/tool-approval/index.mjs +1 -1
  247. package/dist/services/tools/index.d.mts +1 -1
  248. package/dist/services/tools/index.mjs +1 -1
  249. package/dist/services/tray-menu/index.d.mts +3 -3
  250. package/dist/services/tray-menu/index.mjs +1 -1
  251. package/dist/services/tray-menu/namespace.d.mts +1 -1
  252. package/dist/services/tray-menu/schemas.d.mts +1 -1
  253. package/dist/services/turn/index.d.mts +1 -1
  254. package/dist/services/turn/namespace.d.mts +1 -1
  255. package/dist/{session-R-wciAdJ.mjs → session-0nWT4st6.mjs} +1 -1
  256. package/dist/{session-DApMcL_0.mjs → session-DLTZOum3.mjs} +1 -1
  257. package/dist/{session-lineage-D_8W1MI0.d.mts → session-lineage-5-wRBzuC.d.mts} +1 -1
  258. package/dist/{skill-B_VlGon5.mjs → skill-N-ttlp1i.mjs} +1 -1
  259. package/dist/{src-6n-8M8EU.mjs → src-Ck2sbaDa.mjs} +1 -1
  260. package/dist/storage/drizzle/client.d.mts +1 -1
  261. package/dist/storage/drizzle/client.mjs +1 -1
  262. package/dist/storage/drizzle/index.d.mts +1 -1
  263. package/dist/storage/drizzle/index.mjs +1 -1
  264. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  265. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  266. package/dist/storage/handlers/index.d.mts +1 -1
  267. package/dist/storage/handlers/index.mjs +1 -1
  268. package/dist/{tool-approval-service-DhAqQqev.mjs → tool-approval-service-DEQiipxj.mjs} +1 -1
  269. package/dist/{tools-DeZIVtxe.mjs → tools-DFOsOboy.mjs} +1 -1
  270. package/dist/transition-CCflZ6JS.d.mts +454 -0
  271. package/dist/{types-CCsvoUTA.d.mts → types-BXUm60GF.d.mts} +258 -257
  272. package/dist/{types-BB8iIAjZ.d.mts → types-InWSdi-V.d.mts} +1 -1
  273. package/dist/ui-kernel/index.d.mts +1 -1
  274. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  275. package/dist/{version-SYP_DX4M.mjs → version-DoV_pSzT.mjs} +1 -1
  276. package/dist/workflow-BCKOJ4UC.mjs +1 -0
  277. package/dist/workflow-engine/index.d.mts +78 -72
  278. package/dist/workflow-engine/index.mjs +1 -1
  279. package/dist/workflow-engine/package.d.mts +1 -1
  280. package/dist/workflow-engine/package.mjs +1 -1
  281. package/dist/workflow-engine/workflow-orchestrator.d.mts +3 -1
  282. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  283. package/dist/{workflow-worker-DMFhz1q_.mjs → workflow-worker-BIpYi6o7.mjs} +1 -1
  284. package/package.json +5 -1
  285. package/dist/adapter-Cxcqmp04.mjs +0 -1
  286. package/dist/await-trigger-Cjfj0yp_.mjs +0 -1
  287. package/dist/canonical-model-C-jhofjd.mjs +0 -1
  288. package/dist/compression-BPOKUc6y.mjs +0 -1
  289. package/dist/namespace-CH_NWUKW.mjs +0 -1
  290. package/dist/package-DP8lk0-a.mjs +0 -1
  291. package/dist/primitive-runtime-Dw6OC8w5.mjs +0 -1
  292. package/dist/schemas-dNCdjOLB.mjs +0 -1
  293. /package/dist/{ajv-Cx19PP7Q.mjs → ajv-B5dPIck0.mjs} +0 -0
  294. /package/dist/{base-orchestrator-BRq4MXa7.d.mts → base-orchestrator-Cw0vpNgB.d.mts} +0 -0
  295. /package/dist/{capability-service-CHl8rrwb.mjs → capability-service-XlymTzz1.mjs} +0 -0
  296. /package/dist/{cleanEnvForAdapter-D32WnVuy.mjs → cleanEnvForAdapter-BooAgM2R.mjs} +0 -0
  297. /package/dist/{client-D2ZftNb6.d.mts → client-CebV_fZc.d.mts} +0 -0
  298. /package/dist/{clients-namespace-CeAB0t06.d.mts → clients-namespace-Bt_VTkEU.d.mts} +0 -0
  299. /package/dist/{config-namespace-DW5KHKPW.mjs → config-namespace-CY9leBnE.mjs} +0 -0
  300. /package/dist/{config-namespace-DloU-hNB.d.mts → config-namespace-DqdFE6zk.d.mts} +0 -0
  301. /package/dist/{create-static-mount-Bi0VpYS8.mjs → create-static-mount-DkK28kKW.mjs} +0 -0
  302. /package/dist/{cross-spawn-C58yEvsS.mjs → cross-spawn-CDXy3BjE.mjs} +0 -0
  303. /package/dist/{cursor-storage-CpuT5POU.mjs → cursor-storage-luQAg7E_.mjs} +0 -0
  304. /package/dist/{definition-GOb_oOmb.d.mts → definition-Cllhr9mi.d.mts} +0 -0
  305. /package/dist/{definition-BdxbXbrq.d.mts → definition-CuJvtYeG.d.mts} +0 -0
  306. /package/dist/{descriptor-to-package-D-FNxohm.mjs → descriptor-to-package-DdpjpT7n.mjs} +0 -0
  307. /package/dist/{drizzle-D7dkDEB5.mjs → drizzle-DVTAl7Us.mjs} +0 -0
  308. /package/dist/{esm-CP2zvvlx.mjs → esm-CQG9Pc7n.mjs} +0 -0
  309. /package/dist/{event-DaXakaHo.mjs → event-DguYjV6D.mjs} +0 -0
  310. /package/dist/{execution-target-Da6Vjvba.mjs → execution-target-BR8bLkCR.mjs} +0 -0
  311. /package/dist/{extension-discovery-Bv5FDtrM.d.mts → extension-discovery-CIZn5bkq.d.mts} +0 -0
  312. /package/dist/{extension-namespace-O3sKdnY9.mjs → extension-namespace-v3K0qVry.mjs} +0 -0
  313. /package/dist/{facet-Q_vgXb23.mjs → facet-BM4y4aQP.mjs} +0 -0
  314. /package/dist/{filesystem-service-89fN-2Dd.d.mts → filesystem-service-Cwp0sWNc.d.mts} +0 -0
  315. /package/dist/{handler-BIA3ld4C.mjs → handler-2bPhRn0u.mjs} +0 -0
  316. /package/dist/{host-DFqmG2qO.mjs → host-vY07gek-.mjs} +0 -0
  317. /package/dist/{identity-CA5MzB19.mjs → identity-BarL3JYI.mjs} +0 -0
  318. /package/dist/{index-BVhnqzDC2.d.mts → index-B92mToDo2.d.mts} +0 -0
  319. /package/dist/{index-cFuQpzIm.d.mts → index-BjoOSg95.d.mts} +0 -0
  320. /package/dist/{index-BeNVLvtk2.d.mts → index-BvLXySoB2.d.mts} +0 -0
  321. /package/dist/{index-DJSffYTW2.d.mts → index-C23g_M_J2.d.mts} +0 -0
  322. /package/dist/{index-kOSSuOcK.d.mts → index-C4nStEdA.d.mts} +0 -0
  323. /package/dist/{index-DHHKwLww.d.mts → index-COI1tjAf.d.mts} +0 -0
  324. /package/dist/{index-orAkFukT.d.mts → index-CpKikwK4.d.mts} +0 -0
  325. /package/dist/{index-DNmENr9M.d.mts → index-CqCe7Phc.d.mts} +0 -0
  326. /package/dist/{index-CkPIPbx9.d.mts → index-Cr9lh21j.d.mts} +0 -0
  327. /package/dist/{index-CBTp2XuF.d.mts → index-CuHqL95P.d.mts} +0 -0
  328. /package/dist/{index-CfpfkKih.d.mts → index-D3ahzHwb.d.mts} +0 -0
  329. /package/dist/{index-BE-yMFTz.d.mts → index-D7Hkmrr3.d.mts} +0 -0
  330. /package/dist/{index-DWqSqcpW.d.mts → index-DOOrKin9.d.mts} +0 -0
  331. /package/dist/{index-CYZqADXY2.d.mts → index-DUD7wikz2.d.mts} +0 -0
  332. /package/dist/{index-BUilJdHr.d.mts → index-Dfi8Rorw.d.mts} +0 -0
  333. /package/dist/{index-BplsE3qw.d.mts → index-DtwGhFFQ.d.mts} +0 -0
  334. /package/dist/{index-DVgKfgh1.d.mts → index-OGIC4puQ.d.mts} +0 -0
  335. /package/dist/{index-D0RWuwl5.d.mts → index-Y8rMeYYX.d.mts} +0 -0
  336. /package/dist/{index-BtL_9HBk.d.mts → index-gAFwNiJT.d.mts} +0 -0
  337. /package/dist/{index-DdCyeZ59.d.mts → index-wq7XeqyG.d.mts} +0 -0
  338. /package/dist/{jsonl-transport-Bb8ltqOe.mjs → jsonl-transport-CGPgD8iU.mjs} +0 -0
  339. /package/dist/{lib-BmcGxHXH.mjs → lib-ZKtnbCqH.mjs} +0 -0
  340. /package/dist/{materialization-DsPIGQP1.mjs → materialization-DBXjSiBn.mjs} +0 -0
  341. /package/dist/{model-registry-DQDclqdw.mjs → model-registry-C2VXobZj.mjs} +0 -0
  342. /package/dist/{model-registry-DLeMw3l8.mjs → model-registry-rYICIwyR.mjs} +0 -0
  343. /package/dist/{namespace-q5dD3acO.d.mts → namespace-B3ol3pc-.d.mts} +0 -0
  344. /package/dist/{namespace-DrpHLJAy.mjs → namespace-BO3tODGC.mjs} +0 -0
  345. /package/dist/{namespace-uGUGfpGQ.mjs → namespace-BdO4e1Fm.mjs} +0 -0
  346. /package/dist/{namespace-2G7A4Sza.d.mts → namespace-BsYKEMd8.d.mts} +0 -0
  347. /package/dist/{namespace-DMhz3yvr.d.mts → namespace-CQ8uza7o.d.mts} +0 -0
  348. /package/dist/{namespace-zWB-ULrX.mjs → namespace-CVMZVqB5.mjs} +0 -0
  349. /package/dist/{namespace-nQS4XwnT.d.mts → namespace-D2s-4pyg.d.mts} +0 -0
  350. /package/dist/{namespace-FJsnoEQy.mjs → namespace-DBHwyhME.mjs} +0 -0
  351. /package/dist/{namespace-CN-Llu7H.mjs → namespace-DYSFDC2G.mjs} +0 -0
  352. /package/dist/{namespace-DcUwOJ4f.d.mts → namespace-Dk4OslmY.d.mts} +0 -0
  353. /package/dist/{namespace-DKnJL0Ja.d.mts → namespace-LUNf8zo5.d.mts} +0 -0
  354. /package/dist/{namespace-UUw-S7ia.mjs → namespace-wke7juzy.mjs} +0 -0
  355. /package/dist/{orchestrator-shared-CbS4ueeq.d.mts → orchestrator-shared-ChOdIgh6.d.mts} +0 -0
  356. /package/dist/{out-BUHr98Xe.mjs → out-BoEZjBNz.mjs} +0 -0
  357. /package/dist/{package-YQeRE8bV.mjs → package-CF_Zm2v4.mjs} +0 -0
  358. /package/dist/{platform-CsO-MRJP.mjs → platform-DnbSvm2u.mjs} +0 -0
  359. /package/dist/{providers-FEZT2bQG.mjs → providers-Bd7BOZs0.mjs} +0 -0
  360. /package/dist/{providers-namespace-B4INLPUc.d.mts → providers-namespace-5GoTlHXz.d.mts} +0 -0
  361. /package/dist/{quick-lru-C7AXdpbU.mjs → quick-lru-6e7I1Bgf.mjs} +0 -0
  362. /package/dist/{registry-CwjZvH2s.mjs → registry-U_3aYSin.mjs} +0 -0
  363. /package/dist/{schema-Ba64XQjo.mjs → schema-DHlTAy0N.mjs} +0 -0
  364. /package/dist/{schema-introspection-D5FaI5B_.mjs → schema-introspection-B7xODt4I.mjs} +0 -0
  365. /package/dist/{schemas-9QC3nvYP.mjs → schemas-ArqQTC0Q.mjs} +0 -0
  366. /package/dist/{schemas-DznsZ0bq.d.mts → schemas-B6tEKf9T.d.mts} +0 -0
  367. /package/dist/{schemas-CRS7tkFP.d.mts → schemas-BemsLc_V.d.mts} +0 -0
  368. /package/dist/{schemas-5kegIs9D.mjs → schemas-CPI00yvh.mjs} +0 -0
  369. /package/dist/{schemas-9Ifo5zSf.d.mts → schemas-DKncXGnb.d.mts} +0 -0
  370. /package/dist/{schemas-DZfBym73.d.mts → schemas-DWfo0wp4.d.mts} +0 -0
  371. /package/dist/{schemas-BxI5Yq8d.d.mts → schemas-DmGRSeIq.d.mts} +0 -0
  372. /package/dist/{schemas-BSAKbVyd.d.mts → schemas-KlH1hB7u.d.mts} +0 -0
  373. /package/dist/{schemas-DAYPhB5K.mjs → schemas-XeIBqwvE.mjs} +0 -0
  374. /package/dist/{semver-ClOD8k8c.mjs → semver-CIhHqMkw.mjs} +0 -0
  375. /package/dist/{server-lifecycle-CFQaPTf7.mjs → server-lifecycle-C5Z5PSMD.mjs} +0 -0
  376. /package/dist/{server-lifecycle-5iHxcgBO.d.mts → server-lifecycle-_AA6EfzL.d.mts} +0 -0
  377. /package/dist/{shared-schemas-jG3EtHZT.mjs → shared-schemas-BEVG96xW.mjs} +0 -0
  378. /package/dist/{src-CRDOZl7K.mjs → src-_VODAJnf.mjs} +0 -0
  379. /package/dist/{storage-namespace-C1JVmZF1.mjs → storage-namespace-D5q9CrBp.mjs} +0 -0
  380. /package/dist/{storage-namespace-gey7EUhM.d.mts → storage-namespace-Di1A3DMm.d.mts} +0 -0
  381. /package/dist/{storage-namespace-definition-BPYSLTfN.d.mts → storage-namespace-definition-BffdI5Bz.d.mts} +0 -0
  382. /package/dist/{storage-namespace-definition-Df8S3E3r.mjs → storage-namespace-definition-CzXPW45M.mjs} +0 -0
  383. /package/dist/{supports-color-AnssSSH9.mjs → supports-color-DcXkvGDF.mjs} +0 -0
  384. /package/dist/{telemetry-DdbvlZ8s.mjs → telemetry-Cvi4rxiE.mjs} +0 -0
  385. /package/dist/{tray-menu-service-am356993.mjs → tray-menu-service-B2AxiQqL.mjs} +0 -0
  386. /package/dist/{types-DhlQpVEb.d.mts → types-BMS6yfLS.d.mts} +0 -0
  387. /package/dist/{types-xLd-e0wf.d.mts → types-Bo78h9e3.d.mts} +0 -0
  388. /package/dist/{types-D-GeeSdd.d.mts → types-CPmOg4X7.d.mts} +0 -0
  389. /package/dist/{types-Bj7cOrBQ.d.mts → types-DCvp_swt.d.mts} +0 -0
  390. /package/dist/{variant-BdNN5edM.mjs → variant-5huHjUTm.mjs} +0 -0
  391. /package/dist/{window-registry-LRjWPwr4.mjs → window-registry-PkrFIwX2.mjs} +0 -0
  392. /package/dist/{window-registry-CA6AC8n7.d.mts → window-registry-ofIUQnfo.d.mts} +0 -0
@@ -0,0 +1 @@
1
+ import{a as e}from"./visibility-Cb62p9bv.mjs";import{i as t,l as n,r,t as i}from"./compression-CXEHx0rS.mjs";import{t as a}from"./schemas-XeIBqwvE.mjs";import{o}from"./schemas-CE1gbhxu.mjs";import{z as s}from"zod";import{createBusNamespace as c}from"@makaio/framework/core";const l=[`empty`,`empty-model`,`empty-routing`,`empty-segment`,`too-many-segments`,`invalid-segment`,`invalid-virtual-name`,`empty-virtual-name`],u=s.enum(l),d=s.object({kind:s.literal(`parse-error`),code:u,message:s.string(),input:s.string()}),f=s.object({kind:s.literal(`bare`),model:s.string()}),p=s.object({kind:s.literal(`qualified`),segment1:s.string(),segment2:s.string().optional(),model:s.string()}),m=s.object({kind:s.literal(`virtual`),name:s.string()}),h=s.discriminatedUnion(`kind`,[f,p,m]),g=s.discriminatedUnion(`kind`,[f,p]),_=s.discriminatedUnion(`kind`,[f,p,m,d]),v=/^[a-z0-9][a-z0-9._-]*$/,y=/^[a-z0-9][a-z0-9_-]*$/;function b(e,t,n){return{kind:`parse-error`,code:e,message:t,input:n}}function x(e){let t=e.trim();if(t.length===0)return b(`empty`,`Canonical model string must not be empty.`,e);if(t.startsWith(`~`)){let n=t.slice(1);return n.length===0?b(`empty-virtual-name`,`Virtual model reference '~' must be followed by a name.`,e):y.test(n)?{kind:`virtual`,name:n}:b(`invalid-virtual-name`,`Invalid virtual model name '${n}': must match [a-z0-9][a-z0-9_-]*.`,e)}let n=t.indexOf(`::`);if(n===-1)return{kind:`bare`,model:t};let r=t.slice(0,n),i=t.slice(n+2);if(r.length===0)return b(`empty-routing`,`Canonical model string must have a routing segment before '::'.`,e);if(i.length===0)return b(`empty-model`,`Canonical model string must have a model name after '::'.`,e);let a=r.toLowerCase().split(`/`);for(let t of a)if(t.length===0)return b(`empty-segment`,`Routing segment must not be empty - check for consecutive '/' characters.`,e);if(a.length>2)return b(`too-many-segments`,`Routing part '${r}' has ${a.length} segments; at most 2 are allowed.`,e);for(let t of a)if(!v.test(t))return b(`invalid-segment`,`Routing segment '${t}' is invalid: must match [a-z0-9][a-z0-9._-]*.`,e);return{kind:`qualified`,segment1:a[0],segment2:a.length>1?a[1]:void 0,model:i}}function S(e){return e.kind===`parse-error`}const C=s.object({adapterName:s.string(),providerConfigId:s.string().optional(),model:s.string().optional(),systemPrompt:s.string().optional(),contextMode:o,compressionMode:i,allowedTools:s.array(s.string()).optional(),disallowedTools:s.array(s.string()).optional(),allowedDirectories:s.array(s.string()).optional(),reasoningEffort:e.optional(),approvalPolicy:a.optional(),harnessId:s.string().optional(),profileId:s.string().optional(),mcpConfig:n.optional()}),w=s.object({sessionId:s.string().optional(),projectId:s.string().optional(),promptText:s.string().optional(),sessionContext:s.unknown().optional()}),T=c(`agentResolution`,{resolve:{request:s.object({selection:t,context:w.optional()}),response:C}}),E=T.subjects,D=r.safeExtend({kind:s.literal(`adapter`),adapterName:s.string(),providerConfigId:s.string(),model:s.string()}),O={resolve:{request:s.object({parsed:g,context:w.optional()}),response:D}},k=c(`canonicalModel`,O),A=k.subjects;export{h as _,T as a,m as b,v as c,x as d,f,_ as g,d as h,O as i,y as l,u as m,A as n,E as o,l as p,D as r,C as s,k as t,S as u,p as v,g as y};
@@ -1 +1 @@
1
- import{t as e}from"./schemas-DAYPhB5K.mjs";import{_ as t,a as n,g as r,h as i,m as a,n as ee,o as te}from"./profile-r4G32bCH.mjs";import{n as ne,t as o}from"./version-SYP_DX4M.mjs";import{c as re,d as ie,n as ae,o as oe,s as se,t as s,u as c}from"./account-identity-D-9gunfD.mjs";import{z as l}from"zod";import{createBusNamespace as ce}from"@makaio/framework/core";const u=l.object({tag:l.string(),description:l.string().optional()}),d=l.object({name:l.string(),friendlyName:l.string(),description:l.string().optional(),category:l.string().optional(),capabilities:l.array(u).default([])}),f=l.object({id:l.string(),name:l.string(),description:l.string().optional(),glob:l.string().optional()}),p=l.object({name:l.string().min(1),frameworkSubject:l.string().min(1).optional(),mode:l.enum([`event`,`request`]).default(`event`)}),m=l.object({envVar:r.regex(/^[A-Za-z_][A-Za-z0-9_]*$/,{message:`envVar must be a valid environment variable name (letters, digits, underscores)`}),defaultPath:r.refine(e=>e===`~`||e.startsWith(`~/`)||t(e),{message:`defaultPath must be absolute, '~', or start with '~/'`}),pathKind:l.enum([`directory`,`file`]).default(`directory`)});function le(e){if(!e.startsWith(`@`))return!e.includes(`@`);let t=e.indexOf(`/`);return t>1&&!e.slice(t+1).includes(`@`)}const h=l.object({type:l.literal(`npm`),package:l.string().min(1).refine(le,{message:"package must not include an inline `@version` suffix; use the version field instead"}),version:o}),g=l.object({type:l.literal(`signed-binary-bucket`),version:o,config:l.object({baseUrl:l.string().url(),manifestPathTemplate:l.string().min(1),manifestSignaturePathTemplate:l.string().min(1),publicKeyUrl:l.string().url(),publicKeyFingerprint:l.string().min(1),binaryPathTemplate:l.string().min(1),platforms:l.record(l.string().min(1),l.string().min(1))})}),_=l.discriminatedUnion(`type`,[h,g]),v=l.object({executable:l.union([l.string().min(1),l.object({default:l.string().min(1),darwin:l.string().min(1).optional(),linux:l.string().min(1).optional(),win32:l.string().min(1).optional()}).strict()]),args:l.array(l.string()).default([])}).strict(),y=l.object({kind:l.string().min(1),payload:l.record(l.string(),l.unknown()).optional()}),b=l.object({supportsHooks:l.boolean().default(!1),supportsStatusline:l.boolean().default(!1),supportsSupervisorLaunch:l.boolean().default(!1),supportsManagedBinary:l.boolean().default(!1),hookEvents:l.array(p).default([])}).refine(e=>e.supportsHooks||e.hookEvents.length===0,{message:`hookEvents must be empty when supportsHooks is false`,path:[`hookEvents`]}),x=l.object({name:l.string().min(1),supportedVersions:ne}).strict(),S=l.object({id:l.string(),name:l.string(),version:o,description:l.string().optional(),binary:x.optional(),nativeTools:l.array(d).default([]),defaultApprovalPolicy:e,logSources:l.array(f).optional(),defaultProviderId:l.string().optional(),runtimeCapabilities:b.optional().transform(e=>b.parse(e??{})),managedInstall:_.optional(),versionCommand:v.optional(),postInstall:y.optional(),configIsolation:m.optional()}).strict().refine(e=>!e.runtimeCapabilities.supportsManagedBinary||e.managedInstall!==void 0,{message:`managedInstall is required when runtimeCapabilities.supportsManagedBinary is true`,path:[`managedInstall`]}).refine(e=>e.managedInstall===void 0||e.runtimeCapabilities.supportsManagedBinary,{message:`runtimeCapabilities.supportsManagedBinary must be true when managedInstall is provided`,path:[`runtimeCapabilities`,`supportsManagedBinary`]}).refine(e=>e.managedInstall===void 0||e.versionCommand!==void 0,{message:`versionCommand is required when managedInstall is provided`,path:[`versionCommand`]}).superRefine((e,t)=>{if(e.managedInstall===void 0||e.versionCommand===void 0)return;let{executable:n}=e.versionCommand,r=typeof n==`string`?[{path:n,issuePath:[`versionCommand`,`executable`]}]:[{path:n.default,issuePath:[`versionCommand`,`executable`,`default`]},...n.darwin===void 0?[]:[{path:n.darwin,issuePath:[`versionCommand`,`executable`,`darwin`]}],...n.linux===void 0?[]:[{path:n.linux,issuePath:[`versionCommand`,`executable`,`linux`]}],...n.win32===void 0?[]:[{path:n.win32,issuePath:[`versionCommand`,`executable`,`win32`]}]];for(let{path:e,issuePath:n}of r){let r=e.startsWith(`/`),i=/^[A-Za-z]:/.test(e),a=e.startsWith(`\\`);if(r||i||a){t.addIssue({code:l.ZodIssueCode.custom,path:n,message:`${n.join(`.`)} must be a relative path within the install directory`});continue}e.split(/[/\\]/).some(e=>e===`..`)&&t.addIssue({code:l.ZodIssueCode.custom,path:n,message:`${n.join(`.`)} must be a relative path within the install directory`})}}),C=l.object({binaryPath:a.nullable(),env:l.record(l.string(),l.string()),configDir:a.nullable(),source:l.enum([`managed`,`global`]),version:r.nullable()}),w={request:l.object({clientId:r,sessionId:r.optional(),projectDir:a.optional(),preferSource:l.enum([`managed`,`global`]).optional(),harnessId:r.optional()}),response:C},T=l.enum([`npm`,`signed-binary-bucket`]),E=l.object({version:r,installPath:a,installedAt:i,isActive:l.boolean()}),D=l.object({clientId:r,installedVersions:l.array(E),activeVersion:r.nullable(),pinnedVersion:o,updateAvailable:l.boolean()}).strict(),O={request:l.object({forceRefresh:l.boolean().optional()}),response:l.object({clients:l.array(D)})},k={request:l.object({clientId:r,version:o.optional()}),response:l.object({jobId:r,requestedVersion:o.nullable(),resolvedVersion:o.nullable()})},A={request:l.object({clientId:r,version:r}),response:l.object({clientId:r,removedVersion:r,activeVersion:r.nullable()})},j={request:l.object({clientId:r}),response:l.object({jobId:r,resolvedVersion:o.nullable()})},M={request:l.object({clientId:r,version:r}),response:l.object({clientId:r,activeVersion:r})},N=l.enum([`resolving`,`downloading`,`verifying`,`extracting`,`installing`,`post-install`,`activating`]),P=l.object({jobId:r,clientId:r,version:r.optional(),strategy:T,stage:N,progress:l.number().min(0).max(100).nullable(),installPath:a.optional(),activeAfterCompletion:l.boolean().optional(),metadata:l.record(l.string(),l.unknown()).optional()}),F=l.object({message:l.string(),code:l.string().optional()}),I=l.object({jobId:r,clientId:r,version:r.optional(),strategy:T,status:l.enum([`success`,`error`]),installPath:a.optional(),activeVersion:r.nullable(),error:F.optional(),metadata:l.record(l.string(),l.unknown()).optional()}),L=l.object({clientId:r,previousActiveVersion:r.nullable(),activeVersion:r.nullable(),reason:l.enum([`install`,`update`,`set-active`,`uninstall`])}),R=l.enum([`supervisor`,`adapter`,`client-hook`,`statusline`,`cli-wrapper`]),z=l.object({layer:R,producer:r}),B=l.object({supervisorSessionId:r.optional(),pid:l.number().int().positive().optional(),parentPid:l.number().int().positive().optional(),adapterSessionId:r.optional(),sessionId:r.optional(),cwd:l.string().optional(),argv:l.array(l.string()).optional(),metadata:l.record(l.string(),l.unknown()).optional()}),V={request:l.object({clientId:r,source:z,observedAt:i}).merge(B).refine(e=>e.supervisorSessionId!==void 0||e.pid!==void 0||e.adapterSessionId!==void 0,{message:`At least one hard-evidence field is required (supervisorSessionId, pid, or adapterSessionId)`}),response:l.object({clientRuntimeId:r,created:l.boolean(),promoted:l.boolean()})},H=B.extend({clientRuntimeId:r,clientId:r,status:l.enum([`observed`,`started`]),source:z,observedAt:i}),U=l.object({clientId:r,source:r,observedAt:i,sessionId:l.string().optional(),adapterSessionId:l.string().optional(),metadata:l.record(l.string(),l.unknown()).optional()}),W=U.extend({}),G=U.extend({prompt:r.optional()}),K=U.extend({}),q=U.extend({}),J=U.extend({toolName:r.optional(),toolCallId:r.optional()}),Y=U.extend({toolName:r.optional(),toolCallId:r.optional(),success:l.boolean().optional()}),X=l.object({group:r,name:r,installed:l.boolean(),command:r}),Z={"runtime.observe":V,"runtime.started":H,scan:{request:l.object({targets:l.array(se).optional()}),response:l.object({results:l.array(oe)})},"session.account.observe":re,"account.observe":ae,"account.activate":{request:l.object({clientId:r,clientAccountId:r,identifiers:l.array(s).min(1),displayLabel:l.string().optional()}),response:l.object({accepted:l.boolean()})},"account.getActive":{request:l.object({clientId:r}),response:l.object({identity:l.object({clientAccountId:r,identifiers:l.array(s).min(1),displayLabel:l.string().optional()}).nullable()})},"usage.ingest":c,"usage.snapshot":ie,"session.started":W,"session.userPrompt.submitted":G,"session.turn.started":K,"session.turn.completed":q,"session.tool.pre":J,"session.tool.post":Y,"wiring.list":{request:l.object({clientId:r.optional(),projectDir:a.optional(),makaioCommand:r}),response:l.object({results:l.array(l.object({clientId:r,entries:l.array(X)}))})},list:O,install:k,uninstall:A,update:j,setActive:M,"installJob.progress":P,"installJob.completed":I,"version.changed":L,resolveBinary:w,...n,...te,"config.prime":ee},Q=ce(`client`,Z),ue=Q.subjects;function $(e){if(Array.isArray(e)){for(let t of e)$(t);return Object.freeze(e)}if(e&&typeof e==`object`){for(let t of Object.values(e))$(t);return Object.freeze(e)}return e}function de(e){return $(S.parse(e))}export{T as A,f as B,M as C,F as D,L as E,p as F,v as G,h as H,b as I,u as L,w as M,x as N,N as O,S as P,d as R,O as S,j as T,y as U,_ as V,g as W,H as _,U as a,P as b,J as c,G as d,X as f,z as g,R as h,Z as i,C as j,E as k,q as l,V as m,Q as n,W as o,B as p,ue as r,Y as s,de as t,K as u,D as v,A as w,k as x,I as y,m as z};
1
+ import{t as e}from"./schemas-XeIBqwvE.mjs";import{_ as t,a as n,g as r,h as i,m as a,n as ee,o as te}from"./profile-BMBXUqqh.mjs";import{n as ne,t as o}from"./version-DoV_pSzT.mjs";import{c as re,d as ie,n as ae,o as oe,s as se,t as s,u as c}from"./account-identity-D5TUafYg.mjs";import{z as l}from"zod";import{createBusNamespace as ce}from"@makaio/framework/core";const u=l.object({tag:l.string(),description:l.string().optional()}),d=l.object({name:l.string(),friendlyName:l.string(),description:l.string().optional(),category:l.string().optional(),capabilities:l.array(u).default([])}),f=l.object({id:l.string(),name:l.string(),description:l.string().optional(),glob:l.string().optional()}),p=l.object({name:l.string().min(1),frameworkSubject:l.string().min(1).optional(),mode:l.enum([`event`,`request`]).default(`event`)}),m=l.object({envVar:r.regex(/^[A-Za-z_][A-Za-z0-9_]*$/,{message:`envVar must be a valid environment variable name (letters, digits, underscores)`}),defaultPath:r.refine(e=>e===`~`||e.startsWith(`~/`)||t(e),{message:`defaultPath must be absolute, '~', or start with '~/'`}),pathKind:l.enum([`directory`,`file`]).default(`directory`)});function le(e){if(!e.startsWith(`@`))return!e.includes(`@`);let t=e.indexOf(`/`);return t>1&&!e.slice(t+1).includes(`@`)}const h=l.object({type:l.literal(`npm`),package:l.string().min(1).refine(le,{message:"package must not include an inline `@version` suffix; use the version field instead"}),version:o}),g=l.object({type:l.literal(`signed-binary-bucket`),version:o,config:l.object({baseUrl:l.string().url(),manifestPathTemplate:l.string().min(1),manifestSignaturePathTemplate:l.string().min(1),publicKeyUrl:l.string().url(),publicKeyFingerprint:l.string().min(1),binaryPathTemplate:l.string().min(1),platforms:l.record(l.string().min(1),l.string().min(1))})}),_=l.discriminatedUnion(`type`,[h,g]),v=l.object({executable:l.union([l.string().min(1),l.object({default:l.string().min(1),darwin:l.string().min(1).optional(),linux:l.string().min(1).optional(),win32:l.string().min(1).optional()}).strict()]),args:l.array(l.string()).default([])}).strict(),y=l.object({kind:l.string().min(1),payload:l.record(l.string(),l.unknown()).optional()}),b=l.object({supportsHooks:l.boolean().default(!1),supportsStatusline:l.boolean().default(!1),supportsSupervisorLaunch:l.boolean().default(!1),supportsManagedBinary:l.boolean().default(!1),hookEvents:l.array(p).default([])}).refine(e=>e.supportsHooks||e.hookEvents.length===0,{message:`hookEvents must be empty when supportsHooks is false`,path:[`hookEvents`]}),x=l.object({name:l.string().min(1),supportedVersions:ne}).strict(),S=l.object({id:l.string(),name:l.string(),version:o,description:l.string().optional(),binary:x.optional(),nativeTools:l.array(d).default([]),defaultApprovalPolicy:e,logSources:l.array(f).optional(),defaultProviderId:l.string().optional(),runtimeCapabilities:b.optional().transform(e=>b.parse(e??{})),managedInstall:_.optional(),versionCommand:v.optional(),postInstall:y.optional(),configIsolation:m.optional()}).strict().refine(e=>!e.runtimeCapabilities.supportsManagedBinary||e.managedInstall!==void 0,{message:`managedInstall is required when runtimeCapabilities.supportsManagedBinary is true`,path:[`managedInstall`]}).refine(e=>e.managedInstall===void 0||e.runtimeCapabilities.supportsManagedBinary,{message:`runtimeCapabilities.supportsManagedBinary must be true when managedInstall is provided`,path:[`runtimeCapabilities`,`supportsManagedBinary`]}).refine(e=>e.managedInstall===void 0||e.versionCommand!==void 0,{message:`versionCommand is required when managedInstall is provided`,path:[`versionCommand`]}).superRefine((e,t)=>{if(e.managedInstall===void 0||e.versionCommand===void 0)return;let{executable:n}=e.versionCommand,r=typeof n==`string`?[{path:n,issuePath:[`versionCommand`,`executable`]}]:[{path:n.default,issuePath:[`versionCommand`,`executable`,`default`]},...n.darwin===void 0?[]:[{path:n.darwin,issuePath:[`versionCommand`,`executable`,`darwin`]}],...n.linux===void 0?[]:[{path:n.linux,issuePath:[`versionCommand`,`executable`,`linux`]}],...n.win32===void 0?[]:[{path:n.win32,issuePath:[`versionCommand`,`executable`,`win32`]}]];for(let{path:e,issuePath:n}of r){let r=e.startsWith(`/`),i=/^[A-Za-z]:/.test(e),a=e.startsWith(`\\`);if(r||i||a){t.addIssue({code:l.ZodIssueCode.custom,path:n,message:`${n.join(`.`)} must be a relative path within the install directory`});continue}e.split(/[/\\]/).some(e=>e===`..`)&&t.addIssue({code:l.ZodIssueCode.custom,path:n,message:`${n.join(`.`)} must be a relative path within the install directory`})}}),C=l.object({binaryPath:a.nullable(),env:l.record(l.string(),l.string()),configDir:a.nullable(),source:l.enum([`managed`,`global`]),version:r.nullable()}),w={request:l.object({clientId:r,sessionId:r.optional(),projectDir:a.optional(),preferSource:l.enum([`managed`,`global`]).optional(),harnessId:r.optional()}),response:C},T=l.enum([`npm`,`signed-binary-bucket`]),E=l.object({version:r,installPath:a,installedAt:i,isActive:l.boolean()}),D=l.object({clientId:r,installedVersions:l.array(E),activeVersion:r.nullable(),pinnedVersion:o,updateAvailable:l.boolean()}).strict(),O={request:l.object({forceRefresh:l.boolean().optional()}),response:l.object({clients:l.array(D)})},k={request:l.object({clientId:r,version:o.optional()}),response:l.object({jobId:r,requestedVersion:o.nullable(),resolvedVersion:o.nullable()})},A={request:l.object({clientId:r,version:r}),response:l.object({clientId:r,removedVersion:r,activeVersion:r.nullable()})},j={request:l.object({clientId:r}),response:l.object({jobId:r,resolvedVersion:o.nullable()})},M={request:l.object({clientId:r,version:r}),response:l.object({clientId:r,activeVersion:r})},N=l.enum([`resolving`,`downloading`,`verifying`,`extracting`,`installing`,`post-install`,`activating`]),P=l.object({jobId:r,clientId:r,version:r.optional(),strategy:T,stage:N,progress:l.number().min(0).max(100).nullable(),installPath:a.optional(),activeAfterCompletion:l.boolean().optional(),metadata:l.record(l.string(),l.unknown()).optional()}),F=l.object({message:l.string(),code:l.string().optional()}),I=l.object({jobId:r,clientId:r,version:r.optional(),strategy:T,status:l.enum([`success`,`error`]),installPath:a.optional(),activeVersion:r.nullable(),error:F.optional(),metadata:l.record(l.string(),l.unknown()).optional()}),L=l.object({clientId:r,previousActiveVersion:r.nullable(),activeVersion:r.nullable(),reason:l.enum([`install`,`update`,`set-active`,`uninstall`])}),R=l.enum([`supervisor`,`adapter`,`client-hook`,`statusline`,`cli-wrapper`]),z=l.object({layer:R,producer:r}),B=l.object({supervisorSessionId:r.optional(),pid:l.number().int().positive().optional(),parentPid:l.number().int().positive().optional(),adapterSessionId:r.optional(),sessionId:r.optional(),cwd:l.string().optional(),argv:l.array(l.string()).optional(),metadata:l.record(l.string(),l.unknown()).optional()}),V={request:l.object({clientId:r,source:z,observedAt:i}).merge(B).refine(e=>e.supervisorSessionId!==void 0||e.pid!==void 0||e.adapterSessionId!==void 0,{message:`At least one hard-evidence field is required (supervisorSessionId, pid, or adapterSessionId)`}),response:l.object({clientRuntimeId:r,created:l.boolean(),promoted:l.boolean()})},H=B.extend({clientRuntimeId:r,clientId:r,status:l.enum([`observed`,`started`]),source:z,observedAt:i}),U=l.object({clientId:r,source:r,observedAt:i,sessionId:l.string().optional(),adapterSessionId:l.string().optional(),metadata:l.record(l.string(),l.unknown()).optional()}),W=U.extend({}),G=U.extend({prompt:r.optional()}),K=U.extend({}),q=U.extend({}),J=U.extend({toolName:r.optional(),toolCallId:r.optional()}),Y=U.extend({toolName:r.optional(),toolCallId:r.optional(),success:l.boolean().optional()}),X=l.object({group:r,name:r,installed:l.boolean(),command:r}),Z={"runtime.observe":V,"runtime.started":H,scan:{request:l.object({targets:l.array(se).optional()}),response:l.object({results:l.array(oe)})},"session.account.observe":re,"account.observe":ae,"account.activate":{request:l.object({clientId:r,clientAccountId:r,identifiers:l.array(s).min(1),displayLabel:l.string().optional()}),response:l.object({accepted:l.boolean()})},"account.getActive":{request:l.object({clientId:r}),response:l.object({identity:l.object({clientAccountId:r,identifiers:l.array(s).min(1),displayLabel:l.string().optional()}).nullable()})},"usage.ingest":c,"usage.snapshot":ie,"session.started":W,"session.userPrompt.submitted":G,"session.turn.started":K,"session.turn.completed":q,"session.tool.pre":J,"session.tool.post":Y,"wiring.list":{request:l.object({clientId:r.optional(),projectDir:a.optional(),makaioCommand:r}),response:l.object({results:l.array(l.object({clientId:r,entries:l.array(X)}))})},list:O,install:k,uninstall:A,update:j,setActive:M,"installJob.progress":P,"installJob.completed":I,"version.changed":L,resolveBinary:w,...n,...te,"config.prime":ee},Q=ce(`client`,Z),ue=Q.subjects;function $(e){if(Array.isArray(e)){for(let t of e)$(t);return Object.freeze(e)}if(e&&typeof e==`object`){for(let t of Object.values(e))$(t);return Object.freeze(e)}return e}function de(e){return $(S.parse(e))}export{T as A,f as B,M as C,F as D,L as E,p as F,v as G,h as H,b as I,u as L,w as M,x as N,N as O,S as P,d as R,O as S,j as T,y as U,_ as V,g as W,H as _,U as a,P as b,J as c,G as d,X as f,z as g,R as h,Z as i,C as j,E as k,q as l,V as m,Q as n,W as o,B as p,ue as r,Y as s,de as t,K as u,D as v,A as w,k as x,I as y,m as z};
@@ -1,2 +1,2 @@
1
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,unique as d,uniqueIndex as f}from"drizzle-orm/sqlite-core";import{index as p,unique as m,uniqueIndex as h}from"drizzle-orm/pg-core";import{defineDialectSchema as ee,defineDualTable as g,didAffectRows as te,executeTransaction as _,registerDrizzleHandlers as ne,resolveSchema as v}from"@makaio/framework/storage/drizzle";import{and as y,eq as b,gt as re,sql as ie}from"drizzle-orm";import{ClientProfileNameSchema as x,ClientProfileSchema as ae,ClientSubjects as oe,ClientSubjects as S,ClientWiringEntrySchema as C,ManagedInstallDescriptorSchema as se,SessionConfigIdSchema as ce}from"@makaio/framework/contracts/client";import*as w from"node:os";import{CLIDetectionSubjects as le}from"@makaio/framework/services/cli-detection/namespace";import{ClientStorageSubjects as ue}from"@makaio/framework/services/settings/storage";import{SessionSubjects as de}from"@makaio/framework/contracts/session";async function fe(e,t,n,r,i){let a,o=(n.get(e)??Promise.resolve()).then(async()=>{let n=await i(r(await pe(e,t)));n.changed&&await me(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 pe(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 me(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 he=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)}},ge=class{nextAccountSequence=1;accountIdsByIdentifier=new Map;accounts=new Map;upsertAccount(e){let t=ve(e.displayLabel),n=new Map;for(let t of e.identifiers)n.set(_e(e.clientId,t.scheme,t.value),t);let r=ye(n,this.accountIdsByIdentifier,`strong`),i=ye(n,this.accountIdsByIdentifier,`alias`),a=r[0]??(i.length===1?i[0]:i.length>1?be(i):this.createAccount()),o=(r.length>0?Ce(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 _e(e,t,n){return`${e}\u0000${t}\u0000${n}`}function ve(e){return e?.trim()||void 0}function ye(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(xe)}function be(e){return[...e].sort(xe)[0]}function xe(e,t){let n=Se(e),r=Se(t);return n!==null&&r!==null&&n!==r?n-r:e.localeCompare(t)}function Se(e){let t=e.match(/^client-account-(\d+)$/);return t?Number(t[1]):null}function Ce(e,t,n){let r=new Set([...t,...n]);return r.delete(e),Array.from(r).sort(xe)}function we(e){return{subject:`config.prime`,$meta:{namespace:`client:${e}`,isRequest:!0,local:!1,channel:!1}}}async function T(e,t){let n=await e.requestOptional(we(t.clientId),t);return n.handled?n.data:{primed:!1}}function Te(){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 Ee=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 De(e){if(e!==void 0)return(t,n)=>{n!==null&&n>0?e(`downloading`,t/n*100):e(`downloading`,null)}}var Oe=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 ke(){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 Ae(e){return e.replace(/[^0-9a-fA-F]/g,``).toUpperCase()}function E(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 je(e){let t=`${e.platform}-${e.arch}`;return e.platform===`linux`&&e.isMusl?`${t}-musl`:t}function Me(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 Ne(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`||!Pe(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 Pe(e){return e.length>0&&e!==`.`&&e!==`..`&&!e.includes(`/`)&&!e.includes(`\\`)}var Fe=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??ke()}}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=je(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=E(a.binaryPathTemplate,e,s,f.binary),m=n.resolve(r,f.binary);await this.#t.downloadFile(`${a.baseUrl}/${p}`,m,De(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}/${E(e.manifestPathTemplate,n)}`,s=`${e.baseUrl}/${E(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(Ae(c)!==Ae(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 Ne(Me(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 Ie(e,t){let n=se.safeParse(e);if(n.success)switch(n.data.type){case`npm`:return new Oe(n.data,t);case`signed-binary-bucket`:return new Fe(n.data,t)}}function Le(e,t){let r=n.relative(e,t);return r!==``&&!r.startsWith(`..${n.sep}`)&&r!==`..`&&!n.isAbsolute(r)}function D(e,t){return!n.isAbsolute(e)||!n.isAbsolute(t)?!1:Le(n.resolve(e),n.resolve(t))}function O(e,t){if(!e||!n.isAbsolute(e))throw Error(`${t} requires a non-empty absolute basePath`);return n.resolve(e)}async function Re(e,r,i,a){let[o,...s]=i;if(Be(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(!Le(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=ze(a);if(!Ve(f,p))throw Error(`Version mismatch: expected "${a}" but command output was "${f.trim()}"`)}function ze(e){return e[0]===`v`||e[0]===`V`?e.slice(1):e}function Be(e){return e.startsWith(`/`)||/^[A-Za-z]:[/\\]/.test(e)||e.startsWith(`\\`)}function Ve(e,t){return(e.match(/[A-Za-z0-9][A-Za-z0-9._+-]*/g)??[]).some(e=>ze(e)===t)}var He=class{strategyDeps;config;jobs=new Map;#e=!1;resolvedBasePath;constructor(e,t){this.strategyDeps=e,this.config=t,this.resolvedBasePath=O(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=Ie(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 Re(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(!D(this.resolvedBasePath,r))throw Error(`Invalid install target path for client "${e}" and version "${t}"`);return r}};const k=e.object({id:e.string(),clientId:e.string(),version:e.string(),installPath:e.string(),installedAt:e.number().int().nonnegative(),createdAt:e.number().int().nonnegative()}),A=e.object({clientId:e.string(),activeVersion:e.string().nullable(),updatedAt:e.number().int().nonnegative()}),j=e.object({previousActiveVersion:e.string().nullable(),activeVersion:e.string().nullable()}),M=i(`client-binary:storage`,{insertVersion:{request:k,response:e.object({success:e.boolean()})},recordInstalledVersion:{request:e.object({versionRecord:k,makeActive:e.boolean(),updatedAt:e.number().int().nonnegative()}),response:j},listVersions:{request:e.object({clientId:e.string()}),response:e.object({versions:e.array(k)})},getSnapshot:{request:e.object({clientId:e.string()}),response:e.object({state:A.nullable(),versions:e.array(k)})},loadAllVersions:{request:e.object({}),response:e.object({versions:e.array(k)})},upsertState:{request:A,response:e.object({success:e.boolean()})},setActiveVersion:{request:e.object({clientId:e.string(),activeVersion:e.string().nullable(),updatedAt:e.number().int().nonnegative()}),response:j},getState:{request:e.object({clientId:e.string()}),response:e.object({state:A.nullable()})},loadAllState:{request:e.object({}),response:e.object({states:e.array(A)})},loadSnapshot:{request:e.object({}),response:e.object({states:e.array(A),versions:e.array(k)})},removeVersionAndClearActive:{request:e.object({clientId:e.string(),version:e.string(),updatedAt:e.number().int().nonnegative()}),response:j.extend({removedVersion:e.string().nullable()})}}),N=M.subjects;var P=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 F(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 Ue=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(N.getSnapshot,{clientId:e}),i=n?.activeVersion??null;return i===null?this.buildGlobalContext(e,t):this.buildManagedContext(e,i,t,r)}isInstallPathWithinBase(e){return D(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 D(n,r)?i===r||D(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&&F(`client.resolveBinary`,e,t,r.binary.supportedVersions,`managed binary version`);let o=I(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(S.scan,{targets:[n]}),i=r.find(t=>t.clientId===e);if(i===void 0||!i.found)throw new he(e);let a=i.version??null;return F(`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===`~`?w.homedir():r.startsWith(`~/`)?n.join(w.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 I(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 We(e,t){let{versions:n,states:r}=await e.request(N.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 Ge=class extends l{config;definitionLookup;versionResolver;jobRunner;strategyDeps;resolvedBasePath;resolvedConfigBasePath;resolver;pendingClients=new Set;constructor(e=a,t,n=new P([]),r=Te()){super(e),this.config=t,this.definitionLookup=n,this.resolvedBasePath=O(t.basePath,`ClientBinaryManager`),this.resolvedConfigBasePath=O(t.configBasePath,`ClientBinaryManager configBasePath`),this.strategyDeps=r,this.versionResolver=new Ee,this.jobRunner=new He(r,t),this.resolver=new Ue({bus:e,resolvedBasePath:this.resolvedBasePath,resolvedConfigBasePath:this.resolvedConfigBasePath,definitionLookup:n})}async onInit(){this.registerHandler(S.list,async e=>{let t=await this.handleList();e.setResult({clients:t})}),this.registerHandler(S.install,async e=>{let t=await this.handleInstall(e.payload.clientId,e.payload.version);e.setResult(t)}),this.registerHandler(S.update,async e=>{let t=await this.handleUpdate(e.payload.clientId);e.setResult(t)}),this.registerHandler(S.setActive,async e=>{let t=await this.handleSetActive(e.payload.clientId,e.payload.version);e.setResult(t)}),this.registerHandler(S.uninstall,async e=>{let t=await this.handleUninstall(e.payload.clientId,e.payload.version);e.setResult(t)}),this.registerHandler(S.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 We(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&&F(`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&&F(`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(N.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&&F(`client.setActive`,e,t,i.binary.supportedVersions,`requested binary version`);let a=I(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 Re(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(N.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(N.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(S.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(N.setActiveVersion,{clientId:e,activeVersion:t,updatedAt:Date.now()})).previousActiveVersion;if(r!==t)try{await this.bus.emit(S.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(S.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(S.installJob.completed,e).catch(e=>{console.warn(`[ClientBinaryManager] Failed to emit client.installJob.completed:`,e)})},r.postInstall,I(r.versionCommand)),o.jobId}makeCompletionCallback(){return async({clientId:e,version:t,installPath:n,makeActive:r,reason:i})=>{let a=Date.now();await T(this.bus,{clientId:e,configDir:this.resolveManagedConfigDir(e),phase:`managed-install`,binaryVersion:t});let o=await this.bus.request(N.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(S.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 L(e,t){return`${e}${t}`}function R(e,t){return`${e}${t}`}var Ke=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(L(e.pid,e.clientId),e.clientRuntimeId),e.adapterSessionId!==void 0&&this.byAdapterSessionClientId.set(R(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(L(t,r));if(e!==void 0)return this.records.get(e)}if(n!==void 0){let e=this.byAdapterSessionClientId.get(R(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(L(e.pid,e.clientId),e.clientRuntimeId),e.adapterSessionId!==void 0&&this.byAdapterSessionClientId.set(R(e.adapterSessionId,e.clientId),e.clientRuntimeId)}removeIndexEntries(e){e.supervisorSessionId!==void 0&&this.bySupervisorSessionId.delete(e.supervisorSessionId),e.pid!==void 0&&this.byPidClientId.delete(L(e.pid,e.clientId)),e.adapterSessionId!==void 0&&this.byAdapterSessionClientId.delete(R(e.adapterSessionId,e.clientId))}};const qe=[`observed`,`started`],z=e.object({clientRuntimeId:e.string(),clientId:e.string(),status:e.enum(qe),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 Je(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 Ye(e){return Math.max(Date.now(),e+1)}function Xe(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 Ze=class{runtimeMap=new Ke;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&&Je(e),i=Xe(t,e),a=n&&e.observedAt>t.observedAt;return r&&(t.status=`started`),(i||r||a)&&(t.updatedAt=Ye(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=Je(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 U=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()}),Qe=/^[a-z0-9-]+$/;function W(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(!Qe.test(r))throw Error(`[${t}] clientId must contain only lowercase letters, numbers, and hyphens after an optional client: prefix`);return r}function $e(e){return{subject:`hook.received`,$meta:{namespace:`client:${W(e,`createRawClientHookReceivedSubject`)}`,isRequest:!1,local:!1,channel:!1}}}const et=5e3,tt=e.object({exitCode:e.number().int().min(0).max(255).default(0),stdout:e.string().default(``),stderr:e.string().default(``)});function nt(e){return{subject:`hook.handle`,$meta:{namespace:`client:${W(e,`createRawClientHookHandleSubject`)}`,isRequest:!0,local:!1,channel:!1}}}function rt(e){if(typeof e!=`string`)return;let t=e.trim();return t.length>0?t:void 0}function it(e,t){return rt(e[t])}function at(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 ot(e){try{e().catch(st)}catch(e){st(e)}}function st(e){(process.env.DEBUG||process.env.MAKAIO_DEBUG)&&console.debug(`[emitBestEffort] observed-semantics emission failed`,e)}function ct(e,t){return{subject:t,$meta:{namespace:`client:${W(e,`createClientWiringSubjectDef`)}`,isRequest:!0,local:!1,channel:!1}}}function lt(e){return ct(e,`wiring.list`)}const ut=e.string().min(1).refine(n.isAbsolute,{message:`projectDir must be an absolute path`}),dt=e.object({entries:e.array(C)}),ft=e.object({applied:e.number().int().nonnegative(),skipped:e.number().int().nonnegative()}),pt=e.object({removed:e.number().int().nonnegative()}),mt=e.object({clientId:e.string().trim().min(1),entries:e.array(C)});function ht(e){if(e!==void 0&&!n.isAbsolute(e))throw Error(`projectDir must be an absolute path, got: ${e}`)}var gt=class extends l{accountRegistry;runtimeRegistry;latestSnapshots=new Map;activeIdentities=new Map;constructor(e=a,t=new ge,n=new Ze(e)){super(e),this.accountRegistry=t,this.runtimeRegistry=n}async onInit(){await this.runtimeRegistry.loadFromStorage(),this.registerHandler(S.account.observe,e=>this.handleAccountObserve(e)),this.registerHandler(S.usage.ingest,e=>this.handleUsageIngest(e)),this.registerHandler(S.scan,async e=>{let t=await this.scanClients(e.payload.targets);e.setResult({results:t})}),this.registerHandler(S.runtime.observe,e=>this.handleRuntimeObserve(e)),this.registerHandler(S.wiring.list,async e=>{let t=await this.listWirings(e.payload);e.setResult({results:t})}),this.registerHandler(S.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(S.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=yt(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(S.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=_t(t.clientAccountId,e.payload,t.displayLabel),r=yt(vt(this.latestSnapshots.get(t.clientAccountId),n),t.displayLabel);this.latestSnapshots.set(t.clientAccountId,r),await this.bus.emit(S.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(S.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(le.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:xt(n,r,e.supportedVersions)}})}async listScannableStoredClients(){let{clients:e}=await this.bus.request(ue.list,{});return e.filter(bt).map(e=>({clientId:e.id,binaryName:e.binary.name,supportedVersions:e.binary.supportedVersions}))}async listWirings(e){ht(e.projectDir);let{clients:t}=await this.bus.request(ue.list,{}),n=e.clientId===void 0?void 0:W(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=lt(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 _t(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 vt(e,t){return e&&e.observedAt>t.observedAt?e:t}function yt(e,t){return!e||t===void 0||e.displayLabel===t?e:{...e,displayLabel:t}}function bt(e){return e.enabled&&e.binary!==void 0}function xt(e,t,n){if(e&&t!==void 0&&t!==`unknown`&&n!==void 0&&!c(t,n))return`Unsupported version: requires ${n}`}var St=class extends l{constructor(e=a){super(e)}onInit(){this.registerHandler(S.config.prime,async e=>{e.setResult(await T(this.bus,e.payload))})}};const G=ae,K=e.string().trim().min(1),q=i(`client-profile:storage`,{get:{request:e.object({clientId:K,name:x}),response:e.object({record:G.nullable()})},getById:{request:e.object({id:K}),response:e.object({record:G.nullable()})},list:{request:e.object({clientId:K}),response:e.object({records:e.array(G)})},set:{request:G,response:e.object({success:e.boolean()})},delete:{request:e.object({clientId:K,name:x}),response:e.object({success:e.boolean()})},clearDefault:{request:e.object({clientId:K}),response:e.object({success:e.boolean()})},setDefault:{request:e.object({clientId:K,name:x}),response:e.object({record:G.nullable()})}}),J=q.subjects;function Ct(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 wt=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(S.profile.create,async e=>{let i=W(e.payload.clientId,`profile.create`),{name:a,description:o}=e.payload;if((await this.bus.request(J.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=Ct(s,n.join(s,a),`profile.create`);await t.mkdir(c,{recursive:!0});try{await T(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(J.set,n),e.setResult({profile:n})}catch(e){throw await t.rm(c,{recursive:!0,force:!0}),e}})}registerListHandler(){this.registerHandler(S.profile.list,async e=>{let t=W(e.payload.clientId,`profile.list`),n=await this.bus.request(J.list,{clientId:t});e.setResult({profiles:n.records})})}registerGetHandler(){this.registerHandler(S.profile.get,async e=>{let t=W(e.payload.clientId,`profile.get`),n=await this.bus.request(J.get,{clientId:t,name:e.payload.name});e.setResult({profile:n.record})})}registerUpdateHandler(){this.registerHandler(S.profile.update,async e=>{let t=W(e.payload.clientId,`profile.update`),{name:n,description:r}=e.payload,i=await this.bus.request(J.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(J.set,a),e.setResult({profile:a})})}registerDeleteHandler(){this.registerHandler(S.profile.delete,async e=>{let r=W(e.payload.clientId,`profile.delete`),{name:i}=e.payload,a=await this.bus.request(J.get,{clientId:r,name:i});a.record!==null&&(Ct(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(J.delete,{clientId:r,name:i});e.setResult({success:o.success})})}registerSetDefaultHandler(){this.registerHandler(S.profile.setDefault,async e=>{let t=W(e.payload.clientId,`profile.setDefault`),{name:n}=e.payload,r=await this.bus.request(J.setDefault,{clientId:t,name:n});if(r.record===null)throw Error(`Profile '${n}' not found for client '${t}'`);e.setResult({profile:r.record})})}};function Tt(e){return{subject:`sessionConfig.setup`,$meta:{namespace:`client:${e}`,isRequest:!0,local:!1,channel:!1}}}function Et(e){return{subject:`sessionConfig.destroy`,$meta:{namespace:`client:${e}`,isRequest:!0,local:!1,channel:!1}}}const Dt=()=>Date.now();function Ot(){let e=w.platform();if(e===`darwin`||e===`linux`||e===`win32`)return e;throw Error(`client.sessionConfig does not support platform '${e}'`)}function kt(e,t,r){let i=ce.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 At=class extends l{clientsBasePath;getNow;constructor(e,t,n=Dt){super(e),this.clientsBasePath=t,this.getNow=n}async onInit(){this.registerHandler(S.sessionConfig.create,async e=>{let{clientId:n,sessionId:r,profileName:i,baseConfigDir:a,projectDir:o,configInheritance:s=`full`}=e.payload,c=W(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=Tt(c),r=await this.bus.requestOptional(n,{sessionDir:l,baseConfigDir:t,projectDir:o,platform:Ot(),configInheritance:s}),u=r.handled?r.data.env??{}:{};await T(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(S.sessionConfig.destroy,async e=>{let{clientId:t,sessionId:n}=e.payload,r=W(t,`sessionConfig.destroy`),i=this.resolveClientSessionDir(r,n,`sessionConfig.destroy`);await this.destroyClientSessionDir(r,i),e.setResult({success:!0})}),this.registerHandler(S.sessionConfig.cleanup,async e=>{let{clientId:t}=e.payload,n=t===void 0?void 0:W(t,`sessionConfig.cleanup`),r=await this.cleanupOrphanedDirs(n);e.setResult({removed:r})}),this.registerHandler(de.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(J.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(J.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=kt(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(!ce.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(Et(e),{sessionDir:n,platform:Ot()}),await t.rm(n,{recursive:!0,force:!0}))}async isActiveSession(e){let t=await this.bus.requestOptional(de.get,{sessionId:e});return t.handled&&t.data.session?.status===`active`}resolveClientSessionDir(e,t,r){return kt(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 jt=new Set([`hook.received`,`hook.handle`]);function Mt(e,t){return a.registerNamespace(i(`client:${e}`,{"hook.received":U,"hook.handle":{request:U,response:tt},...t})).subjects}function Nt(e,t){let n=Object.keys(t).filter(e=>jt.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 Pt(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 Ft(e,t,n){let r=Object.keys(n).filter(e=>!Pt(t,e));if(r.length!==0)throw Error(`[createClientNamespace] client:${e} was already registered without required subjects: ${r.join(`, `)}`)}function It(e,t){let n=W(e,`createClientNamespace`),r=t??{};Nt(n,r);let i=Mt(n,r);return Ft(n,i,r),{namespaceDomain:`client:${n}`,subjects:i}}const Y=g(`client_runtimes`,e=>({id:e.text(`id`).primaryKey(),clientId:e.text(`client_id`).notNull(),status:e.text(`status`).notNull(),supervisorSessionId:e.text(`supervisor_session_id`),pid:e.int4(`pid`),parentPid:e.int4(`parent_pid`),adapterSessionId:e.text(`adapter_session_id`),sessionId:e.text(`session_id`),cwd:e.text(`cwd`),argv:e.jsonCol(`argv`),metadata:e.jsonCol(`metadata`),observedAt:e.epochMs(`observed_at`).notNull(),createdAt:e.epochMs(`created_at`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()}),{sqlite: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)],postgres:e=>[p(`idx_client_runtimes_supervisor_session_id`).on(e.supervisorSessionId),p(`idx_client_runtimes_pid_client_id`).on(e.pid,e.clientId),p(`idx_client_runtimes_adapter_session_id_client_id`).on(e.adapterSessionId,e.clientId)]}),Lt=Y.sqlite,Rt=Y.postgres,zt=ee({clientRuntimes:Lt},{clientRuntimes:Rt}),Bt=new Set(qe);function Vt(e){if(!Bt.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 Ht(e,t){let{clientRuntimes:n}=v(t,zt),r=e.on(V.upsert,async e=>{let r=e.payload,i={clientId:r.clientId,status:r.status,supervisorSessionId:r.supervisorSessionId??null,pid:r.pid??null,parentPid:r.parentPid??null,adapterSessionId:r.adapterSessionId??null,sessionId:r.sessionId??null,cwd:r.cwd??null,argv:r.argv??null,metadata:r.metadata??null,observedAt:r.observedAt,updatedAt:r.updatedAt};await t.insert(n).values({id:r.clientRuntimeId,createdAt:r.createdAt,...i}).onConflictDoUpdate({target:n.id,set:i,setWhere:re(ie`excluded.updated_at`,n.updatedAt)}),e.setResult({success:!0})}),i=e.on(V.loadAll,async e=>{let r=await t.select().from(n);e.setResult({records:r.map(Vt)})});return()=>{r(),i()}}const Ut=g(`client_binary_versions`,e=>({id:e.text(`id`).primaryKey(),clientId:e.text(`client_id`).notNull(),version:e.text(`version`).notNull(),installPath:e.text(`install_path`).notNull(),installedAt:e.epochMs(`installed_at`).notNull(),createdAt:e.epochMs(`created_at`).notNull()}),{sqlite:e=>[d(`uq_client_binary_versions_client_version`).on(e.clientId,e.version)],postgres:e=>[m(`uq_client_binary_versions_client_version`).on(e.clientId,e.version)]}),Wt=Ut.sqlite,Gt=g(`client_binary_state`,e=>({clientId:e.text(`client_id`).primaryKey(),activeVersion:e.text(`active_version`),updatedAt:e.epochMs(`updated_at`).notNull()})),Kt=Gt.sqlite,qt=Ut.postgres,Jt=Gt.postgres,X=ee({clientBinaryVersions:Wt,clientBinaryState:Kt},{clientBinaryVersions:qt,clientBinaryState:Jt});function Z(e){return{id:e.id,clientId:e.clientId,version:e.version,installPath:e.installPath,installedAt:e.installedAt,createdAt:e.createdAt}}function Q(e){return{clientId:e.clientId,activeVersion:e.activeVersion??null,updatedAt:e.updatedAt}}function Yt(e){return{id:e.id,clientId:e.clientId,version:e.version,installPath:e.installPath,installedAt:e.installedAt,createdAt:e.createdAt}}async function Xt(e,t,n){await e.insert(n).values(Yt(t)).onConflictDoNothing({target:[n.clientId,n.version]})}function Zt(e,t,n){return{clientId:e,activeVersion:t,updatedAt:n}}async function Qt(e,t,n,r,i){await e.insert(i).values(Zt(t,n,r)).onConflictDoUpdate({target:i.clientId,set:{activeVersion:n,updatedAt:r}})}async function $t(e,t){let{clientBinaryVersions:n}=v(e,X);await Xt(e,t,n)}async function en(e,t,n,r){let{clientBinaryVersions:i,clientBinaryState:a}=v(e,X);return _(e,async e=>{let[o]=await e.select().from(a).where(b(a.clientId,t.clientId)).limit(1),s=o?.activeVersion??null;return await Xt(e,t,i),n?(await Qt(e,t.clientId,t.version,r,a),{previousActiveVersion:s,activeVersion:t.version}):{previousActiveVersion:s,activeVersion:s}})}async function tn(e,t){let{clientBinaryVersions:n,clientBinaryState:r}=v(e,X);return _(e,async e=>{let[i]=await e.select().from(r).where(b(r.clientId,t)).limit(1),a=await e.select().from(n).where(b(n.clientId,t));return{state:i?Q(i):null,versions:a.map(Z)}})}async function nn(e){let{clientBinaryVersions:t,clientBinaryState:n}=v(e,X);return _(e,async e=>{let r=await e.select().from(n),i=await e.select().from(t);return{states:r.map(Q),versions:i.map(Z)}})}async function rn(e,t){let{clientBinaryState:n}=v(e,X),r={clientId:t.clientId,activeVersion:t.activeVersion??null,updatedAt:t.updatedAt};await e.insert(n).values(r).onConflictDoUpdate({target:n.clientId,set:r})}async function an(e,t,n,r){let{clientBinaryState:i}=v(e,X);return _(e,async e=>{let[a]=await e.select().from(i).where(b(i.clientId,t)).limit(1),o=a?.activeVersion??null;return await Qt(e,t,n,r,i),{previousActiveVersion:o,activeVersion:n}})}async function on(e,t,n,r){let{clientBinaryVersions:i,clientBinaryState:a}=v(e,X);return _(e,async e=>{let[o]=await e.select().from(a).where(b(a.clientId,t)).limit(1),s=o?.activeVersion??null;if(!te(await e.delete(i).where(y(b(i.clientId,t),b(i.version,n)))))return{removedVersion:null,previousActiveVersion:s,activeVersion:s};await e.update(a).set({activeVersion:null,updatedAt:r}).where(y(b(a.clientId,t),b(a.activeVersion,n)));let[c]=await e.select().from(a).where(b(a.clientId,t)).limit(1);return{removedVersion:n,previousActiveVersion:s,activeVersion:c?.activeVersion??null}})}function sn(e,t){let{clientBinaryVersions:n,clientBinaryState:r}=v(t,X),i=[e.on(N.insertVersion,async e=>{await $t(t,e.payload),e.setResult({success:!0})}),e.on(N.recordInstalledVersion,async e=>{let{versionRecord:n,makeActive:r,updatedAt:i}=e.payload,a=await en(t,n,r,i);e.setResult(a)}),e.on(N.listVersions,async e=>{let r=await t.select().from(n).where(b(n.clientId,e.payload.clientId));e.setResult({versions:r.map(Z)})}),e.on(N.getSnapshot,async e=>{let{state:n,versions:r}=await tn(t,e.payload.clientId);e.setResult({state:n,versions:r})}),e.on(N.loadAllVersions,async e=>{let r=await t.select().from(n);e.setResult({versions:r.map(Z)})}),e.on(N.upsertState,async e=>{await rn(t,e.payload),e.setResult({success:!0})}),e.on(N.setActiveVersion,async e=>{let{clientId:n,activeVersion:r,updatedAt:i}=e.payload,a=await an(t,n,r,i);e.setResult(a)}),e.on(N.getState,async e=>{let[n]=await t.select().from(r).where(b(r.clientId,e.payload.clientId)).limit(1);e.setResult({state:n?Q(n):null})}),e.on(N.loadAllState,async e=>{let n=await t.select().from(r);e.setResult({states:n.map(Q)})}),e.on(N.loadSnapshot,async e=>{let{states:n,versions:r}=await nn(t);e.setResult({states:n,versions:r})}),e.on(N.removeVersionAndClearActive,async e=>{let{clientId:n,version:r,updatedAt:i}=e.payload,a=await on(t,n,r,i);e.setResult(a)})];return()=>{for(let e of i)e()}}const cn=g(`client_profiles`,e=>({id:e.text(`id`).primaryKey(),clientId:e.text(`client_id`).notNull(),name:e.text(`name`).notNull(),description:e.text(`description`),configDir:e.text(`config_dir`).notNull(),isDefault:e.bool(`is_default`).notNull().default(!1),createdAt:e.epochMs(`created_at`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()}),{sqlite:e=>[f(`uq_client_profiles_client_name`).on(e.clientId,e.name),f(`uq_client_profiles_default`).on(e.clientId).where(ie`${e.isDefault} = 1`)],postgres:e=>[h(`uq_client_profiles_client_name`).on(e.clientId,e.name),h(`uq_client_profiles_default`).on(e.clientId).where(ie`${e.isDefault} = true`)]}),ln=cn.sqlite,un=cn.postgres,dn=ee({clientProfiles:ln},{clientProfiles:un});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 fn(e,t,n){let{clientProfiles:r}=v(e,dn),i=Date.now();return _(e,async e=>{let[a]=await e.select().from(r).where(y(b(r.clientId,t),b(r.name,n))).limit(1);if(a===void 0)return null;await e.update(r).set({isDefault:!1,updatedAt:i}).where(y(b(r.clientId,t),b(r.isDefault,!0))),await e.update(r).set({isDefault:!0,updatedAt:i}).where(y(b(r.clientId,t),b(r.name,n)));let[o]=await e.select().from(r).where(y(b(r.clientId,t),b(r.name,n))).limit(1);return o===void 0?null:$(o)})}function pn(e,t){let{clientProfiles:n}=v(t,dn),r=[e.on(J.get,async e=>{let{clientId:r,name:i}=e.payload,[a]=await t.select().from(n).where(y(b(n.clientId,r),b(n.name,i))).limit(1);e.setResult({record:a?$(a):null})}),e.on(J.getById,async e=>{let[r]=await t.select().from(n).where(b(n.id,e.payload.id)).limit(1);e.setResult({record:r?$(r):null})}),e.on(J.list,async e=>{let r=await t.select().from(n).where(b(n.clientId,e.payload.clientId));e.setResult({records:r.map($)})}),e.on(J.set,async e=>{let r=e.payload,i={id:r.id,clientId:r.clientId,name:r.name,description:r.description??null,configDir:r.configDir,isDefault:r.isDefault,createdAt:r.createdAt,updatedAt:r.updatedAt};await t.insert(n).values(i).onConflictDoUpdate({target:n.id,set:{name:r.name,description:r.description??null,configDir:r.configDir,isDefault:r.isDefault,updatedAt:r.updatedAt}}),e.setResult({success:!0})}),e.on(J.delete,async e=>{let{clientId:r,name:i}=e.payload,a=await t.delete(n).where(y(b(n.clientId,r),b(n.name,i)));e.setResult({success:te(a)})}),e.on(J.clearDefault,async e=>{await t.update(n).set({isDefault:!1,updatedAt:Date.now()}).where(y(b(n.clientId,e.payload.clientId),b(n.isDefault,!0))),e.setResult({success:!0})}),e.on(J.setDefault,async e=>{let{clientId:n,name:r}=e.payload,i=await fn(t,n,r);e.setResult({record:i})})];return()=>{for(let e of r)e()}}var mn=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 hn=o(`makaio.clients-core`);function gn(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 _n(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:[M,B,q],storage:{registerHandlers:ne((e,t)=>gn([()=>Ht(e,t),()=>sn(e,t),()=>pn(e,t)]))},create:e=>{let t=new P(a),o=n.join(e.makaioHome,`clients`),s=new Ge(e.bus,{basePath:n.join(e.makaioHome,`binaries`),configBasePath:o,postInstallHandlers:i},t,r),c=new wt(e.bus,o),l=new At(e.bus,o);return new mn(new gt(e.bus),s,new St(e.bus),c,l)}}}async function vn(e){let t=await a.requestOptional(S.resolveBinary,{clientId:e});return t.handled?t.data:void 0}function yn(e,t,n){return[...n??[],e,...t].map(Sn).join(` `)}function bn(e,t,n,r,i){return yn(e,[...i??[],...t.split(` `),n],r)}function xn(e){return e.runtimeCapabilities.hookEvents.filter(e=>e.frameworkSubject!==void 0).map(e=>({eventName:e.name,mode:e.mode}))}function Sn(e){return/^[A-Za-z0-9_@%+=:,./-]+$/.test(e)?e:`'${e.replaceAll(`'`,`'\\''`)}'`}export{ut as AbsolutePathSchema,he as BinaryNotFoundError,qe as CLIENT_RUNTIME_STATUSES,ge as ClientAccountRegistry,He as ClientBinaryJobRunner,Ge as ClientBinaryManager,A as ClientBinaryStateRecordSchema,M as ClientBinaryStorageNamespace,N as ClientBinaryStorageSubjects,k as ClientBinaryVersionRecordSchema,Ee as ClientBinaryVersionResolver,St as ClientConfigPrimeService,P as ClientDefinitionRegistry,tt as ClientHookHandleResponseSchema,G as ClientProfileRecordSchema,wt as ClientProfileService,q as ClientProfileStorageNamespace,J as ClientProfileStorageSubjects,Ze as ClientRuntimeRegistry,gt as ClientRuntimeService,B as ClientRuntimeStorageNamespace,V as ClientRuntimeStorageSubjects,At as ClientSessionConfigService,oe as ClientSubjects,mt as ClientWiringAggregatedResultSchema,ft as ClientWiringApplyResponseSchema,C as ClientWiringEntrySchema,dt as ClientWiringListResponseSchema,pt as ClientWiringRemoveResponseSchema,mn as ClientsCoreService,hn as ClientsCoreToken,et as DEFAULT_HOOK_HANDLE_TIMEOUT_MS,U as RawClientHookPayloadSchema,z as RuntimeRecordSchema,ht as assertAbsoluteProjectDir,fe as atomicModifyFile,yn as buildClientCommand,at as buildClientSessionBase,bn as buildHookCommand,W as canonicalizeClientId,Y as clientRuntimesDual,It as createClientNamespace,lt as createClientWiringListSubjectDef,ct as createClientWiringSubjectDef,_n as createClientsCorePackage,nt as createRawClientHookHandleSubject,$e as createRawClientHookReceivedSubject,xn as deriveSessionEventDescriptors,ot as emitBestEffort,D as isPathWithinBase,it as pickNonEmptyString,rt as pickNonEmptyStringValue,sn as registerDrizzleClientBinaryStorage,pn as registerDrizzleProfileStorage,Ht as registerDrizzleRuntimeStorage,gn as registerStorageHandlersWithRollback,O as resolveAndValidateBasePath,vn as resolveClientBinary};
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 Ie(e,t){let n=se.safeParse(e);if(n.success)switch(n.data.type){case`npm`:return new Oe(n.data,t);case`signed-binary-bucket`:return new Fe(n.data,t)}}function Le(e,t){let r=n.relative(e,t);return r!==``&&!r.startsWith(`..${n.sep}`)&&r!==`..`&&!n.isAbsolute(r)}function D(e,t){return!n.isAbsolute(e)||!n.isAbsolute(t)?!1:Le(n.resolve(e),n.resolve(t))}function O(e,t){if(!e||!n.isAbsolute(e))throw Error(`${t} requires a non-empty absolute basePath`);return n.resolve(e)}async function Re(e,r,i,a){let[o,...s]=i;if(Be(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(!Le(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=ze(a);if(!Ve(f,p))throw Error(`Version mismatch: expected "${a}" but command output was "${f.trim()}"`)}function ze(e){return e[0]===`v`||e[0]===`V`?e.slice(1):e}function Be(e){return e.startsWith(`/`)||/^[A-Za-z]:[/\\]/.test(e)||e.startsWith(`\\`)}function Ve(e,t){return(e.match(/[A-Za-z0-9][A-Za-z0-9._+-]*/g)??[]).some(e=>ze(e)===t)}var He=class{strategyDeps;config;jobs=new Map;#e=!1;resolvedBasePath;constructor(e,t){this.strategyDeps=e,this.config=t,this.resolvedBasePath=O(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=Ie(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 Re(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(!D(this.resolvedBasePath,r))throw Error(`Invalid install target path for client "${e}" and version "${t}"`);return r}};const k=e.object({id:e.string(),clientId:e.string(),version:e.string(),installPath:e.string(),installedAt:e.number().int().nonnegative(),createdAt:e.number().int().nonnegative()}),A=e.object({clientId:e.string(),activeVersion:e.string().nullable(),updatedAt:e.number().int().nonnegative()}),j=e.object({previousActiveVersion:e.string().nullable(),activeVersion:e.string().nullable()}),M=i(`client-binary:storage`,{insertVersion:{request:k,response:e.object({success:e.boolean()})},recordInstalledVersion:{request:e.object({versionRecord:k,makeActive:e.boolean(),updatedAt:e.number().int().nonnegative()}),response:j},listVersions:{request:e.object({clientId:e.string()}),response:e.object({versions:e.array(k)})},getSnapshot:{request:e.object({clientId:e.string()}),response:e.object({state:A.nullable(),versions:e.array(k)})},loadAllVersions:{request:e.object({}),response:e.object({versions:e.array(k)})},upsertState:{request:A,response:e.object({success:e.boolean()})},setActiveVersion:{request:e.object({clientId:e.string(),activeVersion:e.string().nullable(),updatedAt:e.number().int().nonnegative()}),response:j},getState:{request:e.object({clientId:e.string()}),response:e.object({state:A.nullable()})},loadAllState:{request:e.object({}),response:e.object({states:e.array(A)})},loadSnapshot:{request:e.object({}),response:e.object({states:e.array(A),versions:e.array(k)})},removeVersionAndClearActive:{request:e.object({clientId:e.string(),version:e.string(),updatedAt:e.number().int().nonnegative()}),response:j.extend({removedVersion:e.string().nullable()})}}),N=M.subjects;var P=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)}};const Ue=process.env.MAKAIO_SKIP_CLIENT_VERSION_CHECK===`1`;function F(e,t,n,r,i){if(n===null){if(s(r))return;if(Ue){console.warn(`[SKIP_VERSION_CHECK] ${e}: ${i} for client '${t}' did not report a version; requires ${r}`);return}throw Error(`${e}: ${i} for client '${t}' did not report a version; requires ${r}`)}if(!c(n,r)){if(Ue){console.warn(`[SKIP_VERSION_CHECK] ${e}: ${i} ${n} for client '${t}' does not satisfy ${r} — check bypassed`);return}throw Error(`${e}: ${i} ${n} for client '${t}' does not satisfy ${r}`)}}var We=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(N.getSnapshot,{clientId:e}),i=n?.activeVersion??null;return i===null?this.buildGlobalContext(e,t):this.buildManagedContext(e,i,t,r)}isInstallPathWithinBase(e){return D(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 D(n,r)?i===r||D(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&&F(`client.resolveBinary`,e,t,r.binary.supportedVersions,`managed binary version`);let o=I(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(S.scan,{targets:[n]}),i=r.find(t=>t.clientId===e);if(i===void 0||!i.found)throw new he(e);let a=i.version??null;return F(`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===`~`?w.homedir():r.startsWith(`~/`)?n.join(w.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 I(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 Ge(e,t){let{versions:n,states:r}=await e.request(N.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 Ke=class extends l{config;definitionLookup;versionResolver;jobRunner;strategyDeps;resolvedBasePath;resolvedConfigBasePath;resolver;pendingClients=new Set;constructor(e=a,t,n=new P([]),r=Te()){super(e),this.config=t,this.definitionLookup=n,this.resolvedBasePath=O(t.basePath,`ClientBinaryManager`),this.resolvedConfigBasePath=O(t.configBasePath,`ClientBinaryManager configBasePath`),this.strategyDeps=r,this.versionResolver=new Ee,this.jobRunner=new He(r,t),this.resolver=new We({bus:e,resolvedBasePath:this.resolvedBasePath,resolvedConfigBasePath:this.resolvedConfigBasePath,definitionLookup:n})}async onInit(){this.registerHandler(S.list,async e=>{let t=await this.handleList();e.setResult({clients:t})}),this.registerHandler(S.install,async e=>{let t=await this.handleInstall(e.payload.clientId,e.payload.version);e.setResult(t)}),this.registerHandler(S.update,async e=>{let t=await this.handleUpdate(e.payload.clientId);e.setResult(t)}),this.registerHandler(S.setActive,async e=>{let t=await this.handleSetActive(e.payload.clientId,e.payload.version);e.setResult(t)}),this.registerHandler(S.uninstall,async e=>{let t=await this.handleUninstall(e.payload.clientId,e.payload.version);e.setResult(t)}),this.registerHandler(S.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 Ge(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&&F(`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&&F(`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(N.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&&F(`client.setActive`,e,t,i.binary.supportedVersions,`requested binary version`);let a=I(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 Re(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(N.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(N.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(S.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(N.setActiveVersion,{clientId:e,activeVersion:t,updatedAt:Date.now()})).previousActiveVersion;if(r!==t)try{await this.bus.emit(S.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(S.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(S.installJob.completed,e).catch(e=>{console.warn(`[ClientBinaryManager] Failed to emit client.installJob.completed:`,e)})},r.postInstall,I(r.versionCommand)),o.jobId}makeCompletionCallback(){return async({clientId:e,version:t,installPath:n,makeActive:r,reason:i})=>{let a=Date.now();await T(this.bus,{clientId:e,configDir:this.resolveManagedConfigDir(e),phase:`managed-install`,binaryVersion:t});let o=await this.bus.request(N.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(S.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 L(e,t){return`${e}${t}`}function R(e,t){return`${e}${t}`}var qe=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(L(e.pid,e.clientId),e.clientRuntimeId),e.adapterSessionId!==void 0&&this.byAdapterSessionClientId.set(R(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(L(t,r));if(e!==void 0)return this.records.get(e)}if(n!==void 0){let e=this.byAdapterSessionClientId.get(R(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(L(e.pid,e.clientId),e.clientRuntimeId),e.adapterSessionId!==void 0&&this.byAdapterSessionClientId.set(R(e.adapterSessionId,e.clientId),e.clientRuntimeId)}removeIndexEntries(e){e.supervisorSessionId!==void 0&&this.bySupervisorSessionId.delete(e.supervisorSessionId),e.pid!==void 0&&this.byPidClientId.delete(L(e.pid,e.clientId)),e.adapterSessionId!==void 0&&this.byAdapterSessionClientId.delete(R(e.adapterSessionId,e.clientId))}};const Je=[`observed`,`started`],z=e.object({clientRuntimeId:e.string(),clientId:e.string(),status:e.enum(Je),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 Ye(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 Xe(e){return Math.max(Date.now(),e+1)}function Ze(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 Qe=class{runtimeMap=new qe;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&&Ye(e),i=Ze(t,e),a=n&&e.observedAt>t.observedAt;return r&&(t.status=`started`),(i||r||a)&&(t.updatedAt=Xe(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=Ye(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 U=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()}),$e=/^[a-z0-9-]+$/;function W(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(!$e.test(r))throw Error(`[${t}] clientId must contain only lowercase letters, numbers, and hyphens after an optional client: prefix`);return r}function et(e){return{subject:`hook.received`,$meta:{namespace:`client:${W(e,`createRawClientHookReceivedSubject`)}`,isRequest:!1,local:!1,channel:!1}}}const tt=5e3,nt=e.object({exitCode:e.number().int().min(0).max(255).default(0),stdout:e.string().default(``),stderr:e.string().default(``)});function rt(e){return{subject:`hook.handle`,$meta:{namespace:`client:${W(e,`createRawClientHookHandleSubject`)}`,isRequest:!0,local:!1,channel:!1}}}function it(e){if(typeof e!=`string`)return;let t=e.trim();return t.length>0?t:void 0}function at(e,t){return it(e[t])}function ot(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 st(e){try{e().catch(ct)}catch(e){ct(e)}}function ct(e){(process.env.DEBUG||process.env.MAKAIO_DEBUG)&&console.debug(`[emitBestEffort] observed-semantics emission failed`,e)}function lt(e,t){return{subject:t,$meta:{namespace:`client:${W(e,`createClientWiringSubjectDef`)}`,isRequest:!0,local:!1,channel:!1}}}function ut(e){return lt(e,`wiring.list`)}const dt=e.string().min(1).refine(n.isAbsolute,{message:`projectDir must be an absolute path`}),ft=e.object({entries:e.array(C)}),pt=e.object({applied:e.number().int().nonnegative(),skipped:e.number().int().nonnegative()}),mt=e.object({removed:e.number().int().nonnegative()}),ht=e.object({clientId:e.string().trim().min(1),entries:e.array(C)});function gt(e){if(e!==void 0&&!n.isAbsolute(e))throw Error(`projectDir must be an absolute path, got: ${e}`)}var _t=class extends l{accountRegistry;runtimeRegistry;latestSnapshots=new Map;activeIdentities=new Map;constructor(e=a,t=new ge,n=new Qe(e)){super(e),this.accountRegistry=t,this.runtimeRegistry=n}async onInit(){await this.runtimeRegistry.loadFromStorage(),this.registerHandler(S.account.observe,e=>this.handleAccountObserve(e)),this.registerHandler(S.usage.ingest,e=>this.handleUsageIngest(e)),this.registerHandler(S.scan,async e=>{let t=await this.scanClients(e.payload.targets);e.setResult({results:t})}),this.registerHandler(S.runtime.observe,e=>this.handleRuntimeObserve(e)),this.registerHandler(S.wiring.list,async e=>{let t=await this.listWirings(e.payload);e.setResult({results:t})}),this.registerHandler(S.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(S.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=bt(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(S.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=vt(t.clientAccountId,e.payload,t.displayLabel),r=bt(yt(this.latestSnapshots.get(t.clientAccountId),n),t.displayLabel);this.latestSnapshots.set(t.clientAccountId,r),await this.bus.emit(S.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(S.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(le.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:St(n,r,e.supportedVersions)}})}async listScannableStoredClients(){let{clients:e}=await this.bus.request(ue.list,{});return e.filter(xt).map(e=>({clientId:e.id,binaryName:e.binary.name,supportedVersions:e.binary.supportedVersions}))}async listWirings(e){gt(e.projectDir);let{clients:t}=await this.bus.request(ue.list,{}),n=e.clientId===void 0?void 0:W(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=ut(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 vt(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 yt(e,t){return e&&e.observedAt>t.observedAt?e:t}function bt(e,t){return!e||t===void 0||e.displayLabel===t?e:{...e,displayLabel:t}}function xt(e){return e.enabled&&e.binary!==void 0}function St(e,t,n){if(e&&t!==void 0&&t!==`unknown`&&n!==void 0&&!c(t,n))return`Unsupported version: requires ${n}`}var Ct=class extends l{constructor(e=a){super(e)}onInit(){this.registerHandler(S.config.prime,async e=>{e.setResult(await T(this.bus,e.payload))})}};const G=ae,K=e.string().trim().min(1),q=i(`client-profile:storage`,{get:{request:e.object({clientId:K,name:x}),response:e.object({record:G.nullable()})},getById:{request:e.object({id:K}),response:e.object({record:G.nullable()})},list:{request:e.object({clientId:K}),response:e.object({records:e.array(G)})},set:{request:G,response:e.object({success:e.boolean()})},delete:{request:e.object({clientId:K,name:x}),response:e.object({success:e.boolean()})},clearDefault:{request:e.object({clientId:K}),response:e.object({success:e.boolean()})},setDefault:{request:e.object({clientId:K,name:x}),response:e.object({record:G.nullable()})}}),J=q.subjects;function wt(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 Tt=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(S.profile.create,async e=>{let i=W(e.payload.clientId,`profile.create`),{name:a,description:o}=e.payload;if((await this.bus.request(J.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=wt(s,n.join(s,a),`profile.create`);await t.mkdir(c,{recursive:!0});try{await T(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(J.set,n),e.setResult({profile:n})}catch(e){throw await t.rm(c,{recursive:!0,force:!0}),e}})}registerListHandler(){this.registerHandler(S.profile.list,async e=>{let t=W(e.payload.clientId,`profile.list`),n=await this.bus.request(J.list,{clientId:t});e.setResult({profiles:n.records})})}registerGetHandler(){this.registerHandler(S.profile.get,async e=>{let t=W(e.payload.clientId,`profile.get`),n=await this.bus.request(J.get,{clientId:t,name:e.payload.name});e.setResult({profile:n.record})})}registerUpdateHandler(){this.registerHandler(S.profile.update,async e=>{let t=W(e.payload.clientId,`profile.update`),{name:n,description:r}=e.payload,i=await this.bus.request(J.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(J.set,a),e.setResult({profile:a})})}registerDeleteHandler(){this.registerHandler(S.profile.delete,async e=>{let r=W(e.payload.clientId,`profile.delete`),{name:i}=e.payload,a=await this.bus.request(J.get,{clientId:r,name:i});a.record!==null&&(wt(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(J.delete,{clientId:r,name:i});e.setResult({success:o.success})})}registerSetDefaultHandler(){this.registerHandler(S.profile.setDefault,async e=>{let t=W(e.payload.clientId,`profile.setDefault`),{name:n}=e.payload,r=await this.bus.request(J.setDefault,{clientId:t,name:n});if(r.record===null)throw Error(`Profile '${n}' not found for client '${t}'`);e.setResult({profile:r.record})})}};function Et(e){return{subject:`sessionConfig.setup`,$meta:{namespace:`client:${e}`,isRequest:!0,local:!1,channel:!1}}}function Dt(e){return{subject:`sessionConfig.destroy`,$meta:{namespace:`client:${e}`,isRequest:!0,local:!1,channel:!1}}}const Ot=()=>Date.now();function kt(){let e=w.platform();if(e===`darwin`||e===`linux`||e===`win32`)return e;throw Error(`client.sessionConfig does not support platform '${e}'`)}function At(e,t,r){let i=ce.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 jt=class extends l{clientsBasePath;getNow;constructor(e,t,n=Ot){super(e),this.clientsBasePath=t,this.getNow=n}async onInit(){this.registerHandler(S.sessionConfig.create,async e=>{let{clientId:n,sessionId:r,profileName:i,baseConfigDir:a,projectDir:o,configInheritance:s=`full`}=e.payload,c=W(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=Et(c),r=await this.bus.requestOptional(n,{sessionDir:l,baseConfigDir:t,projectDir:o,platform:kt(),configInheritance:s}),u=r.handled?r.data.env??{}:{};await T(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(S.sessionConfig.destroy,async e=>{let{clientId:t,sessionId:n}=e.payload,r=W(t,`sessionConfig.destroy`),i=this.resolveClientSessionDir(r,n,`sessionConfig.destroy`);await this.destroyClientSessionDir(r,i),e.setResult({success:!0})}),this.registerHandler(S.sessionConfig.cleanup,async e=>{let{clientId:t}=e.payload,n=t===void 0?void 0:W(t,`sessionConfig.cleanup`),r=await this.cleanupOrphanedDirs(n);e.setResult({removed:r})}),this.registerHandler(de.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(J.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(J.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=At(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(!ce.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(Dt(e),{sessionDir:n,platform:kt()}),await t.rm(n,{recursive:!0,force:!0}))}async isActiveSession(e){let t=await this.bus.requestOptional(de.get,{sessionId:e});return t.handled&&t.data.session?.status===`active`}resolveClientSessionDir(e,t,r){return At(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 Mt=new Set([`hook.received`,`hook.handle`]);function Nt(e,t){return a.registerNamespace(i(`client:${e}`,{"hook.received":U,"hook.handle":{request:U,response:nt},...t})).subjects}function Pt(e,t){let n=Object.keys(t).filter(e=>Mt.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 Ft(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 It(e,t,n){let r=Object.keys(n).filter(e=>!Ft(t,e));if(r.length!==0)throw Error(`[createClientNamespace] client:${e} was already registered without required subjects: ${r.join(`, `)}`)}function Lt(e,t){let n=W(e,`createClientNamespace`),r=t??{};Pt(n,r);let i=Nt(n,r);return It(n,i,r),{namespaceDomain:`client:${n}`,subjects:i}}const Y=g(`client_runtimes`,e=>({id:e.text(`id`).primaryKey(),clientId:e.text(`client_id`).notNull(),status:e.text(`status`).notNull(),supervisorSessionId:e.text(`supervisor_session_id`),pid:e.int4(`pid`),parentPid:e.int4(`parent_pid`),adapterSessionId:e.text(`adapter_session_id`),sessionId:e.text(`session_id`),cwd:e.text(`cwd`),argv:e.jsonCol(`argv`),metadata:e.jsonCol(`metadata`),observedAt:e.epochMs(`observed_at`).notNull(),createdAt:e.epochMs(`created_at`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()}),{sqlite: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)],postgres:e=>[p(`idx_client_runtimes_supervisor_session_id`).on(e.supervisorSessionId),p(`idx_client_runtimes_pid_client_id`).on(e.pid,e.clientId),p(`idx_client_runtimes_adapter_session_id_client_id`).on(e.adapterSessionId,e.clientId)]}),Rt=Y.sqlite,zt=Y.postgres,Bt=ee({clientRuntimes:Rt},{clientRuntimes:zt}),Vt=new Set(Je);function Ht(e){if(!Vt.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 Ut(e,t){let{clientRuntimes:n}=v(t,Bt),r=e.on(V.upsert,async e=>{let r=e.payload,i={clientId:r.clientId,status:r.status,supervisorSessionId:r.supervisorSessionId??null,pid:r.pid??null,parentPid:r.parentPid??null,adapterSessionId:r.adapterSessionId??null,sessionId:r.sessionId??null,cwd:r.cwd??null,argv:r.argv??null,metadata:r.metadata??null,observedAt:r.observedAt,updatedAt:r.updatedAt};await t.insert(n).values({id:r.clientRuntimeId,createdAt:r.createdAt,...i}).onConflictDoUpdate({target:n.id,set:i,setWhere:re(ie`excluded.updated_at`,n.updatedAt)}),e.setResult({success:!0})}),i=e.on(V.loadAll,async e=>{let r=await t.select().from(n);e.setResult({records:r.map(Ht)})});return()=>{r(),i()}}const Wt=g(`client_binary_versions`,e=>({id:e.text(`id`).primaryKey(),clientId:e.text(`client_id`).notNull(),version:e.text(`version`).notNull(),installPath:e.text(`install_path`).notNull(),installedAt:e.epochMs(`installed_at`).notNull(),createdAt:e.epochMs(`created_at`).notNull()}),{sqlite:e=>[d(`uq_client_binary_versions_client_version`).on(e.clientId,e.version)],postgres:e=>[m(`uq_client_binary_versions_client_version`).on(e.clientId,e.version)]}),Gt=Wt.sqlite,Kt=g(`client_binary_state`,e=>({clientId:e.text(`client_id`).primaryKey(),activeVersion:e.text(`active_version`),updatedAt:e.epochMs(`updated_at`).notNull()})),qt=Kt.sqlite,Jt=Wt.postgres,Yt=Kt.postgres,X=ee({clientBinaryVersions:Gt,clientBinaryState:qt},{clientBinaryVersions:Jt,clientBinaryState:Yt});function Z(e){return{id:e.id,clientId:e.clientId,version:e.version,installPath:e.installPath,installedAt:e.installedAt,createdAt:e.createdAt}}function Q(e){return{clientId:e.clientId,activeVersion:e.activeVersion??null,updatedAt:e.updatedAt}}function Xt(e){return{id:e.id,clientId:e.clientId,version:e.version,installPath:e.installPath,installedAt:e.installedAt,createdAt:e.createdAt}}async function Zt(e,t,n){await e.insert(n).values(Xt(t)).onConflictDoNothing({target:[n.clientId,n.version]})}function Qt(e,t,n){return{clientId:e,activeVersion:t,updatedAt:n}}async function $t(e,t,n,r,i){await e.insert(i).values(Qt(t,n,r)).onConflictDoUpdate({target:i.clientId,set:{activeVersion:n,updatedAt:r}})}async function en(e,t){let{clientBinaryVersions:n}=v(e,X);await Zt(e,t,n)}async function tn(e,t,n,r){let{clientBinaryVersions:i,clientBinaryState:a}=v(e,X);return _(e,async e=>{let[o]=await e.select().from(a).where(b(a.clientId,t.clientId)).limit(1),s=o?.activeVersion??null;return await Zt(e,t,i),n?(await $t(e,t.clientId,t.version,r,a),{previousActiveVersion:s,activeVersion:t.version}):{previousActiveVersion:s,activeVersion:s}})}async function nn(e,t){let{clientBinaryVersions:n,clientBinaryState:r}=v(e,X);return _(e,async e=>{let[i]=await e.select().from(r).where(b(r.clientId,t)).limit(1),a=await e.select().from(n).where(b(n.clientId,t));return{state:i?Q(i):null,versions:a.map(Z)}})}async function rn(e){let{clientBinaryVersions:t,clientBinaryState:n}=v(e,X);return _(e,async e=>{let r=await e.select().from(n),i=await e.select().from(t);return{states:r.map(Q),versions:i.map(Z)}})}async function an(e,t){let{clientBinaryState:n}=v(e,X),r={clientId:t.clientId,activeVersion:t.activeVersion??null,updatedAt:t.updatedAt};await e.insert(n).values(r).onConflictDoUpdate({target:n.clientId,set:r})}async function on(e,t,n,r){let{clientBinaryState:i}=v(e,X);return _(e,async e=>{let[a]=await e.select().from(i).where(b(i.clientId,t)).limit(1),o=a?.activeVersion??null;return await $t(e,t,n,r,i),{previousActiveVersion:o,activeVersion:n}})}async function sn(e,t,n,r){let{clientBinaryVersions:i,clientBinaryState:a}=v(e,X);return _(e,async e=>{let[o]=await e.select().from(a).where(b(a.clientId,t)).limit(1),s=o?.activeVersion??null;if(!te(await e.delete(i).where(y(b(i.clientId,t),b(i.version,n)))))return{removedVersion:null,previousActiveVersion:s,activeVersion:s};await e.update(a).set({activeVersion:null,updatedAt:r}).where(y(b(a.clientId,t),b(a.activeVersion,n)));let[c]=await e.select().from(a).where(b(a.clientId,t)).limit(1);return{removedVersion:n,previousActiveVersion:s,activeVersion:c?.activeVersion??null}})}function cn(e,t){let{clientBinaryVersions:n,clientBinaryState:r}=v(t,X),i=[e.on(N.insertVersion,async e=>{await en(t,e.payload),e.setResult({success:!0})}),e.on(N.recordInstalledVersion,async e=>{let{versionRecord:n,makeActive:r,updatedAt:i}=e.payload,a=await tn(t,n,r,i);e.setResult(a)}),e.on(N.listVersions,async e=>{let r=await t.select().from(n).where(b(n.clientId,e.payload.clientId));e.setResult({versions:r.map(Z)})}),e.on(N.getSnapshot,async e=>{let{state:n,versions:r}=await nn(t,e.payload.clientId);e.setResult({state:n,versions:r})}),e.on(N.loadAllVersions,async e=>{let r=await t.select().from(n);e.setResult({versions:r.map(Z)})}),e.on(N.upsertState,async e=>{await an(t,e.payload),e.setResult({success:!0})}),e.on(N.setActiveVersion,async e=>{let{clientId:n,activeVersion:r,updatedAt:i}=e.payload,a=await on(t,n,r,i);e.setResult(a)}),e.on(N.getState,async e=>{let[n]=await t.select().from(r).where(b(r.clientId,e.payload.clientId)).limit(1);e.setResult({state:n?Q(n):null})}),e.on(N.loadAllState,async e=>{let n=await t.select().from(r);e.setResult({states:n.map(Q)})}),e.on(N.loadSnapshot,async e=>{let{states:n,versions:r}=await rn(t);e.setResult({states:n,versions:r})}),e.on(N.removeVersionAndClearActive,async e=>{let{clientId:n,version:r,updatedAt:i}=e.payload,a=await sn(t,n,r,i);e.setResult(a)})];return()=>{for(let e of i)e()}}const ln=g(`client_profiles`,e=>({id:e.text(`id`).primaryKey(),clientId:e.text(`client_id`).notNull(),name:e.text(`name`).notNull(),description:e.text(`description`),configDir:e.text(`config_dir`).notNull(),isDefault:e.bool(`is_default`).notNull().default(!1),createdAt:e.epochMs(`created_at`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()}),{sqlite:e=>[f(`uq_client_profiles_client_name`).on(e.clientId,e.name),f(`uq_client_profiles_default`).on(e.clientId).where(ie`${e.isDefault} = 1`)],postgres:e=>[h(`uq_client_profiles_client_name`).on(e.clientId,e.name),h(`uq_client_profiles_default`).on(e.clientId).where(ie`${e.isDefault} = true`)]}),un=ln.sqlite,dn=ln.postgres,fn=ee({clientProfiles:un},{clientProfiles:dn});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 pn(e,t,n){let{clientProfiles:r}=v(e,fn),i=Date.now();return _(e,async e=>{let[a]=await e.select().from(r).where(y(b(r.clientId,t),b(r.name,n))).limit(1);if(a===void 0)return null;await e.update(r).set({isDefault:!1,updatedAt:i}).where(y(b(r.clientId,t),b(r.isDefault,!0))),await e.update(r).set({isDefault:!0,updatedAt:i}).where(y(b(r.clientId,t),b(r.name,n)));let[o]=await e.select().from(r).where(y(b(r.clientId,t),b(r.name,n))).limit(1);return o===void 0?null:$(o)})}function mn(e,t){let{clientProfiles:n}=v(t,fn),r=[e.on(J.get,async e=>{let{clientId:r,name:i}=e.payload,[a]=await t.select().from(n).where(y(b(n.clientId,r),b(n.name,i))).limit(1);e.setResult({record:a?$(a):null})}),e.on(J.getById,async e=>{let[r]=await t.select().from(n).where(b(n.id,e.payload.id)).limit(1);e.setResult({record:r?$(r):null})}),e.on(J.list,async e=>{let r=await t.select().from(n).where(b(n.clientId,e.payload.clientId));e.setResult({records:r.map($)})}),e.on(J.set,async e=>{let r=e.payload,i={id:r.id,clientId:r.clientId,name:r.name,description:r.description??null,configDir:r.configDir,isDefault:r.isDefault,createdAt:r.createdAt,updatedAt:r.updatedAt};await t.insert(n).values(i).onConflictDoUpdate({target:n.id,set:{name:r.name,description:r.description??null,configDir:r.configDir,isDefault:r.isDefault,updatedAt:r.updatedAt}}),e.setResult({success:!0})}),e.on(J.delete,async e=>{let{clientId:r,name:i}=e.payload,a=await t.delete(n).where(y(b(n.clientId,r),b(n.name,i)));e.setResult({success:te(a)})}),e.on(J.clearDefault,async e=>{await t.update(n).set({isDefault:!1,updatedAt:Date.now()}).where(y(b(n.clientId,e.payload.clientId),b(n.isDefault,!0))),e.setResult({success:!0})}),e.on(J.setDefault,async e=>{let{clientId:n,name:r}=e.payload,i=await pn(t,n,r);e.setResult({record:i})})];return()=>{for(let e of r)e()}}var hn=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 gn=o(`makaio.clients-core`);function _n(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 vn(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:[M,B,q],storage:{registerHandlers:ne((e,t)=>_n([()=>Ut(e,t),()=>cn(e,t),()=>mn(e,t)]))},create:e=>{let t=new P(a),o=n.join(e.makaioHome,`clients`),s=new Ke(e.bus,{basePath:n.join(e.makaioHome,`binaries`),configBasePath:o,postInstallHandlers:i},t,r),c=new Tt(e.bus,o),l=new jt(e.bus,o);return new hn(new _t(e.bus),s,new Ct(e.bus),c,l)}}}async function yn(e){let t=await a.requestOptional(S.resolveBinary,{clientId:e});return t.handled?t.data:void 0}function bn(e,t,n){return[...n??[],e,...t].map(Cn).join(` `)}function xn(e,t,n,r,i){return bn(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{dt as AbsolutePathSchema,he as BinaryNotFoundError,Je as CLIENT_RUNTIME_STATUSES,ge as ClientAccountRegistry,He as ClientBinaryJobRunner,Ke as ClientBinaryManager,A as ClientBinaryStateRecordSchema,M as ClientBinaryStorageNamespace,N as ClientBinaryStorageSubjects,k as ClientBinaryVersionRecordSchema,Ee as ClientBinaryVersionResolver,Ct as ClientConfigPrimeService,P as ClientDefinitionRegistry,nt as ClientHookHandleResponseSchema,G as ClientProfileRecordSchema,Tt as ClientProfileService,q as ClientProfileStorageNamespace,J as ClientProfileStorageSubjects,Qe as ClientRuntimeRegistry,_t as ClientRuntimeService,B as ClientRuntimeStorageNamespace,V as ClientRuntimeStorageSubjects,jt as ClientSessionConfigService,oe as ClientSubjects,ht as ClientWiringAggregatedResultSchema,pt as ClientWiringApplyResponseSchema,C as ClientWiringEntrySchema,ft as ClientWiringListResponseSchema,mt as ClientWiringRemoveResponseSchema,hn as ClientsCoreService,gn as ClientsCoreToken,tt as DEFAULT_HOOK_HANDLE_TIMEOUT_MS,U as RawClientHookPayloadSchema,z as RuntimeRecordSchema,gt as assertAbsoluteProjectDir,fe as atomicModifyFile,bn as buildClientCommand,ot as buildClientSessionBase,xn as buildHookCommand,W as canonicalizeClientId,Y as clientRuntimesDual,Lt as createClientNamespace,ut as createClientWiringListSubjectDef,lt as createClientWiringSubjectDef,vn as createClientsCorePackage,rt as createRawClientHookHandleSubject,et as createRawClientHookReceivedSubject,Sn as deriveSessionEventDescriptors,st as emitBestEffort,D as isPathWithinBase,at as pickNonEmptyString,it as pickNonEmptyStringValue,cn as registerDrizzleClientBinaryStorage,mn as registerDrizzleProfileStorage,Ut as registerDrizzleRuntimeStorage,_n as registerStorageHandlersWithRollback,O as resolveAndValidateBasePath,yn as resolveClientBinary};
@@ -0,0 +1 @@
1
+ import{t as e}from"./json-value-CmhSGMLv.mjs";import{a as t}from"./visibility-Cb62p9bv.mjs";import"./credential-ref-YWQQENEo.mjs";import{f as n}from"./shared-DpOEfD8F.mjs";import{z as r}from"zod";const i=`adapter identity must be provided at the top level; contextOverrides cannot supply adapter identity`;function a(e){let t={adapterId:e.adapterId,adapterName:e.adapterName},n={adapterId:e.contextOverrides?.adapterId,adapterName:e.contextOverrides?.adapterName},r=[];!o(t)&&o(n)&&(n.adapterId!==void 0&&r.push({field:`adapterId`,message:i}),n.adapterName!==void 0&&r.push({field:`adapterName`,message:i}));for(let e of[`adapterId`,`adapterName`]){let i=n[e];if(i===void 0)continue;let a=t[e];if(a===void 0){o(t)&&r.push({field:e,message:`contextOverrides.${e} cannot supply adapter identity when top-level adapter identity is present`});continue}a!==i&&r.push({field:e,message:`contextOverrides.${e} must match top-level ${e} when both are provided`})}return{issues:r,effectiveIdentity:{adapterId:t.adapterId??n.adapterId,adapterName:t.adapterName??n.adapterName}}}function o(e){return e.adapterId!==void 0||e.adapterName!==void 0}const s=r.object({readOnly:r.boolean().optional(),destructive:r.boolean().optional(),idempotent:r.boolean().optional(),requiresApproval:r.boolean().optional()}),c=r.object({name:r.string(),description:r.string(),annotations:s.optional(),toolsetName:r.string()}),l=r.object({code:r.string(),message:r.string(),details:r.unknown().optional()}),u=r.object({toolName:r.string(),toolsetName:r.string()}),d=c.extend({inputSchema:r.record(r.string(),r.unknown()).optional()}),f=r.object({name:r.string(),description:r.string(),version:r.string(),toolCount:r.number(),configSchema:r.record(r.string(),r.unknown()).optional()}),p=r.object({cwd:r.string().optional(),env:r.record(r.string(),r.string()).optional(),sessionId:r.string().optional(),agentId:r.string().optional(),adapterId:r.string().optional(),adapterName:r.string().optional(),adapterSessionId:r.string().optional(),turnId:r.string().optional(),turnContext:r.record(r.string(),r.unknown()).optional(),reasoning:r.string().optional(),toolCallId:r.string().optional(),constraints:r.record(r.string(),r.unknown()).optional()});function m(e,t){let{issues:n}=a(e);for(let e of n)t.addIssue({code:r.ZodIssueCode.custom,message:e.message,path:[`contextOverrides`,e.field]})}const h=r.object({toolName:r.string(),input:r.unknown(),adapterId:r.string().optional(),adapterName:r.string().optional(),contextOverrides:p.optional()}).superRefine(m),g={list:{request:r.object({toolsetName:r.string().optional(),adapterId:r.string().optional(),adapterName:r.string().optional()}),response:r.object({tools:r.array(d),toolsets:r.array(f)})},execute:{request:h,response:r.discriminatedUnion(`success`,[r.object({success:r.literal(!0),data:r.unknown()}),r.object({success:r.literal(!1),error:l})])},registered:r.object({toolsetName:r.string(),toolsetVersion:r.string(),toolNames:r.array(r.string())}),started:u.extend({executionId:r.string(),timestamp:r.number()}),completed:u.extend({executionId:r.string(),timestamp:r.number(),durationMs:r.number()}),error:u.extend({executionId:r.string(),timestamp:r.number(),error:l}),registryChanged:r.object({revision:r.number().int().positive(),reason:r.enum([`toolset-registered`,`toolset-unregistered`,`plugin-loaded`,`plugin-unloaded`]),toolsetName:r.string()})},_=r.object({name:r.string(),permission_policy:r.enum([`always_allow`,`always_ask`,`always_deny`])}),v=r.array(_).superRefine((e,t)=>{let n=new Set;e.forEach((e,i)=>{if(n.has(e.name)){t.addIssue({code:r.ZodIssueCode.custom,path:[i,`name`],message:`Duplicate MCP tool policy name "${e.name}"`});return}n.add(e.name)})}),y=r.object({type:r.literal(`stdio`),command:r.string(),args:r.array(r.string()).optional(),env:r.record(r.string(),r.string()).optional(),alwaysLoad:r.boolean().optional()}),b=r.object({url:r.string().url(),headers:r.record(r.string(),r.string()).optional(),tools:v.optional(),alwaysLoad:r.boolean().optional()}),x=b.extend({type:r.literal(`sse`)}),S=b.extend({type:r.literal(`http`)}),C=r.discriminatedUnion(`type`,[y,x,S]),w=r.enum([`direct`,`discovery`,`hidden`]),T=w.exclude([`hidden`]),E=r.record(r.string(),w).optional(),D=r.string().max(256).refine(e=>(e.match(/\*/g)?.length??0)<=10,{message:`Pattern must contain at most 10 wildcard characters`}),O=r.object({transport:C,exposureMode:T.optional(),toolExposure:E}),k=r.object({enabled:r.boolean(),maxAttempts:r.number().int().positive(),baseDelayMs:r.number().int().positive(),maxDelayMs:r.number().int().positive()}).refine(e=>e.maxDelayMs>=e.baseDelayMs,{message:`maxDelayMs must be >= baseDelayMs`,path:[`maxDelayMs`]});r.object({servers:r.record(r.string(),O),hideTools:r.array(D).optional(),exposeTools:r.array(D).optional(),defaultExposureMode:T.optional(),autoReconnect:k.optional()}),r.object({servers:r.array(r.string()).optional(),exposeTools:r.array(D).optional(),hideTools:r.array(D).optional(),serverOverrides:r.record(r.string(),r.object({exposureMode:T.optional(),toolExposure:E})).optional()});const A=r.object({directTools:r.array(D).optional(),discoveryTools:r.array(D).optional(),toolExposure:E}),j=r.object({name:r.string(),transport:C,exposureMode:T}),M=r.object({fullName:r.string(),originalName:r.string(),serverName:r.string(),description:r.string().optional(),inputSchema:r.record(r.string(),r.unknown()),exposureMode:w,enabled:r.boolean(),enabledBy:r.enum([`discovery`,`toolset`]).optional(),enabledAt:r.number().int().nonnegative().optional(),exposed:r.boolean()}),N=r.object({sessionId:r.string(),projectId:r.string().nullable(),profileId:r.string().nullable(),servers:r.array(j),directTools:r.array(M),discoverableTools:r.array(M)}),P=N.omit({projectId:!0,profileId:!0}),F=r.object({agentId:r.string(),adapterId:r.string(),adapterName:r.string(),adapterSessionId:r.string(),sessionId:r.string()}),I={"server.connected":r.object({serverName:r.string(),toolCount:r.number().int().nonnegative()}),"server.disconnected":r.object({serverName:r.string(),reason:r.string()}),"server.reconnecting":r.object({serverName:r.string(),attempt:r.number().int().positive()}),"server.error":r.object({serverName:r.string(),error:r.string()}),"tools.updated":r.object({added:r.array(r.string()),removed:r.array(r.string())}),"tools.enabled":r.object({tools:r.array(r.string()),source:r.enum([`discovery`,`toolset`])}),"session.resolve":{request:r.object({sessionId:r.string(),profileId:r.string().nullable(),projectId:r.string().nullable(),profileMcpConfig:A.optional()}),response:N},"session.register":{request:F.extend({contextOverrides:p,pinned:r.boolean().optional()}),response:r.object({port:r.number().int().positive()})},"session.unregister":{request:r.object({adapterSessionId:r.string()}),response:r.object({})}},L=r.looseObject({kind:r.string(),providerConfigId:r.string().optional(),model:r.string().optional(),reasoningEffort:t.optional(),cwd:r.string().optional(),systemPrompt:n.optional(),allowedTools:r.array(r.string()).optional(),disallowedTools:r.array(r.string()).optional(),env:r.record(r.string(),r.string()).optional(),mcpSessionContext:P.optional(),allowedDirectories:r.array(r.string()).optional(),adapterConfig:e.optional()}),R=L.extend({kind:r.literal(`adapter`),adapterName:r.string().trim().min(1).optional(),adapterId:r.string().trim().min(1).optional()}).refine(e=>!!e.adapterName||!!e.adapterId,{message:`AdapterSelection requires at least one of 'adapterName' or 'adapterId'`}),z=L,B=L.safeExtend({kind:r.literal(`canonical-model`),model:r.string().trim().min(1)}),V=r.enum([`auto`,`manual`,`off`]);export{z as a,T as c,I as d,N as f,a as g,g as h,L as i,A as l,C as m,B as n,k as o,D as p,R as r,w as s,V as t,P as u};
@@ -1,3 +1,3 @@
1
- import { C as AdapterNamespace, S as AdapterSchemas, _ as StartAgentRequest, a as AgentSelection, b as AdapterRuntimeOptions, c as AgentSelectionKindMap, d as SessionDiscoveredSchema, f as SessionUsage, g as RehydrateAgentSchema, h as RehydrateAgentResponse, i as AdapterSelectionSchema, l as AgentSelectionSchema, m as RehydrateAgentRequest, n as ProviderContextSchema, o as AgentSelectionBase, p as SessionUsageSchema, r as AdapterSelection, s as AgentSelectionBaseSchema, t as ProviderContext, u as SessionDiscovered, v as StartAgentResponse, w as AdapterSubjects, x as AdapterRuntimeOptionsSchema, y as StartAgentSchema } from "../../index-BuaP2Q0b.mjs";
2
- import { a as ROOT_SESSION_LINEAGE_KIND, c as SUBAGENT_SESSION_LINEAGE_KIND, d as SessionLineageKindSchema, f as SessionLineageSchema, i as ForkSessionLineageSchema, l as SessionLineage, n as CompressSessionLineageSchema, o as RootSessionLineageSchema, p as SubagentSessionLineageSchema, r as FORK_SESSION_LINEAGE_KIND, s as SESSION_LINEAGE_KINDS, t as COMPRESS_SESSION_LINEAGE_KIND, u as SessionLineageKind } from "../../session-lineage-D_8W1MI0.mjs";
1
+ import { C as AdapterNamespace, S as AdapterSchemas, _ as StartAgentRequest, a as AgentSelection, b as AdapterRuntimeOptions, c as AgentSelectionKindMap, d as SessionDiscoveredSchema, f as SessionUsage, g as RehydrateAgentSchema, h as RehydrateAgentResponse, i as AdapterSelectionSchema, l as AgentSelectionSchema, m as RehydrateAgentRequest, n as ProviderContextSchema, o as AgentSelectionBase, p as SessionUsageSchema, r as AdapterSelection, s as AgentSelectionBaseSchema, t as ProviderContext, u as SessionDiscovered, v as StartAgentResponse, w as AdapterSubjects, x as AdapterRuntimeOptionsSchema, y as StartAgentSchema } from "../../index-DoWQjCE-.mjs";
2
+ import { a as ROOT_SESSION_LINEAGE_KIND, c as SUBAGENT_SESSION_LINEAGE_KIND, d as SessionLineageKindSchema, f as SessionLineageSchema, i as ForkSessionLineageSchema, l as SessionLineage, n as CompressSessionLineageSchema, o as RootSessionLineageSchema, p as SubagentSessionLineageSchema, r as FORK_SESSION_LINEAGE_KIND, s as SESSION_LINEAGE_KINDS, t as COMPRESS_SESSION_LINEAGE_KIND, u as SessionLineageKind } from "../../session-lineage-5-wRBzuC.mjs";
3
3
  export { AdapterNamespace, AdapterRuntimeOptions, AdapterRuntimeOptionsSchema, AdapterSchemas, AdapterSelection, AdapterSelectionSchema, AdapterSubjects, AgentSelection, AgentSelectionBase, AgentSelectionBaseSchema, AgentSelectionKindMap, AgentSelectionSchema, COMPRESS_SESSION_LINEAGE_KIND, CompressSessionLineageSchema, FORK_SESSION_LINEAGE_KIND, ForkSessionLineageSchema, ProviderContext, ProviderContextSchema, ROOT_SESSION_LINEAGE_KIND, RehydrateAgentRequest, RehydrateAgentResponse, RehydrateAgentSchema, RootSessionLineageSchema, SESSION_LINEAGE_KINDS, SUBAGENT_SESSION_LINEAGE_KIND, SessionDiscovered, SessionDiscoveredSchema, SessionLineage, SessionLineageKind, SessionLineageKindSchema, SessionLineageSchema, SessionUsage, SessionUsageSchema, StartAgentRequest, StartAgentResponse, StartAgentSchema, SubagentSessionLineageSchema };
@@ -1 +1 @@
1
- import{ct as e,l as t,p as n,t as r,v as i}from"../../schemas-dNCdjOLB.mjs";import{a,i as o,o as s,r as c}from"../../compression-BPOKUc6y.mjs";import{COMPRESS_SESSION_LINEAGE_KIND as l,CompressSessionLineageSchema as u,FORK_SESSION_LINEAGE_KIND as d,ForkSessionLineageSchema as f,ROOT_SESSION_LINEAGE_KIND as p,RootSessionLineageSchema as m,SESSION_LINEAGE_KINDS as h,SUBAGENT_SESSION_LINEAGE_KIND as g,SessionLineageKindSchema as _,SessionLineageSchema as v,SubagentSessionLineageSchema as y}from"./schemas/session-lineage.mjs";import{n as b,r as x,t as S}from"../../adapter-Cxcqmp04.mjs";export{S as AdapterNamespace,e as AdapterRuntimeOptionsSchema,x as AdapterSchemas,o as AdapterSelectionSchema,b as AdapterSubjects,a as AgentSelectionBaseSchema,s as AgentSelectionSchema,l as COMPRESS_SESSION_LINEAGE_KIND,u as CompressSessionLineageSchema,d as FORK_SESSION_LINEAGE_KIND,f as ForkSessionLineageSchema,c as ProviderContextSchema,p as ROOT_SESSION_LINEAGE_KIND,n as RehydrateAgentSchema,m as RootSessionLineageSchema,h as SESSION_LINEAGE_KINDS,g as SUBAGENT_SESSION_LINEAGE_KIND,r as SessionDiscoveredSchema,_ as SessionLineageKindSchema,v as SessionLineageSchema,t as SessionUsageSchema,i as StartAgentSchema,y as SubagentSessionLineageSchema};
1
+ import{ct as e,l as t,p as n,t as r,v as i}from"../../schemas-yNBjlOKi.mjs";import{a,i as o,r as s}from"../../compression-CXEHx0rS.mjs";import{t as c}from"../../provider-context-DjSUpHSM.mjs";import{COMPRESS_SESSION_LINEAGE_KIND as l,CompressSessionLineageSchema as u,FORK_SESSION_LINEAGE_KIND as d,ForkSessionLineageSchema as f,ROOT_SESSION_LINEAGE_KIND as p,RootSessionLineageSchema as m,SESSION_LINEAGE_KINDS as h,SUBAGENT_SESSION_LINEAGE_KIND as g,SessionLineageKindSchema as _,SessionLineageSchema as v,SubagentSessionLineageSchema as y}from"./schemas/session-lineage.mjs";import{n as b,r as x,t as S}from"../../adapter-BmdC3QwV.mjs";export{S as AdapterNamespace,e as AdapterRuntimeOptionsSchema,x as AdapterSchemas,s as AdapterSelectionSchema,b as AdapterSubjects,o as AgentSelectionBaseSchema,a as AgentSelectionSchema,l as COMPRESS_SESSION_LINEAGE_KIND,u as CompressSessionLineageSchema,d as FORK_SESSION_LINEAGE_KIND,f as ForkSessionLineageSchema,c as ProviderContextSchema,p as ROOT_SESSION_LINEAGE_KIND,n as RehydrateAgentSchema,m as RootSessionLineageSchema,h as SESSION_LINEAGE_KINDS,g as SUBAGENT_SESSION_LINEAGE_KIND,r as SessionDiscoveredSchema,_ as SessionLineageKindSchema,v as SessionLineageSchema,t as SessionUsageSchema,i as StartAgentSchema,y as SubagentSessionLineageSchema};
@@ -1,2 +1,2 @@
1
- import { a as ROOT_SESSION_LINEAGE_KIND, c as SUBAGENT_SESSION_LINEAGE_KIND, d as SessionLineageKindSchema, f as SessionLineageSchema, i as ForkSessionLineageSchema, l as SessionLineage, n as CompressSessionLineageSchema, o as RootSessionLineageSchema, p as SubagentSessionLineageSchema, r as FORK_SESSION_LINEAGE_KIND, s as SESSION_LINEAGE_KINDS, t as COMPRESS_SESSION_LINEAGE_KIND, u as SessionLineageKind } from "../../../session-lineage-D_8W1MI0.mjs";
1
+ import { a as ROOT_SESSION_LINEAGE_KIND, c as SUBAGENT_SESSION_LINEAGE_KIND, d as SessionLineageKindSchema, f as SessionLineageSchema, i as ForkSessionLineageSchema, l as SessionLineage, n as CompressSessionLineageSchema, o as RootSessionLineageSchema, p as SubagentSessionLineageSchema, r as FORK_SESSION_LINEAGE_KIND, s as SESSION_LINEAGE_KINDS, t as COMPRESS_SESSION_LINEAGE_KIND, u as SessionLineageKind } from "../../../session-lineage-5-wRBzuC.mjs";
2
2
  export { COMPRESS_SESSION_LINEAGE_KIND, CompressSessionLineageSchema, FORK_SESSION_LINEAGE_KIND, ForkSessionLineageSchema, ROOT_SESSION_LINEAGE_KIND, RootSessionLineageSchema, SESSION_LINEAGE_KINDS, SUBAGENT_SESSION_LINEAGE_KIND, SessionLineage, SessionLineageKind, SessionLineageKindSchema, SessionLineageSchema, SubagentSessionLineageSchema };
@@ -1,2 +1,2 @@
1
- import { $ as ArtifactObservationSchema, A as ArtifactDraft, B as BeforeArtifactHookRegistration, C as ArtifactStatusChangedPayload, Ct as ConfidenceMetadataSchema, D as ArtifactKindDefinition, Dt as LocalRefSchema, E as ArtifactDataOf, Et as LocalRef, F as ArtifactLifecycleHookRegistration, G as ArtifactCompareRequestSchema, H as ArtifactActor, I as ArtifactLifecycleSemanticEvent, J as ArtifactConflictPolicy, K as ArtifactCompareResponse, L as ArtifactReactionHookContext, M as ArtifactHookFilter, N as ArtifactLifecycleHookDefinition, O as ArtifactOf, Ot as RelationTypeRegistration, P as ArtifactLifecycleHookEvent, Q as ArtifactObservation, R as ArtifactReactionHookRegistration, S as ArtifactSchemas, St as ConfidenceMetadata, T as AnyArtifactKindDefinition, Tt as EvidenceRefSchema, U as ArtifactActorSchema, V as defineArtifactLifecycleHooks, W as ArtifactCompareRequest, X as ArtifactKindRegistration, Y as ArtifactConflictPolicySchema, Z as ArtifactKindRegistrationSchema, _ as ArtifactResolveRequest, _t as ArtifactScopeSchema, a as ArtifactKindListRequest, at as ArtifactRefSchema, b as ArtifactReviseResponse, bt as ConfidenceLevel, c as ArtifactKindRegisterResponse, ct as ArtifactRelationQueryTargetSchema, d as ArtifactQueryResponse, dt as ArtifactRelationTargetSchema, et as ArtifactQueryRequest, f as ArtifactRelationAddedPayload, ft as ArtifactRepresentations, g as ArtifactRelationTypeRegisterResponse, gt as ArtifactScope, h as ArtifactRelationTypeRegisterRequest, ht as ArtifactRevisionSchema, i as ArtifactKindChangedPayload, it as ArtifactRef, j as ArtifactDraftPatch, k as defineArtifactKind, kt as RelationTypeRegistrationSchema, l as ArtifactNamespace, lt as ArtifactRelationSchema, m as ArtifactRelationTypeListResponse, mt as ArtifactRevision, n as ArtifactCreateResponse, nt as ArtifactQueryScope, o as ArtifactKindListResponse, ot as ArtifactRelation, p as ArtifactRelationTypeListRequest, pt as ArtifactRepresentationsSchema, q as ArtifactCompareResponseSchema, r as ArtifactCreatedPayload, rt as ArtifactQueryScopeSchema, s as ArtifactKindRegisterRequest, st as ArtifactRelationQueryTarget, t as ArtifactCreateRequest, tt as ArtifactQueryRequestSchema, u as ArtifactObservationAddedPayload, ut as ArtifactRelationTarget, v as ArtifactResolveResponse, vt as ConfidenceBasis, w as ArtifactSubjects, wt as EvidenceRef, x as ArtifactRevisedPayload, xt as ConfidenceLevelSchema, y as ArtifactReviseRequest, yt as ConfidenceBasisSchema, z as BeforeArtifactHookContext } from "../../index-HiAth5G0.mjs";
1
+ import { $ as ArtifactObservationSchema, A as ArtifactDraft, B as BeforeArtifactHookRegistration, C as ArtifactStatusChangedPayload, Ct as ConfidenceMetadataSchema, D as ArtifactKindDefinition, Dt as LocalRefSchema, E as ArtifactDataOf, Et as LocalRef, F as ArtifactLifecycleHookRegistration, G as ArtifactCompareRequestSchema, H as ArtifactActor, I as ArtifactLifecycleSemanticEvent, J as ArtifactConflictPolicy, K as ArtifactCompareResponse, L as ArtifactReactionHookContext, M as ArtifactHookFilter, N as ArtifactLifecycleHookDefinition, O as ArtifactOf, Ot as RelationTypeRegistration, P as ArtifactLifecycleHookEvent, Q as ArtifactObservation, R as ArtifactReactionHookRegistration, S as ArtifactSchemas, St as ConfidenceMetadata, T as AnyArtifactKindDefinition, Tt as EvidenceRefSchema, U as ArtifactActorSchema, V as defineArtifactLifecycleHooks, W as ArtifactCompareRequest, X as ArtifactKindRegistration, Y as ArtifactConflictPolicySchema, Z as ArtifactKindRegistrationSchema, _ as ArtifactResolveRequest, _t as ArtifactScopeSchema, a as ArtifactKindListRequest, at as ArtifactRefSchema, b as ArtifactReviseResponse, bt as ConfidenceLevel, c as ArtifactKindRegisterResponse, ct as ArtifactRelationQueryTargetSchema, d as ArtifactQueryResponse, dt as ArtifactRelationTargetSchema, et as ArtifactQueryRequest, f as ArtifactRelationAddedPayload, ft as ArtifactRepresentations, g as ArtifactRelationTypeRegisterResponse, gt as ArtifactScope, h as ArtifactRelationTypeRegisterRequest, ht as ArtifactRevisionSchema, i as ArtifactKindChangedPayload, it as ArtifactRef, j as ArtifactDraftPatch, k as defineArtifactKind, kt as RelationTypeRegistrationSchema, l as ArtifactNamespace, lt as ArtifactRelationSchema, m as ArtifactRelationTypeListResponse, mt as ArtifactRevision, n as ArtifactCreateResponse, nt as ArtifactQueryScope, o as ArtifactKindListResponse, ot as ArtifactRelation, p as ArtifactRelationTypeListRequest, pt as ArtifactRepresentationsSchema, q as ArtifactCompareResponseSchema, r as ArtifactCreatedPayload, rt as ArtifactQueryScopeSchema, s as ArtifactKindRegisterRequest, st as ArtifactRelationQueryTarget, t as ArtifactCreateRequest, tt as ArtifactQueryRequestSchema, u as ArtifactObservationAddedPayload, ut as ArtifactRelationTarget, v as ArtifactResolveResponse, vt as ConfidenceBasis, w as ArtifactSubjects, wt as EvidenceRef, x as ArtifactRevisedPayload, xt as ConfidenceLevelSchema, y as ArtifactReviseRequest, yt as ConfidenceBasisSchema, z as BeforeArtifactHookContext } from "../../index--diIlm1t.mjs";
2
2
  export { AnyArtifactKindDefinition, ArtifactActor, ArtifactActorSchema, ArtifactCompareRequest, ArtifactCompareRequestSchema, ArtifactCompareResponse, ArtifactCompareResponseSchema, ArtifactConflictPolicy, ArtifactConflictPolicySchema, ArtifactCreateRequest, ArtifactCreateResponse, ArtifactCreatedPayload, ArtifactDataOf, ArtifactDraft, ArtifactDraftPatch, ArtifactHookFilter, ArtifactKindChangedPayload, ArtifactKindDefinition, ArtifactKindListRequest, ArtifactKindListResponse, ArtifactKindRegisterRequest, ArtifactKindRegisterResponse, ArtifactKindRegistration, ArtifactKindRegistrationSchema, ArtifactLifecycleHookDefinition, ArtifactLifecycleHookEvent, ArtifactLifecycleHookRegistration, ArtifactLifecycleSemanticEvent, ArtifactNamespace, ArtifactObservation, ArtifactObservationAddedPayload, ArtifactObservationSchema, ArtifactOf, ArtifactQueryRequest, ArtifactQueryRequestSchema, ArtifactQueryResponse, ArtifactQueryScope, ArtifactQueryScopeSchema, ArtifactReactionHookContext, ArtifactReactionHookRegistration, ArtifactRef, ArtifactRefSchema, ArtifactRelation, ArtifactRelationAddedPayload, ArtifactRelationQueryTarget, ArtifactRelationQueryTargetSchema, ArtifactRelationSchema, ArtifactRelationTarget, ArtifactRelationTargetSchema, ArtifactRelationTypeListRequest, ArtifactRelationTypeListResponse, ArtifactRelationTypeRegisterRequest, ArtifactRelationTypeRegisterResponse, ArtifactRepresentations, ArtifactRepresentationsSchema, ArtifactResolveRequest, ArtifactResolveResponse, ArtifactReviseRequest, ArtifactReviseResponse, ArtifactRevisedPayload, ArtifactRevision, ArtifactRevisionSchema, ArtifactSchemas, ArtifactScope, ArtifactScopeSchema, ArtifactStatusChangedPayload, ArtifactSubjects, BeforeArtifactHookContext, BeforeArtifactHookRegistration, ConfidenceBasis, ConfidenceBasisSchema, ConfidenceLevel, ConfidenceLevelSchema, ConfidenceMetadata, ConfidenceMetadataSchema, EvidenceRef, EvidenceRefSchema, LocalRef, LocalRefSchema, RelationTypeRegistration, RelationTypeRegistrationSchema, defineArtifactKind, defineArtifactLifecycleHooks };
@@ -1,2 +1,2 @@
1
- import { C as QualifiedModelRef, D as VirtualModelRef, E as ResolvableCanonicalModelSchema, O as VirtualModelRefSchema, S as ParsedCanonicalModelSchema, T as ResolvableCanonicalModel, _ as CanonicalModelParseErrorCodeSchema, a as CanonicalModelSchemas, b as CanonicalModelParseResultSchema, c as SEGMENT_RE, d as parseCanonicalModel, f as BareModelRef, g as CanonicalModelParseErrorCode, h as CanonicalModelParseError, i as CanonicalModelResolvedSelectionSchema, l as VIRTUAL_NAME_RE, m as CANONICAL_MODEL_PARSE_ERROR_CODES, n as CanonicalModelSubjects, o as CanonicalModelSelection, p as BareModelRefSchema, r as CanonicalModelResolvedSelection, s as CanonicalModelSelectionSchema, t as CanonicalModelNamespace, u as isCanonicalModelParseError, v as CanonicalModelParseErrorSchema, w as QualifiedModelRefSchema, x as ParsedCanonicalModel, y as CanonicalModelParseResult } from "../../index-xeg-bqxO.mjs";
1
+ import { C as QualifiedModelRef, D as VirtualModelRef, E as ResolvableCanonicalModelSchema, O as VirtualModelRefSchema, S as ParsedCanonicalModelSchema, T as ResolvableCanonicalModel, _ as CanonicalModelParseErrorCodeSchema, a as CanonicalModelSchemas, b as CanonicalModelParseResultSchema, c as SEGMENT_RE, d as parseCanonicalModel, f as BareModelRef, g as CanonicalModelParseErrorCode, h as CanonicalModelParseError, i as CanonicalModelResolvedSelectionSchema, l as VIRTUAL_NAME_RE, m as CANONICAL_MODEL_PARSE_ERROR_CODES, n as CanonicalModelSubjects, o as CanonicalModelSelection, p as BareModelRefSchema, r as CanonicalModelResolvedSelection, s as CanonicalModelSelectionSchema, t as CanonicalModelNamespace, u as isCanonicalModelParseError, v as CanonicalModelParseErrorSchema, w as QualifiedModelRefSchema, x as ParsedCanonicalModel, y as CanonicalModelParseResult } from "../../index-CqImyhjX.mjs";
2
2
  export { BareModelRef, BareModelRefSchema, CANONICAL_MODEL_PARSE_ERROR_CODES, CanonicalModelNamespace, CanonicalModelParseError, CanonicalModelParseErrorCode, CanonicalModelParseErrorCodeSchema, CanonicalModelParseErrorSchema, CanonicalModelParseResult, CanonicalModelParseResultSchema, CanonicalModelResolvedSelection, CanonicalModelResolvedSelectionSchema, CanonicalModelSchemas, CanonicalModelSelection, CanonicalModelSelectionSchema, CanonicalModelSubjects, ParsedCanonicalModel, ParsedCanonicalModelSchema, QualifiedModelRef, QualifiedModelRefSchema, ResolvableCanonicalModel, ResolvableCanonicalModelSchema, SEGMENT_RE, VIRTUAL_NAME_RE, VirtualModelRef, VirtualModelRefSchema, isCanonicalModelParseError, parseCanonicalModel };
@@ -1 +1 @@
1
- import{n as e}from"../../compression-BPOKUc6y.mjs";import{B as t,F as n,G as r,H as i,I as a,K as o,L as s,P as c,R as l,U as u,V as d,W as f,i as p,n as m,r as h,t as g,z as _}from"../../canonical-model-C-jhofjd.mjs";export{l as BareModelRefSchema,_ as CANONICAL_MODEL_PARSE_ERROR_CODES,g as CanonicalModelNamespace,t as CanonicalModelParseErrorCodeSchema,d as CanonicalModelParseErrorSchema,i as CanonicalModelParseResultSchema,h as CanonicalModelResolvedSelectionSchema,p as CanonicalModelSchemas,e as CanonicalModelSelectionSchema,m as CanonicalModelSubjects,u as ParsedCanonicalModelSchema,f as QualifiedModelRefSchema,r as ResolvableCanonicalModelSchema,c as SEGMENT_RE,n as VIRTUAL_NAME_RE,o as VirtualModelRefSchema,a as isCanonicalModelParseError,s as parseCanonicalModel};
1
+ import{n as e}from"../../compression-CXEHx0rS.mjs";import{_ as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,p as f,r as p,t as m,u as h,v as g,y as _}from"../../canonical-model-BM5WAnQW.mjs";export{a as BareModelRefSchema,f as CANONICAL_MODEL_PARSE_ERROR_CODES,m as CanonicalModelNamespace,u as CanonicalModelParseErrorCodeSchema,s as CanonicalModelParseErrorSchema,o as CanonicalModelParseResultSchema,p as CanonicalModelResolvedSelectionSchema,c as CanonicalModelSchemas,e as CanonicalModelSelectionSchema,d as CanonicalModelSubjects,t as ParsedCanonicalModelSchema,g as QualifiedModelRefSchema,_ as ResolvableCanonicalModelSchema,r as SEGMENT_RE,l as VIRTUAL_NAME_RE,n as VirtualModelRefSchema,h as isCanonicalModelParseError,i as parseCanonicalModel};
@@ -1,3 +1,3 @@
1
- import { C as PostInstallDescriptorSchema, D as VersionCommandSchema, E as VersionCommand, S as PostInstallDescriptor, T as SignedBinaryBucketInstallDescriptorSchema, _ as LogSourceDefinitionSchema, a as ClientDefinitionSchema, b as NpmInstallDescriptor, c as ClientRuntimeCapabilities, d as ClientToolCapabilityAnnotationSchema, f as ClientToolDefinition, g as LogSourceDefinition, h as ConfigIsolationSchema, i as ClientDefinitionInput, l as ClientRuntimeCapabilitiesSchema, m as ConfigIsolation, n as ClientBinaryCompatibilitySchema, o as ClientHookEventDeclaration, p as ClientToolDefinitionSchema, r as ClientDefinition, s as ClientHookEventDeclarationSchema, t as ClientBinaryCompatibility, u as ClientToolCapabilityAnnotation, v as ManagedInstallDescriptor, w as SignedBinaryBucketInstallDescriptor, x as NpmInstallDescriptorSchema, y as ManagedInstallDescriptorSchema } from "../../definition-BdxbXbrq.mjs";
2
- import { $ as ClientSessionTurnCompletedSchema, $t as ClientIdentifierStrength, A as SessionConfigIdSchema, At as ClientSetActiveResponse, B as SessionConfigTeardownResponseSchema, Bt as InstallError, C as SessionConfigCleanupRequest, Cn as ClientExecutionContext, Ct as ClientInstallRequest, D as SessionConfigDestroyRequest, Dn as ClientResolveBinarySchema, Dt as ClientListResponse, E as SessionConfigCreateResponse, En as ClientResolveBinaryResponse, Et as ClientListRequest, F as SessionConfigSetupResponse, Ft as ClientUpdateRequest, G as ClientSessionObservedBaseSchema, Gt as InstalledVersionEntrySchema, H as ClientNamespace, Ht as InstallStage, I as SessionConfigSetupResponseSchema, It as ClientUpdateResponse, J as ClientSessionToolPost, Jt as ClientAccountIdentifier, K as ClientSessionStarted, Kt as ManagedInstallStrategy, L as SessionConfigTeardownRequest, Lt as ClientUpdateSchema, M as SessionConfigInheritanceSchema, Mt as ClientUninstallRequest, N as SessionConfigSetupRequest, Nt as ClientUninstallResponse, O as SessionConfigDestroyResponse, Ot as ClientListSchema, P as SessionConfigSetupRequestSchema, Pt as ClientUninstallSchema, Q as ClientSessionTurnCompleted, Qt as ClientAccountObserveSchema, R as SessionConfigTeardownRequestSchema, Rt as ClientVersionChanged, S as ProfileUpdateResponse, Sn as ClientSchemas, St as ClientInstallProgressSchema, T as SessionConfigCreateRequest, Tn as ClientResolveBinaryRequest, Tt as ClientInstallSchema, U as ClientSubjects, Ut as InstallStageSchema, V as createClientDefinition, Vt as InstallErrorSchema, W as ClientSessionObservedBase, Wt as InstalledVersionEntry, X as ClientSessionToolPre, Xt as ClientAccountObserveRequest, Y as ClientSessionToolPostSchema, Yt as ClientAccountIdentifierSchema, Z as ClientSessionToolPreSchema, Zt as ClientAccountObserveResponse, _ as ProfileListRequest, _n as ClientUsageSnapshotSchema, _t as ClientBinaryListEntry, a as ClientConfigPrimeSchema, an as ClientScanResultSchema, at as ClientWiringEntrySchema, b as ProfileSetDefaultResponse, bn as ClientUsageWindows, bt as ClientInstallCompletedSchema, c as ClientProfileSchema, cn as ClientSessionAccountObserveRequest, ct as ClientRuntimeObserveRequest, d as ProfileCreateRequest, dn as ClientSessionLocator, dt as ClientRuntimeSource, en as ClientIdentifierStrengthSchema, et as ClientSessionTurnStarted, f as ProfileCreateResponse, fn as ClientSessionLocatorSchema, ft as ClientRuntimeSourceLayer, g as ProfileGetResponse, gn as ClientUsageSnapshot, gt as ClientRuntimeStartedSchema, h as ProfileGetRequest, hn as ClientUsageIngestSchema, ht as ClientRuntimeStarted, i as ClientConfigPrimeResponse, in as ClientScanResult, it as ClientWiringEntry, j as SessionConfigInheritance, jt as ClientSetActiveSchema, k as SessionConfigEnvSchema, kt as ClientSetActiveRequest, l as ClientProfileSchemas, ln as ClientSessionAccountObserveResponse, lt as ClientRuntimeObserveResponse, m as ProfileDeleteResponse, mn as ClientUsageIngestResponse, mt as ClientRuntimeSourceSchema, n as ClientConfigPrimePhaseSchema, nn as ClientIdentityObservationSchema, nt as ClientSessionUserPromptSubmitted, o as ClientProfile, on as ClientScanTarget, ot as ClientRuntimeEvidenceBase, p as ProfileDeleteRequest, pn as ClientUsageIngestRequest, pt as ClientRuntimeSourceLayerSchema, q as ClientSessionStartedSchema, qt as ManagedInstallStrategySchema, r as ClientConfigPrimeRequest, rn as ClientMetadataSchema, rt as ClientSessionUserPromptSubmittedSchema, s as ClientProfileNameSchema, sn as ClientScanTargetSchema, st as ClientRuntimeEvidenceBaseSchema, t as ClientConfigPrimePhase, tn as ClientIdentityObservation, tt as ClientSessionTurnStartedSchema, u as ClientSessionConfigSchemas, un as ClientSessionAccountObserveSchema, ut as ClientRuntimeObserveSchema, v as ProfileListResponse, vn as ClientUsageWindow, vt as ClientBinaryListEntrySchema, w as SessionConfigCleanupResponse, wn as ClientExecutionContextSchema, wt as ClientInstallResponse, x as ProfileUpdateRequest, xn as ClientUsageWindowsSchema, xt as ClientInstallProgress, y as ProfileSetDefaultRequest, yn as ClientUsageWindowSchema, yt as ClientInstallCompleted, z as SessionConfigTeardownResponse, zt as ClientVersionChangedSchema } from "../../index-CkpGuNLe.mjs";
1
+ import { C as PostInstallDescriptorSchema, D as VersionCommandSchema, E as VersionCommand, S as PostInstallDescriptor, T as SignedBinaryBucketInstallDescriptorSchema, _ as LogSourceDefinitionSchema, a as ClientDefinitionSchema, b as NpmInstallDescriptor, c as ClientRuntimeCapabilities, d as ClientToolCapabilityAnnotationSchema, f as ClientToolDefinition, g as LogSourceDefinition, h as ConfigIsolationSchema, i as ClientDefinitionInput, l as ClientRuntimeCapabilitiesSchema, m as ConfigIsolation, n as ClientBinaryCompatibilitySchema, o as ClientHookEventDeclaration, p as ClientToolDefinitionSchema, r as ClientDefinition, s as ClientHookEventDeclarationSchema, t as ClientBinaryCompatibility, u as ClientToolCapabilityAnnotation, v as ManagedInstallDescriptor, w as SignedBinaryBucketInstallDescriptor, x as NpmInstallDescriptorSchema, y as ManagedInstallDescriptorSchema } from "../../definition-CuJvtYeG.mjs";
2
+ import { $ as ClientSessionTurnCompletedSchema, $t as ClientIdentifierStrength, A as SessionConfigIdSchema, At as ClientSetActiveResponse, B as SessionConfigTeardownResponseSchema, Bt as InstallError, C as SessionConfigCleanupRequest, Cn as ClientExecutionContext, Ct as ClientInstallRequest, D as SessionConfigDestroyRequest, Dn as ClientResolveBinarySchema, Dt as ClientListResponse, E as SessionConfigCreateResponse, En as ClientResolveBinaryResponse, Et as ClientListRequest, F as SessionConfigSetupResponse, Ft as ClientUpdateRequest, G as ClientSessionObservedBaseSchema, Gt as InstalledVersionEntrySchema, H as ClientNamespace, Ht as InstallStage, I as SessionConfigSetupResponseSchema, It as ClientUpdateResponse, J as ClientSessionToolPost, Jt as ClientAccountIdentifier, K as ClientSessionStarted, Kt as ManagedInstallStrategy, L as SessionConfigTeardownRequest, Lt as ClientUpdateSchema, M as SessionConfigInheritanceSchema, Mt as ClientUninstallRequest, N as SessionConfigSetupRequest, Nt as ClientUninstallResponse, O as SessionConfigDestroyResponse, Ot as ClientListSchema, P as SessionConfigSetupRequestSchema, Pt as ClientUninstallSchema, Q as ClientSessionTurnCompleted, Qt as ClientAccountObserveSchema, R as SessionConfigTeardownRequestSchema, Rt as ClientVersionChanged, S as ProfileUpdateResponse, Sn as ClientSchemas, St as ClientInstallProgressSchema, T as SessionConfigCreateRequest, Tn as ClientResolveBinaryRequest, Tt as ClientInstallSchema, U as ClientSubjects, Ut as InstallStageSchema, V as createClientDefinition, Vt as InstallErrorSchema, W as ClientSessionObservedBase, Wt as InstalledVersionEntry, X as ClientSessionToolPre, Xt as ClientAccountObserveRequest, Y as ClientSessionToolPostSchema, Yt as ClientAccountIdentifierSchema, Z as ClientSessionToolPreSchema, Zt as ClientAccountObserveResponse, _ as ProfileListRequest, _n as ClientUsageSnapshotSchema, _t as ClientBinaryListEntry, a as ClientConfigPrimeSchema, an as ClientScanResultSchema, at as ClientWiringEntrySchema, b as ProfileSetDefaultResponse, bn as ClientUsageWindows, bt as ClientInstallCompletedSchema, c as ClientProfileSchema, cn as ClientSessionAccountObserveRequest, ct as ClientRuntimeObserveRequest, d as ProfileCreateRequest, dn as ClientSessionLocator, dt as ClientRuntimeSource, en as ClientIdentifierStrengthSchema, et as ClientSessionTurnStarted, f as ProfileCreateResponse, fn as ClientSessionLocatorSchema, ft as ClientRuntimeSourceLayer, g as ProfileGetResponse, gn as ClientUsageSnapshot, gt as ClientRuntimeStartedSchema, h as ProfileGetRequest, hn as ClientUsageIngestSchema, ht as ClientRuntimeStarted, i as ClientConfigPrimeResponse, in as ClientScanResult, it as ClientWiringEntry, j as SessionConfigInheritance, jt as ClientSetActiveSchema, k as SessionConfigEnvSchema, kt as ClientSetActiveRequest, l as ClientProfileSchemas, ln as ClientSessionAccountObserveResponse, lt as ClientRuntimeObserveResponse, m as ProfileDeleteResponse, mn as ClientUsageIngestResponse, mt as ClientRuntimeSourceSchema, n as ClientConfigPrimePhaseSchema, nn as ClientIdentityObservationSchema, nt as ClientSessionUserPromptSubmitted, o as ClientProfile, on as ClientScanTarget, ot as ClientRuntimeEvidenceBase, p as ProfileDeleteRequest, pn as ClientUsageIngestRequest, pt as ClientRuntimeSourceLayerSchema, q as ClientSessionStartedSchema, qt as ManagedInstallStrategySchema, r as ClientConfigPrimeRequest, rn as ClientMetadataSchema, rt as ClientSessionUserPromptSubmittedSchema, s as ClientProfileNameSchema, sn as ClientScanTargetSchema, st as ClientRuntimeEvidenceBaseSchema, t as ClientConfigPrimePhase, tn as ClientIdentityObservation, tt as ClientSessionTurnStartedSchema, u as ClientSessionConfigSchemas, un as ClientSessionAccountObserveSchema, ut as ClientRuntimeObserveSchema, v as ProfileListResponse, vn as ClientUsageWindow, vt as ClientBinaryListEntrySchema, w as SessionConfigCleanupResponse, wn as ClientExecutionContextSchema, wt as ClientInstallResponse, x as ProfileUpdateRequest, xn as ClientUsageWindowsSchema, xt as ClientInstallProgress, y as ProfileSetDefaultRequest, yn as ClientUsageWindowSchema, yt as ClientInstallCompleted, z as SessionConfigTeardownResponse, zt as ClientVersionChangedSchema } from "../../index-D2WJ0Zpt.mjs";
3
3
  export { ClientAccountIdentifier, ClientAccountIdentifierSchema, ClientAccountObserveRequest, ClientAccountObserveResponse, ClientAccountObserveSchema, ClientBinaryCompatibility, ClientBinaryCompatibilitySchema, ClientBinaryListEntry, ClientBinaryListEntrySchema, ClientConfigPrimePhase, ClientConfigPrimePhaseSchema, ClientConfigPrimeRequest, ClientConfigPrimeResponse, ClientConfigPrimeSchema, ClientDefinition, ClientDefinitionInput, ClientDefinitionSchema, ClientExecutionContext, ClientExecutionContextSchema, ClientHookEventDeclaration, ClientHookEventDeclarationSchema, ClientIdentifierStrength, ClientIdentifierStrengthSchema, ClientIdentityObservation, ClientIdentityObservationSchema, ClientInstallCompleted, ClientInstallCompletedSchema, ClientInstallProgress, ClientInstallProgressSchema, ClientInstallRequest, ClientInstallResponse, ClientInstallSchema, ClientListRequest, ClientListResponse, ClientListSchema, ClientMetadataSchema, ClientNamespace, ClientProfile, ClientProfileNameSchema, ClientProfileSchema, ClientProfileSchemas, ClientResolveBinaryRequest, ClientResolveBinaryResponse, ClientResolveBinarySchema, ClientRuntimeCapabilities, ClientRuntimeCapabilitiesSchema, ClientRuntimeEvidenceBase, ClientRuntimeEvidenceBaseSchema, ClientRuntimeObserveRequest, ClientRuntimeObserveResponse, ClientRuntimeObserveSchema, ClientRuntimeSource, ClientRuntimeSourceLayer, ClientRuntimeSourceLayerSchema, ClientRuntimeSourceSchema, ClientRuntimeStarted, ClientRuntimeStartedSchema, ClientScanResult, ClientScanResultSchema, ClientScanTarget, ClientScanTargetSchema, ClientSchemas, ClientSessionAccountObserveRequest, ClientSessionAccountObserveResponse, ClientSessionAccountObserveSchema, ClientSessionConfigSchemas, ClientSessionLocator, ClientSessionLocatorSchema, ClientSessionObservedBase, ClientSessionObservedBaseSchema, ClientSessionStarted, ClientSessionStartedSchema, ClientSessionToolPost, ClientSessionToolPostSchema, ClientSessionToolPre, ClientSessionToolPreSchema, ClientSessionTurnCompleted, ClientSessionTurnCompletedSchema, ClientSessionTurnStarted, ClientSessionTurnStartedSchema, ClientSessionUserPromptSubmitted, ClientSessionUserPromptSubmittedSchema, ClientSetActiveRequest, ClientSetActiveResponse, ClientSetActiveSchema, ClientSubjects, ClientToolCapabilityAnnotation, ClientToolCapabilityAnnotationSchema, ClientToolDefinition, ClientToolDefinitionSchema, ClientUninstallRequest, ClientUninstallResponse, ClientUninstallSchema, ClientUpdateRequest, ClientUpdateResponse, ClientUpdateSchema, ClientUsageIngestRequest, ClientUsageIngestResponse, ClientUsageIngestSchema, ClientUsageSnapshot, ClientUsageSnapshotSchema, ClientUsageWindow, ClientUsageWindowSchema, ClientUsageWindows, ClientUsageWindowsSchema, ClientVersionChanged, ClientVersionChangedSchema, ClientWiringEntry, ClientWiringEntrySchema, ConfigIsolation, ConfigIsolationSchema, InstallError, InstallErrorSchema, InstallStage, InstallStageSchema, InstalledVersionEntry, InstalledVersionEntrySchema, LogSourceDefinition, LogSourceDefinitionSchema, ManagedInstallDescriptor, ManagedInstallDescriptorSchema, ManagedInstallStrategy, ManagedInstallStrategySchema, NpmInstallDescriptor, NpmInstallDescriptorSchema, PostInstallDescriptor, PostInstallDescriptorSchema, ProfileCreateRequest, ProfileCreateResponse, ProfileDeleteRequest, ProfileDeleteResponse, ProfileGetRequest, ProfileGetResponse, ProfileListRequest, ProfileListResponse, ProfileSetDefaultRequest, ProfileSetDefaultResponse, ProfileUpdateRequest, ProfileUpdateResponse, SessionConfigCleanupRequest, SessionConfigCleanupResponse, SessionConfigCreateRequest, SessionConfigCreateResponse, SessionConfigDestroyRequest, SessionConfigDestroyResponse, SessionConfigEnvSchema, SessionConfigIdSchema, SessionConfigInheritance, SessionConfigInheritanceSchema, SessionConfigSetupRequest, SessionConfigSetupRequestSchema, SessionConfigSetupResponse, SessionConfigSetupResponseSchema, SessionConfigTeardownRequest, SessionConfigTeardownRequestSchema, SessionConfigTeardownResponse, SessionConfigTeardownResponseSchema, SignedBinaryBucketInstallDescriptor, SignedBinaryBucketInstallDescriptorSchema, VersionCommand, VersionCommandSchema, createClientDefinition };
@@ -1 +1 @@
1
- import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,p as c,r as l,s as u,t as d,u as f}from"../../profile-r4G32bCH.mjs";import{a as p,c as m,d as h,f as g,i as _,l as v,n as y,o as b,p as x,r as S,s as C,t as w,u as T}from"../../account-identity-D-9gunfD.mjs";import{A as E,B as D,C as O,D as k,E as A,F as j,G as M,H as N,I as P,L as F,M as I,N as L,O as R,P as z,R as B,S as V,T as H,U,V as W,W as G,_ as K,a as q,b as J,c as Y,d as X,f as Z,g as Q,h as $,i as ee,j as te,k as ne,l as re,m as ie,n as ae,o as oe,p as se,r as ce,s as le,t as ue,u as de,v as fe,w as pe,x as me,y as he,z as ge}from"../../client-D24ebgGH.mjs";export{w as ClientAccountIdentifierSchema,y as ClientAccountObserveSchema,L as ClientBinaryCompatibilitySchema,fe as ClientBinaryListEntrySchema,d as ClientConfigPrimePhaseSchema,o as ClientConfigPrimeSchema,z as ClientDefinitionSchema,te as ClientExecutionContextSchema,j as ClientHookEventDeclarationSchema,S as ClientIdentifierStrengthSchema,_ as ClientIdentityObservationSchema,he as ClientInstallCompletedSchema,J as ClientInstallProgressSchema,me as ClientInstallSchema,V as ClientListSchema,p as ClientMetadataSchema,ae as ClientNamespace,l as ClientProfileNameSchema,i as ClientProfileSchema,e as ClientProfileSchemas,I as ClientResolveBinarySchema,P as ClientRuntimeCapabilitiesSchema,se as ClientRuntimeEvidenceBaseSchema,ie as ClientRuntimeObserveSchema,$ as ClientRuntimeSourceLayerSchema,Q as ClientRuntimeSourceSchema,K as ClientRuntimeStartedSchema,b as ClientScanResultSchema,C as ClientScanTargetSchema,ee as ClientSchemas,m as ClientSessionAccountObserveSchema,s as ClientSessionConfigSchemas,v as ClientSessionLocatorSchema,q as ClientSessionObservedBaseSchema,oe as ClientSessionStartedSchema,le as ClientSessionToolPostSchema,Y as ClientSessionToolPreSchema,re as ClientSessionTurnCompletedSchema,de as ClientSessionTurnStartedSchema,X as ClientSessionUserPromptSubmittedSchema,O as ClientSetActiveSchema,ce as ClientSubjects,F as ClientToolCapabilityAnnotationSchema,B as ClientToolDefinitionSchema,pe as ClientUninstallSchema,H as ClientUpdateSchema,T as ClientUsageIngestSchema,h as ClientUsageSnapshotSchema,g as ClientUsageWindowSchema,x as ClientUsageWindowsSchema,A as ClientVersionChangedSchema,Z as ClientWiringEntrySchema,ge as ConfigIsolationSchema,k as InstallErrorSchema,R as InstallStageSchema,ne as InstalledVersionEntrySchema,D as LogSourceDefinitionSchema,W as ManagedInstallDescriptorSchema,E as ManagedInstallStrategySchema,N as NpmInstallDescriptorSchema,U as PostInstallDescriptorSchema,u as SessionConfigEnvSchema,t as SessionConfigIdSchema,a as SessionConfigInheritanceSchema,f as SessionConfigSetupRequestSchema,n as SessionConfigSetupResponseSchema,r as SessionConfigTeardownRequestSchema,c as SessionConfigTeardownResponseSchema,G as SignedBinaryBucketInstallDescriptorSchema,M as VersionCommandSchema,ue as createClientDefinition};
1
+ import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,p as c,r as l,s as u,t as d,u as f}from"../../profile-BMBXUqqh.mjs";import{a as p,c as m,d as h,f as g,i as _,l as v,n as y,o as b,p as x,r as S,s as C,t as w,u as T}from"../../account-identity-D5TUafYg.mjs";import{A as E,B as D,C as O,D as k,E as A,F as j,G as M,H as N,I as P,L as F,M as I,N as L,O as R,P as z,R as B,S as V,T as H,U,V as W,W as G,_ as K,a as q,b as J,c as Y,d as X,f as Z,g as Q,h as $,i as ee,j as te,k as ne,l as re,m as ie,n as ae,o as oe,p as se,r as ce,s as le,t as ue,u as de,v as fe,w as pe,x as me,y as he,z as ge}from"../../client-BO-0jTSV.mjs";export{w as ClientAccountIdentifierSchema,y as ClientAccountObserveSchema,L as ClientBinaryCompatibilitySchema,fe as ClientBinaryListEntrySchema,d as ClientConfigPrimePhaseSchema,o as ClientConfigPrimeSchema,z as ClientDefinitionSchema,te as ClientExecutionContextSchema,j as ClientHookEventDeclarationSchema,S as ClientIdentifierStrengthSchema,_ as ClientIdentityObservationSchema,he as ClientInstallCompletedSchema,J as ClientInstallProgressSchema,me as ClientInstallSchema,V as ClientListSchema,p as ClientMetadataSchema,ae as ClientNamespace,l as ClientProfileNameSchema,i as ClientProfileSchema,e as ClientProfileSchemas,I as ClientResolveBinarySchema,P as ClientRuntimeCapabilitiesSchema,se as ClientRuntimeEvidenceBaseSchema,ie as ClientRuntimeObserveSchema,$ as ClientRuntimeSourceLayerSchema,Q as ClientRuntimeSourceSchema,K as ClientRuntimeStartedSchema,b as ClientScanResultSchema,C as ClientScanTargetSchema,ee as ClientSchemas,m as ClientSessionAccountObserveSchema,s as ClientSessionConfigSchemas,v as ClientSessionLocatorSchema,q as ClientSessionObservedBaseSchema,oe as ClientSessionStartedSchema,le as ClientSessionToolPostSchema,Y as ClientSessionToolPreSchema,re as ClientSessionTurnCompletedSchema,de as ClientSessionTurnStartedSchema,X as ClientSessionUserPromptSubmittedSchema,O as ClientSetActiveSchema,ce as ClientSubjects,F as ClientToolCapabilityAnnotationSchema,B as ClientToolDefinitionSchema,pe as ClientUninstallSchema,H as ClientUpdateSchema,T as ClientUsageIngestSchema,h as ClientUsageSnapshotSchema,g as ClientUsageWindowSchema,x as ClientUsageWindowsSchema,A as ClientVersionChangedSchema,Z as ClientWiringEntrySchema,ge as ConfigIsolationSchema,k as InstallErrorSchema,R as InstallStageSchema,ne as InstalledVersionEntrySchema,D as LogSourceDefinitionSchema,W as ManagedInstallDescriptorSchema,E as ManagedInstallStrategySchema,N as NpmInstallDescriptorSchema,U as PostInstallDescriptorSchema,u as SessionConfigEnvSchema,t as SessionConfigIdSchema,a as SessionConfigInheritanceSchema,f as SessionConfigSetupRequestSchema,n as SessionConfigSetupResponseSchema,r as SessionConfigTeardownRequestSchema,c as SessionConfigTeardownResponseSchema,G as SignedBinaryBucketInstallDescriptorSchema,M as VersionCommandSchema,ue as createClientDefinition};
@@ -1,2 +1,2 @@
1
- import { a as FocusContext, i as ActionIntent, n as SurfaceVisibility, r as isSurfaceVisible, t as SurfaceType } from "../../index-BE-yMFTz.mjs";
1
+ import { a as FocusContext, i as ActionIntent, n as SurfaceVisibility, r as isSurfaceVisible, t as SurfaceType } from "../../index-D7Hkmrr3.mjs";
2
2
  export { ActionIntent, FocusContext, SurfaceType, SurfaceVisibility, isSurfaceVisible };
@@ -1,4 +1,4 @@
1
- import { a as ConfigUpdateRequest, b as RelayConfig, i as ConfigSchemas, l as AIModelSchema, n as ConfigSubjects, o as ConfigUpdateResponse, r as ConfigGetResponse, t as ConfigNamespace, v as Config, y as ConfigSchema } from "../../config-namespace-DloU-hNB.mjs";
1
+ import { a as ConfigUpdateRequest, b as RelayConfig, i as ConfigSchemas, l as AIModelSchema, n as ConfigSubjects, o as ConfigUpdateResponse, r as ConfigGetResponse, t as ConfigNamespace, v as Config, y as ConfigSchema } from "../../config-namespace-DqdFE6zk.mjs";
2
2
  import { z } from "zod";
3
3
  import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
4
4
 
@@ -157,8 +157,8 @@ declare const ProviderConfigSchema: z.ZodObject<{
157
157
  }>>;
158
158
  modelVisibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
159
159
  visible: "visible";
160
- disabled: "disabled";
161
160
  enabled: "enabled";
161
+ disabled: "disabled";
162
162
  }>>>;
163
163
  isDefault: z.ZodDefault<z.ZodBoolean>;
164
164
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -249,8 +249,8 @@ declare const BaseAdapterConfigSchema: z.ZodObject<{
249
249
  }>>;
250
250
  modelVisibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
251
251
  visible: "visible";
252
- disabled: "disabled";
253
252
  enabled: "enabled";
253
+ disabled: "disabled";
254
254
  }>>>;
255
255
  isDefault: z.ZodDefault<z.ZodBoolean>;
256
256
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -285,8 +285,8 @@ declare const ProviderConfigFileSchema: z.ZodObject<{
285
285
  }>>;
286
286
  modelVisibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
287
287
  visible: "visible";
288
- disabled: "disabled";
289
288
  enabled: "enabled";
289
+ disabled: "disabled";
290
290
  }>>>;
291
291
  isDefault: z.ZodOptional<z.ZodBoolean>;
292
292
  enabled: z.ZodOptional<z.ZodBoolean>;
@@ -397,8 +397,8 @@ declare const AdaptersFileProviderSchema: z.ZodObject<{
397
397
  }>>;
398
398
  modelVisibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
399
399
  visible: "visible";
400
- disabled: "disabled";
401
400
  enabled: "enabled";
401
+ disabled: "disabled";
402
402
  }>>>;
403
403
  }, z.core.$strip>;
404
404
  /**
@@ -418,8 +418,8 @@ declare const AdaptersFileAdapterSchema: z.ZodObject<{
418
418
  }>>;
419
419
  modelVisibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
420
420
  visible: "visible";
421
- disabled: "disabled";
422
421
  enabled: "enabled";
422
+ disabled: "disabled";
423
423
  }>>>;
424
424
  }, z.core.$strip>>;
425
425
  }, z.core.$strip>;
@@ -442,8 +442,8 @@ declare const AdaptersFileSchema: z.ZodObject<{
442
442
  }>>;
443
443
  modelVisibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
444
444
  visible: "visible";
445
- disabled: "disabled";
446
445
  enabled: "enabled";
446
+ disabled: "disabled";
447
447
  }>>>;
448
448
  }, z.core.$strip>>;
449
449
  }, z.core.$strip>>;
@@ -1 +1 @@
1
- import{t as e}from"../../json-value-CmhSGMLv.mjs";import{i as t,n,t as r}from"../../visibility-Cb62p9bv.mjs";import{a as i,i as a,n as o,o as s,r as c,s as l,t as u}from"../../credential-ref-YWQQENEo.mjs";import{t as d}from"../../timeout-XsYIOKrc.mjs";import"../../shared-DpOEfD8F.mjs";import{i as f,n as p,r as m,t as h}from"../../config-namespace-DW5KHKPW.mjs";import{z as g}from"zod";const _=g.object({anthropic:g.string().url(),openai:g.string().url()}).partial().strict(),v=g.object({model:g.string().optional().describe(`Model identifier (adapter-specific, e.g., sonnet, opus)`),timeouts:d.optional().describe(`Timeout overrides for this provider`),cwd:g.string().optional().describe(`Working directory for agent execution`),env:g.record(g.string(),g.string()).optional().describe(`Environment variables to pass to agent execution`),credentials:g.record(g.string(),u).optional().describe(`Credential references resolved at runtime (e.g., keychain:service:account)`),providerSettings:g.record(g.string(),g.unknown()).optional().describe(`Provider-specific configuration (non-credential settings only)`)}),y=v.safeExtend({providerId:g.string().optional().describe(`FK to the providers table (stable provider ID, e.g. "anthropic")`),definitionId:g.string().optional().describe(`Provider definition identifier for schema lookup`),name:g.string().describe(`Display name for UI`),baseUrl:g.string().url().optional().describe(`Provider endpoint URL`),availableModels:g.array(t).optional().describe(`Models from this provider`),modelFilterMode:r.optional().describe(`Controls default visibility for models without explicit overrides`),modelVisibility:g.record(g.string(),n).optional().describe(`Sparse per-model visibility overrides`),isDefault:g.boolean().default(!1).describe(`Whether this is the default provider for inheritance`),enabled:g.boolean().default(!0).describe(`Whether this provider is enabled (disabled providers are not loaded)`)}),b=g.object({$schema:g.literal(`makaio/adapter-config/v2`),defaults:v.optional(),providers:g.record(g.string(),y).default(()=>({}))}),x=`makaio/provider-config/v1`,S=g.object({$schema:g.literal(x),definitionId:g.string().trim().min(1),name:g.string().trim().min(1).optional(),credentials:g.record(g.string(),u).optional(),endpointOverrides:_.optional(),modelFilterMode:r.optional(),modelVisibility:g.record(g.string(),n).optional(),isDefault:g.boolean().optional(),enabled:g.boolean().optional(),isSentinel:g.boolean().optional()}).strict(),C=`makaio/adapter-config/v1`,w=g.object({label:g.string().min(1),url:g.string().url()}).strict(),T=g.object({providerConfigId:g.string().trim().min(1),isDefault:g.boolean().optional()}).strict(),E=g.array(T).superRefine((e,t)=>{let n=new Set,r=null;for(let[i,a]of e.entries())if(n.has(a.providerConfigId)?t.addIssue({code:g.ZodIssueCode.custom,message:`Duplicate adapter binding for providerConfigId "${a.providerConfigId}".`,path:[i,`providerConfigId`]}):n.add(a.providerConfigId),a.isDefault){if(r!==null){t.addIssue({code:g.ZodIssueCode.custom,message:`Adapter config files may declare at most one default binding.`,path:[i,`isDefault`]});continue}r=i}}),D=g.object({$schema:g.literal(C),enabled:g.boolean().optional(),displayName:g.string().optional(),description:g.string().optional(),helpLinks:g.array(w).optional(),instructions:g.string().optional(),clientId:g.string().optional(),protocol:g.string().optional(),providerDefinitionIds:g.array(g.string()).optional(),settings:e.optional(),bindings:E.optional()}).strict();function O(e){return e.trim().toLowerCase().replace(/\s+/g,`-`)}function k(e){if(e.includes(`::`)||e.includes(`~`)||e.includes(`/`))return!1;let t=O(e);return t.length>0&&/^[a-z0-9][a-z0-9._-]*$/.test(t)}function A(e){let t=e.requestedName?.trim();if(t)return t;let n=e.providerName?.trim();if(n&&k(n))return n;if(k(e.definitionId))return e.definitionId}const j=g.object({name:g.string().optional(),providerId:g.string().optional(),credentials:g.record(g.string(),u).optional(),baseUrl:g.string().url().optional(),isDefault:g.boolean().optional(),enabled:g.boolean().optional(),modelFilterMode:r.optional(),modelVisibility:g.record(g.string(),n).optional()}),M=g.object({providers:g.record(g.string(),j)}),N=g.object({$schema:g.literal(`makaio/adapters-config/v1`),adapters:g.record(g.string(),M)});export{C as ADAPTER_FILE_SCHEMA_VERSION,t as AIModelSchema,D as AdapterFileSchema,M as AdaptersFileAdapterSchema,j as AdaptersFileProviderSchema,N as AdaptersFileSchema,b as BaseAdapterConfigSchema,h as ConfigNamespace,f as ConfigSchema,m as ConfigSchemas,p as ConfigSubjects,u as CredentialRefSchema,x as PROVIDER_CONFIG_SCHEMA_VERSION,S as ProviderConfigFileSchema,y as ProviderConfigSchema,v as ProviderDefaultsSchema,o as brandCredentialRecord,c as buildAccountManagerCredentialRef,a as buildStoredCredentialRef,i as isAccountManagerRef,k as isCanonicalProviderConfigName,s as parseStoredCredentialRef,A as resolveCanonicalProviderConfigName,O as slugifyProviderConfigName,l as unbrandCredentials};
1
+ import{t as e}from"../../json-value-CmhSGMLv.mjs";import{i as t,n,t as r}from"../../visibility-Cb62p9bv.mjs";import{a as i,i as a,n as o,o as s,r as c,s as l,t as u}from"../../credential-ref-YWQQENEo.mjs";import{t as d}from"../../timeout-XsYIOKrc.mjs";import"../../shared-DpOEfD8F.mjs";import{i as f,n as p,r as m,t as h}from"../../config-namespace-CY9leBnE.mjs";import{z as g}from"zod";const _=g.object({anthropic:g.string().url(),openai:g.string().url()}).partial().strict(),v=g.object({model:g.string().optional().describe(`Model identifier (adapter-specific, e.g., sonnet, opus)`),timeouts:d.optional().describe(`Timeout overrides for this provider`),cwd:g.string().optional().describe(`Working directory for agent execution`),env:g.record(g.string(),g.string()).optional().describe(`Environment variables to pass to agent execution`),credentials:g.record(g.string(),u).optional().describe(`Credential references resolved at runtime (e.g., keychain:service:account)`),providerSettings:g.record(g.string(),g.unknown()).optional().describe(`Provider-specific configuration (non-credential settings only)`)}),y=v.safeExtend({providerId:g.string().optional().describe(`FK to the providers table (stable provider ID, e.g. "anthropic")`),definitionId:g.string().optional().describe(`Provider definition identifier for schema lookup`),name:g.string().describe(`Display name for UI`),baseUrl:g.string().url().optional().describe(`Provider endpoint URL`),availableModels:g.array(t).optional().describe(`Models from this provider`),modelFilterMode:r.optional().describe(`Controls default visibility for models without explicit overrides`),modelVisibility:g.record(g.string(),n).optional().describe(`Sparse per-model visibility overrides`),isDefault:g.boolean().default(!1).describe(`Whether this is the default provider for inheritance`),enabled:g.boolean().default(!0).describe(`Whether this provider is enabled (disabled providers are not loaded)`)}),b=g.object({$schema:g.literal(`makaio/adapter-config/v2`),defaults:v.optional(),providers:g.record(g.string(),y).default(()=>({}))}),x=`makaio/provider-config/v1`,S=g.object({$schema:g.literal(x),definitionId:g.string().trim().min(1),name:g.string().trim().min(1).optional(),credentials:g.record(g.string(),u).optional(),endpointOverrides:_.optional(),modelFilterMode:r.optional(),modelVisibility:g.record(g.string(),n).optional(),isDefault:g.boolean().optional(),enabled:g.boolean().optional(),isSentinel:g.boolean().optional()}).strict(),C=`makaio/adapter-config/v1`,w=g.object({label:g.string().min(1),url:g.string().url()}).strict(),T=g.object({providerConfigId:g.string().trim().min(1),isDefault:g.boolean().optional()}).strict(),E=g.array(T).superRefine((e,t)=>{let n=new Set,r=null;for(let[i,a]of e.entries())if(n.has(a.providerConfigId)?t.addIssue({code:g.ZodIssueCode.custom,message:`Duplicate adapter binding for providerConfigId "${a.providerConfigId}".`,path:[i,`providerConfigId`]}):n.add(a.providerConfigId),a.isDefault){if(r!==null){t.addIssue({code:g.ZodIssueCode.custom,message:`Adapter config files may declare at most one default binding.`,path:[i,`isDefault`]});continue}r=i}}),D=g.object({$schema:g.literal(C),enabled:g.boolean().optional(),displayName:g.string().optional(),description:g.string().optional(),helpLinks:g.array(w).optional(),instructions:g.string().optional(),clientId:g.string().optional(),protocol:g.string().optional(),providerDefinitionIds:g.array(g.string()).optional(),settings:e.optional(),bindings:E.optional()}).strict();function O(e){return e.trim().toLowerCase().replace(/\s+/g,`-`)}function k(e){if(e.includes(`::`)||e.includes(`~`)||e.includes(`/`))return!1;let t=O(e);return t.length>0&&/^[a-z0-9][a-z0-9._-]*$/.test(t)}function A(e){let t=e.requestedName?.trim();if(t)return t;let n=e.providerName?.trim();if(n&&k(n))return n;if(k(e.definitionId))return e.definitionId}const j=g.object({name:g.string().optional(),providerId:g.string().optional(),credentials:g.record(g.string(),u).optional(),baseUrl:g.string().url().optional(),isDefault:g.boolean().optional(),enabled:g.boolean().optional(),modelFilterMode:r.optional(),modelVisibility:g.record(g.string(),n).optional()}),M=g.object({providers:g.record(g.string(),j)}),N=g.object({$schema:g.literal(`makaio/adapters-config/v1`),adapters:g.record(g.string(),M)});export{C as ADAPTER_FILE_SCHEMA_VERSION,t as AIModelSchema,D as AdapterFileSchema,M as AdaptersFileAdapterSchema,j as AdaptersFileProviderSchema,N as AdaptersFileSchema,b as BaseAdapterConfigSchema,h as ConfigNamespace,f as ConfigSchema,m as ConfigSchemas,p as ConfigSubjects,u as CredentialRefSchema,x as PROVIDER_CONFIG_SCHEMA_VERSION,S as ProviderConfigFileSchema,y as ProviderConfigSchema,v as ProviderDefaultsSchema,o as brandCredentialRecord,c as buildAccountManagerCredentialRef,a as buildStoredCredentialRef,i as isAccountManagerRef,k as isCanonicalProviderConfigName,s as parseStoredCredentialRef,A as resolveCanonicalProviderConfigName,O as slugifyProviderConfigName,l as unbrandCredentials};