@makaio/framework 1.0.0-dev-1779046984397

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 (410) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +363 -0
  3. package/dist/account-identity-Ce1Bwrqi.mjs +1 -0
  4. package/dist/adapter-CbyjCE2d.mjs +1 -0
  5. package/dist/adapters/acp-client/index.d.mts +209 -0
  6. package/dist/adapters/acp-client/index.mjs +1 -0
  7. package/dist/adapters/config/index.d.mts +429 -0
  8. package/dist/adapters/config/index.mjs +1 -0
  9. package/dist/adapters/index.d.mts +4175 -0
  10. package/dist/adapters/index.mjs +11 -0
  11. package/dist/adapters/node.d.mts +263 -0
  12. package/dist/adapters/node.mjs +4 -0
  13. package/dist/adapters/stream-session/index.d.mts +1384 -0
  14. package/dist/adapters/stream-session/index.mjs +1 -0
  15. package/dist/adapters/stream-session/testing/index.d.mts +29 -0
  16. package/dist/adapters/stream-session/testing/index.mjs +1 -0
  17. package/dist/base-orchestrator-9z8TuA5a.d.mts +772 -0
  18. package/dist/bus/index.d.mts +3331 -0
  19. package/dist/bus/index.mjs +1 -0
  20. package/dist/bus-B1seC4M_.mjs +2 -0
  21. package/dist/capability-service-tnpR_TaB.mjs +1 -0
  22. package/dist/chunk-Dc06z0qk.mjs +1 -0
  23. package/dist/chunk-cpUYaJdV.mjs +1 -0
  24. package/dist/cleanEnvForAdapter-DvcIGXTG.mjs +1 -0
  25. package/dist/client-Dh4x4GQN.mjs +1 -0
  26. package/dist/clients/index.d.mts +2786 -0
  27. package/dist/clients/index.mjs +1 -0
  28. package/dist/clients-namespace-B0xAPZ6J.d.mts +332 -0
  29. package/dist/config-namespace-DLSs83zr.d.mts +638 -0
  30. package/dist/config-namespace-MJT8P0Ud.mjs +1 -0
  31. package/dist/contracts/adapter/index.d.mts +3 -0
  32. package/dist/contracts/adapter/index.mjs +1 -0
  33. package/dist/contracts/adapter/schemas/session-lineage.d.mts +2 -0
  34. package/dist/contracts/adapter/schemas/session-lineage.mjs +1 -0
  35. package/dist/contracts/client/index.d.mts +3 -0
  36. package/dist/contracts/client/index.mjs +1 -0
  37. package/dist/contracts/common/index.d.mts +2 -0
  38. package/dist/contracts/common/index.mjs +1 -0
  39. package/dist/contracts/config/index.d.mts +455 -0
  40. package/dist/contracts/config/index.mjs +1 -0
  41. package/dist/contracts/extension/index.d.mts +3 -0
  42. package/dist/contracts/extension/index.mjs +1 -0
  43. package/dist/contracts/harness/index.d.mts +2 -0
  44. package/dist/contracts/harness/index.mjs +1 -0
  45. package/dist/contracts/host/index.d.mts +2 -0
  46. package/dist/contracts/host/index.mjs +1 -0
  47. package/dist/contracts/index.d.mts +12665 -0
  48. package/dist/contracts/index.mjs +1 -0
  49. package/dist/contracts/model-registry/index.d.mts +2 -0
  50. package/dist/contracts/model-registry/index.mjs +1 -0
  51. package/dist/contracts/native-session-supervisor/index.d.mts +2 -0
  52. package/dist/contracts/native-session-supervisor/index.mjs +1 -0
  53. package/dist/contracts/platform/index.d.mts +2 -0
  54. package/dist/contracts/platform/index.mjs +1 -0
  55. package/dist/contracts/provider/index.d.mts +3 -0
  56. package/dist/contracts/provider/index.mjs +1 -0
  57. package/dist/contracts/session/index.d.mts +3 -0
  58. package/dist/contracts/session/index.mjs +1 -0
  59. package/dist/contracts/shared/index.d.mts +2 -0
  60. package/dist/contracts/shared/index.mjs +1 -0
  61. package/dist/contracts/skill/index.d.mts +2 -0
  62. package/dist/contracts/skill/index.mjs +1 -0
  63. package/dist/contracts/toast/index.d.mts +198 -0
  64. package/dist/contracts/toast/index.mjs +1 -0
  65. package/dist/contracts/variant/index.d.mts +2 -0
  66. package/dist/contracts/variant/index.mjs +1 -0
  67. package/dist/core/index.d.mts +1001 -0
  68. package/dist/core/index.mjs +1 -0
  69. package/dist/credential-ref-DLCsoKVZ.mjs +1 -0
  70. package/dist/cursor-storage-DOQdvo9j.mjs +1 -0
  71. package/dist/definition-DkYy1PZz.mjs +1 -0
  72. package/dist/definition-DtUNiGom.d.mts +158 -0
  73. package/dist/definition-DxvZ9e22.d.mts +376 -0
  74. package/dist/drizzle-CWVVw7Er.mjs +1 -0
  75. package/dist/execution-target-BW_uiBVe.mjs +1 -0
  76. package/dist/extension-COqwS-2Q.mjs +1 -0
  77. package/dist/extension-Cbrl4YGX.mjs +1 -0
  78. package/dist/extension-namespace-zaGKi6Qj.mjs +1 -0
  79. package/dist/handlers-iGKUJ380.mjs +41 -0
  80. package/dist/harness-CEq1Zkf9.mjs +1 -0
  81. package/dist/hooks/index.d.mts +423 -0
  82. package/dist/hooks/index.mjs +1 -0
  83. package/dist/host-CXAUGGN0.mjs +1 -0
  84. package/dist/identity-B_A0mE63.mjs +1 -0
  85. package/dist/index-6lyShOoU.d.mts +225 -0
  86. package/dist/index-7sXlairn2.d.mts +43 -0
  87. package/dist/index-BAKM2GMH2.d.mts +535 -0
  88. package/dist/index-BB419vv-.d.mts +3897 -0
  89. package/dist/index-BJOfdtbw.d.mts +729 -0
  90. package/dist/index-BXP9GK5q.d.mts +1075 -0
  91. package/dist/index-BdPwu6c0.d.mts +1730 -0
  92. package/dist/index-BePI0ckL.d.mts +40 -0
  93. package/dist/index-Bigx81Kr.d.mts +37 -0
  94. package/dist/index-BnNqbx2I.d.mts +134 -0
  95. package/dist/index-Bv15sNLn.d.mts +389 -0
  96. package/dist/index-C-myW_aK.d.mts +412 -0
  97. package/dist/index-C9F3Fc1A.d.mts +2938 -0
  98. package/dist/index-CNxS4Tlu.d.mts +1 -0
  99. package/dist/index-CVA0m1g9.d.mts +995 -0
  100. package/dist/index-C_kS2aqV2.d.mts +438 -0
  101. package/dist/index-Ch3ph52M2.d.mts +40 -0
  102. package/dist/index-CnZOKNjU.d.mts +89 -0
  103. package/dist/index-D1T-PPqF.d.mts +67 -0
  104. package/dist/index-D7T8XCku.d.mts +341 -0
  105. package/dist/index-DBQtpFLE.d.mts +4843 -0
  106. package/dist/index-DEw90pa2.d.mts +183 -0
  107. package/dist/index-DQRsGXb5.d.mts +109 -0
  108. package/dist/index-Dd5s4MSm.d.mts +72 -0
  109. package/dist/index-DubqLGH8.d.mts +1002 -0
  110. package/dist/index-ESSDWIB7.d.mts +11 -0
  111. package/dist/index-N5K1NOYs.d.mts +184 -0
  112. package/dist/index-PdUSmPT2.d.mts +180 -0
  113. package/dist/index-SzSiyG61.d.mts +117 -0
  114. package/dist/index-T0471kWA.d.mts +6760 -0
  115. package/dist/index-WKjrpcA_.d.mts +218 -0
  116. package/dist/index-hapw9_En.d.mts +13592 -0
  117. package/dist/index-iID2R9G1.d.mts +1490 -0
  118. package/dist/kernel/cli/index.d.mts +141 -0
  119. package/dist/kernel/cli/index.mjs +1 -0
  120. package/dist/kernel/cli/schemas.d.mts +63 -0
  121. package/dist/kernel/cli/schemas.mjs +1 -0
  122. package/dist/kernel/extension/index.d.mts +2 -0
  123. package/dist/kernel/extension/index.mjs +1 -0
  124. package/dist/kernel/index.d.mts +296 -0
  125. package/dist/kernel/index.mjs +1 -0
  126. package/dist/kernel/namespace/index.d.mts +2 -0
  127. package/dist/kernel/namespace/index.mjs +1 -0
  128. package/dist/kernel/observability/index.d.mts +2 -0
  129. package/dist/kernel/observability/index.mjs +1 -0
  130. package/dist/kernel/providers/index.d.mts +2 -0
  131. package/dist/kernel/providers/index.mjs +1 -0
  132. package/dist/kernel/window/index.d.mts +2 -0
  133. package/dist/kernel/window/index.mjs +1 -0
  134. package/dist/model-registry-BNzpR6TU.mjs +1 -0
  135. package/dist/model-registry-CIscwC52.mjs +1 -0
  136. package/dist/namespace-0yuzAKlr.mjs +1 -0
  137. package/dist/namespace-8cNguvIp.mjs +1 -0
  138. package/dist/namespace-BK2erxpV.d.mts +921 -0
  139. package/dist/namespace-Bmc7AW4J2.mjs +1 -0
  140. package/dist/namespace-C2ufjgaQ.d.mts +767 -0
  141. package/dist/namespace-C54Oj025.d.mts +159 -0
  142. package/dist/namespace-CCDEOwmW.d.mts +1313 -0
  143. package/dist/namespace-CfEWMXBx.mjs +1 -0
  144. package/dist/namespace-CkLUtc0g.d.mts +580 -0
  145. package/dist/namespace-D5Wrt7YU.mjs +1 -0
  146. package/dist/namespace-DZcuLwEA.d.mts +51 -0
  147. package/dist/namespace-Db-p67Rg.mjs +1 -0
  148. package/dist/namespace-FWx6HxaW.d.mts +611 -0
  149. package/dist/namespace-GLGGcWPH.d.mts +43 -0
  150. package/dist/namespace-N0dfwSg6.mjs +1 -0
  151. package/dist/namespace-O5SNY-LV.d.mts +2226 -0
  152. package/dist/namespace-ZbthBQVt.d.mts +142 -0
  153. package/dist/namespace-bq4Prtzn.d.mts +2046 -0
  154. package/dist/namespace-pNcSglBS.mjs +1 -0
  155. package/dist/namespace-ptv-pw_g.d.mts +3019 -0
  156. package/dist/namespace-xkvVw3hf2.d.mts +189 -0
  157. package/dist/native-session-supervisor-L-UIaEfd.mjs +1 -0
  158. package/dist/node/bus-server/index.d.mts +178 -0
  159. package/dist/node/bus-server/index.mjs +1 -0
  160. package/dist/node/bus-server/server-lifecycle.d.mts +2 -0
  161. package/dist/node/bus-server/server-lifecycle.mjs +1 -0
  162. package/dist/node/machine-identity/index.d.mts +85 -0
  163. package/dist/node/machine-identity/index.mjs +3 -0
  164. package/dist/node/transports/index.d.mts +1752 -0
  165. package/dist/node/transports/index.mjs +2 -0
  166. package/dist/orchestrator-shared-DrjtTXYh.d.mts +249 -0
  167. package/dist/orchestrator-shared-Wv1GI2mW.mjs +1 -0
  168. package/dist/platform-BbSLVg5b.mjs +1 -0
  169. package/dist/profile-4StaDQW0.mjs +1 -0
  170. package/dist/provider-context-CNRQ4d5m.mjs +1 -0
  171. package/dist/providers/index.d.mts +135 -0
  172. package/dist/providers/index.mjs +1 -0
  173. package/dist/providers-Cr4Za8a1.mjs +1 -0
  174. package/dist/providers-namespace-CDwxY_DV.d.mts +583 -0
  175. package/dist/schema-BwzXEtT2.d.mts +837 -0
  176. package/dist/schema-CAw_BqaG.mjs +1 -0
  177. package/dist/schema-introspection-D61TT_7b.mjs +1 -0
  178. package/dist/schema-uSGW-6oM.mjs +1 -0
  179. package/dist/schemas-BXstpWVp.mjs +1 -0
  180. package/dist/schemas-BdMU-gew.d.mts +160 -0
  181. package/dist/schemas-C40ZAJ33.mjs +1 -0
  182. package/dist/schemas-C5xtVqdb.d.mts +46 -0
  183. package/dist/schemas-CGZy_rU6.d.mts +13 -0
  184. package/dist/schemas-CLxtoKFy.mjs +1 -0
  185. package/dist/schemas-Co_sVhzz.mjs +1 -0
  186. package/dist/schemas-D9108Iv1.d.mts +182 -0
  187. package/dist/schemas-DENVYyds.d.mts +463 -0
  188. package/dist/schemas-DbWs_hj8.d.mts +174 -0
  189. package/dist/schemas-Di0XnnMX.d.mts +73 -0
  190. package/dist/schemas-KMA1efQg.d.mts +944 -0
  191. package/dist/schemas-qmn5SWPU.d.mts +312 -0
  192. package/dist/schemas-sshQEF3l.d.mts +237 -0
  193. package/dist/server-lifecycle-Cf_SZ27k.d.mts +160 -0
  194. package/dist/server-lifecycle-DbFwlrTW.mjs +1 -0
  195. package/dist/service-base/index.d.mts +98 -0
  196. package/dist/service-base/index.mjs +1 -0
  197. package/dist/services/adapter-runtime/index.d.mts +4 -0
  198. package/dist/services/adapter-runtime/index.mjs +1 -0
  199. package/dist/services/adapter-runtime/namespace.d.mts +2 -0
  200. package/dist/services/adapter-runtime/namespace.mjs +1 -0
  201. package/dist/services/adapter-runtime/schemas.d.mts +2 -0
  202. package/dist/services/adapter-runtime/schemas.mjs +1 -0
  203. package/dist/services/adapter-subsystem/index.d.mts +3 -0
  204. package/dist/services/adapter-subsystem/index.mjs +1 -0
  205. package/dist/services/adapter-subsystem/namespace.d.mts +2 -0
  206. package/dist/services/adapter-subsystem/namespace.mjs +1 -0
  207. package/dist/services/agent-runtime/index.d.mts +3 -0
  208. package/dist/services/agent-runtime/index.mjs +1 -0
  209. package/dist/services/agent-runtime/namespace.d.mts +2 -0
  210. package/dist/services/agent-runtime/namespace.mjs +1 -0
  211. package/dist/services/agent-runtime/schemas.d.mts +2 -0
  212. package/dist/services/agent-runtime/schemas.mjs +1 -0
  213. package/dist/services/capability/index.d.mts +2 -0
  214. package/dist/services/capability/index.mjs +1 -0
  215. package/dist/services/cli-detection/namespace.d.mts +56 -0
  216. package/dist/services/cli-detection/namespace.mjs +1 -0
  217. package/dist/services/codebase/index.d.mts +3 -0
  218. package/dist/services/codebase/index.mjs +1 -0
  219. package/dist/services/codebase/namespace.d.mts +2 -0
  220. package/dist/services/codebase/namespace.mjs +1 -0
  221. package/dist/services/codebase/schemas.d.mts +2 -0
  222. package/dist/services/codebase/schemas.mjs +1 -0
  223. package/dist/services/compression/index.d.mts +3 -0
  224. package/dist/services/compression/index.mjs +1 -0
  225. package/dist/services/compression/namespace.d.mts +2 -0
  226. package/dist/services/compression/namespace.mjs +1 -0
  227. package/dist/services/compression/schemas.d.mts +2 -0
  228. package/dist/services/compression/schemas.mjs +1 -0
  229. package/dist/services/context-rules/index.d.mts +412 -0
  230. package/dist/services/context-rules/index.mjs +1 -0
  231. package/dist/services/credential-change/index.d.mts +17 -0
  232. package/dist/services/credential-change/index.mjs +1 -0
  233. package/dist/services/definition/index.d.mts +2 -0
  234. package/dist/services/definition/index.mjs +1 -0
  235. package/dist/services/definition/namespace.d.mts +71 -0
  236. package/dist/services/definition/namespace.mjs +1 -0
  237. package/dist/services/definition/schemas.d.mts +38 -0
  238. package/dist/services/definition/schemas.mjs +1 -0
  239. package/dist/services/dialog/namespace.d.mts +105 -0
  240. package/dist/services/dialog/namespace.mjs +1 -0
  241. package/dist/services/dialog/schemas.d.mts +109 -0
  242. package/dist/services/dialog/schemas.mjs +1 -0
  243. package/dist/services/execution-target/index.d.mts +4 -0
  244. package/dist/services/execution-target/index.mjs +1 -0
  245. package/dist/services/execution-target/namespace.d.mts +2 -0
  246. package/dist/services/execution-target/namespace.mjs +1 -0
  247. package/dist/services/execution-target/schemas.d.mts +2 -0
  248. package/dist/services/execution-target/schemas.mjs +1 -0
  249. package/dist/services/filesystem/namespace.d.mts +432 -0
  250. package/dist/services/filesystem/namespace.mjs +1 -0
  251. package/dist/services/filesystem/schemas.d.mts +240 -0
  252. package/dist/services/filesystem/schemas.mjs +1 -0
  253. package/dist/services/harness/index.d.mts +861 -0
  254. package/dist/services/harness/index.mjs +1 -0
  255. package/dist/services/harness/storage/schema.d.mts +424 -0
  256. package/dist/services/harness/storage/schema.mjs +1 -0
  257. package/dist/services/index.d.mts +5703 -0
  258. package/dist/services/index.mjs +1 -0
  259. package/dist/services/local-notification/index.d.mts +25 -0
  260. package/dist/services/local-notification/index.mjs +1 -0
  261. package/dist/services/local-notification/namespace.d.mts +73 -0
  262. package/dist/services/local-notification/namespace.mjs +1 -0
  263. package/dist/services/local-notification/schemas.d.mts +88 -0
  264. package/dist/services/local-notification/schemas.mjs +1 -0
  265. package/dist/services/log-import/browser.d.mts +3 -0
  266. package/dist/services/log-import/browser.mjs +1 -0
  267. package/dist/services/log-import/index.d.mts +275 -0
  268. package/dist/services/log-import/index.mjs +2 -0
  269. package/dist/services/log-import/log-import.d.mts +3 -0
  270. package/dist/services/log-import/log-import.mjs +1 -0
  271. package/dist/services/log-import/namespace.d.mts +327 -0
  272. package/dist/services/log-import/namespace.mjs +1 -0
  273. package/dist/services/log-import/schemas.d.mts +217 -0
  274. package/dist/services/log-import/schemas.mjs +1 -0
  275. package/dist/services/model-registry/index.d.mts +2 -0
  276. package/dist/services/model-registry/index.mjs +1 -0
  277. package/dist/services/preferences/index.d.mts +3 -0
  278. package/dist/services/preferences/index.mjs +1 -0
  279. package/dist/services/preferences/schemas.d.mts +2 -0
  280. package/dist/services/preferences/schemas.mjs +1 -0
  281. package/dist/services/preferences/storage-namespace.d.mts +3 -0
  282. package/dist/services/preferences/storage-namespace.mjs +1 -0
  283. package/dist/services/provider-context/index.d.mts +2 -0
  284. package/dist/services/provider-context/index.mjs +1 -0
  285. package/dist/services/provider-runtime/index.d.mts +136 -0
  286. package/dist/services/provider-runtime/index.mjs +1 -0
  287. package/dist/services/session/handlers/index.d.mts +2 -0
  288. package/dist/services/session/handlers/index.mjs +1 -0
  289. package/dist/services/session/index.d.mts +10 -0
  290. package/dist/services/session/index.mjs +1 -0
  291. package/dist/services/session/messages/namespace.d.mts +2 -0
  292. package/dist/services/session/messages/namespace.mjs +1 -0
  293. package/dist/services/session/orchestrator-testing/index.d.mts +2 -0
  294. package/dist/services/session/orchestrator-testing/index.mjs +1 -0
  295. package/dist/services/session/session-events/namespace.d.mts +2 -0
  296. package/dist/services/session/session-events/namespace.mjs +1 -0
  297. package/dist/services/session/storage/namespace.d.mts +2 -0
  298. package/dist/services/session/storage/namespace.mjs +1 -0
  299. package/dist/services/session/storage/schema.d.mts +2 -0
  300. package/dist/services/session/storage/schema.mjs +1 -0
  301. package/dist/services/session/testing/index.d.mts +35 -0
  302. package/dist/services/session/testing/index.mjs +52 -0
  303. package/dist/services/session/testing/orchestrator-shared.d.mts +2 -0
  304. package/dist/services/session/testing/orchestrator-shared.mjs +1 -0
  305. package/dist/services/session/turns/namespace.d.mts +2 -0
  306. package/dist/services/session/turns/namespace.mjs +1 -0
  307. package/dist/services/session-editor/index.d.mts +119 -0
  308. package/dist/services/session-editor/index.mjs +1 -0
  309. package/dist/services/settings/index.d.mts +47 -0
  310. package/dist/services/settings/index.mjs +1 -0
  311. package/dist/services/settings/namespace.d.mts +662 -0
  312. package/dist/services/settings/namespace.mjs +1 -0
  313. package/dist/services/settings/storage/clients-namespace.d.mts +2 -0
  314. package/dist/services/settings/storage/clients-namespace.mjs +1 -0
  315. package/dist/services/settings/storage/extension-configs/namespace.d.mts +184 -0
  316. package/dist/services/settings/storage/extension-configs/namespace.mjs +1 -0
  317. package/dist/services/settings/storage/index.d.mts +4 -0
  318. package/dist/services/settings/storage/index.mjs +1 -0
  319. package/dist/services/settings/storage/providers-namespace.d.mts +2 -0
  320. package/dist/services/settings/storage/providers-namespace.mjs +1 -0
  321. package/dist/services/tool-approval/index.d.mts +2 -0
  322. package/dist/services/tool-approval/index.mjs +1 -0
  323. package/dist/services/tools/index.d.mts +2 -0
  324. package/dist/services/tools/index.mjs +1 -0
  325. package/dist/services/tray-menu/index.d.mts +4 -0
  326. package/dist/services/tray-menu/index.mjs +1 -0
  327. package/dist/services/tray-menu/namespace.d.mts +2 -0
  328. package/dist/services/tray-menu/namespace.mjs +1 -0
  329. package/dist/services/tray-menu/schemas.d.mts +2 -0
  330. package/dist/services/tray-menu/schemas.mjs +1 -0
  331. package/dist/services/turn/index.d.mts +2 -0
  332. package/dist/services/turn/index.mjs +1 -0
  333. package/dist/services/turn/namespace.d.mts +2 -0
  334. package/dist/services/turn/namespace.mjs +1 -0
  335. package/dist/services/turn/schemas.d.mts +335 -0
  336. package/dist/services/turn/schemas.mjs +1 -0
  337. package/dist/services/worker/index.d.mts +3 -0
  338. package/dist/services/worker/index.mjs +1 -0
  339. package/dist/services/worker/namespace.d.mts +2 -0
  340. package/dist/services/worker/namespace.mjs +1 -0
  341. package/dist/services/worker/schemas.d.mts +2 -0
  342. package/dist/services/worker/schemas.mjs +1 -0
  343. package/dist/session-Do6lDZM4.mjs +123 -0
  344. package/dist/session-lineage-Eev4uo4I.d.mts +65 -0
  345. package/dist/session-piI1R5rP.mjs +1 -0
  346. package/dist/shared-DxHLl9UP.mjs +1 -0
  347. package/dist/shared-schemas-BgQv_tnu.mjs +1 -0
  348. package/dist/skill-CB5h-ZFQ.mjs +1 -0
  349. package/dist/storage/drizzle/client.d.mts +78 -0
  350. package/dist/storage/drizzle/client.mjs +1 -0
  351. package/dist/storage/drizzle/index.d.mts +98 -0
  352. package/dist/storage/drizzle/index.mjs +1 -0
  353. package/dist/storage/handlers/drizzle/index.d.mts +2 -0
  354. package/dist/storage/handlers/drizzle/index.mjs +1 -0
  355. package/dist/storage/handlers/index.d.mts +33 -0
  356. package/dist/storage/handlers/index.mjs +1 -0
  357. package/dist/storage/index.d.mts +192 -0
  358. package/dist/storage/index.mjs +1 -0
  359. package/dist/storage-namespace-ADwyijoe.mjs +1 -0
  360. package/dist/storage-namespace-DAm8iWEj.d.mts +221 -0
  361. package/dist/storage-namespace-definition-CHu2k14q.mjs +1 -0
  362. package/dist/storage-namespace-definition-CJgqyXH1.d.mts +17 -0
  363. package/dist/style.css +3782 -0
  364. package/dist/testing/drizzle-harness.d.mts +130 -0
  365. package/dist/testing/drizzle-harness.mjs +1 -0
  366. package/dist/testing/index.d.mts +106 -0
  367. package/dist/testing/index.mjs +1 -0
  368. package/dist/tool-approval-service-BcBSUZCO.mjs +1 -0
  369. package/dist/tools/index.d.mts +825 -0
  370. package/dist/tools/index.mjs +1 -0
  371. package/dist/tools/testing/index.d.mts +53 -0
  372. package/dist/tools/testing/index.mjs +1 -0
  373. package/dist/tools-CDSgj0ee.mjs +1 -0
  374. package/dist/tray-menu-service-CTXC1Elg.mjs +1 -0
  375. package/dist/types-6WxLfoM3.d.mts +31 -0
  376. package/dist/types-BjToUrHp.d.mts +6619 -0
  377. package/dist/types-CD1LJwPc.d.mts +1009 -0
  378. package/dist/types-Cvrj2ogm.d.mts +305 -0
  379. package/dist/types-DYF5LxZY.d.mts +233 -0
  380. package/dist/types-t295YC6T.d.mts +262 -0
  381. package/dist/types-vNpkAe4Y.d.mts +128 -0
  382. package/dist/ui-components/index.d.mts +2342 -0
  383. package/dist/ui-components/index.mjs +8 -0
  384. package/dist/ui-config-CXmbsqZV.mjs +1 -0
  385. package/dist/ui-hooks/index.d.mts +1805 -0
  386. package/dist/ui-hooks/index.mjs +1 -0
  387. package/dist/ui-kernel/index.d.mts +2793 -0
  388. package/dist/ui-kernel/index.mjs +1 -0
  389. package/dist/ui-kernel/pages/namespace.d.mts +88 -0
  390. package/dist/ui-kernel/pages/namespace.mjs +1 -0
  391. package/dist/ui-kernel/pages/schemas.d.mts +2 -0
  392. package/dist/ui-kernel/pages/schemas.mjs +1 -0
  393. package/dist/ui-views/index.d.mts +487 -0
  394. package/dist/ui-views/index.mjs +30 -0
  395. package/dist/utils/health-probe.d.mts +26 -0
  396. package/dist/utils/health-probe.mjs +1 -0
  397. package/dist/utils/index.d.mts +227 -0
  398. package/dist/utils/index.mjs +2 -0
  399. package/dist/utils/keychain.d.mts +31 -0
  400. package/dist/utils/keychain.mjs +1 -0
  401. package/dist/utils/resolve-package-root.d.mts +12 -0
  402. package/dist/utils/resolve-package-root.mjs +1 -0
  403. package/dist/utils/workspace-root.d.mts +27 -0
  404. package/dist/utils/workspace-root.mjs +2 -0
  405. package/dist/variant-D5kSrL3m.mjs +1 -0
  406. package/dist/version-CjS20oXi.mjs +1 -0
  407. package/dist/visibility-CZu8ooOA.mjs +1 -0
  408. package/dist/window-registry-CUftmDr3.mjs +1 -0
  409. package/dist/window-registry-C_IJmY8_.d.mts +130 -0
  410. package/package.json +346 -0
@@ -0,0 +1 @@
1
+ import{z as e}from"zod";import t from"node:path";const n={TOOL_NOT_FOUND:`TOOL_NOT_FOUND`,VALIDATION_FAILED:`VALIDATION_FAILED`,PERMISSION_DENIED:`PERMISSION_DENIED`,TIMEOUT:`TIMEOUT`,ABORTED:`ABORTED`,EXECUTION_ERROR:`EXECUTION_ERROR`,INVALID_OUTPUT:`INVALID_OUTPUT`,RESOURCE_NOT_FOUND:`RESOURCE_NOT_FOUND`,RESOURCE_EXHAUSTED:`RESOURCE_EXHAUSTED`,INTERNAL_ERROR:`INTERNAL_ERROR`};var r=class extends Error{code;details;constructor(e,t,n){super(t),this.code=e,this.details=n,this.name=`ToolExecutionError`}toToolError(){return{code:this.code,message:this.message,details:this.details}}};function i(e,t,n){return{success:!1,error:{code:e,message:t,details:n}}}function a(e){return{success:!0,data:e}}function o(e,t=n.EXECUTION_ERROR){return e instanceof r?{success:!1,error:e.toToolError()}:e instanceof Error?i(t,e.message,{name:e.name,stack:e.stack}):i(t,String(e))}function s(e){return{metadata:{name:e.name,description:e.description,annotations:e.annotations},inputSchema:e.inputSchema,outputSchema:e.outputSchema,execute:e.execute}}function c(e){if(!Array.isArray(e)&&!(`metadata`in e))return e;if(!Array.isArray(e)&&`metadata`in e){let t=e;return{[t.metadata.name]:t}}let t=e,n={};for(let e of t)n[e.metadata.name]=e;return n}function l(e){return{metadata:{name:e.name,description:e.description,version:e.version},tools:c(e.tools),configSchema:e.configSchema}}function u(e){if(e)return{readOnly:e.readOnly,destructive:e.destructive,idempotent:e.idempotent,openWorldHint:e.requiresApproval}}function d(t){return{name:t.metadata.name,description:t.metadata.description,inputSchema:e.toJSONSchema(t.inputSchema),annotations:u(t.metadata.annotations)}}function f(t){return{name:t.metadata.name,description:t.metadata.description,parameters:e.toJSONSchema(t.inputSchema)}}function p(e){return Object.values(e.tools).map(e=>d(e))}function m(e){return Object.values(e.tools).map(e=>f(e))}var h=class{factory;sessions=new Map;constructor(e){this.factory=e}get(e,...t){let n=this.sessions.get(e);return n||(n=this.factory(e,...t),this.sessions.set(e,n)),n}has(e){return this.sessions.has(e)}delete(e){return this.sessions.delete(e)}entries(){return this.sessions.entries()}sessionIds(){return Array.from(this.sessions.keys())}get size(){return this.sessions.size}};function g(e,t=`entity`){return e.sessionId?{valid:!0,sessionId:e.sessionId}:{valid:!1,error:i(n.VALIDATION_FAILED,`sessionId is required in context for ${t} operations`)}}async function _(e,t,n){e.bus&&await e.bus.emit(t,n)}async function v(e,t,n,r){let i=g(t,n);if(!i.valid)return i.error;let{sessionId:a}=i,o=r[e.op];return o(e,a,t)}function y(e){return e}const b=`fileAccessRules`,x=new Map([[`read_file`,[`path`,`file_path`]],[`write_file`,[`path`,`file_path`]],[`delete_file`,[`path`]],[`list_directory`,[`path`]],[`Read`,[`path`,`file_path`]],[`Write`,[`path`,`file_path`]],[`Edit`,[`path`,`file_path`]],[`MultiEdit`,[`path`,`file_path`]],[`create_file`,[`path`,`file_path`]]]);function S(e,n,r){if(!e||!n)return null;let i=x.get(e);if(!i)return null;let a=i.map(e=>n[e]).find(e=>typeof e==`string`&&e.length>0);return a?t.resolve(r,a):null}export{b as FILE_ACCESS_RULES_KEY,h as MemoryStore,n as ToolErrorCodes,r as ToolExecutionError,s as defineTool,l as defineToolset,_ as emitEvent,o as errorToToolResult,v as executeCrudOperation,S as extractToolFilePath,d as toMcpTool,f as toOpenAIFunction,i as toolError,a as toolSuccess,p as toolsetToMcpTools,m as toolsetToOpenAIFunctions,g as validateSessionId,y as widenTool};
@@ -0,0 +1,53 @@
1
+ //#region packages/tools-core/src/testing/index.d.ts
2
+ /**
3
+ * Domain-specific operations for a working memory type.
4
+ *
5
+ * Each MemoryStore subclass holds a different kind of working memory
6
+ * (e.g. ArtifactWorkingMemory, TaskWorkingMemory). These callbacks
7
+ * let the shared suite create and list items without knowing the domain.
8
+ */
9
+ interface MemoryStoreTestOps<T> {
10
+ /** Create a single item in the working memory instance. */
11
+ createItem: (memory: T) => void;
12
+ /** Return all items in the working memory instance. */
13
+ listItems: (memory: T) => unknown[];
14
+ /** Clear all items from the working memory instance. */
15
+ clearItems: (memory: T) => void;
16
+ /** Expected constructor class for `instanceof` checks. */
17
+ memoryClass: new (...args: never[]) => T;
18
+ }
19
+ /**
20
+ * Configuration for the shared memory store behavioral test suite.
21
+ */
22
+ /**
23
+ * Minimal store interface used by the shared suite.
24
+ *
25
+ * Compatible with `MemoryStore<T, []>` and `MemoryStore<T, [optional?]>`
26
+ * since the suite only calls `get(sessionId)` with no extra args.
27
+ */
28
+ interface MemoryStoreLike<T> {
29
+ get(sessionId: string): T;
30
+ has(sessionId: string): boolean;
31
+ delete(sessionId: string): boolean;
32
+ }
33
+ /**
34
+ * Configuration for the shared memory store behavioral test suite.
35
+ */
36
+ interface MemoryStoreBehaviorConfig<T> {
37
+ /** Human-readable name for the describe block (e.g. 'ArtifactMemoryStore'). */
38
+ name: string;
39
+ /** Factory to create a fresh store instance per test. */
40
+ createStore: () => MemoryStoreLike<T>;
41
+ /** Domain-specific item operations. */
42
+ ops: MemoryStoreTestOps<T>;
43
+ }
44
+ /**
45
+ * Registers shared behavioral tests for any MemoryStore subclass.
46
+ *
47
+ * Call this at the top level of a test file. It creates its own
48
+ * `describe` block with the provided name.
49
+ * @param config - Test suite configuration
50
+ */
51
+ declare function describeMemoryStoreBehavior<T>(config: MemoryStoreBehaviorConfig<T>): void;
52
+ //#endregion
53
+ export { MemoryStoreBehaviorConfig, MemoryStoreLike, MemoryStoreTestOps, describeMemoryStoreBehavior };
@@ -0,0 +1 @@
1
+ import{beforeEach as e,describe as t,expect as n,it as r}from"vitest";function i(i){let{name:a,createStore:o,ops:s}=i;t(a,()=>{let i;e(()=>{i=o()}),t(`get`,()=>{r(`should create new working memory for unknown session`,()=>{n(i.get(`session-1`)).toBeInstanceOf(s.memoryClass)}),r(`should return the same instance for the same session`,()=>{let e=i.get(`session-1`),t=i.get(`session-1`);n(e).toBe(t)}),r(`should return different instances for different sessions`,()=>{let e=i.get(`session-1`),t=i.get(`session-2`);n(e).not.toBe(t)}),r(`should preserve state across multiple get calls`,()=>{let e=i.get(`session-1`);s.createItem(e);let t=i.get(`session-1`);n(s.listItems(t)).toHaveLength(1)})}),t(`has`,()=>{r(`should return false for unknown session`,()=>{n(i.has(`nonexistent`)).toBe(!1)}),r(`should return true for known session`,()=>{i.get(`session-1`),n(i.has(`session-1`)).toBe(!0)}),r(`should return false for different session`,()=>{i.get(`session-1`),n(i.has(`session-2`)).toBe(!1)})}),t(`delete`,()=>{r(`should remove session memory`,()=>{i.get(`session-1`),n(i.delete(`session-1`)).toBe(!0),n(i.has(`session-1`)).toBe(!1)}),r(`should return false for unknown session`,()=>{n(i.delete(`nonexistent`)).toBe(!1)}),r(`should clear items when deleted and recreated`,()=>{let e=i.get(`session-1`);s.createItem(e),i.delete(`session-1`);let t=i.get(`session-1`);n(s.listItems(t)).toHaveLength(0),n(t).not.toBe(e)}),r(`should not affect other sessions`,()=>{let e=i.get(`session-1`);s.createItem(e);let t=i.get(`session-2`);s.createItem(t),i.delete(`session-1`),n(i.has(`session-2`)).toBe(!0),n(s.listItems(i.get(`session-2`))).toHaveLength(1)})}),t(`isolation`,()=>{r(`should isolate items between sessions`,()=>{let e=i.get(`session-1`),t=i.get(`session-2`);s.createItem(e),s.createItem(e),s.createItem(t),n(s.listItems(e)).toHaveLength(2),n(s.listItems(t)).toHaveLength(1),s.clearItems(e),n(s.listItems(e)).toHaveLength(0),n(s.listItems(t)).toHaveLength(1)})})})}export{i as describeMemoryStoreBehavior};
@@ -0,0 +1 @@
1
+ import{SessionStorageSubjects as e}from"./services/session/storage/namespace.mjs";import{N as t}from"./handlers-iGKUJ380.mjs";import{B as n,H as r,J as i,M as a,O as o,Z as s,_ as c,i as l,l as u,m as ee,n as te,o as ne,q as re,r as ie,s as ae,w as oe}from"./session-Do6lDZM4.mjs";import{n as d}from"./namespace-Db-p67Rg.mjs";import{t as se}from"./capability-service-tnpR_TaB.mjs";import"./services/adapter-subsystem/index.mjs";import{i as ce,s as le}from"./model-registry-CIscwC52.mjs";import{t as ue}from"./tool-approval-service-BcBSUZCO.mjs";import{t as de}from"./tray-menu-service-CTXC1Elg.mjs";import{harnessDefinitions as f}from"./services/harness/storage/schema.mjs";import{n as p}from"./namespace-CfEWMXBx.mjs";import{z as m}from"zod";import{MakaioError as fe,createMakaioContext as pe}from"@makaio/framework/core";import{MakaioBus as h}from"@makaio/framework/bus";import{AdapterSubjects as me,ApprovalPolicySchema as g,CanonicalModelSubjects as he,DEFAULT_HARNESSES as ge,HarnessDefinitionCreateSchema as _e,HarnessSubjects as _,ToolCapabilitySchema as ve,ToolSubjects as v,dep as y,extensionToken as b,validateToolAdapterIdentity as ye}from"@makaio/framework/contracts";import{BaseService as x}from"@makaio/framework/service-base";import{eq as S}from"drizzle-orm";import{registerDrizzleHandlers as C}from"@makaio/framework/storage/drizzle";import{slugifyProviderConfigName as w}from"@makaio/framework/contracts/config";import{ClientAccountIdentifierSchema as be,ClientSessionAccountObserveSchema as xe,ClientSubjects as T}from"@makaio/framework/contracts/client";import{FILE_ACCESS_RULES_KEY as Se,FILE_ACCESS_RULES_KEY as Ce,ToolErrorCodes as E,errorToToolResult as we,extractToolFilePath as Te,toolError as D,toolSuccess as Ee}from"@makaio/framework/tools";import{createHash as De}from"node:crypto";import{createDrizzleCrudHandlers as Oe,createDrizzleListHandler as ke}from"@makaio/framework/storage/handlers";function Ae(e){let t=ye({adapterId:e?.adapterId,adapterName:e?.adapterName,contextOverrides:{adapterId:e?.contextOverrides?.adapterId,adapterName:e?.contextOverrides?.adapterName}}),n=t.issues[0];return n?D(E.VALIDATION_FAILED,n.message):Ee(t.effectiveIdentity)}function je(e){let t=e?.allowedDirectories;if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}async function Me(e,t,n,r){let i=new Map;for(let e of t)i.set(e.name,await r(e.name));let a=t.filter(e=>{let t=i.get(e.name);return!t?.allowedAdapters||t.allowedAdapters.length===0?!0:t.allowedAdapters.includes(n)}),o=new Set(a.map(e=>e.name));return{filteredTools:e.filter(e=>!(!o.has(e.toolsetName)||i.get(e.toolsetName)?.disabledTools?.includes(e.name))),filteredToolsets:a}}function Ne(){return`exec_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}var O=class{bus;toolsets=new Map;tools=new Map;cleanupHandlers=[];handlerPriority;policyProvider;fileAccessRuleProvider;revision=0;constructor(e){this.bus=e?.bus??h,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(v.list,async e=>{let{toolsetName:t,adapterId:n,adapterName:r}=e.payload,{tools:i,toolsets:a}=await this.listToolsWithToolsets({toolsetName:t,adapterId:n,adapterName:r});e.setResult({tools:i,toolsets:a})},{priority:this.handlerPriority});this.cleanupHandlers.push(e);let t=this.bus.on(v.execute,async e=>{let{toolName:t,input:n,adapterId:r,adapterName:i,contextOverrides:a}=e.payload,o=await this.execute(t,n,{contextOverrides:a,adapterId:r,adapterName:i});e.setResult(o)},{priority:this.handlerPriority});this.cleanupHandlers.push(t)}async register(e){if(this.toolsets.has(e.metadata.name))throw Error(`Toolset '${e.metadata.name}' is already registered`);let t=[],n=[];for(let[,r]of Object.entries(e.tools)){let i=r.metadata.name;if(this.tools.has(i))throw Error(`Tool '${i}' is already registered (from toolset '${this.tools.get(i).toolsetName}')`);n.push({tool:r,toolsetName:e.metadata.name}),t.push(i)}this.toolsets.set(e.metadata.name,e);for(let e=0;e<n.length;e+=1)this.tools.set(t[e],n[e]);await this.emitRegistryChanged(`toolset-registered`,e.metadata.name).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(v.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.registered.subject} for '${e.metadata.name}':`,t))}async deregister(e){let t=this.toolsets.get(e);if(!t)throw Error(`Toolset '${e}' is not registered`);for(let e of Object.values(t.tools))this.tools.delete(e.metadata.name);this.toolsets.delete(e),await this.emitRegistryChanged(`toolset-unregistered`,e).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${v.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(v.registryChanged,{revision:this.revision,reason:e,toolsetName:t})}async execute(e,t,n){let r=this.tools.get(e);if(!r)return D(E.TOOL_NOT_FOUND,`Tool '${e}' not found`);let i=Ae(n);if(!i.success)return i;let{tool:a,toolsetName:o}=r,s=await this.checkPolicy(o,e,i.data.adapterId,i.data.adapterName);if(s)return s;let c=Ne(),l=Date.now();await this.bus.emit(v.started,{toolName:e,toolsetName:o,executionId:c,timestamp:l});try{let r=a.inputSchema.safeParse(t);if(!r.success){let t=D(E.VALIDATION_FAILED,`Input validation failed`,{issues:r.error.issues});return await this.bus.emit(v.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:t.error}),t}let s=await this.buildExecutionContext(n,i.data),u=await a.execute(r.data,s);return u.success?await this.bus.emit(v.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(v.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:u.error}),u}catch(t){let n=we(t);return await this.bus.emit(v.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:n.error}),n}}async buildExecutionContext(e,t){let n=e?.contextOverrides?.constraints;if(this.fileAccessRuleProvider){let t=e?.contextOverrides?.cwd??process.cwd(),r=je(n),i=await this.fileAccessRuleProvider(t,r);n={...n,[Se]:i}}let r=pe({...e?.contextOverrides,constraints:n}),i=e?.contextOverrides;return{...r,bus:this.bus,sessionId:i?.sessionId,agentId:i?.agentId,adapterId:t.adapterId,adapterName:t.adapterName,turnId:i?.turnId,turnContext:i?.turnContext,toolCallId:i?.toolCallId}}async checkPolicy(e,t,n,r){if(!this.policyProvider)return null;let i=await this.policyProvider(e);if(!i)return null;if(i.disabledTools?.includes(t))return D(E.PERMISSION_DENIED,`Tool '${t}' is disabled`,{toolsetName:e,toolName:t});if(i.allowedAdapters&&i.allowedAdapters.length>0){let t=r??n;if(!t||!i.allowedAdapters.includes(t))return D(E.PERMISSION_DENIED,`Adapter not allowed for toolset '${e}'`,{toolsetName:e,adapterId:n,adapterName:r,allowedAdapters:i.allowedAdapters})}return null}listTools(e){let t=[];for(let[,n]of this.tools){if(e?.toolsetName&&n.toolsetName!==e.toolsetName)continue;let{$schema:r,...i}=m.toJSONSchema(n.tool.inputSchema);t.push({name:n.tool.metadata.name,description:n.tool.metadata.description,toolsetName:n.toolsetName,annotations:n.tool.metadata.annotations,inputSchema:i})}return t}listToolsets(){let e=[];for(let[,t]of this.toolsets){let n={name:t.metadata.name,description:t.metadata.description,version:t.metadata.version,toolCount:Object.keys(t.tools).length};if(t.configSchema){let{$schema:e,...r}=m.toJSONSchema(t.configSchema);n.configSchema=r}e.push(n)}return e}async listToolsWithToolsets(e){let t=this.listTools(e),n=this.listToolsets(),r=e?.toolsetName?n.filter(t=>t.name===e.toolsetName):n,i=e?.adapterName??e?.adapterId;if(this.policyProvider&&i){let{filteredTools:e,filteredToolsets:n}=await Me(t,r,i,this.policyProvider);return{tools:e,toolsets:n}}return{tools:t,toolsets:r}}getTool(e){return this.tools.get(e)?.tool}getToolset(e){return this.toolsets.get(e)}dispose(){for(let e of this.cleanupHandlers)e();this.cleanupHandlers.length=0}destroy(){this.dispose()}},k=class extends fe{code;suggestions;constructor(e,t,n){super(e),this.code=t,this.suggestions=n}},A=class{deps;constructor(e){this.deps=e}async resolve(e,t){switch(e.kind){case`bare`:return this.resolveBare(e.model);case`qualified`:return this.resolveQualified(e.segment1,e.segment2,e.model)}}async resolveBare(e){let t=await this.deps.resolveDefaultModelTarget(e);switch(t.kind){case`resolved`:return{kind:`adapter`,adapterName:t.target.adapterName,providerConfigId:t.target.providerConfigId,model:t.target.model};case`ambiguous`:throw new k(`Model "${e}" is available via multiple providers. Use a qualified reference to select one.`,`ambiguous-model`,t.matches.map(e=>e.qualifiedName));case`not-found`:throw new k(`Model "${e}" was not found in any enabled adapter's registry.`,`model-not-found`)}}async resolveQualified(e,t,n){return t===void 0?this.resolveQualifiedOneSegment(e,n):this.resolveQualifiedTwoSegments(e,t,n)}async resolveQualifiedTwoSegments(e,t,n){let r=await this.deps.listEnabledAdapterNames();if(!r.includes(e))throw new k(`Adapter "${e}" is not enabled or does not exist.`,`adapter-not-found`);return{kind:`adapter`,adapterName:e,providerConfigId:await this.resolveProviderSegment(t,e,r),model:n}}async resolveQualifiedOneSegment(e,t){let n=await this.deps.listEnabledAdapterNames();if(n.includes(e)){let n=await this.deps.getDefaultBinding(e);if(!n)throw new k(`Adapter "${e}" has no enabled provider binding. Configure or enable a provider binding first.`,`no-binding`);return{kind:`adapter`,adapterName:e,providerConfigId:n.providerConfigId,model:t}}let r=await this.deps.findProviderConfigByName(e);if(r)return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t};let i=await this.deps.findProviderDefinition(e,n);if(i){let r=await this.deps.findDefaultConfigForDefinition(i.id);if(!r)throw new k(`Provider definition "${e}" exists but has no configured provider config. Create a provider config first.`,`provider-not-found`);return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t}}throw new k(`"${e}" does not match any enabled adapter name, provider config name, or provider definition ID.`,`adapter-not-found`)}async resolveProviderSegment(e,t,n){let r=await this.deps.findProviderConfigByName(e);if(r)return await this.requireBindingForAdapterAndConfig(t,r.id,e),r.id;let i=await this.deps.findProviderDefinition(e,n);if(i){let n=await this.deps.findConfigForDefinitionAndAdapter(i.id,t);if(!n)throw new k(`Provider definition "${e}" has no enabled config bound to adapter "${t}". Create a provider config and binding first.`,`no-binding`);return n.id}throw new k(`"${e}" does not match any provider config name or provider definition ID.`,`provider-not-found`)}async requireBindingForAdapterAndConfig(e,t,n){if(!(await this.deps.listBindingsForConfig(t)).some(t=>t.adapterName===e))throw new k(`No binding exists between adapter "${e}" and provider "${n}". Create a binding first.`,`no-binding`)}async pickBindingForConfig(e,t){let n=(await this.deps.listBindingsForConfig(e)).filter(e=>t.includes(e.adapterName));if(n.length===0)throw new k(`Provider config "${e}" has no bindings to enabled adapters. Bind it to an enabled adapter first.`,`no-binding`);return n.find(e=>e.isDefault)??n[0]}},j=class e extends x{constructor(e=h){super(e)}async onInit(){await this.bus.request(d.ensureReady,{});let e=new A(this.createDeps());this.registerHandler(he.resolve,async t=>{let n=await e.resolve(t.payload.parsed,t.payload.context);t.setResult(n)})}createDeps(){let e=this.bus,t=async()=>{let{adapters:t}=await e.request(d.listAdapters,{});return t.filter(e=>e.enabled).map(e=>e.name)},n=async t=>{let[n,r]=await Promise.all([e.request(d.getDefaultBinding,{adapterName:t}),this.listEnabledProviderConfigIds()]);if(n.binding&&r.has(n.binding.providerConfigId))return n.binding;let{bindings:i}=await e.request(d.listBindings,{adapterName:t}),a=i.filter(e=>r.has(e.providerConfigId));return a.find(e=>e.isDefault)??a[0]},r=async t=>{let{definitions:n}=await e.request(d.getProviderDefinitionsByAdapter,{adapterName:t});return n},i=async t=>{let{bindings:n}=await e.request(d.listBindingsByConfig,{providerConfigId:t});return n},a=async t=>{let{configs:n}=await e.request(d.listProviderConfigs,{enabled:!0}),r=w(t);return n.find(e=>w(e.name)===r)},o=this.buildFindProviderDefinition(t,r),s=async t=>{let{configs:n}=await e.request(d.listProviderConfigsByDefinition,{definitionId:t}),r=n.filter(e=>e.enabled);return r.find(e=>e.isDefault)??r[0]},c=async(t,n)=>{let{config:r}=await e.request(d.findConfigForDefinitionAndAdapter,{definitionId:t,adapterName:n});return r?{id:r.id}:void 0};return{listEnabledAdapterNames:t,getDefaultBinding:n,findProviderConfigByName:a,findProviderDefinition:o,listBindingsForConfig:i,findDefaultConfigForDefinition:s,findConfigForDefinitionAndAdapter:c,resolveDefaultModelTarget:this.buildResolveDefaultModelTarget(t,r,c)}}buildFindProviderDefinition(e,t){return async(n,r)=>{let i=r??await e();for(let e of i){let r=(await t(e)).find(e=>e.id===n);if(r)return r}}}buildResolveDefaultModelTarget(t,n,r){let i=this.bus;return async a=>{let o=await t(),s=await Promise.all(o.map(async e=>({adapterName:e,definitions:await n(e)}))),c=Array.from(new Set(s.flatMap(({definitions:e})=>e.map(e=>e.id))));if(c.length===0)return{kind:`not-found`};let{matches:l}=await i.request(le.checkModelInProviders,{providerIds:c,model:a}),u=(await Promise.all(s.map(({adapterName:e,definitions:t})=>this.collectAdapterCandidates(e,t,a,l,r)))).flat();return e.buildResolution(u)}}async collectAdapterCandidates(e,t,n,r,i){let a=t.filter(e=>e.id in r),o=await Promise.all(a.map(t=>i(t.id,e)));return a.flatMap((t,r)=>{let i=o[r];return i?[{adapterName:e,definitionId:t.id,providerConfigId:i.id,qualifiedName:`${e}/${t.id}::${n}`,model:n}]:[]})}static buildResolution(e){let t=Array.from(new Map(e.map(e=>[this.routeKey(e),e])).values());if(t.length===0)return{kind:`not-found`};if(t.length>1)return{kind:`ambiguous`,matches:t.map(({adapterName:e,definitionId:t,qualifiedName:n})=>({adapterName:e,definitionId:t,qualifiedName:n}))};let[n]=t;return{kind:`resolved`,target:{adapterName:n.adapterName,providerConfigId:n.providerConfigId,definitionId:n.definitionId,model:n.model}}}static routeKey(e){return`${e.adapterName}\0${e.definitionId}\0${e.providerConfigId}`}async listEnabledProviderConfigIds(){let{configs:e}=await this.bus.request(d.listProviderConfigs,{enabled:!0});return new Set(e.map(e=>e.id))}};const M={name:`makaio.canonical-model`,displayName:`Canonical Model`,version:`0.1.0`,critical:!1,create:e=>new j(e.bus)};function Pe(e){return async t=>{let n=await Fe(e,t);if(!n)return{handled:!1,sessionId:null,clientAccountId:null,changed:!1};let{sessionId:r}=n,{observation:i,accountObserveRequest:a}=Ie(t),o=await e.requestOptional(T.account.observe,a);if(!o.handled)return{handled:!1,sessionId:r,clientAccountId:null,changed:!1};let{clientAccountId:s}=o.data;return{handled:!0,sessionId:r,clientAccountId:s,changed:await Ue(e,r,i,s)}}}async function Fe(t,n){switch(n.locator.kind){case`session`:{let{session:r}=await t.request(e.get,{sessionId:n.locator.sessionId});return r?{sessionId:r.sessionId,session:r}:null}case`adapter-session`:{let{session:r}=await t.request(e.getByAdapterSessionId,{adapterSessionId:n.locator.adapterSessionId});return r?{sessionId:r.sessionId,session:r}:null}case`both`:{let[{session:r},{session:i}]=await Promise.all([t.request(e.get,{sessionId:n.locator.sessionId}),t.request(e.getByAdapterSessionId,{adapterSessionId:n.locator.adapterSessionId})]);if(!r&&!i)return null;if(!r||!i)throw Error(`Session locator mismatch: sessionId "${n.locator.sessionId}" and adapterSessionId "${n.locator.adapterSessionId}" must both resolve the same session`);if(r.sessionId!==i.sessionId)throw Error(`Session locator mismatch: sessionId "${n.locator.sessionId}" and adapterSessionId "${n.locator.adapterSessionId}" resolve to different sessions`);return{sessionId:r.sessionId,session:r}}}}function Ie(e){let t={clientId:e.clientId,source:e.source,kind:e.kind,observedAt:e.observedAt,payload:Ve(e.payload)};return{observation:t,accountObserveRequest:Le(t)}}function Le(e){let t=e.payload,n=Re(t),r=ze(t);if(r.length>0)return{clientId:e.clientId,observedAt:e.observedAt,displayLabel:Be(t,n),identifiers:r};throw Error(`client.session.account.observe for "${e.clientId}" requires canonical client account identifiers`)}function Re(e){return He(e.accountInfo)??e}function ze(e){let t=e.identifiers;if(!Array.isArray(t))return[];try{return m.array(be).min(1).parse(t)}catch(e){throw Error(`client.session.account.observe received malformed canonical client account identifiers`,{cause:e})}}function Be(e,t){return N(e.displayLabel)??N(t.displayLabel)??N(t.email)??N(t.label)}function Ve(e){return structuredClone(e)}function He(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function N(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}async function Ue(t,n,r,i){let a=await t.request(e.update,{sessionId:n,clientId:r.clientId,clientAccountId:i,lastClientIdentityObservation:r});if(!a.success)throw Error(`Failed to update session "${n}" with client account linkage`);return a.clientAccountChanged??!1}const We=b(`session-storage`).name;var Ge=class extends x{constructor(e=h){super(e)}onInit(){let e=Pe(this.bus);this.registerHandler(T.session.account.observe,async t=>{t.setResult(await e(xe.request.parse(t.payload)))})}};const Ke={name:`makaio.session-client-account-linking`,displayName:`Session Client Account Linking`,version:`0.1.0`,dependencies:[y(We),y(`makaio.clients-core`)],critical:!1,create:e=>new Ge(e.bus)},qe={name:`framework-shell`,displayName:`Shell`,version:`0.1.0`,surface:`interactive`,windows:[{id:`main`,style:`utility`,width:1e3,height:700,singleton:!0}]};async function Je(e){let{harnesses:t}=await e.request(p.list,{}),n=new Set(t.map(e=>e.id));for(let t of ge){if(n.has(t.id))continue;let r={...t};await e.request(p.set,{harness:r})}}function P(e){return{id:e.id,name:e.name,description:e.description??void 0,adapterName:e.adapterName??void 0,clientId:e.clientId??void 0,env:e.env??void 0,credentials:e.credentials??void 0,cwd:e.cwd??void 0,approvalPolicy:g.parse(e.approvalPolicy),nativeTools:{enabled:e.nativeToolsEnabled,disabled:e.nativeToolsDisabled},registryTools:{enabled:e.registryToolsEnabled,disabled:e.registryToolsDisabled},skills:e.skillsEnabled||e.skillsDisabled?{enabled:e.skillsEnabled??[],disabled:e.skillsDisabled??[]}:void 0,toolCapabilityMap:e.toolCapabilityMap?m.record(m.string(),m.array(ve)).parse(e.toolCapabilityMap):void 0,capabilityOverrides:e.capabilityOverrides?m.record(m.string(),g).parse(e.capabilityOverrides):void 0,toolApprovalOverrides:e.toolApprovalOverrides?m.record(m.string(),g).parse(e.toolApprovalOverrides):void 0,isDefault:e.isDefault,enabled:e.enabled,createdAt:e.createdAt,updatedAt:e.updatedAt}}function Ye(e){return{id:e.id,name:e.name,description:e.description??null,adapterName:e.adapterName??null,clientId:e.clientId??null,env:e.env??null,credentials:e.credentials??null,cwd:e.cwd??null,approvalPolicy:e.approvalPolicy,nativeToolsEnabled:e.nativeTools.enabled,nativeToolsDisabled:e.nativeTools.disabled,registryToolsEnabled:e.registryTools.enabled,registryToolsDisabled:e.registryTools.disabled,skillsEnabled:e.skills?.enabled??null,skillsDisabled:e.skills?.disabled??null,toolCapabilityMap:e.toolCapabilityMap??null,capabilityOverrides:e.capabilityOverrides??null,toolApprovalOverrides:e.toolApprovalOverrides??null,isDefault:e.isDefault,enabled:e.enabled}}const Xe=Oe({table:f,subjects:{get:p.get,set:p.set,delete:p.delete},idField:`id`,singularKey:`harness`,mapper:P,toDbValues:Ye,lifecycle:{created:_.created,updated:_.updated,deleted:_.deleted}}),Ze=ke({table:f,subject:p.list,pluralKey:`harnesses`,mapper:P,buildPredicates:(e,t)=>{let n=[];return e.adapterName&&n.push(S(t.adapterName,e.adapterName)),e.clientId&&n.push(S(t.clientId,e.clientId)),e.name&&n.push(S(t.name,e.name)),n}});function F(e,t,n){let r=Xe(e,t),i=Ze(e,t);return()=>{r(),i()}}function I(e,t,n){return e??t??n}var Qe=class extends x{static storage={drizzle:F};constructor(e=h){super(e)}async onInit(){await Je(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(_.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(_.list,async e=>{let{harnesses:t}=await this.bus.request(p.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(_.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(_.delete,async e=>{let{deleted:t}=await this.bus.request(p.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(_.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(_.resolve,async e=>{let{adapterName:t,clientId:n,personaHarnessId:r,profileHarnessId:i}=e.payload;if(r){let i=await this.resolveAndValidateHarness(r,t,`persona`,n);e.setResult(i);return}if(i){let r=await this.resolveAndValidateHarness(i,t,`profile`,n);e.setResult(r);return}let a=await this.getDefaultHarness(t,n);e.setResult(a)}),this.registerHandler(_.getSchema,({setResult:e})=>{let{$schema:t,...n}=m.toJSONSchema(_e);e({schema:n,uiConfig:{editMode:`fullPage`,hiddenFields:[`isDefault`]}})})}async upsertHarness(e){let t=await this.resolveHarnessId(e.name,e.adapterName,e.clientId),n=await this.loadHarness({id:t,adapterName:e.adapterName,clientId:e.clientId}),r=this.mergeHarnessPayload(t,e,n);return r.adapterName&&await this.validateNativeTools(r.adapterName,r.nativeTools),await this.bus.request(p.set,{harness:r}),t}mergeHarnessPayload(e,t,n){let r={enabled:[],disabled:[]};return{id:e,name:t.name,description:I(t.description,n?.description,void 0),adapterName:t.adapterName,clientId:I(t.clientId,n?.clientId,void 0),env:I(t.env,n?.env,void 0),credentials:I(t.credentials,n?.credentials,void 0),cwd:I(t.cwd,n?.cwd,void 0),approvalPolicy:I(t.approvalPolicy,n?.approvalPolicy,`always-ask`),nativeTools:I(t.nativeTools,n?.nativeTools,r),registryTools:I(t.registryTools,n?.registryTools,r),skills:I(t.skills,n?.skills,void 0),toolCapabilityMap:t.toolCapabilityMap??n?.toolCapabilityMap,capabilityOverrides:t.capabilityOverrides??n?.capabilityOverrides,toolApprovalOverrides:t.toolApprovalOverrides??n?.toolApprovalOverrides,isDefault:I(t.isDefault,n?.isDefault,!1),enabled:I(t.enabled,n?.enabled,!0)}}async resolveHarnessId(e,t,n){let r=n??t,{harnesses:i}=await this.bus.request(p.list,{name:e}),a=i.find(t=>t.name===e&&(t.clientId??t.adapterName)===r);if(a)return a.id;let o=i.find(t=>t.name===e&&(t.clientId??t.adapterName)!==r);if(o){let t=o.clientId?`client '${o.clientId}'`:`adapter '${o.adapterName}'`;throw Error(`Harness "${e}" already exists with scope ${t}; cannot change scope to ${r??`(none)`}`)}return this.createStableHarnessId(e,r)}async loadHarness(e){if(e.id){let{harness:t}=await this.bus.request(p.get,{id:e.id});return t&&(!e.adapterName||t.adapterName===e.adapterName)&&(!e.clientId||t.clientId===e.clientId)?t:null}if(!e.name)return null;let{harnesses:t}=await this.bus.request(p.list,{name:e.name,adapterName:e.adapterName,clientId:e.clientId});return e.clientId?t.find(t=>t.clientId===e.clientId)??null:e.adapterName?t.find(t=>t.adapterName===e.adapterName)??null:t[0]??null}async getDefaultHarness(e,t){if(t){let{harnesses:e}=await this.bus.request(p.list,{clientId:t}),n=e.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=e.find(e=>e.enabled);if(r)return r}if(e){let{harnesses:t}=await this.bus.request(p.list,{adapterName:e}),n=t.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=t.find(e=>e.enabled);if(r)return r}let n=t?e?`client '${t}' or adapter '${e}'`:`client '${t}'`:`adapter '${e}'`;throw Error(`No harness available for ${n}`)}assertHarnessAdapterMatch(e,t,n,r){if(e.adapterName&&t&&e.adapterName!==t)throw Error(`Resolved ${n} harness adapter mismatch: expected "${t}", got "${e.adapterName}"`);if(e.clientId&&r&&e.clientId!==r)throw Error(`Resolved ${n} harness client mismatch: expected "${r}", got "${e.clientId}"`)}assertHarnessEnabled(e,t){if(!e.enabled)throw Error(`Resolved ${t} harness is disabled: ${e.id}`)}async validateNativeTools(e,t){let n=await this.bus.requestOptional(me.getCapabilities,{adapterName:e});if(!n.handled)return;let r=new Set(n.data.nativeTools),i=[...t.enabled,...t.disabled].filter(e=>!r.has(e));if(i.length>0)throw Error(`Tool '${i[0]}' not found in adapter '${e}' native tools. Declared tools: ${[...r].join(`, `)}`)}createStableHarnessId(e,t){return`harness-${De(`sha256`).update(`${t??``}\0${e}`).digest(`hex`).slice(0,24)}`}async resolveAndValidateHarness(e,t,n,r){let i=await this.loadHarness({id:e});if(!i)throw Error(`${n===`persona`?`Persona`:`Profile`} harness not found: ${e}`);return this.assertHarnessAdapterMatch(i,t,n,r),this.assertHarnessEnabled(i,n),i}};const $e={name:`makaio.harness`,displayName:`Harness`,version:`0.1.0`,critical:!0,storage:{registerHandlers:C(F)},create:e=>new Qe(e.bus)},L=b(`session-storage`),R=b(`session-bridge`),z=b(`session`),B=b(`session-orchestrator`),V=b(`tool-registry`),H=b(`tool-approval`),U=b(`tray-menu`),W=b(`capability`),G=b(`model-registry`),K={name:L.name,displayName:`Session Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:C((e,n,a)=>{let s=[],d=e=>{for(let t=s.length-1;t>=0;--t)try{s[t]?.()}catch(t){console.warn(`[sessionStoragePackage] cleanup failed during ${e}:`,t)}s.length=0};try{s.push(oe(e,n,a)),s.push(i(e,n,a)),s.push(re(e,n,a)),s.push(r(e,n,a)),s.push(t(e,n,a)),s.push(o(e,n,a)),s.push(ee(e,n,a)),s.push(c(e,n)),s.push(u(e,n,a)),s.push(l(e,n)),s.push(ie(e)),s.push(te(e)),s.push(ae(e)),s.push(ne(e))}catch(e){throw d(`rollback`),e}return()=>{d(`shutdown`)}})}},q={name:R.name,displayName:`Session Bridge`,version:`0.1.0`,dependencies:[y(L.name)],critical:!0,create:e=>new a(e.bus)},J={name:z.name,displayName:`Session`,version:`0.1.0`,dependencies:[y(R.name)],critical:!0,create:e=>new s(e.bus)},Y={name:B.name,displayName:`Session Orchestrator`,version:`0.1.0`,dependencies:[y(z.name),y(M.name)],critical:!0,runtimeOwnership:{sessionOrchestrator:!0},create:e=>new n(e.bus,e.machineId)},X={name:V.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:e=>new O({bus:e.bus})},Z={name:H.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[y(V.name)],critical:!0,create:e=>new ue(e.bus)},Q={name:U.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new de(e.bus)},$={name:W.name,displayName:`Capability`,version:`0.1.0`,critical:!0,create:e=>new se(e.bus)};function et(e){return{name:G.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new ce({bus:t.bus,fetcher:e})}}const tt=[K,q,Ke,J,Y,X,Z,Q,$,$e,M,qe];function nt(){let e=new Map;return{filter:e=>!!e.tools?.createToolsets,async processActivated(t,n,r){let i=r.getService(V);if(!i)throw Error(`ToolRegistry is not available. Ensure toolRegistryPackage is included in the composition root.`);let a=n.tools.createToolsets(r),o=[];try{for(let e of a)await i.register(e),o.push(()=>i.deregister(e.metadata.name))}catch(e){for(let e=o.length-1;e>=0;--e)try{await o[e]()}catch(e){console.error(`[ToolContributionProcessor] Rollback error for "${t}":`,e)}throw e}e.set(t,o)},async processStopped(t){let n=e.get(t);if(n){for(let e=n.length-1;e>=0;--e)try{await n[e]()}catch(e){console.error(`[ToolContributionProcessor] Deregister error for "${t}":`,e)}e.delete(t)}}}}export{M as C,O as D,k as E,Q as S,A as T,Y as _,G as a,Z as b,L as c,V as d,U as f,q as g,tt as h,W as i,z as l,et as m,Te as n,R as o,$ as p,nt as r,B as s,Ce as t,H as u,J as v,j as w,X as x,K as y};
@@ -0,0 +1 @@
1
+ import{TrayMenuEntrySchema as e,TrayMenuGroupSchema as t}from"./services/tray-menu/schemas.mjs";import{TrayMenuSubjects as n}from"./services/tray-menu/namespace.mjs";import{BaseService as r}from"@makaio/framework/service-base";const i={utilities:0,tools:1,views:2};var a=class a extends r{static needs=[];static critical=!0;static async create(e){let t=new a(e.bus);return await t.init(),t}entries=new Map;groups=new Map;groupEntryIds=new Map;constructor(e){super(e)}onInit(){this.registerHandler(n.register,async t=>{let n=e.parse(t.payload.entry);this.assertEntryCanRegister(n),this.entries.set(this.entryKey(n.packageName,n.entryId),n),await this.emitChanged(),t.setResult({entryId:n.entryId})}),this.registerHandler(n.unregister,async e=>{let t=this.entries.delete(this.entryKey(e.payload.packageName,e.payload.entryId));t&&await this.emitChanged(),e.setResult({removed:t})}),this.registerHandler(n.group.register,async e=>{let n=t.parse(e.payload.group),r=this.collectGroupEntryIds(n);this.assertGroupCanRegister(n,r);let i=this.groupKey(n.packageName,n.groupId);this.groups.set(i,n),this.groupEntryIds.set(i,r),await this.emitChanged(),e.setResult({groupId:n.groupId})}),this.registerHandler(n.group.unregister,async e=>{let t=this.groupKey(e.payload.packageName,e.payload.groupId),n=this.groups.delete(t);this.groupEntryIds.delete(t),n&&await this.emitChanged(),e.setResult({removed:n})}),this.registerHandler(n.list,e=>{e.setResult({entries:this.listEntries()})})}onDestroy(){this.entries.clear(),this.groups.clear(),this.groupEntryIds.clear()}listEntries(){return[...Array.from(this.entries.values(),e=>({section:e.section,priority:e.priority,label:e.label,entries:[e]})),...Array.from(this.groups.values(),e=>{let t=e.entries.map(t=>({...t,packageName:e.packageName,section:e.section,groupId:e.groupId}));return{section:e.section,priority:e.priority,label:t[0]?.label??e.groupId,entries:t}})].sort((e,t)=>{let n=i[e.section]-i[t.section];if(n!==0)return n;let r=e.priority-t.priority;return r===0?e.label<t.label?-1:+(e.label>t.label):r}).flatMap(e=>e.entries)}assertEntryCanRegister(e){for(let t of this.groups.values()){let n=this.groupEntryIds.get(this.groupKey(t.packageName,t.groupId));if(t.packageName===e.packageName&&n?.has(e.entryId))throw Error(`Tray menu entry "${e.packageName}:${e.entryId}" already exists in a group`)}}assertGroupCanRegister(e,t){let n=this.groupKey(e.packageName,e.groupId);for(let r of t){if(this.entries.has(this.entryKey(e.packageName,r)))throw Error(`Tray menu entry "${e.packageName}:${r}" already exists as a standalone entry`);for(let t of this.groups.values()){let i=this.groupKey(t.packageName,t.groupId),a=this.groupEntryIds.get(i);if(t.packageName===e.packageName&&i!==n&&a?.has(r))throw Error(`Tray menu entry "${e.packageName}:${r}" already exists in another group`)}}}collectGroupEntryIds(e){let t=new Set;for(let n of e.entries){if(t.has(n.entryId))throw Error(`Tray menu group "${e.packageName}:${e.groupId}" contains duplicate entry "${n.entryId}"`);t.add(n.entryId)}return t}async emitChanged(){await this.bus.emit(n.changed,{})}entryKey(e,t){return JSON.stringify([e,t])}groupKey(e,t){return JSON.stringify([e,t])}};export{a as t};
@@ -0,0 +1,31 @@
1
+ import { LibSQLDatabase } from "drizzle-orm/libsql";
2
+
3
+ //#region packages/storage/drizzle/src/types.d.ts
4
+ /**
5
+ * Canonical database type alias for all Makaio storage consumers.
6
+ *
7
+ * Typed as the shared async-compatible Drizzle surface, which keeps the
8
+ * cross-driver query contract stable while excluding libsql-only members such
9
+ * as `$client`, `batch()`, and `resultKind`.
10
+ *
11
+ * At runtime, the factory in `client.ts` may return a `BunSQLiteDatabase`
12
+ * instance (sync dialect) cast to this type. That is safe because:
13
+ * - All query-builder methods (`select`, `insert`, `update`, `delete`) exist
14
+ * on both drivers with compatible call signatures.
15
+ * - Awaiting Bun's synchronous return values still preserves the existing
16
+ * async call sites, even though it introduces the normal microtask boundary
17
+ * of `await`.
18
+ *
19
+ * **All consumers must import this type** instead of importing
20
+ * `LibSQLDatabase` directly from `drizzle-orm/libsql`. This single import
21
+ * seam is what makes the runtime driver swap transparent to callers.
22
+ *
23
+ * **Caveat:** Consumers must not access libsql-only members such as
24
+ * `db.$client` directly — use the `close()` function returned by
25
+ * `createDatabaseClient` instead. The factory handles driver-specific teardown
26
+ * internally.
27
+ * @typeParam TSchema - Drizzle table schema record. Defaults to an empty schema.
28
+ */
29
+ type MakaioDatabase<TSchema extends Record<string, unknown> = Record<string, never>> = Omit<LibSQLDatabase<TSchema>, '$client' | 'batch' | 'resultKind'>;
30
+ //#endregion
31
+ export { MakaioDatabase as t };