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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. package/dist/.makaio-build.json +5 -0
  2. package/dist/account-identity-DT5NOtFi.mjs +1 -0
  3. package/dist/adapter-C1eI-fGV.mjs +1 -0
  4. package/dist/adapters/acp-client/index.d.mts +6208 -0
  5. package/dist/adapters/acp-client/index.mjs +3 -0
  6. package/dist/adapters/config/index.d.mts +429 -0
  7. package/dist/adapters/config/index.mjs +1 -0
  8. package/dist/adapters/index.d.mts +4202 -0
  9. package/dist/adapters/index.mjs +18 -0
  10. package/dist/adapters/node.d.mts +263 -0
  11. package/dist/adapters/node.mjs +4 -0
  12. package/dist/adapters/stream-session/index.d.mts +1414 -0
  13. package/dist/adapters/stream-session/index.mjs +1 -0
  14. package/dist/adapters/stream-session/testing/index.d.mts +29 -0
  15. package/dist/adapters/stream-session/testing/index.mjs +1 -0
  16. package/dist/artifact-B3npq1cy.mjs +1 -0
  17. package/dist/base-orchestrator-wyumsn3b.d.mts +772 -0
  18. package/dist/bus/index.d.mts +3994 -0
  19. package/dist/bus/index.mjs +1 -0
  20. package/dist/bus-Caz3Jpbc.mjs +1 -0
  21. package/dist/bus-Hb-LGzgb.mjs +2 -0
  22. package/dist/capability-service-CJbmhfv9.mjs +1 -0
  23. package/dist/chunk-DTipWd-i.mjs +1 -0
  24. package/dist/chunk-cpUYaJdV.mjs +1 -0
  25. package/dist/cleanEnvForAdapter-KkYzQa1f.mjs +1 -0
  26. package/dist/client-bx74gm4R.mjs +1 -0
  27. package/dist/clients/index.d.mts +2639 -0
  28. package/dist/clients/index.mjs +2 -0
  29. package/dist/clients-namespace-GmSJpBUV.d.mts +332 -0
  30. package/dist/config-namespace-CPY9YsR8.d.mts +638 -0
  31. package/dist/config-namespace-ncYg2ct_.mjs +1 -0
  32. package/dist/contracts/adapter/index.d.mts +3 -0
  33. package/dist/contracts/adapter/index.mjs +1 -0
  34. package/dist/contracts/adapter/schemas/session-lineage.d.mts +2 -0
  35. package/dist/contracts/adapter/schemas/session-lineage.mjs +1 -0
  36. package/dist/contracts/artifact/index.d.mts +2 -0
  37. package/dist/contracts/artifact/index.mjs +1 -0
  38. package/dist/contracts/client/index.d.mts +3 -0
  39. package/dist/contracts/client/index.mjs +1 -0
  40. package/dist/contracts/common/index.d.mts +2 -0
  41. package/dist/contracts/common/index.mjs +1 -0
  42. package/dist/contracts/config/index.d.mts +455 -0
  43. package/dist/contracts/config/index.mjs +1 -0
  44. package/dist/contracts/extension/index.d.mts +4 -0
  45. package/dist/contracts/extension/index.mjs +1 -0
  46. package/dist/contracts/facet/index.d.mts +2 -0
  47. package/dist/contracts/facet/index.mjs +1 -0
  48. package/dist/contracts/harness/index.d.mts +2 -0
  49. package/dist/contracts/harness/index.mjs +1 -0
  50. package/dist/contracts/host/index.d.mts +2 -0
  51. package/dist/contracts/host/index.mjs +1 -0
  52. package/dist/contracts/index.d.mts +23046 -0
  53. package/dist/contracts/index.mjs +1 -0
  54. package/dist/contracts/materialization/index.d.mts +4 -0
  55. package/dist/contracts/materialization/index.mjs +1 -0
  56. package/dist/contracts/model-registry/index.d.mts +2 -0
  57. package/dist/contracts/model-registry/index.mjs +1 -0
  58. package/dist/contracts/native-session-supervisor/index.d.mts +2 -0
  59. package/dist/contracts/native-session-supervisor/index.mjs +1 -0
  60. package/dist/contracts/platform/index.d.mts +2 -0
  61. package/dist/contracts/platform/index.mjs +1 -0
  62. package/dist/contracts/provider/index.d.mts +3 -0
  63. package/dist/contracts/provider/index.mjs +1 -0
  64. package/dist/contracts/session/index.d.mts +3 -0
  65. package/dist/contracts/session/index.mjs +1 -0
  66. package/dist/contracts/shared/index.d.mts +2 -0
  67. package/dist/contracts/shared/index.mjs +1 -0
  68. package/dist/contracts/skill/index.d.mts +2 -0
  69. package/dist/contracts/skill/index.mjs +1 -0
  70. package/dist/contracts/telemetry/index.d.mts +2 -0
  71. package/dist/contracts/telemetry/index.mjs +1 -0
  72. package/dist/contracts/timeout/index.d.mts +2 -0
  73. package/dist/contracts/timeout/index.mjs +1 -0
  74. package/dist/contracts/toast/index.d.mts +198 -0
  75. package/dist/contracts/toast/index.mjs +1 -0
  76. package/dist/contracts/variant/index.d.mts +2 -0
  77. package/dist/contracts/variant/index.mjs +1 -0
  78. package/dist/core/index.d.mts +1263 -0
  79. package/dist/core/index.mjs +1 -0
  80. package/dist/credential-ref-YWQQENEo.mjs +1 -0
  81. package/dist/cursor-storage-CtVJ3JzB.mjs +1 -0
  82. package/dist/definition-BLCdXGzh.d.mts +383 -0
  83. package/dist/definition-CrgHIpTK.d.mts +60 -0
  84. package/dist/definition-DZMXOnjX.mjs +1 -0
  85. package/dist/definition-pkJ6szUl.d.mts +158 -0
  86. package/dist/drizzle-Eq8W1EbD.mjs +1 -0
  87. package/dist/event-Ca2yUf5i.mjs +1 -0
  88. package/dist/execution-target-CRPTfZlc.mjs +1 -0
  89. package/dist/extension-C-4BHMRI.mjs +1 -0
  90. package/dist/extension-CpIUgBKI.mjs +1 -0
  91. package/dist/extension-namespace-cMh_mMiL.mjs +1 -0
  92. package/dist/facet-BuwhrThl.mjs +1 -0
  93. package/dist/filesystem-service-B8rhBRgB.mjs +1 -0
  94. package/dist/filesystem-service-p_iJVHd4.d.mts +66 -0
  95. package/dist/git/index.d.mts +210 -0
  96. package/dist/git/index.mjs +18 -0
  97. package/dist/globby-rtWVaFHv.mjs +41 -0
  98. package/dist/handlers-CkTsQLra.mjs +41 -0
  99. package/dist/harness-BRCMcvQN.mjs +1 -0
  100. package/dist/hooks/index.d.mts +423 -0
  101. package/dist/hooks/index.mjs +1 -0
  102. package/dist/host-Br9VuOyr.mjs +1 -0
  103. package/dist/identity-Cz2IeEtm.mjs +1 -0
  104. package/dist/index-472sOmsW.d.mts +218 -0
  105. package/dist/index-8SZkg7s6.d.mts +353 -0
  106. package/dist/index-B3PK4FIn.d.mts +5116 -0
  107. package/dist/index-B80L4YqA.d.mts +180 -0
  108. package/dist/index-BFg9BUpx.d.mts +355 -0
  109. package/dist/index-BGfWS6GE.d.mts +483 -0
  110. package/dist/index-BVgfS-AJ.d.mts +109 -0
  111. package/dist/index-B_zQC98V.d.mts +995 -0
  112. package/dist/index-Bh_Ne7LF.d.mts +1008 -0
  113. package/dist/index-Bvb2mMH6.d.mts +1730 -0
  114. package/dist/index-CCGVh9BF2.d.mts +749 -0
  115. package/dist/index-CGmcS0Ma.d.mts +412 -0
  116. package/dist/index-CHQ1SqT0.d.mts +117 -0
  117. package/dist/index-CLpjm52M.d.mts +183 -0
  118. package/dist/index-Caig6TeF.d.mts +6746 -0
  119. package/dist/index-CelJCBjk.d.mts +2992 -0
  120. package/dist/index-ChunCFu4.d.mts +11 -0
  121. package/dist/index-Cm0dUkWL.d.mts +4651 -0
  122. package/dist/index-CokQYGVP.d.mts +184 -0
  123. package/dist/index-Cs0kZXIz2.d.mts +37 -0
  124. package/dist/index-D5d5HeWI2.d.mts +259 -0
  125. package/dist/index-D90OmGmV.d.mts +389 -0
  126. package/dist/index-D9MwJ2Q8.d.mts +67 -0
  127. package/dist/index-DANINzMu.d.mts +40 -0
  128. package/dist/index-DBw-89vC2.d.mts +3640 -0
  129. package/dist/index-DGBu6bHi2.d.mts +438 -0
  130. package/dist/index-DKC62dY5.d.mts +146 -0
  131. package/dist/index-DKia0MX1.d.mts +43 -0
  132. package/dist/index-DMKnON5s.d.mts +28 -0
  133. package/dist/index-DUaw0Dw8.d.mts +14747 -0
  134. package/dist/index-De3kPhlN.d.mts +72 -0
  135. package/dist/index-L4GjJDKb.d.mts +822 -0
  136. package/dist/index-U-A8eyGT.d.mts +1490 -0
  137. package/dist/index-eemAKwsB.d.mts +362 -0
  138. package/dist/index-mNec7V-9.d.mts +1075 -0
  139. package/dist/index-soFznFCy2.d.mts +89 -0
  140. package/dist/index-vtXJuwrz.d.mts +40 -0
  141. package/dist/index-x_lVDp_J.d.mts +134 -0
  142. package/dist/json-value-CmhSGMLv.mjs +1 -0
  143. package/dist/kernel/cli/index.d.mts +143 -0
  144. package/dist/kernel/cli/index.mjs +1 -0
  145. package/dist/kernel/cli/schemas.d.mts +64 -0
  146. package/dist/kernel/cli/schemas.mjs +1 -0
  147. package/dist/kernel/extension/index.d.mts +2 -0
  148. package/dist/kernel/extension/index.mjs +1 -0
  149. package/dist/kernel/index.d.mts +296 -0
  150. package/dist/kernel/index.mjs +1 -0
  151. package/dist/kernel/namespace/index.d.mts +2 -0
  152. package/dist/kernel/namespace/index.mjs +1 -0
  153. package/dist/kernel/observability/index.d.mts +2 -0
  154. package/dist/kernel/observability/index.mjs +1 -0
  155. package/dist/kernel/providers/index.d.mts +2 -0
  156. package/dist/kernel/providers/index.mjs +1 -0
  157. package/dist/kernel/window/index.d.mts +2 -0
  158. package/dist/kernel/window/index.mjs +1 -0
  159. package/dist/materialization-CuUBu4XI.mjs +1 -0
  160. package/dist/model-registry-CfXytvzx.mjs +1 -0
  161. package/dist/model-registry-Scn_MC2d.mjs +1 -0
  162. package/dist/namespace-5QQqbF-B.d.mts +3133 -0
  163. package/dist/namespace-BM7Djng9.d.mts +189 -0
  164. package/dist/namespace-BoD94mrN.mjs +1 -0
  165. package/dist/namespace-BwzZJqTV.mjs +1 -0
  166. package/dist/namespace-CFLAmQfh.mjs +1 -0
  167. package/dist/namespace-CTm3nEvh.d.mts +51 -0
  168. package/dist/namespace-CaaNnKcR.d.mts +921 -0
  169. package/dist/namespace-CaoZ3S78.d.mts +43 -0
  170. package/dist/namespace-CxhsoFUP.d.mts +607 -0
  171. package/dist/namespace-DD8Oiqo7.d.mts +580 -0
  172. package/dist/namespace-DLovh2Ws.d.mts +1313 -0
  173. package/dist/namespace-DgqkaOVu.d.mts +768 -0
  174. package/dist/namespace-DkRgbZYn.mjs +1 -0
  175. package/dist/namespace-Dr8K0MCp.d.mts +2047 -0
  176. package/dist/namespace-DuXK5AYN.mjs +1 -0
  177. package/dist/namespace-EQniz-Aw.d.mts +142 -0
  178. package/dist/namespace-IV1QK__V.d.mts +159 -0
  179. package/dist/namespace-LViZ-EQk.mjs +1 -0
  180. package/dist/namespace-TyiTsLFv.d.mts +3020 -0
  181. package/dist/namespace-Yna5-Pws.mjs +1 -0
  182. package/dist/namespace-xcmbQlxh.mjs +1 -0
  183. package/dist/native-session-supervisor-B1TnaPUF.mjs +1 -0
  184. package/dist/node/bus-server/index.d.mts +178 -0
  185. package/dist/node/bus-server/index.mjs +1 -0
  186. package/dist/node/bus-server/server-lifecycle.d.mts +2 -0
  187. package/dist/node/bus-server/server-lifecycle.mjs +1 -0
  188. package/dist/node/machine-identity/index.d.mts +85 -0
  189. package/dist/node/machine-identity/index.mjs +3 -0
  190. package/dist/node/transports/index.d.mts +1945 -0
  191. package/dist/node/transports/index.mjs +2 -0
  192. package/dist/orchestrator-shared-CIDiFJMD.mjs +1 -0
  193. package/dist/orchestrator-shared-Dfa7FMyw.d.mts +249 -0
  194. package/dist/package-DKVlsMP3.mjs +1 -0
  195. package/dist/platform-DZ7z-wXD.mjs +1 -0
  196. package/dist/profile-6ynCD5k3.mjs +1 -0
  197. package/dist/provider-context-CK6B4X_8.mjs +1 -0
  198. package/dist/providers/index.d.mts +135 -0
  199. package/dist/providers/index.mjs +1 -0
  200. package/dist/providers-namespace-DSEpli4A.d.mts +583 -0
  201. package/dist/providers-u8i15co9.mjs +1 -0
  202. package/dist/schema-CoyE6mPt.mjs +1 -0
  203. package/dist/schema-M5YTvSAG.d.mts +949 -0
  204. package/dist/schema-e0wU_lcV.mjs +1 -0
  205. package/dist/schema-introspection-Dn1jWQs1.mjs +1 -0
  206. package/dist/schemas-Bd0OjRQf.d.mts +46 -0
  207. package/dist/schemas-C46QfKzv.d.mts +459 -0
  208. package/dist/schemas-CDBSjg7o.d.mts +237 -0
  209. package/dist/schemas-CR1Rripy.mjs +1 -0
  210. package/dist/schemas-CVvwIfG4.mjs +1 -0
  211. package/dist/schemas-CaLhkkLn.mjs +1 -0
  212. package/dist/schemas-ClOOT1W6.d.mts +174 -0
  213. package/dist/schemas-DATniTHb.d.mts +182 -0
  214. package/dist/schemas-DE-GNmSD.mjs +1 -0
  215. package/dist/schemas-DVF1A4DF.d.mts +160 -0
  216. package/dist/schemas-DaRSfYLf.d.mts +73 -0
  217. package/dist/schemas-DiYVzG6e.d.mts +315 -0
  218. package/dist/schemas-hSrzflwZ.mjs +1 -0
  219. package/dist/schemas-j7ivZ2HI.d.mts +944 -0
  220. package/dist/schemas-jFe1AuI-.mjs +1 -0
  221. package/dist/schemas-wg_6PAdV.d.mts +153 -0
  222. package/dist/scoped-bus-04pwo1uM.mjs +1 -0
  223. package/dist/server-lifecycle-FXTPW39-.mjs +1 -0
  224. package/dist/server-lifecycle-YoSGFGnU.d.mts +160 -0
  225. package/dist/service-base/index.d.mts +98 -0
  226. package/dist/service-base/index.mjs +1 -0
  227. package/dist/services/adapter-runtime/index.d.mts +4 -0
  228. package/dist/services/adapter-runtime/index.mjs +1 -0
  229. package/dist/services/adapter-runtime/namespace.d.mts +2 -0
  230. package/dist/services/adapter-runtime/namespace.mjs +1 -0
  231. package/dist/services/adapter-runtime/schemas.d.mts +2 -0
  232. package/dist/services/adapter-runtime/schemas.mjs +1 -0
  233. package/dist/services/adapter-subsystem/index.d.mts +3 -0
  234. package/dist/services/adapter-subsystem/index.mjs +1 -0
  235. package/dist/services/adapter-subsystem/namespace.d.mts +2 -0
  236. package/dist/services/adapter-subsystem/namespace.mjs +1 -0
  237. package/dist/services/agent-runtime/index.d.mts +3 -0
  238. package/dist/services/agent-runtime/index.mjs +1 -0
  239. package/dist/services/agent-runtime/namespace.d.mts +2 -0
  240. package/dist/services/agent-runtime/namespace.mjs +1 -0
  241. package/dist/services/agent-runtime/schemas.d.mts +2 -0
  242. package/dist/services/agent-runtime/schemas.mjs +1 -0
  243. package/dist/services/capability/index.d.mts +2 -0
  244. package/dist/services/capability/index.mjs +1 -0
  245. package/dist/services/cli-detection/namespace.d.mts +56 -0
  246. package/dist/services/cli-detection/namespace.mjs +1 -0
  247. package/dist/services/codebase/index.d.mts +3 -0
  248. package/dist/services/codebase/index.mjs +1 -0
  249. package/dist/services/codebase/namespace.d.mts +2 -0
  250. package/dist/services/codebase/namespace.mjs +1 -0
  251. package/dist/services/codebase/schemas.d.mts +2 -0
  252. package/dist/services/codebase/schemas.mjs +1 -0
  253. package/dist/services/compression/index.d.mts +3 -0
  254. package/dist/services/compression/index.mjs +1 -0
  255. package/dist/services/compression/namespace.d.mts +2 -0
  256. package/dist/services/compression/namespace.mjs +1 -0
  257. package/dist/services/compression/schemas.d.mts +2 -0
  258. package/dist/services/compression/schemas.mjs +1 -0
  259. package/dist/services/context-rules/index.d.mts +412 -0
  260. package/dist/services/context-rules/index.mjs +1 -0
  261. package/dist/services/credential-change/index.d.mts +17 -0
  262. package/dist/services/credential-change/index.mjs +1 -0
  263. package/dist/services/definition/index.d.mts +2 -0
  264. package/dist/services/definition/index.mjs +1 -0
  265. package/dist/services/definition/namespace.d.mts +71 -0
  266. package/dist/services/definition/namespace.mjs +1 -0
  267. package/dist/services/definition/schemas.d.mts +38 -0
  268. package/dist/services/definition/schemas.mjs +1 -0
  269. package/dist/services/dialog/namespace.d.mts +105 -0
  270. package/dist/services/dialog/namespace.mjs +1 -0
  271. package/dist/services/dialog/schemas.d.mts +109 -0
  272. package/dist/services/dialog/schemas.mjs +1 -0
  273. package/dist/services/execution-target/index.d.mts +4 -0
  274. package/dist/services/execution-target/index.mjs +1 -0
  275. package/dist/services/execution-target/namespace.d.mts +2 -0
  276. package/dist/services/execution-target/namespace.mjs +1 -0
  277. package/dist/services/execution-target/schemas.d.mts +2 -0
  278. package/dist/services/execution-target/schemas.mjs +1 -0
  279. package/dist/services/filesystem/index.d.mts +3 -0
  280. package/dist/services/filesystem/index.mjs +1 -0
  281. package/dist/services/filesystem/namespace.d.mts +432 -0
  282. package/dist/services/filesystem/namespace.mjs +1 -0
  283. package/dist/services/filesystem/schemas.d.mts +240 -0
  284. package/dist/services/filesystem/schemas.mjs +1 -0
  285. package/dist/services/git/namespace.d.mts +1163 -0
  286. package/dist/services/git/namespace.mjs +1 -0
  287. package/dist/services/git/schemas.d.mts +932 -0
  288. package/dist/services/git/schemas.mjs +1 -0
  289. package/dist/services/harness/index.d.mts +861 -0
  290. package/dist/services/harness/index.mjs +1 -0
  291. package/dist/services/harness/storage/schema.d.mts +424 -0
  292. package/dist/services/harness/storage/schema.mjs +1 -0
  293. package/dist/services/index.d.mts +6185 -0
  294. package/dist/services/index.mjs +1 -0
  295. package/dist/services/local-notification/index.d.mts +25 -0
  296. package/dist/services/local-notification/index.mjs +1 -0
  297. package/dist/services/local-notification/namespace.d.mts +73 -0
  298. package/dist/services/local-notification/namespace.mjs +1 -0
  299. package/dist/services/local-notification/schemas.d.mts +88 -0
  300. package/dist/services/local-notification/schemas.mjs +1 -0
  301. package/dist/services/log-import/browser.d.mts +3 -0
  302. package/dist/services/log-import/browser.mjs +1 -0
  303. package/dist/services/log-import/index.d.mts +274 -0
  304. package/dist/services/log-import/index.mjs +2 -0
  305. package/dist/services/log-import/log-import.d.mts +3 -0
  306. package/dist/services/log-import/log-import.mjs +1 -0
  307. package/dist/services/log-import/namespace.d.mts +327 -0
  308. package/dist/services/log-import/namespace.mjs +1 -0
  309. package/dist/services/log-import/schemas.d.mts +217 -0
  310. package/dist/services/log-import/schemas.mjs +1 -0
  311. package/dist/services/model-registry/index.d.mts +2 -0
  312. package/dist/services/model-registry/index.mjs +1 -0
  313. package/dist/services/preferences/index.d.mts +3 -0
  314. package/dist/services/preferences/index.mjs +1 -0
  315. package/dist/services/preferences/schemas.d.mts +2 -0
  316. package/dist/services/preferences/schemas.mjs +1 -0
  317. package/dist/services/preferences/storage-namespace.d.mts +3 -0
  318. package/dist/services/preferences/storage-namespace.mjs +1 -0
  319. package/dist/services/provider-context/index.d.mts +2 -0
  320. package/dist/services/provider-context/index.mjs +1 -0
  321. package/dist/services/provider-runtime/index.d.mts +136 -0
  322. package/dist/services/provider-runtime/index.mjs +1 -0
  323. package/dist/services/session/handlers/index.d.mts +2 -0
  324. package/dist/services/session/handlers/index.mjs +1 -0
  325. package/dist/services/session/index.d.mts +10 -0
  326. package/dist/services/session/index.mjs +1 -0
  327. package/dist/services/session/messages/namespace.d.mts +2 -0
  328. package/dist/services/session/messages/namespace.mjs +1 -0
  329. package/dist/services/session/orchestrator-testing/index.d.mts +2 -0
  330. package/dist/services/session/orchestrator-testing/index.mjs +1 -0
  331. package/dist/services/session/session-events/namespace.d.mts +2 -0
  332. package/dist/services/session/session-events/namespace.mjs +1 -0
  333. package/dist/services/session/storage/namespace.d.mts +2 -0
  334. package/dist/services/session/storage/namespace.mjs +1 -0
  335. package/dist/services/session/storage/schema.d.mts +2 -0
  336. package/dist/services/session/storage/schema.mjs +1 -0
  337. package/dist/services/session/testing/index.d.mts +35 -0
  338. package/dist/services/session/testing/index.mjs +65 -0
  339. package/dist/services/session/testing/orchestrator-shared.d.mts +2 -0
  340. package/dist/services/session/testing/orchestrator-shared.mjs +1 -0
  341. package/dist/services/session/turns/namespace.d.mts +2 -0
  342. package/dist/services/session/turns/namespace.mjs +1 -0
  343. package/dist/services/session-editor/index.d.mts +119 -0
  344. package/dist/services/session-editor/index.mjs +1 -0
  345. package/dist/services/settings/index.d.mts +47 -0
  346. package/dist/services/settings/index.mjs +1 -0
  347. package/dist/services/settings/namespace.d.mts +663 -0
  348. package/dist/services/settings/namespace.mjs +1 -0
  349. package/dist/services/settings/storage/clients-namespace.d.mts +2 -0
  350. package/dist/services/settings/storage/clients-namespace.mjs +1 -0
  351. package/dist/services/settings/storage/extension-configs/namespace.d.mts +184 -0
  352. package/dist/services/settings/storage/extension-configs/namespace.mjs +1 -0
  353. package/dist/services/settings/storage/index.d.mts +4 -0
  354. package/dist/services/settings/storage/index.mjs +1 -0
  355. package/dist/services/settings/storage/providers-namespace.d.mts +2 -0
  356. package/dist/services/settings/storage/providers-namespace.mjs +1 -0
  357. package/dist/services/subagent/index.d.mts +2 -0
  358. package/dist/services/subagent/index.mjs +1 -0
  359. package/dist/services/subagent-template/index.d.mts +3 -0
  360. package/dist/services/subagent-template/index.mjs +1 -0
  361. package/dist/services/subagent-template/namespace.d.mts +2 -0
  362. package/dist/services/subagent-template/namespace.mjs +1 -0
  363. package/dist/services/subagent-template/schemas.d.mts +2 -0
  364. package/dist/services/subagent-template/schemas.mjs +1 -0
  365. package/dist/services/tool-approval/index.d.mts +2 -0
  366. package/dist/services/tool-approval/index.mjs +1 -0
  367. package/dist/services/tools/index.d.mts +2 -0
  368. package/dist/services/tools/index.mjs +1 -0
  369. package/dist/services/tray-menu/index.d.mts +4 -0
  370. package/dist/services/tray-menu/index.mjs +1 -0
  371. package/dist/services/tray-menu/namespace.d.mts +2 -0
  372. package/dist/services/tray-menu/namespace.mjs +1 -0
  373. package/dist/services/tray-menu/schemas.d.mts +2 -0
  374. package/dist/services/tray-menu/schemas.mjs +1 -0
  375. package/dist/services/turn/index.d.mts +2 -0
  376. package/dist/services/turn/index.mjs +1 -0
  377. package/dist/services/turn/namespace.d.mts +2 -0
  378. package/dist/services/turn/namespace.mjs +1 -0
  379. package/dist/services/turn/schemas.d.mts +335 -0
  380. package/dist/services/turn/schemas.mjs +1 -0
  381. package/dist/session-BoldSdNZ2.mjs +134 -0
  382. package/dist/session-DuVOYctZ.mjs +1 -0
  383. package/dist/session-lineage-CRsc9g1x.d.mts +65 -0
  384. package/dist/shared-DpOEfD8F.mjs +1 -0
  385. package/dist/shared-schemas-CPShiLNp.mjs +1 -0
  386. package/dist/skill-CQO4mDqK.mjs +1 -0
  387. package/dist/storage/drizzle/client.d.mts +78 -0
  388. package/dist/storage/drizzle/client.mjs +1 -0
  389. package/dist/storage/drizzle/index.d.mts +137 -0
  390. package/dist/storage/drizzle/index.mjs +1 -0
  391. package/dist/storage/handlers/drizzle/index.d.mts +2 -0
  392. package/dist/storage/handlers/drizzle/index.mjs +1 -0
  393. package/dist/storage/handlers/index.d.mts +33 -0
  394. package/dist/storage/handlers/index.mjs +1 -0
  395. package/dist/storage/index.d.mts +192 -0
  396. package/dist/storage/index.mjs +1 -0
  397. package/dist/storage-namespace-BXkoh5Sy.d.mts +221 -0
  398. package/dist/storage-namespace-DWsYLAXa.mjs +1 -0
  399. package/dist/storage-namespace-definition-Bkx5rSto.d.mts +17 -0
  400. package/dist/storage-namespace-definition-CqSdsuCC.mjs +1 -0
  401. package/dist/style.css +3782 -0
  402. package/dist/telemetry-CvdLBWuk.mjs +1 -0
  403. package/dist/testing/drizzle-harness.d.mts +130 -0
  404. package/dist/testing/drizzle-harness.mjs +1 -0
  405. package/dist/testing/index.d.mts +106 -0
  406. package/dist/testing/index.mjs +1 -0
  407. package/dist/timeout-XsYIOKrc.mjs +1 -0
  408. package/dist/tool-approval-service-BvZWhYZp.mjs +1 -0
  409. package/dist/tools/index.d.mts +835 -0
  410. package/dist/tools/index.mjs +1 -0
  411. package/dist/tools/testing/index.d.mts +53 -0
  412. package/dist/tools/testing/index.mjs +1 -0
  413. package/dist/tools-D-luYcDw.mjs +1431 -0
  414. package/dist/tray-menu-service-DuXq5k22.mjs +1 -0
  415. package/dist/types-BCMUtBj1.d.mts +1106 -0
  416. package/dist/types-C2Ob9zz_.d.mts +128 -0
  417. package/dist/types-CCdqjeuH.d.mts +262 -0
  418. package/dist/types-DZHvOc_Q.d.mts +305 -0
  419. package/dist/types-Dy3YTcTF.d.mts +6777 -0
  420. package/dist/types-MfJZ67e9.d.mts +315 -0
  421. package/dist/types-dyP-bXXE.d.mts +31 -0
  422. package/dist/ui-components/index.d.mts +2342 -0
  423. package/dist/ui-components/index.mjs +8 -0
  424. package/dist/ui-config-9bDRwFZr.mjs +1 -0
  425. package/dist/ui-hooks/index.d.mts +1915 -0
  426. package/dist/ui-hooks/index.mjs +1 -0
  427. package/dist/ui-kernel/index.d.mts +2793 -0
  428. package/dist/ui-kernel/index.mjs +1 -0
  429. package/dist/ui-kernel/pages/namespace.d.mts +88 -0
  430. package/dist/ui-kernel/pages/namespace.mjs +1 -0
  431. package/dist/ui-kernel/pages/schemas.d.mts +2 -0
  432. package/dist/ui-kernel/pages/schemas.mjs +1 -0
  433. package/dist/ui-views/index.d.mts +487 -0
  434. package/dist/ui-views/index.mjs +30 -0
  435. package/dist/utils/health-probe.d.mts +26 -0
  436. package/dist/utils/health-probe.mjs +1 -0
  437. package/dist/utils/index.d.mts +262 -0
  438. package/dist/utils/index.mjs +2 -0
  439. package/dist/utils/keychain.d.mts +31 -0
  440. package/dist/utils/keychain.mjs +1 -0
  441. package/dist/utils/project-manifest.d.mts +130 -0
  442. package/dist/utils/project-manifest.mjs +1 -0
  443. package/dist/utils/resolve-package-root.d.mts +12 -0
  444. package/dist/utils/resolve-package-root.mjs +1 -0
  445. package/dist/utils/scope-paths.d.mts +33 -0
  446. package/dist/utils/scope-paths.mjs +1 -0
  447. package/dist/utils/workspace-packages.d.mts +59 -0
  448. package/dist/utils/workspace-packages.mjs +1 -0
  449. package/dist/utils/workspace-root.d.mts +24 -0
  450. package/dist/utils/workspace-root.mjs +2 -0
  451. package/dist/variant-CT6XBP6T.mjs +1 -0
  452. package/dist/version-BeT3ASEe.mjs +1 -0
  453. package/dist/visibility-Cb62p9bv.mjs +1 -0
  454. package/dist/window-registry-CBcrGTv4.d.mts +130 -0
  455. package/dist/window-registry-DW-dKRjQ.mjs +1 -0
  456. package/package.json +1 -1
@@ -0,0 +1,1915 @@
1
+ import * as _$react from "react";
2
+ import { ComponentType, JSX, ReactNode } from "react";
3
+ import { PreferenceKey } from "@makaio/framework/services/preferences";
4
+ import { AdapterInfo, ComponentLike, NavigationGroupConfig, OnboardingContext, OnboardingStepDefinition as OnboardingStepDefinition$1, OnboardingStepProps as OnboardingStepProps$1, PageComponentProps, PageDefinition, PageDefinitionQueryOptions, RuntimeReadyWaiter, WidgetDefinition, WidgetLayout, WidgetScope } from "@makaio/framework/ui-kernel";
5
+ import { ExtensionInfo } from "@makaio/framework/kernel";
6
+ import { IMakaioBus } from "@makaio/framework/bus";
7
+ import { AIModel, AgentSelection, ModelFilterMode, ModelVisibility, UiContextSnapshot, UiRuntimeNavigationLevel, UiScope } from "@makaio/framework/contracts";
8
+ import { BindingRecord, ProviderConfigFileRecord } from "@makaio/framework/services/adapter-subsystem";
9
+ import { LogImportMode } from "@makaio/framework/services/log-import/log-import";
10
+ import { EventHandler, EventMessagePayload, ExtractSubjectPayload, SubjectDefinition } from "@makaio/framework/core";
11
+ import { CredentialRef } from "@makaio/framework/contracts/config";
12
+ import { ModelFilterMode as ModelFilterMode$1, ModelVisibility as ModelVisibility$1, ProtocolEndpoints, ProtocolId } from "@makaio/framework/contracts/provider";
13
+
14
+ //#region ui/hooks/src/bus/bus-provider.d.ts
15
+ /**
16
+ * React context carrying the active bus instance.
17
+ *
18
+ * Components must be rendered inside a `BusProvider` to access this context.
19
+ */
20
+ declare const BusContext: _$react.Context<IMakaioBus | null>;
21
+ /**
22
+ * Props for {@link BusProvider}.
23
+ */
24
+ interface BusProviderProps {
25
+ /**
26
+ * Pre-connected bus instance to expose via context.
27
+ *
28
+ * Required so framework surfaces make their bus bootstrap explicit instead of
29
+ * silently falling back to the global singleton.
30
+ */
31
+ bus: IMakaioBus;
32
+ /** React children rendered inside the bus context. */
33
+ children: ReactNode;
34
+ }
35
+ /**
36
+ * Provides the connected `IMakaioBus` instance to the React component tree.
37
+ *
38
+ * The bus transport must be established before this component mounts.
39
+ * On the Electron path, pass the `MakaioBus` singleton after calling
40
+ * `MakaioBus.connect()` in the bootstrap function.
41
+ * @param props - Provider configuration.
42
+ * @returns React provider wrapping children with the active bus context.
43
+ */
44
+ declare function BusProvider({
45
+ bus,
46
+ children
47
+ }: BusProviderProps): JSX.Element;
48
+ /**
49
+ * Hook to access the bus instance from React context.
50
+ *
51
+ * Must be called inside a component tree that is wrapped in `BusProvider`.
52
+ * @returns The active `IMakaioBus` instance.
53
+ * @throws When called outside a `BusProvider`.
54
+ * @example
55
+ * ```tsx
56
+ * function MyComponent() {
57
+ * const bus = useBus();
58
+ * const handleClick = () => void bus.emit(MySubjects.clicked, {});
59
+ * return <button onClick={handleClick}>Click</button>;
60
+ * }
61
+ * ```
62
+ */
63
+ declare function useBus(): IMakaioBus;
64
+ /**
65
+ * Hook to optionally access the bus instance from React context.
66
+ *
67
+ * Unlike {@link useBus}, this hook does not throw when called outside a
68
+ * `BusProvider`. It returns `null` when no provider is mounted, allowing
69
+ * components to degrade gracefully rather than crash.
70
+ *
71
+ * Use this for components that can meaningfully render without a bus (e.g.
72
+ * by disabling interactive affordances). Prefer {@link useBus} for components
73
+ * that have no useful state without a bus.
74
+ * @returns The active `IMakaioBus` instance, or `null` if no provider is mounted.
75
+ */
76
+ declare function useOptionalBus(): IMakaioBus | null;
77
+ //#endregion
78
+ //#region ui/hooks/src/bus/use-bus-query.d.ts
79
+ /**
80
+ * Options for {@link useBusQuery}.
81
+ * @typeParam Subject - The bus subject definition for the request.
82
+ */
83
+ interface UseBusQueryOptions<Subject extends SubjectDefinition> {
84
+ /**
85
+ * The bus subject definition representing the request to execute.
86
+ *
87
+ * Must be a request-type subject (one with `request` and `response` fields).
88
+ */
89
+ readonly subject: Subject;
90
+ /**
91
+ * The payload to send with the request.
92
+ *
93
+ * Must be JSON-serializable so it can be used as a stable effect dependency.
94
+ */
95
+ readonly request: Subject['$meta']['payload'] extends {
96
+ request: infer Request;
97
+ } ? Request : never;
98
+ /**
99
+ * When `true`, the query is not sent and any previously loaded data is retained.
100
+ *
101
+ * Toggling from `true` back to `false` triggers an immediate refetch.
102
+ * @defaultValue false
103
+ */
104
+ readonly skip?: boolean;
105
+ /**
106
+ * Optional list of event subjects whose emission should trigger a refetch.
107
+ *
108
+ * Each subject in the array is subscribed to when the hook mounts. When any
109
+ * of those events fire the query is re-executed automatically.
110
+ */
111
+ readonly refetchOn?: readonly SubjectDefinition[];
112
+ }
113
+ /**
114
+ * Result returned by {@link useBusQuery}.
115
+ * @typeParam Response - The response payload type from the bus subject.
116
+ */
117
+ interface UseBusQueryResult<Response> {
118
+ /** The most recently resolved response, or `undefined` before the first successful fetch. */
119
+ readonly data: Response | undefined;
120
+ /** `true` while a request is in flight. */
121
+ readonly loading: boolean;
122
+ /** Set when the most recent request threw or the bus returned an error. */
123
+ readonly error: Error | undefined;
124
+ /**
125
+ * Imperatively trigger a refetch regardless of the current `skip` flag.
126
+ *
127
+ * The `skip` guard is bypassed: if you call `refetch()` while `skip` is `true`
128
+ * the request is still sent.
129
+ */
130
+ readonly refetch: () => void;
131
+ }
132
+ /**
133
+ * Query a bus request subject and expose the result as React state.
134
+ *
135
+ * The hook fires an async bus request on mount and re-fires whenever `subject`,
136
+ * `request`, or `skip` change. Use `refetchOn` to subscribe to bus events that
137
+ * should invalidate the cached result and trigger a fresh request.
138
+ * @param options - Query configuration.
139
+ * @returns Reactive query state including data, loading, error, and a manual refetch callback.
140
+ * @example
141
+ * ```tsx
142
+ * const { data, loading, error } = useBusQuery({
143
+ * subject: MyNamespace.subjects.getItem,
144
+ * request: { id: itemId },
145
+ * refetchOn: [MyNamespace.subjects.itemChanged],
146
+ * });
147
+ * ```
148
+ */
149
+ declare function useBusQuery<Subject extends SubjectDefinition>({
150
+ subject,
151
+ request,
152
+ skip,
153
+ refetchOn
154
+ }: UseBusQueryOptions<Subject>): UseBusQueryResult<Subject['$meta']['payload'] extends {
155
+ response: infer Response;
156
+ } ? Response : never>;
157
+ //#endregion
158
+ //#region ui/hooks/src/bus/use-bus-event.d.ts
159
+ type NonChannelEventSubjectDefinition = SubjectDefinition & {
160
+ readonly $meta: {
161
+ readonly channel: false;
162
+ readonly isRequest: false;
163
+ readonly payload: EventMessagePayload;
164
+ };
165
+ };
166
+ type HandlerForBusEvent<Subject extends NonChannelEventSubjectDefinition> = EventHandler<ExtractSubjectPayload<Subject>>;
167
+ /**
168
+ * Subscribe to a bus event subject for the lifetime of the component.
169
+ *
170
+ * The subscription is established once on mount (and whenever `bus` or
171
+ * `subject` change). Passing a new `handler` reference on re-render does
172
+ * NOT cause an unsubscribe/resubscribe — the latest handler is always called.
173
+ *
174
+ * This pattern ensures that closures capturing component state stay fresh
175
+ * without the overhead of re-registering on every render.
176
+ * @param subject - The event subject definition to subscribe to.
177
+ * @param handler - The event handler to invoke when the subject fires.
178
+ * @example
179
+ * ```tsx
180
+ * useBusEvent(SessionNamespace.subjects.messageAdded, (ctx) => {
181
+ * setMessages((prev) => [...prev, ctx.payload]);
182
+ * });
183
+ * ```
184
+ */
185
+ declare function useBusEvent<Subject extends NonChannelEventSubjectDefinition>(subject: Subject, handler: HandlerForBusEvent<Subject>): void;
186
+ //#endregion
187
+ //#region ui/hooks/src/widgets/hooks.d.ts
188
+ interface UseWidgetsOptions {
189
+ builtIns?: readonly WidgetDefinition[];
190
+ scope?: WidgetScope;
191
+ includeAny?: boolean;
192
+ }
193
+ interface UseWidgetsResult {
194
+ builtInWidgets: readonly WidgetDefinition[];
195
+ loading: boolean;
196
+ widgets: ReadonlyArray<WidgetDefinition> | undefined;
197
+ }
198
+ /**
199
+ * Register built-in widgets once and subscribe to runtime widget registrations.
200
+ * @param options - Built-in registration and scope-filter options.
201
+ * @returns Registered built-ins plus the current widget list for the requested scope.
202
+ */
203
+ declare function useWidgets(options?: UseWidgetsOptions): UseWidgetsResult;
204
+ interface UseWidgetRegistryOptions {
205
+ scope?: WidgetScope;
206
+ includeAny?: boolean;
207
+ }
208
+ /**
209
+ * Read registered widgets reactively from the shared widget registry.
210
+ * @param options - Optional scope filter and include-any behavior.
211
+ * @returns Widget definitions matching the requested scope.
212
+ */
213
+ declare function useWidgetRegistry(options?: UseWidgetRegistryOptions): ReadonlyArray<WidgetDefinition>;
214
+ interface UseWidgetConfigOptions<TConfig extends Record<string, unknown>> {
215
+ paneId: string;
216
+ widgetId: string;
217
+ context: WidgetLayoutContext;
218
+ surface: 'ui' | 'app';
219
+ defaultConfig: TConfig;
220
+ }
221
+ interface UseWidgetConfigResult<TConfig extends Record<string, unknown>> {
222
+ config: TConfig;
223
+ updateConfig: (partial: Partial<TConfig>) => void;
224
+ }
225
+ interface WidgetLayoutContext {
226
+ readonly scope: UiScope;
227
+ readonly contextId?: string | null;
228
+ }
229
+ /**
230
+ * Load and persist widget instance configuration through preferences.
231
+ * @param options - Widget identity plus default configuration.
232
+ * @returns Current widget config and a partial-update helper.
233
+ */
234
+ declare function useWidgetConfig<TConfig extends Record<string, unknown>>(options: UseWidgetConfigOptions<TConfig>): UseWidgetConfigResult<TConfig>;
235
+ //#endregion
236
+ //#region ui/hooks/src/widgets/use-widget-layout.d.ts
237
+ /**
238
+ * Load a widget layout preference and expose its fetch state.
239
+ * @param preferenceKey - Preference key that identifies the layout.
240
+ * @returns The current layout value plus loading, error, and refresh state.
241
+ */
242
+ declare function useWidgetLayout(preferenceKey: PreferenceKey): {
243
+ layout: WidgetLayout | null;
244
+ isLoading: boolean;
245
+ error: Error | null;
246
+ refresh: () => Promise<void>;
247
+ };
248
+ //#endregion
249
+ //#region ui/hooks/src/widgets/use-widget-layout-actions.d.ts
250
+ /**
251
+ * Persist or reset widget layouts in preferences.
252
+ * @returns Layout mutation helpers bound to the current bus instance.
253
+ */
254
+ declare function useWidgetLayoutActions(): {
255
+ saveLayout: (key: PreferenceKey, layout: WidgetLayout) => Promise<void>;
256
+ resetLayout: (key: PreferenceKey) => Promise<void>;
257
+ };
258
+ //#endregion
259
+ //#region ui/hooks/src/widgets/use-tray-layout.d.ts
260
+ /**
261
+ * Derive a read-only `WidgetLayout` for the tray surface from the live widget registry.
262
+ * @param lockedWidgetIds - Widget IDs that should be pinned at the top of the tray.
263
+ * @returns Stable tray layout derived from the current widget registry snapshot.
264
+ */
265
+ declare function useTrayLayout(lockedWidgetIds?: readonly string[]): WidgetLayout;
266
+ //#endregion
267
+ //#region ui/hooks/src/extensions/shared-browser-loader.d.ts
268
+ type SharedLoaderState = 'loading' | 'ready' | 'empty' | 'error';
269
+ interface SharedShellContribution<TShellProps> {
270
+ component: ComponentType<TShellProps>;
271
+ }
272
+ interface SharedExtensionBrowserContribution<TShellProps> {
273
+ shell?: SharedShellContribution<TShellProps>;
274
+ destroy?: () => void;
275
+ }
276
+ interface SharedFactoryResolution<TContribution> {
277
+ kind: 'resolved' | 'invalid';
278
+ factory?: (context: SharedBrowserFactoryContext) => TContribution | null | undefined;
279
+ reason?: string;
280
+ }
281
+ interface SharedBrowserFactoryContext {
282
+ bus: IMakaioBus;
283
+ }
284
+ interface ExtensionBrowserLoadResult<TShellProps> {
285
+ cleanups: Array<() => void>;
286
+ errorMessage: string | null;
287
+ shell: ComponentType<TShellProps> | null;
288
+ state: Exclude<SharedLoaderState, 'loading'>;
289
+ }
290
+ interface ExtensionBrowserLoadOptions<TContribution extends SharedExtensionBrowserContribution<TShellProps>, TShellProps, TFactory> {
291
+ bus: IMakaioBus;
292
+ getRegisteredFactory: (extensionName: string) => TFactory | undefined;
293
+ importModule?: (entrypointPath: string) => Promise<{
294
+ default?: unknown;
295
+ }>;
296
+ isCurrentRun: () => boolean;
297
+ registerExtensionUI: (bus: IMakaioBus, extensionName: string, contribution: TContribution) => () => void;
298
+ resolveFactory: (moduleDefault: unknown, registeredFactory: TFactory | undefined) => SharedFactoryResolution<TContribution>;
299
+ unregisterFactory: (extensionName: string) => void;
300
+ waitForRuntimeReady: (bus: IMakaioBus) => RuntimeReadyWaiter;
301
+ }
302
+ /**
303
+ * Load and register browser extension contributions for a renderer surface.
304
+ *
305
+ * Centralizes the runtime wait, extension discovery, secure browser import,
306
+ * contribution registration, and shell selection logic. Callers retain
307
+ * ownership of local registries and registration adapters via the injected
308
+ * callbacks so this seam removes orchestration duplication without collapsing
309
+ * framework and host ownership boundaries.
310
+ * @param options - Loader dependencies owned by the caller surface.
311
+ * @returns Final loader state, selected shell, and teardown callbacks.
312
+ */
313
+ declare function loadExtensionBrowserContributions<TContribution extends SharedExtensionBrowserContribution<TShellProps>, TShellProps, TFactory>(options: ExtensionBrowserLoadOptions<TContribution, TShellProps, TFactory>): Promise<ExtensionBrowserLoadResult<TShellProps>>;
314
+ //#endregion
315
+ //#region node_modules/zustand/esm/vanilla.d.mts
316
+ type SetStateInternal<T> = {
317
+ _(partial: T | Partial<T> | {
318
+ _(state: T): T | Partial<T>;
319
+ }['_'], replace?: false): void;
320
+ _(state: T | {
321
+ _(state: T): T;
322
+ }['_'], replace: true): void;
323
+ }['_'];
324
+ interface StoreApi<T> {
325
+ setState: SetStateInternal<T>;
326
+ getState: () => T;
327
+ getInitialState: () => T;
328
+ subscribe: (listener: (state: T, prevState: T) => void) => () => void;
329
+ }
330
+ type ExtractState<S> = S extends {
331
+ getState: () => infer T;
332
+ } ? T : never;
333
+ type Get<T, K, F> = K extends keyof T ? T[K] : F;
334
+ type Mutate<S, Ms> = number extends Ms['length' & keyof Ms] ? S : Ms extends [] ? S : Ms extends [[infer Mi, infer Ma], ...infer Mrs] ? Mutate<StoreMutators<S, Ma>[Mi & StoreMutatorIdentifier], Mrs> : never;
335
+ type StateCreator<T, Mis extends [StoreMutatorIdentifier, unknown][] = [], Mos extends [StoreMutatorIdentifier, unknown][] = [], U = T> = ((setState: Get<Mutate<StoreApi<T>, Mis>, 'setState', never>, getState: Get<Mutate<StoreApi<T>, Mis>, 'getState', never>, store: Mutate<StoreApi<T>, Mis>) => U) & {
336
+ $$storeMutators?: Mos;
337
+ };
338
+ interface StoreMutators<S, A> {}
339
+ type StoreMutatorIdentifier = keyof StoreMutators<unknown, unknown>;
340
+ //#endregion
341
+ //#region node_modules/zustand/esm/react.d.mts
342
+ type ReadonlyStoreApi<T> = Pick<StoreApi<T>, 'getState' | 'getInitialState' | 'subscribe'>;
343
+ type UseBoundStore<S extends ReadonlyStoreApi<unknown>> = {
344
+ (): ExtractState<S>;
345
+ <U>(selector: (state: ExtractState<S>) => U): U;
346
+ } & S;
347
+ //#endregion
348
+ //#region node_modules/zustand/esm/middleware/redux.d.mts
349
+ type Write$3<T, U> = Omit<T, keyof U> & U;
350
+ type StoreRedux<A> = {
351
+ dispatch: (a: A) => A;
352
+ dispatchFromDevtools: true;
353
+ };
354
+ type WithRedux<S, A> = Write$3<S, StoreRedux<A>>;
355
+ declare module '../vanilla.mjs' {
356
+ interface StoreMutators<S, A> {
357
+ 'zustand/redux': WithRedux<S, A>;
358
+ }
359
+ }
360
+ //#endregion
361
+ //#region node_modules/zustand/esm/middleware/devtools.d.mts
362
+ declare module '../vanilla.mjs' {
363
+ interface StoreMutators<S, A> {
364
+ 'zustand/devtools': WithDevtools<S>;
365
+ }
366
+ }
367
+ type Cast<T, U> = T extends U ? T : U;
368
+ type Write$2<T, U> = Omit<T, keyof U> & U;
369
+ type TakeTwo<T> = T extends {
370
+ length: 0;
371
+ } ? [undefined, undefined] : T extends {
372
+ length: 1;
373
+ } ? [...args0: Cast<T, unknown[]>, arg1: undefined] : T extends {
374
+ length: 0 | 1;
375
+ } ? [...args0: Cast<T, unknown[]>, arg1: undefined] : T extends {
376
+ length: 2;
377
+ } ? T : T extends {
378
+ length: 1 | 2;
379
+ } ? T : T extends {
380
+ length: 0 | 1 | 2;
381
+ } ? T : T extends [infer A0, infer A1, ...unknown[]] ? [A0, A1] : T extends [infer A0, (infer A1)?, ...unknown[]] ? [A0, A1?] : T extends [(infer A0)?, (infer A1)?, ...unknown[]] ? [A0?, A1?] : never;
382
+ type WithDevtools<S> = Write$2<S, StoreDevtools<S>>;
383
+ type Action = string | {
384
+ type: string;
385
+ [x: string | number | symbol]: unknown;
386
+ };
387
+ type StoreDevtools<S> = S extends {
388
+ setState: {
389
+ (...args: infer Sa1): infer Sr1;
390
+ (...args: infer Sa2): infer Sr2;
391
+ };
392
+ } ? {
393
+ setState(...args: [...args: TakeTwo<Sa1>, action?: Action]): Sr1;
394
+ setState(...args: [...args: TakeTwo<Sa2>, action?: Action]): Sr2;
395
+ devtools: {
396
+ cleanup: () => void;
397
+ };
398
+ } : never;
399
+ //#endregion
400
+ //#region node_modules/zustand/esm/middleware/subscribeWithSelector.d.mts
401
+ type Write$1<T, U> = Omit<T, keyof U> & U;
402
+ type WithSelectorSubscribe<S> = S extends {
403
+ getState: () => infer T;
404
+ } ? Write$1<S, StoreSubscribeWithSelector<T>> : never;
405
+ declare module '../vanilla.mjs' {
406
+ interface StoreMutators<S, A> {
407
+ ['zustand/subscribeWithSelector']: WithSelectorSubscribe<S>;
408
+ }
409
+ }
410
+ type StoreSubscribeWithSelector<T> = {
411
+ subscribe: {
412
+ (listener: (selectedState: T, previousSelectedState: T) => void): () => void;
413
+ <U>(selector: (state: T) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
414
+ equalityFn?: (a: U, b: U) => boolean;
415
+ fireImmediately?: boolean;
416
+ }): () => void;
417
+ };
418
+ };
419
+ //#endregion
420
+ //#region node_modules/zustand/esm/middleware/persist.d.mts
421
+ type StorageValue<S> = {
422
+ state: S;
423
+ version?: number;
424
+ };
425
+ interface PersistStorage<S, R = unknown> {
426
+ getItem: (name: string) => StorageValue<S> | null | Promise<StorageValue<S> | null>;
427
+ setItem: (name: string, value: StorageValue<S>) => R;
428
+ removeItem: (name: string) => R;
429
+ }
430
+ interface PersistOptions<S, PersistedState = S, PersistReturn = unknown> {
431
+ /** Name of the storage (must be unique) */
432
+ name: string;
433
+ /**
434
+ * Use a custom persist storage.
435
+ *
436
+ * Combining `createJSONStorage` helps creating a persist storage
437
+ * with JSON.parse and JSON.stringify.
438
+ *
439
+ * @default createJSONStorage(() => window.localStorage)
440
+ */
441
+ storage?: PersistStorage<PersistedState, PersistReturn> | undefined;
442
+ /**
443
+ * Filter the persisted value.
444
+ *
445
+ * @params state The state's value
446
+ */
447
+ partialize?: (state: S) => PersistedState;
448
+ /**
449
+ * A function returning another (optional) function.
450
+ * The main function will be called before the state rehydration.
451
+ * The returned function will be called after the state rehydration or when an error occurred.
452
+ */
453
+ onRehydrateStorage?: (state: S) => ((state?: S, error?: unknown) => void) | void;
454
+ /**
455
+ * If the stored state's version mismatch the one specified here, the storage will not be used.
456
+ * This is useful when adding a breaking change to your store.
457
+ */
458
+ version?: number;
459
+ /**
460
+ * A function to perform persisted state migration.
461
+ * This function will be called when persisted state versions mismatch with the one specified here.
462
+ */
463
+ migrate?: (persistedState: unknown, version: number) => PersistedState | Promise<PersistedState>;
464
+ /**
465
+ * A function to perform custom hydration merges when combining the stored state with the current one.
466
+ * By default, this function does a shallow merge.
467
+ */
468
+ merge?: (persistedState: unknown, currentState: S) => S;
469
+ /**
470
+ * An optional boolean that will prevent the persist middleware from triggering hydration on initialization,
471
+ * This allows you to call `rehydrate()` at a specific point in your apps rendering life-cycle.
472
+ *
473
+ * This is useful in SSR application.
474
+ *
475
+ * @default false
476
+ */
477
+ skipHydration?: boolean;
478
+ }
479
+ type PersistListener<S> = (state: S) => void;
480
+ type StorePersist<S, Ps, Pr> = S extends {
481
+ getState: () => infer T;
482
+ setState: {
483
+ (...args: infer Sa1): infer Sr1;
484
+ (...args: infer Sa2): infer Sr2;
485
+ };
486
+ } ? {
487
+ setState(...args: Sa1): Sr1 | Pr;
488
+ setState(...args: Sa2): Sr2 | Pr;
489
+ persist: {
490
+ setOptions: (options: Partial<PersistOptions<T, Ps, Pr>>) => void;
491
+ clearStorage: () => void;
492
+ rehydrate: () => Promise<void> | void;
493
+ hasHydrated: () => boolean;
494
+ onHydrate: (fn: PersistListener<T>) => () => void;
495
+ onFinishHydration: (fn: PersistListener<T>) => () => void;
496
+ getOptions: () => Partial<PersistOptions<T, Ps, Pr>>;
497
+ };
498
+ } : never;
499
+ declare module '../vanilla.mjs' {
500
+ interface StoreMutators<S, A> {
501
+ 'zustand/persist': WithPersist<S, A>;
502
+ }
503
+ }
504
+ type Write<T, U> = Omit<T, keyof U> & U;
505
+ type WithPersist<S, A> = Write<S, StorePersist<S, A, unknown>>;
506
+ //#endregion
507
+ //#region ui/hooks/src/state/create-persisted-store.d.ts
508
+ /**
509
+ * Storage engine selection.
510
+ *
511
+ * - `'sessionStorage'` – tab-scoped; cleared when the tab is closed.
512
+ * - `'localStorage'` – cross-tab; survives browser restart.
513
+ */
514
+ type StorageType = 'sessionStorage' | 'localStorage';
515
+ /**
516
+ * SSR-safe no-op storage used when the requested browser storage is unavailable
517
+ * (e.g., server-side rendering, private-browsing mode, or unit tests).
518
+ */
519
+ declare const noopStorage: Storage;
520
+ /**
521
+ * Configuration options for `createPersistedStore`.
522
+ * @typeParam T - The Zustand state type.
523
+ */
524
+ interface PersistedStoreConfig<T> {
525
+ /**
526
+ * Unique storage key (e.g., `'makaio-agent-selection'`).
527
+ * Must be globally unique across all stores.
528
+ */
529
+ name: string;
530
+ /**
531
+ * Which browser storage to use.
532
+ * Defaults to `'sessionStorage'`.
533
+ */
534
+ storage?: StorageType;
535
+ /**
536
+ * Schema version for migrations.
537
+ * Increment when persisted shape changes; supply a `migrate` function in
538
+ * `extraPersistOptions` when doing so.
539
+ */
540
+ version?: number;
541
+ /**
542
+ * Subset of state to persist.
543
+ * When omitted the full state is persisted.
544
+ * @param state - Full store state.
545
+ * @returns Partial state to write to storage.
546
+ */
547
+ partialize?: PersistOptions<T, Partial<T>>['partialize'];
548
+ /**
549
+ * Custom merge function for rehydration.
550
+ * Useful for schema migrations that need to clean up persisted data.
551
+ * @param persistedState - Data read from storage (possibly stale shape).
552
+ * @param currentState - Current in-memory state (initial values).
553
+ * @returns Merged state.
554
+ */
555
+ merge?: (persistedState: unknown, currentState: T) => T;
556
+ /**
557
+ * Extra persist options forwarded verbatim to the Zustand `persist`
558
+ * middleware. Use this for advanced options such as `onRehydrateStorage` or
559
+ * `migrate`. Values here take precedence over other config fields when there
560
+ * is a key conflict (except `name` and `storage`, which are always set by
561
+ * this factory).
562
+ */
563
+ extraPersistOptions?: Omit<PersistOptions<T>, 'name' | 'storage'>;
564
+ }
565
+ /**
566
+ * Factory that creates a Zustand store with Zustand `persist` middleware
567
+ * pre-configured.
568
+ *
569
+ * All framework stores that need persistence should use this factory instead of
570
+ * calling `create(persist(...))` directly. This keeps the boilerplate in one
571
+ * place and guarantees SSR-safe storage resolution everywhere.
572
+ * @param stateCreator - Zustand state creator (same as the first arg to `create`).
573
+ * @param config - Persistence configuration for this store.
574
+ * @returns A Zustand store hook identical to what `create()` returns.
575
+ * @example
576
+ * ```ts
577
+ * export const useMyStore = createPersistedStore<MyState>(
578
+ * (set) => ({
579
+ * count: 0,
580
+ * increment: () => set((s) => ({ count: s.count + 1 })),
581
+ * }),
582
+ * { name: 'makaio-my-store', storage: 'sessionStorage' },
583
+ * );
584
+ * ```
585
+ */
586
+ declare function createPersistedStore<T>(stateCreator: StateCreator<T, [StoreMutatorIdentifier, unknown][], []>, config: PersistedStoreConfig<T>): UseBoundStore<Omit<StoreApi<T>, "setState" | "persist"> & {
587
+ setState(partial: T | Partial<T> | ((state: T) => T | Partial<T>), replace?: false | undefined): unknown;
588
+ setState(state: T | ((state: T) => T), replace: true): unknown;
589
+ persist: {
590
+ setOptions: (options: Partial<PersistOptions<T, Partial<T>, unknown>>) => void;
591
+ clearStorage: () => void;
592
+ rehydrate: () => Promise<void> | void;
593
+ hasHydrated: () => boolean;
594
+ onHydrate: (fn: (state: T) => void) => () => void;
595
+ onFinishHydration: (fn: (state: T) => void) => () => void;
596
+ getOptions: () => Partial<PersistOptions<T, Partial<T>, unknown>>;
597
+ };
598
+ }>;
599
+ //#endregion
600
+ //#region ui/hooks/src/state/window-context-store.d.ts
601
+ interface WindowContextState {
602
+ /**
603
+ * The qualified desktop window registration ID for this tab, when the page is
604
+ * hosted inside a desktop shell (`{packageName}:{windowId}`). Null when
605
+ * running as a standalone browser tab.
606
+ *
607
+ * Set once during bootstrap from host-local runtime config. Never changes for
608
+ * the lifetime of the tab. Not persisted — always re-derived from the host
609
+ * config on each page load.
610
+ */
611
+ windowId: string | null;
612
+ /** Current host UI context snapshot for this tab. */
613
+ uiContext: UiContextSnapshot;
614
+ /**
615
+ * ID of the pane that most recently received user focus.
616
+ * Transient — not persisted. Resets to `null` on page load.
617
+ */
618
+ activePaneId: string | null;
619
+ /**
620
+ * Set the window registration ID (called once during bootstrap).
621
+ *
622
+ * Should only be called by the bootstrap function before React renders.
623
+ * After the first non-null write, subsequent calls with a different value
624
+ * are silently ignored — the ID is immutable for the tab's lifetime.
625
+ * Re-setting the same value (e.g. HMR re-bootstrap) is a no-op.
626
+ * @param id - The qualified desktop window registration ID, or null for standalone browser.
627
+ */
628
+ setWindowId: (id: string | null) => void;
629
+ /**
630
+ * Set the active host UI context snapshot.
631
+ * @param uiContext - UI context snapshot to store for this tab.
632
+ */
633
+ setUiContext: (uiContext: UiContextSnapshot) => void;
634
+ /**
635
+ * Sets the active pane.
636
+ *
637
+ * Called by PaneContainer on focus or pointer-down capture.
638
+ * @param id - Pane ID, or null to clear.
639
+ */
640
+ setActivePaneId: (id: string | null) => void;
641
+ /** Clear the UI context back to the framework root context. */
642
+ clearUiContext: () => void;
643
+ }
644
+ /**
645
+ * Tab-scoped window context store.
646
+ *
647
+ * Use this for navigation state and window-specific overrides:
648
+ * - Which host UI context is active in THIS window
649
+ * - Model/adapter overrides for THIS window
650
+ *
651
+ * Navigation level is read directly from `uiContext.level`.
652
+ */
653
+ declare const useWindowContext: UseBoundStore<Omit<StoreApi<WindowContextState>, "setState" | "persist"> & {
654
+ setState(partial: WindowContextState | Partial<WindowContextState> | ((state: WindowContextState) => WindowContextState | Partial<WindowContextState>), replace?: false | undefined): unknown;
655
+ setState(state: WindowContextState | ((state: WindowContextState) => WindowContextState), replace: true): unknown;
656
+ persist: {
657
+ setOptions: (options: Partial<PersistOptions<WindowContextState, Partial<WindowContextState>, unknown>>) => void;
658
+ clearStorage: () => void;
659
+ rehydrate: () => Promise<void> | void;
660
+ hasHydrated: () => boolean;
661
+ onHydrate: (fn: (state: WindowContextState) => void) => () => void;
662
+ onFinishHydration: (fn: (state: WindowContextState) => void) => () => void;
663
+ getOptions: () => Partial<PersistOptions<WindowContextState, Partial<WindowContextState>, unknown>>;
664
+ };
665
+ }>;
666
+ //#endregion
667
+ //#region ui/hooks/src/state/page-overlay-store.d.ts
668
+ /**
669
+ * Page Overlay Store - Global page overlay state
670
+ *
671
+ * Manages the state of the PageOverlay system for IDE-like navigation to pages
672
+ * (Settings, Help, Plugin Config) as modal overlays that preserve workspace state.
673
+ * This is ephemeral UI state that persists to sessionStorage for tab isolation.
674
+ *
675
+ * Persisted to sessionStorage:
676
+ * - Tab survives refresh with overlay state preserved
677
+ * - Each tab has its own overlay state
678
+ * - Close tab = fresh start (no stale state)
679
+ * @packageDocumentation
680
+ */
681
+ /**
682
+ * Page overlay state management.
683
+ */
684
+ interface PageOverlayState {
685
+ /** Currently displayed page ID (null = closed) */
686
+ activePageId: string | null;
687
+ /** Internal route within the page */
688
+ internalRoute: string | null;
689
+ /**
690
+ * Open a page in the overlay.
691
+ * @param pageId - ID of the page to open (e.g., 'settings', 'help')
692
+ * @param route - Optional internal route within the page; defaults to null
693
+ */
694
+ openPage: (pageId: string, route?: string) => void;
695
+ /** Close the overlay */
696
+ close: () => void;
697
+ /**
698
+ * Navigate within the current page.
699
+ * @param route - New internal route
700
+ */
701
+ navigate: (route: string) => void;
702
+ }
703
+ /**
704
+ * Zustand store for PageOverlay state.
705
+ *
706
+ * Uses sessionStorage for tab-scoped persistence, ensuring each browser tab
707
+ * maintains its own overlay state independently.
708
+ * @example
709
+ * ```tsx
710
+ * function MyComponent() {
711
+ * const activePageId = usePageOverlayStore((s) => s.activePageId);
712
+ * const openPage = usePageOverlayStore((s) => s.openPage);
713
+ *
714
+ * return (
715
+ * <button onClick={() => openPage('settings')}>
716
+ * Open Settings
717
+ * </button>
718
+ * );
719
+ * }
720
+ * ```
721
+ */
722
+ declare const usePageOverlayStore: UseBoundStore<Omit<StoreApi<PageOverlayState>, "setState" | "persist"> & {
723
+ setState(partial: PageOverlayState | Partial<PageOverlayState> | ((state: PageOverlayState) => PageOverlayState | Partial<PageOverlayState>), replace?: false | undefined): unknown;
724
+ setState(state: PageOverlayState | ((state: PageOverlayState) => PageOverlayState), replace: true): unknown;
725
+ persist: {
726
+ setOptions: (options: Partial<PersistOptions<PageOverlayState, Partial<PageOverlayState>, unknown>>) => void;
727
+ clearStorage: () => void;
728
+ rehydrate: () => Promise<void> | void;
729
+ hasHydrated: () => boolean;
730
+ onHydrate: (fn: (state: PageOverlayState) => void) => () => void;
731
+ onFinishHydration: (fn: (state: PageOverlayState) => void) => () => void;
732
+ getOptions: () => Partial<PersistOptions<PageOverlayState, Partial<PageOverlayState>, unknown>>;
733
+ };
734
+ }>;
735
+ //#endregion
736
+ //#region ui/hooks/src/navigation/use-navigation-level.d.ts
737
+ /**
738
+ * Runtime navigation level from the current UI context snapshot.
739
+ */
740
+ type RuntimeNavigationLevel = UiRuntimeNavigationLevel;
741
+ /**
742
+ * Reads the current navigation level from window context.
743
+ * @returns The current navigation level from `uiContext.level`.
744
+ * @example
745
+ * ```tsx
746
+ * const level = useNavigationLevel();
747
+ * ```
748
+ */
749
+ declare function useNavigationLevel(): RuntimeNavigationLevel;
750
+ //#endregion
751
+ //#region ui/hooks/src/state/sidebar-store.d.ts
752
+ /**
753
+ * Per-level collapsed state record.
754
+ */
755
+ type CollapsedByLevel = Partial<Record<RuntimeNavigationLevel, boolean>>;
756
+ interface SidebarState {
757
+ /** Collapsed state keyed by navigation level */
758
+ collapsedByLevel: CollapsedByLevel;
759
+ /**
760
+ * Check if sidebar is collapsed at a given navigation level.
761
+ * @param level - Navigation level to check
762
+ * @returns True if collapsed (defaults to false)
763
+ */
764
+ isCollapsed: (level: RuntimeNavigationLevel) => boolean;
765
+ /**
766
+ * Toggle sidebar collapsed state for a navigation level.
767
+ * @param level - Navigation level to toggle
768
+ */
769
+ toggle: (level: RuntimeNavigationLevel) => void;
770
+ /**
771
+ * Set sidebar collapsed state for a navigation level.
772
+ * @param level - Navigation level to set
773
+ * @param collapsed - Whether the sidebar should be collapsed
774
+ */
775
+ setCollapsed: (level: RuntimeNavigationLevel, collapsed: boolean) => void;
776
+ }
777
+ /**
778
+ * Sidebar state store.
779
+ *
780
+ * Provides per-navigation-level collapse persistence via localStorage.
781
+ * @example
782
+ * ```tsx
783
+ * const isCollapsed = useSidebarStore((s) => s.isCollapsed(level));
784
+ * const toggle = useSidebarStore((s) => s.toggle);
785
+ *
786
+ * return (
787
+ * <button onClick={() => toggle(level)}>
788
+ * {isCollapsed ? 'Expand' : 'Collapse'}
789
+ * </button>
790
+ * );
791
+ * ```
792
+ */
793
+ declare const useSidebarStore: UseBoundStore<Omit<StoreApi<SidebarState>, "setState" | "persist"> & {
794
+ setState(partial: SidebarState | Partial<SidebarState> | ((state: SidebarState) => SidebarState | Partial<SidebarState>), replace?: false | undefined): unknown;
795
+ setState(state: SidebarState | ((state: SidebarState) => SidebarState), replace: true): unknown;
796
+ persist: {
797
+ setOptions: (options: Partial<PersistOptions<SidebarState, Partial<SidebarState>, unknown>>) => void;
798
+ clearStorage: () => void;
799
+ rehydrate: () => Promise<void> | void;
800
+ hasHydrated: () => boolean;
801
+ onHydrate: (fn: (state: SidebarState) => void) => () => void;
802
+ onFinishHydration: (fn: (state: SidebarState) => void) => () => void;
803
+ getOptions: () => Partial<PersistOptions<SidebarState, Partial<SidebarState>, unknown>>;
804
+ };
805
+ }>;
806
+ //#endregion
807
+ //#region ui/hooks/src/types/widget-layout.d.ts
808
+ /**
809
+ * Focus Context Widget Layout Types
810
+ *
811
+ * Defines the data structures for per-window widget layouts within Focus Contexts.
812
+ * These types describe how widgets are positioned and sized within a focus context.
813
+ *
814
+ * Key distinction from WidgetLayout (from \@makaio/ui-kernel):
815
+ * - The kernel WidgetLayout uses "placements" for the dashboard/project system
816
+ * - FocusContextLayout uses "widgets" for Focus Context-specific layouts
817
+ * @packageDocumentation
818
+ */
819
+ /**
820
+ * Widget size enumeration
821
+ */
822
+ type FocusContextWidgetSize = 'small' | 'medium' | 'large' | 'full-width';
823
+ /**
824
+ * A placed widget within a Focus Context layout
825
+ *
826
+ * Represents a widget instance with its position and size configuration.
827
+ * The widgetId references a WidgetDeclaration from extensions.
828
+ */
829
+ interface PlacedFocusWidget {
830
+ /** Widget definition ID (from plugin's WidgetDeclaration.id) */
831
+ widgetId: string;
832
+ /** Current size of the widget */
833
+ size: FocusContextWidgetSize;
834
+ /** X coordinate for free-form layouts (optional) */
835
+ x?: number;
836
+ /** Y coordinate for free-form layouts (optional) */
837
+ y?: number;
838
+ /** Width in grid units (optional) */
839
+ width?: number;
840
+ /** Height in grid units (optional) */
841
+ height?: number;
842
+ }
843
+ /**
844
+ * Widget layout for a Focus Context
845
+ *
846
+ * Defines how widgets are arranged within a specific focus context.
847
+ * The version field enables future migrations.
848
+ *
849
+ * Note: Named FocusContextLayout to avoid conflict with WidgetLayout from \@makaio/ui-kernel.
850
+ */
851
+ interface FocusContextLayout {
852
+ /** Layout version for migration support */
853
+ version: 1;
854
+ /** Array of placed widgets in this layout */
855
+ widgets: PlacedFocusWidget[];
856
+ }
857
+ /**
858
+ * Helper to create an empty widget layout
859
+ * @returns A new empty layout with no widgets
860
+ */
861
+ declare function createEmptyFocusContextLayout(): FocusContextLayout;
862
+ /**
863
+ * Helper to add a widget to a layout.
864
+ *
865
+ * Duplicate adds (same `widgetId`) are no-ops — the unchanged layout is
866
+ * returned. This prevents non-deterministic state when callers inadvertently
867
+ * re-add a widget that is already present.
868
+ * @param layout - The layout to modify
869
+ * @param widget - The placed widget to add
870
+ * @returns A new layout with the widget added, or the original layout when
871
+ * a widget with the same `widgetId` already exists.
872
+ */
873
+ declare function addWidgetToFocusLayout(layout: FocusContextLayout, widget: PlacedFocusWidget): FocusContextLayout;
874
+ /**
875
+ * Helper to remove a widget from a layout by widget ID
876
+ * @param layout - The layout to modify
877
+ * @param widgetId - The widget ID to remove
878
+ * @returns A new layout with the widget removed, or the original layout when
879
+ * the widget is not present (referential equality on no-op).
880
+ */
881
+ declare function removeWidgetFromFocusLayout(layout: FocusContextLayout, widgetId: string): FocusContextLayout;
882
+ /**
883
+ * Helper to update a widget's size in a layout
884
+ * @param layout - The layout to modify
885
+ * @param widgetId - The widget ID to update
886
+ * @param size - The new size
887
+ * @returns A new layout with the widget updated, or original if widget not found
888
+ */
889
+ declare function updateFocusContextWidgetSize(layout: FocusContextLayout, widgetId: string, size: FocusContextWidgetSize): FocusContextLayout;
890
+ /**
891
+ * Helper to update a widget's position in a layout
892
+ * @param layout - The layout to modify
893
+ * @param widgetId - The widget ID to update
894
+ * @param position - The new position (x, y, width, height)
895
+ * @returns A new layout with the widget updated, or original if widget not found
896
+ */
897
+ declare function updateFocusContextWidgetPosition(layout: FocusContextLayout, widgetId: string, position: Pick<PlacedFocusWidget, 'x' | 'y' | 'width' | 'height'>): FocusContextLayout;
898
+ //#endregion
899
+ //#region ui/hooks/src/state/focus-store.d.ts
900
+ /**
901
+ * Focus context ID - the preset context identifiers
902
+ *
903
+ * These are the built-in focus contexts available in the web/app interface.
904
+ * For cross-package API contracts (slash commands, etc.), use FocusContext from \@makaio/contracts.
905
+ * @deprecated FocusContext is being phased out. This store is kept for behavior parity
906
+ * but should be removed after the focus-context-deprecation cleanup plan lands.
907
+ * TODO(focus-context-deprecation): remove when FocusContext is deleted.
908
+ */
909
+ type FocusContextId = 'onboarding' | 'chat' | 'git' | 'review' | 'planning' | 'settings' | 'dashboard';
910
+ /**
911
+ * Full Focus Context object with widget layout
912
+ *
913
+ * Represents a complete focus context with its widget arrangement.
914
+ * System-provided contexts have preset IDs, while user-created contexts
915
+ * can have custom IDs.
916
+ */
917
+ interface FocusContextObject {
918
+ /** Unique identifier for this focus context */
919
+ id: FocusContextId | string;
920
+ /** Display name for this context */
921
+ name: string;
922
+ /** Whether this is a system preset or user-created */
923
+ isPreset?: boolean;
924
+ /** Widget arrangement for this context (optional) */
925
+ layout?: FocusContextLayout;
926
+ /** Context-aware quick prompt suggestions (optional) */
927
+ quickPromptSuggestions?: string[];
928
+ }
929
+ /**
930
+ * Normalized focus context state - always stores the full object
931
+ * @deprecated FocusContext is being phased out. This store is kept for behavior parity
932
+ * but should be removed after the focus-context-deprecation cleanup plan lands.
933
+ * TODO(focus-context-deprecation): remove when FocusContext is deleted.
934
+ */
935
+ interface FocusState {
936
+ /** Active focus context with full object (web/app only) */
937
+ activeFocus: FocusContextObject;
938
+ /**
939
+ * Set active focus by ID (looks up from presets).
940
+ * @param focusId - Preset focus context ID to activate.
941
+ */
942
+ setActiveFocus: (focusId: FocusContextId) => void;
943
+ /**
944
+ * Set active focus with full context object.
945
+ * @param context - Full focus context object to activate.
946
+ */
947
+ setActiveFocusContext: (context: FocusContextObject) => void;
948
+ /**
949
+ * Update widget layout for current focus context.
950
+ * @param layout - New layout to apply to the active focus context.
951
+ */
952
+ setFocusContextLayout: (layout: FocusContextLayout) => void;
953
+ /** Get widget layout for current focus context */
954
+ getFocusContextLayout: () => FocusContextLayout | undefined;
955
+ }
956
+ /**
957
+ * Focus Store with Zustand state management
958
+ *
959
+ * Uses sessionStorage for tab-scoped persistence.
960
+ * @deprecated FocusContext is being phased out. This store is kept for behavior parity
961
+ * but should be removed after the focus-context-deprecation cleanup plan lands.
962
+ * TODO(focus-context-deprecation): remove when FocusContext is deleted.
963
+ */
964
+ declare const useFocusStore: UseBoundStore<Omit<StoreApi<FocusState>, "setState" | "persist"> & {
965
+ setState(partial: FocusState | Partial<FocusState> | ((state: FocusState) => FocusState | Partial<FocusState>), replace?: false | undefined): unknown;
966
+ setState(state: FocusState | ((state: FocusState) => FocusState), replace: true): unknown;
967
+ persist: {
968
+ setOptions: (options: Partial<PersistOptions<FocusState, Partial<FocusState>, unknown>>) => void;
969
+ clearStorage: () => void;
970
+ rehydrate: () => Promise<void> | void;
971
+ hasHydrated: () => boolean;
972
+ onHydrate: (fn: (state: FocusState) => void) => () => void;
973
+ onFinishHydration: (fn: (state: FocusState) => void) => () => void;
974
+ getOptions: () => Partial<PersistOptions<FocusState, Partial<FocusState>, unknown>>;
975
+ };
976
+ }>;
977
+ //#endregion
978
+ //#region ui/hooks/src/navigation/register-navigation-handler.d.ts
979
+ /**
980
+ * Registers the browser-side navigation handler at priority 10.
981
+ *
982
+ * This handler validates the URL scheme, then performs `window.open()` with
983
+ * target names derived from the URL for singleton/reuse semantics. Only
984
+ * `http:` and `https:` URLs are allowed — `javascript:` and other unsafe
985
+ * schemes throw to prevent XSS via the bus.
986
+ *
987
+ * In Electron, the higher-priority main-process handler (priority 100)
988
+ * intercepts first; this handler acts as the fallback.
989
+ * @param bus - The MakaioBus instance to register on
990
+ * @returns Cleanup function that unregisters the handler
991
+ */
992
+ declare function registerNavigationHandler(bus: IMakaioBus): () => void;
993
+ //#endregion
994
+ //#region ui/hooks/src/pages/use-pages.d.ts
995
+ /**
996
+ * Page definition augmented with navigation action and active state.
997
+ *
998
+ * Returned by {@link usePages}. Guarantees both `execute` and `isActive`
999
+ * are always defined, unlike the base `PageDefinition` where `isActive`
1000
+ * is optional.
1001
+ *
1002
+ * `isActive` is a plain boolean evaluated at render time. Consumers must
1003
+ * not cache `ExecutablePage` objects across renders — re-read from the hook
1004
+ * on each render to get the current active state.
1005
+ */
1006
+ interface ExecutablePage extends Omit<PageDefinition, 'isActive'> {
1007
+ /** Execute the page's navigation action (open overlay or switch focus). */
1008
+ execute: () => void;
1009
+ /**
1010
+ * Whether this page is currently active.
1011
+ *
1012
+ * Evaluated at render time from the current store state. Always defined.
1013
+ * Re-read the hook on each render to observe changes.
1014
+ */
1015
+ isActive: boolean;
1016
+ }
1017
+ /**
1018
+ * Convenience hook combining page definitions with navigation actions.
1019
+ *
1020
+ * Returns page definitions with an execute function for each:
1021
+ * - Peek mode pages: execute opens the page overlay
1022
+ * - Switch mode pages: execute changes the focus context (if focusContext is set)
1023
+ *
1024
+ * Used by sidebar, command palette, and other navigation UI to handle
1025
+ * page activation consistently.
1026
+ * @param options - Filter options (mode, level, group, includeHidden)
1027
+ * @returns Pages with execute and isActive callbacks
1028
+ * @example
1029
+ * ```typescript
1030
+ * function Sidebar() {
1031
+ * const peekPages = usePages({ mode: 'peek' });
1032
+ * const switchPages = usePages({ mode: 'switch' });
1033
+ *
1034
+ * return (
1035
+ * <aside>
1036
+ * <section>
1037
+ * <h3>Navigate</h3>
1038
+ * {switchPages.map(page => (
1039
+ * <button key={page.id} onClick={page.execute}>
1040
+ * {page.name}
1041
+ * </button>
1042
+ * ))}
1043
+ * </section>
1044
+ * <section>
1045
+ * <h3>Quick Access</h3>
1046
+ * {peekPages.map(page => (
1047
+ * <button key={page.id} onClick={page.execute}>
1048
+ * {page.name}
1049
+ * </button>
1050
+ * ))}
1051
+ * </section>
1052
+ * </aside>
1053
+ * );
1054
+ * }
1055
+ * ```
1056
+ */
1057
+ declare function usePages(options?: PageDefinitionQueryOptions): ExecutablePage[];
1058
+ //#endregion
1059
+ //#region ui/hooks/src/navigation/group-pages.d.ts
1060
+ /**
1061
+ * Synthetic config created for navigation groups that appear in page data
1062
+ * but have no entry in the provided `groupConfigs` array.
1063
+ *
1064
+ * Unlike {@link NavigationGroupConfig}, the `id` here is an arbitrary string
1065
+ * because the group was not declared in the navigation group registry.
1066
+ */
1067
+ interface SyntheticGroupConfig {
1068
+ /** Arbitrary string identifier from the page's `group` field */
1069
+ id: string;
1070
+ /** Label — falls back to the raw group id string */
1071
+ label: string;
1072
+ /** Sort order — unknown groups are appended at the end */
1073
+ order: number;
1074
+ }
1075
+ /**
1076
+ * A resolved group config is either a declared {@link NavigationGroupConfig}
1077
+ * (known groups) or a {@link SyntheticGroupConfig} (unknown groups whose id
1078
+ * does not appear in the provided configs).
1079
+ */
1080
+ type ResolvedGroupConfig = NavigationGroupConfig | SyntheticGroupConfig;
1081
+ /**
1082
+ * Grouped pages result.
1083
+ */
1084
+ interface GroupedPages {
1085
+ /** Navigation group configuration (declared or synthetic) */
1086
+ config: ResolvedGroupConfig;
1087
+ /** Pages in this group */
1088
+ pages: ExecutablePage[];
1089
+ }
1090
+ /**
1091
+ * Group pages by NavigationGroup with config-driven ordering.
1092
+ *
1093
+ * Pages are organized by their `group` field. Pages without a group are excluded.
1094
+ * Groups are ordered according to the provided configs. Unknown groups
1095
+ * (groups not in configs) are appended at the end in the order they're encountered.
1096
+ *
1097
+ * Each group in the result includes its config and matching pages.
1098
+ * Groups with no matching pages are still included (with empty pages array).
1099
+ * @param pages - Pages to group
1100
+ * @param groupConfigs - Navigation group configurations for ordering
1101
+ * @returns Array of grouped pages, ordered by config
1102
+ * @example
1103
+ * ```typescript
1104
+ * const pages = usePages();
1105
+ * const grouped = groupPagesByNavigationGroup(pages, defaultNavigationGroups);
1106
+ *
1107
+ * grouped.forEach(({ config, pages }) => {
1108
+ * console.log(`${config.label}:`, pages.map(p => p.name));
1109
+ * });
1110
+ * // Navigate: ['Dashboard', 'Chat', 'Git']
1111
+ * // Quick Access: ['Settings', 'Projects', 'Sessions']
1112
+ * ```
1113
+ */
1114
+ declare function groupPagesByNavigationGroup(pages: ExecutablePage[], groupConfigs: ReadonlyArray<NavigationGroupConfig>): GroupedPages[];
1115
+ //#endregion
1116
+ //#region ui/hooks/src/pages/use-page-definitions.d.ts
1117
+ /**
1118
+ * Reactive hook for querying page definitions.
1119
+ *
1120
+ * Subscribes to registry changes and automatically updates when pages
1121
+ * are registered or unregistered. Returns filtered and sorted results
1122
+ * based on query options.
1123
+ * @param options - Filter by mode, level, group, or visibility
1124
+ * @returns Filtered, sorted page definitions
1125
+ * @example
1126
+ * ```typescript
1127
+ * function Sidebar() {
1128
+ * // Get all peek mode pages for Quick Access section
1129
+ * const peekPages = usePageDefinitions({ mode: 'peek' });
1130
+ *
1131
+ * // Get all switch mode pages for Navigate section
1132
+ * const switchPages = usePageDefinitions({ mode: 'switch' });
1133
+ *
1134
+ * return (
1135
+ * <aside>
1136
+ * <section>
1137
+ * <h3>Navigate</h3>
1138
+ * {switchPages.map(page => <SidebarItem key={page.id} page={page} />)}
1139
+ * </section>
1140
+ * <section>
1141
+ * <h3>Quick Access</h3>
1142
+ * {peekPages.map(page => <SidebarItem key={page.id} page={page} />)}
1143
+ * </section>
1144
+ * </aside>
1145
+ * );
1146
+ * }
1147
+ * ```
1148
+ */
1149
+ declare function usePageDefinitions(options?: PageDefinitionQueryOptions): PageDefinition[];
1150
+ //#endregion
1151
+ //#region ui/hooks/src/pages/use-window-id-pages.d.ts
1152
+ /**
1153
+ * Returns page definitions filtered by the current Electron window registration ID.
1154
+ *
1155
+ * Wraps {@link usePages} with an additional window ID filter derived from
1156
+ * {@link useWindowContext}. Pages that declare a `windowId` constraint are
1157
+ * only included when the constraint matches the current window. Pages without
1158
+ * a `windowId` constraint are always included.
1159
+ *
1160
+ * When no window ID is set (standalone browser), all pages pass through
1161
+ * unfiltered so the sidebar behaves identically to the pre-Electron behaviour.
1162
+ * @param options - Query options forwarded to {@link usePages} (mode, level, group, surface, includeHidden)
1163
+ * @returns Pages with execute and isActive callbacks, filtered for the current window
1164
+ * @example
1165
+ * ```typescript
1166
+ * function Sidebar() {
1167
+ * const level = useNavigationLevel();
1168
+ * const surface = window.__MAKAIO_MOBILE__ ? 'mobile' : 'web';
1169
+ * const pages = useWindowIdPages({ level, surface });
1170
+ *
1171
+ * // pages only contains entries valid for this Electron window
1172
+ * }
1173
+ * ```
1174
+ */
1175
+ declare function useWindowIdPages(options?: PageDefinitionQueryOptions): ExecutablePage[];
1176
+ //#endregion
1177
+ //#region ui/hooks/src/pages/use-page-component.d.ts
1178
+ /**
1179
+ * Resolve a lazy-loaded page component by ID.
1180
+ *
1181
+ * Returns the component wrapped in React.lazy() for Suspense support,
1182
+ * along with the full page definition for metadata access.
1183
+ *
1184
+ * Memoized per pageId to avoid re-creating lazy components on every render.
1185
+ * @param pageId - Page identifier, or `null` when no page is active.
1186
+ * A `null` value is treated the same as "not found" and returns `undefined`.
1187
+ * @param reloadKey - Optional key that forces React.lazy wrapper recreation
1188
+ * for retrying failed dynamic imports.
1189
+ * @returns Object with Component and definition, or undefined if not registered
1190
+ * or if pageId is null
1191
+ * @example
1192
+ * ```typescript
1193
+ * function PageOverlayView() {
1194
+ * const activePageId = usePageOverlayStore((s) => s.activePageId);
1195
+ * const resolved = usePageComponent(activePageId);
1196
+ *
1197
+ * if (!resolved) {
1198
+ * return null;
1199
+ * }
1200
+ *
1201
+ * const { Component, definition } = resolved;
1202
+ *
1203
+ * return (
1204
+ * <PageOverlay title={definition.name}>
1205
+ * <Suspense fallback={<LoadingSpinner />}>
1206
+ * <Component />
1207
+ * </Suspense>
1208
+ * </PageOverlay>
1209
+ * );
1210
+ * }
1211
+ * ```
1212
+ */
1213
+ declare function usePageComponent(pageId: string | null, reloadKey?: number): {
1214
+ Component: ComponentType<PageComponentProps>;
1215
+ definition: PageDefinition;
1216
+ } | undefined;
1217
+ //#endregion
1218
+ //#region ui/hooks/src/provider-config/selectors.d.ts
1219
+ /**
1220
+ * UI-facing provider-config summary enriched with provider definition metadata.
1221
+ */
1222
+ interface ProviderConfigSummaryView extends ProviderConfigFileRecord {
1223
+ /** Supported wire protocols derived from the backing provider definition. */
1224
+ supportedProtocols: ProtocolId[];
1225
+ }
1226
+ /**
1227
+ * UI-facing provider-config detail enriched with provider definition metadata.
1228
+ */
1229
+ interface ProviderConfigDetailView extends ProviderConfigSummaryView {
1230
+ /** Credential refs resolved through the runtime context seam. */
1231
+ credentialRefs?: Record<string, CredentialRef>;
1232
+ }
1233
+ /**
1234
+ * List provider-config summaries enriched for UI consumption.
1235
+ * @param bus - Bus used to load subsystem configs and provider definitions.
1236
+ * @param options - Optional list filter.
1237
+ * @returns Enriched provider-config summaries.
1238
+ */
1239
+ declare function listProviderConfigSummaryViews(bus: IMakaioBus, options?: {
1240
+ enabled?: boolean;
1241
+ }): Promise<ProviderConfigSummaryView[]>;
1242
+ /**
1243
+ * Load one provider-config detail view enriched for UI consumption.
1244
+ * @param bus - Bus used to load subsystem config, provider metadata, and runtime context.
1245
+ * @param id - Provider-config identifier.
1246
+ * @returns Enriched detail view or `null` when missing.
1247
+ */
1248
+ declare function getProviderConfigDetailView(bus: IMakaioBus, id: string): Promise<ProviderConfigDetailView | null>;
1249
+ //#endregion
1250
+ //#region ui/hooks/src/onboarding/scan-onboarding-adapters.d.ts
1251
+ /**
1252
+ * Client-grouped scan result for onboarding.
1253
+ *
1254
+ * One record is emitted per client. The `adapterNames` array lists all adapter
1255
+ * driver names belonging to that client so callers can enable them in bulk or
1256
+ * individually via {@link SettingsSubjects.adapter.setEnabled}.
1257
+ */
1258
+ interface OnboardingClient {
1259
+ /** Stable client identifier (e.g., 'claude-code'). */
1260
+ clientId: string;
1261
+ /** Human-readable display name (e.g., 'Claude Code'). */
1262
+ name: string;
1263
+ /** CLI binary name used for detection. */
1264
+ binary: string;
1265
+ /** Whether the CLI binary was detected on the system. */
1266
+ found: boolean;
1267
+ /** Detected CLI version, if found. */
1268
+ version?: string;
1269
+ /**
1270
+ * Warning message returned by the canonical client scan service.
1271
+ */
1272
+ warningMessage?: string;
1273
+ /**
1274
+ * Adapter driver names belonging to this client
1275
+ * (e.g., `['claude-agent-sdk', 'claude-code-cli']`).
1276
+ */
1277
+ adapterNames: string[];
1278
+ }
1279
+ /**
1280
+ * Enriched adapter metadata with canonical client scan results.
1281
+ *
1282
+ * One record is emitted per adapter (not per client). A single client binary
1283
+ * may map to multiple adapters (e.g., `claude` → `claude-agent-sdk` and
1284
+ * `claude-code-cli`), so the caller receives one row per adapter with the real
1285
+ * `adapterName` that the settings API understands.
1286
+ */
1287
+ interface OnboardingAdapter {
1288
+ /**
1289
+ * Real adapter driver name as registered with the settings API.
1290
+ * Used by AdaptersStep to call {@link SettingsSubjects.adapter.setEnabled}.
1291
+ */
1292
+ adapterName: string;
1293
+ /** Display name for UI */
1294
+ displayName: string;
1295
+ /** CLI binary name */
1296
+ binary: string;
1297
+ /** Whether CLI binary was detected */
1298
+ found: boolean;
1299
+ /** Detected version (if found) */
1300
+ version?: string;
1301
+ /**
1302
+ * Warning message returned by the canonical client scan service.
1303
+ */
1304
+ warningMessage?: string;
1305
+ }
1306
+ /**
1307
+ * Shared scan context built from bus data.
1308
+ *
1309
+ * Captures the resolved clients, adapter index, and canonical scan results so both
1310
+ * {@link scanOnboardingAdapters} and {@link scanOnboardingClients} can build
1311
+ * their respective output shapes from the same underlying data.
1312
+ */
1313
+ interface ScanContext {
1314
+ /** Enabled clients enriched with canonical scan results. */
1315
+ scannedClients: Array<{
1316
+ id: string;
1317
+ name: string;
1318
+ binary: string;
1319
+ found: boolean;
1320
+ version?: string;
1321
+ warningMessage?: string;
1322
+ }>;
1323
+ /** Adapter names indexed by clientId. */
1324
+ adaptersByClientId: Map<string, string[]>;
1325
+ }
1326
+ /**
1327
+ * Fetches clients and adapters from the bus, reuses `client.scan` for the
1328
+ * canonical scan result, and returns the shared context used by both public
1329
+ * scan functions.
1330
+ *
1331
+ * Returns `null` when there are no scannable clients (callers should return `[]`).
1332
+ * @returns Populated scan context, or null when no scannable clients exist
1333
+ */
1334
+ declare function buildScanContext(): Promise<ScanContext | null>;
1335
+ /**
1336
+ * Fetches all CLI-backed clients from the client storage bus, reuses the
1337
+ * canonical `client.scan` results, and returns enriched adapter records
1338
+ * including found/version/warningMessage data.
1339
+ *
1340
+ * This is a pure async function — it carries no React state. Scan results are
1341
+ * owned by the flow orchestrator ({@link OnboardingFlowState.scanAdapters}).
1342
+ *
1343
+ * Prefer {@link scanOnboarding} when both adapter and client results are needed
1344
+ * to avoid issuing duplicate bus requests.
1345
+ * @returns Enriched adapter list with canonical client scan results
1346
+ * @example
1347
+ * ```typescript
1348
+ * const adapters = await scanOnboardingAdapters();
1349
+ * ```
1350
+ */
1351
+ declare function scanOnboardingAdapters(): Promise<OnboardingAdapter[]>;
1352
+ /**
1353
+ * Scans for installed CLI-backed clients and returns client-grouped results.
1354
+ *
1355
+ * Unlike {@link scanOnboardingAdapters} which emits one row per adapter,
1356
+ * this function emits one row per client with an `adapterNames` array
1357
+ * listing all adapter driver names belonging to that client.
1358
+ *
1359
+ * Prefer {@link scanOnboarding} when both adapter and client results are needed
1360
+ * to avoid issuing duplicate bus requests.
1361
+ * @returns Client-grouped scan results
1362
+ */
1363
+ declare function scanOnboardingClients(): Promise<OnboardingClient[]>;
1364
+ /**
1365
+ * Run both adapter and client scans using a single shared scan context.
1366
+ *
1367
+ * Avoids duplicate bus requests that would occur when calling
1368
+ * {@link scanOnboardingAdapters} and {@link scanOnboardingClients} independently.
1369
+ * @returns Combined scan results for adapters and clients
1370
+ */
1371
+ declare function scanOnboarding(): Promise<{
1372
+ adapters: OnboardingAdapter[];
1373
+ clients: OnboardingClient[];
1374
+ }>;
1375
+ //#endregion
1376
+ //#region ui/hooks/src/onboarding/types.d.ts
1377
+ /**
1378
+ * Health check result for a single adapter.
1379
+ */
1380
+ interface HealthCheckResult {
1381
+ /** Whether the health check passed, is in progress, or failed. */
1382
+ status: 'pending' | 'success' | 'error';
1383
+ /** Human-readable message providing context for the status. */
1384
+ message?: string;
1385
+ /** Time taken to complete the check, in milliseconds. */
1386
+ durationMs?: number;
1387
+ }
1388
+ /**
1389
+ * Runtime state shared across all onboarding steps.
1390
+ *
1391
+ * Owned by the orchestrator and passed as controlled props to each step.
1392
+ * Treat as immutable inside step components — use {@link OnboardingFlowActions} to mutate.
1393
+ */
1394
+ interface OnboardingFlowState {
1395
+ /** Adapter list from the bus, refreshed after enable/load operations. */
1396
+ adapters: ReadonlyArray<AdapterInfo>;
1397
+ /** Adapter names the user has enabled during this flow. */
1398
+ enabledAdapterNames: ReadonlySet<string>;
1399
+ /** Health check results keyed by adapter name. */
1400
+ healthCheckResults: ReadonlyMap<string, HealthCheckResult>;
1401
+ /** Log import mode selections keyed by adapter name. */
1402
+ logImportSelections: ReadonlyMap<string, LogImportMode>;
1403
+ /** Default agent selection set during the preferences step. */
1404
+ defaultAgentSelection: AgentSelection | null;
1405
+ /** Full extension list from the coordinator, fetched on mount by the orchestrator. */
1406
+ extensions: ReadonlyArray<ExtensionInfo>;
1407
+ /** Per-plugin enabled toggle state, keyed by plugin name. */
1408
+ pluginEnabledStates: ReadonlyMap<string, boolean>;
1409
+ /** CLI adapter scan results, populated after {@link OnboardingFlowActions.scan} completes. */
1410
+ scanAdapters: ReadonlyArray<OnboardingAdapter>;
1411
+ /** Whether a CLI adapter scan is currently in progress. */
1412
+ isScanning: boolean;
1413
+ /** Error from the most recent {@link OnboardingFlowActions.scan} call, or null. */
1414
+ scanError: Error | null;
1415
+ /** Client-grouped scan results, populated after {@link OnboardingFlowActions.scan} completes. */
1416
+ scanClients: ReadonlyArray<OnboardingClient>;
1417
+ /** Client IDs selected by the user in step 2. */
1418
+ selectedClientIds: ReadonlySet<string>;
1419
+ /** Provider configs created during onboarding step 3. */
1420
+ providerConfigs: ReadonlyArray<ProviderConfigSummaryView>;
1421
+ /** Adapter-provider bindings created during onboarding step 4. */
1422
+ adapterProviderBindings: ReadonlyArray<BindingRecord>;
1423
+ }
1424
+ /**
1425
+ * Host/UI-facing provider-config draft accepted by onboarding actions.
1426
+ *
1427
+ * Host UI may collect plaintext credentials interactively before converting
1428
+ * them into stored credential refs through the host-owned create bridge.
1429
+ */
1430
+ interface OnboardingProviderConfigDraft {
1431
+ /** Provider definition identifier. */
1432
+ definitionId: string;
1433
+ /** Optional display name. */
1434
+ name?: string;
1435
+ /** Plaintext credentials captured by a host step. */
1436
+ credentials?: Record<string, string>;
1437
+ /** Pre-resolved credential refs for externally managed credentials. */
1438
+ credentialRefs?: Record<string, CredentialRef>;
1439
+ /** Optional endpoint overrides. */
1440
+ endpointOverrides?: ProtocolEndpoints;
1441
+ /** Optional per-model visibility overrides. */
1442
+ modelVisibility?: Record<string, ModelVisibility$1>;
1443
+ /** Optional default visibility mode. */
1444
+ modelFilterMode?: ModelFilterMode$1;
1445
+ }
1446
+ /**
1447
+ * Host-owned provider-config creator registered into the onboarding hook.
1448
+ *
1449
+ * This keeps plaintext credential capture on the host side while allowing
1450
+ * the framework-owned orchestrator to delegate provider creation through a
1451
+ * narrow inversion-of-control seam.
1452
+ */
1453
+ type OnboardingProviderConfigCreator = (bus: IMakaioBus, input: OnboardingProviderConfigDraft) => Promise<string>;
1454
+ /**
1455
+ * Explicit registration lifecycle for the onboarding create seam.
1456
+ */
1457
+ interface OnboardingProviderConfigRegistration {
1458
+ /**
1459
+ * Register the host-owned create bridge.
1460
+ * @param creator - Host-owned create bridge.
1461
+ * @returns Cleanup that unregisters this creator when still current.
1462
+ */
1463
+ registerCreateProviderConfig: (creator: OnboardingProviderConfigCreator) => () => void;
1464
+ /**
1465
+ * Unregister the current create bridge when it matches the provided creator.
1466
+ * @param creator - Host-owned create bridge.
1467
+ */
1468
+ unregisterCreateProviderConfig: (creator: OnboardingProviderConfigCreator) => void;
1469
+ }
1470
+ /**
1471
+ * Mutators for onboarding flow state, called by step components.
1472
+ *
1473
+ * All async methods resolve when the operation is complete.
1474
+ * Errors propagate as rejected promises — callers are responsible for handling them.
1475
+ */
1476
+ interface OnboardingFlowActions {
1477
+ /**
1478
+ * Enable an adapter by name.
1479
+ * @param adapterName - The adapter driver name to enable.
1480
+ */
1481
+ enableAdapter: (adapterName: string) => Promise<void>;
1482
+ /**
1483
+ * Disable an adapter by name.
1484
+ * @param adapterName - The adapter driver name to disable.
1485
+ */
1486
+ disableAdapter: (adapterName: string) => Promise<void>;
1487
+ /**
1488
+ * Run the health check for an adapter and record the result.
1489
+ * @param adapterName - The adapter driver name to check.
1490
+ * @returns The health check result.
1491
+ */
1492
+ runHealthCheck: (adapterName: string) => Promise<HealthCheckResult>;
1493
+ /**
1494
+ * Set the log import mode for an adapter.
1495
+ * @param adapterName - The adapter driver name.
1496
+ * @param mode - The import mode to apply.
1497
+ */
1498
+ setLogImportMode: (adapterName: string, mode: LogImportMode) => void;
1499
+ /**
1500
+ * Set or clear the default agent selection.
1501
+ * @param selection - The agent selection to persist, or null to clear.
1502
+ */
1503
+ setDefaultAgent: (selection: AgentSelection | null) => void;
1504
+ /**
1505
+ * Re-fetch the adapter list from the bus.
1506
+ */
1507
+ refreshAdapterList: () => Promise<void>;
1508
+ /**
1509
+ * Scan for installed CLI adapters and populate {@link OnboardingFlowState.scanAdapters}.
1510
+ * Sets {@link OnboardingFlowState.isScanning} during the operation.
1511
+ * Rejects with the scan error (also stored in {@link OnboardingFlowState.scanError}).
1512
+ */
1513
+ scan: () => Promise<void>;
1514
+ /**
1515
+ * Optimistically toggle a plugin's enabled state and persist the change.
1516
+ * Fire-and-forget: bus errors are logged but do not surface to the UI.
1517
+ * @param pluginName - The plugin name to toggle.
1518
+ * @param enabled - The new desired enabled state.
1519
+ */
1520
+ togglePlugin: (pluginName: string, enabled: boolean) => void;
1521
+ /**
1522
+ * Select a client in the clients step.
1523
+ * @param clientId - The client identifier to select.
1524
+ */
1525
+ selectClient: (clientId: string) => void;
1526
+ /**
1527
+ * Deselect a client in the clients step.
1528
+ * @param clientId - The client identifier to deselect.
1529
+ */
1530
+ deselectClient: (clientId: string) => void;
1531
+ /**
1532
+ * Create a provider config and add it to the onboarding state.
1533
+ * @param input - The provider config creation input.
1534
+ * @returns The ID of the created provider config.
1535
+ */
1536
+ createProviderConfig: (input: OnboardingProviderConfigDraft) => Promise<string>;
1537
+ /**
1538
+ * Delete a provider config created during onboarding.
1539
+ * @param id - The provider config ID to delete.
1540
+ */
1541
+ deleteProviderConfig: (id: string) => Promise<void>;
1542
+ /**
1543
+ * Bind a provider config to an adapter.
1544
+ * @param adapterName - The adapter name to bind to.
1545
+ * @param providerConfigId - The provider config to bind.
1546
+ */
1547
+ bindProvider: (adapterName: string, providerConfigId: string) => Promise<void>;
1548
+ /**
1549
+ * Unbind a provider config from an adapter.
1550
+ * @param adapterName - The adapter name to unbind from.
1551
+ * @param providerConfigId - The provider config to unbind.
1552
+ */
1553
+ unbindProvider: (adapterName: string, providerConfigId: string) => Promise<void>;
1554
+ /**
1555
+ * Set the default provider for an adapter.
1556
+ * @param adapterName - The adapter name.
1557
+ * @param providerConfigId - The provider config to make default.
1558
+ */
1559
+ setDefaultProvider: (adapterName: string, providerConfigId: string) => Promise<void>;
1560
+ /**
1561
+ * Refresh provider configs from the bus.
1562
+ */
1563
+ refreshProviderConfigs: () => Promise<void>;
1564
+ /**
1565
+ * Refresh adapter-provider bindings from the bus for a specific adapter.
1566
+ * @param adapterName - The adapter name to refresh bindings for.
1567
+ */
1568
+ refreshBindings: (adapterName: string) => Promise<void>;
1569
+ }
1570
+ /**
1571
+ * Concrete step props for the runtime onboarding flow.
1572
+ *
1573
+ * The kernel owns navigation-only step metadata; the hooks tier composes in
1574
+ * the live flow state and action surface that the orchestrator injects at
1575
+ * render time.
1576
+ */
1577
+ type OnboardingStepProps = OnboardingStepProps$1 & {
1578
+ /** Current snapshot of the shared flow state. */flowState: OnboardingFlowState; /** Mutators for flow state. */
1579
+ actions: OnboardingFlowActions;
1580
+ };
1581
+ /**
1582
+ * Concrete step definition for the runtime onboarding flow.
1583
+ *
1584
+ * This narrows the kernel step contract to the actual prop shape that host
1585
+ * and framework onboarding steps receive at runtime.
1586
+ */
1587
+ type OnboardingStepDefinition = Omit<OnboardingStepDefinition$1, 'component'> & {
1588
+ component: ComponentLike<OnboardingStepProps>;
1589
+ };
1590
+ /**
1591
+ * Options passed to {@link useOnboardingFlow}.
1592
+ */
1593
+ interface UseOnboardingFlowOptions {
1594
+ /** Adapter list, client list, and plugin list for condition evaluation. */
1595
+ context: OnboardingContext;
1596
+ /** Called when onboarding flow is completed. */
1597
+ onComplete: () => void;
1598
+ /** Called when onboarding flow is skipped. */
1599
+ onSkip: () => void;
1600
+ }
1601
+ /**
1602
+ * Return value of {@link useOnboardingFlow}.
1603
+ */
1604
+ interface UseOnboardingFlowResult {
1605
+ /** Currently active steps (filtered by conditions, frozen at mount). */
1606
+ activeSteps: ReadonlyArray<OnboardingStepDefinition>;
1607
+ /** Index of the current step. */
1608
+ currentStepIndex: number;
1609
+ /** The current step definition. */
1610
+ currentStep: OnboardingStepDefinition;
1611
+ /** Flow state shared across all steps. */
1612
+ flowState: OnboardingFlowState;
1613
+ /** Actions for step components to call. */
1614
+ actions: OnboardingFlowActions;
1615
+ /** Navigate to the next step. */
1616
+ goNext: () => void;
1617
+ /** Navigate to the previous step. */
1618
+ goBack: () => void;
1619
+ /** Persist accumulated selections and skip the remaining onboarding steps. */
1620
+ skip: () => Promise<void>;
1621
+ /** Persist flow selections and complete the flow (call only from the final step). */
1622
+ complete: () => Promise<void>;
1623
+ }
1624
+ /**
1625
+ * Framework-owned onboarding hook plus its explicit host registration seam.
1626
+ */
1627
+ type UseOnboardingFlowHook = ((options: UseOnboardingFlowOptions) => UseOnboardingFlowResult) & OnboardingProviderConfigRegistration;
1628
+ //#endregion
1629
+ //#region ui/hooks/src/onboarding/register-core-onboarding-steps.d.ts
1630
+ /**
1631
+ * Step components required for core onboarding registration.
1632
+ *
1633
+ * Pass lazy-loaded components from the views package to keep the framework
1634
+ * free of any direct view dependency:
1635
+ * @example
1636
+ * ```tsx
1637
+ * import { lazy } from 'react';
1638
+ *
1639
+ * const cleanup = registerCoreOnboardingSteps({
1640
+ * WelcomeStep: lazy(() => import('../OnboardingView/steps/WelcomeStep')),
1641
+ * ClientsStep: lazy(() => import('../OnboardingView/steps/ClientsStep')),
1642
+ * ProvidersStep: lazy(() => import('../OnboardingView/steps/ProvidersStep')),
1643
+ * AdaptersStep: lazy(() => import('../OnboardingView/steps/AdaptersStep')),
1644
+ * PreferencesStep: lazy(() => import('../OnboardingView/steps/PreferencesStep')),
1645
+ * PluginsStep: lazy(() => import('../OnboardingView/steps/PluginsStep')),
1646
+ * DoneStep: lazy(() => import('../OnboardingView/steps/DoneStep')),
1647
+ * });
1648
+ * ```
1649
+ */
1650
+ interface CoreOnboardingStepComponents {
1651
+ /** Welcome step component (always shown, order 10). */
1652
+ WelcomeStep: ComponentLike<OnboardingStepProps>;
1653
+ /** Clients selection step component (always shown, order 20). */
1654
+ ClientsStep: ComponentLike<OnboardingStepProps>;
1655
+ /** Provider config step component (always shown, order 25). */
1656
+ ProvidersStep: ComponentLike<OnboardingStepProps>;
1657
+ /** Tools (adapters) setup step component (always shown, order 30). */
1658
+ AdaptersStep: ComponentLike<OnboardingStepProps>;
1659
+ /** Preferences step component (always shown after adapters, order 35). */
1660
+ PreferencesStep: ComponentLike<OnboardingStepProps>;
1661
+ /** Plugins step component (shown when extensions are discovered, order 40). */
1662
+ PluginsStep: ComponentLike<OnboardingStepProps>;
1663
+ /** Final confirmation step component (always shown, order 50). */
1664
+ DoneStep: ComponentLike<OnboardingStepProps>;
1665
+ }
1666
+ /**
1667
+ * Register the seven core onboarding steps.
1668
+ *
1669
+ * Each step is assigned an order value in the range 10–50, leaving 100+ for
1670
+ * plugin-provided steps. Preferences is always included because adapter
1671
+ * enablement is mutable flow state; the Plugins step is conditioned on
1672
+ * extensions being discovered.
1673
+ * @param components - Step components injected from the views package
1674
+ * @returns Cleanup function that unregisters all core steps when called
1675
+ * @example
1676
+ * ```tsx
1677
+ * useEffect(() => {
1678
+ * const cleanup = registerCoreOnboardingSteps({
1679
+ * WelcomeStep: lazy(() => import('../OnboardingView/steps/WelcomeStep')),
1680
+ * ClientsStep: lazy(() => import('../OnboardingView/steps/ClientsStep')),
1681
+ * ProvidersStep: lazy(() => import('../OnboardingView/steps/ProvidersStep')),
1682
+ * AdaptersStep: lazy(() => import('../OnboardingView/steps/AdaptersStep')),
1683
+ * PreferencesStep: lazy(() => import('../OnboardingView/steps/PreferencesStep')),
1684
+ * PluginsStep: lazy(() => import('../OnboardingView/steps/PluginsStep')),
1685
+ * DoneStep: lazy(() => import('../OnboardingView/steps/DoneStep')),
1686
+ * });
1687
+ * return cleanup;
1688
+ * }, []);
1689
+ * ```
1690
+ */
1691
+ declare function registerCoreOnboardingSteps(components: CoreOnboardingStepComponents): () => void;
1692
+ //#endregion
1693
+ //#region ui/hooks/src/onboarding/skip-flag.d.ts
1694
+ /**
1695
+ * Shared onboarding skip-flag helpers.
1696
+ *
1697
+ * Centralizes localStorage access so the first-run gate and onboarding flow
1698
+ * completion use the same persistence contract.
1699
+ * @packageDocumentation
1700
+ */
1701
+ /**
1702
+ * Read the persisted onboarding skip flag.
1703
+ * Storage failures are treated as "not skipped".
1704
+ * @returns True when onboarding has been skipped in this browser profile
1705
+ */
1706
+ declare function getOnboardingSkipped(): boolean;
1707
+ /**
1708
+ * Persist the onboarding skip flag.
1709
+ * Storage failures are intentionally ignored so callers can still continue.
1710
+ */
1711
+ declare function setOnboardingSkipped(): void;
1712
+ /**
1713
+ * Clear the onboarding skip flag.
1714
+ * Storage failures are intentionally ignored so callers can still continue.
1715
+ */
1716
+ declare function clearOnboardingSkipped(): void;
1717
+ /**
1718
+ * Check whether onboarding has been completed.
1719
+ * @returns True when the completed flag is set in localStorage
1720
+ */
1721
+ declare function getOnboardingCompleted(): boolean;
1722
+ /** Mark onboarding as completed persistently. */
1723
+ declare function setOnboardingCompleted(): void;
1724
+ /** Clear the onboarding completed flag. */
1725
+ declare function clearOnboardingCompleted(): void;
1726
+ //#endregion
1727
+ //#region ui/hooks/src/onboarding/use-onboarding-flow.d.ts
1728
+ declare const useOnboardingFlow: UseOnboardingFlowHook;
1729
+ //#endregion
1730
+ //#region ui/hooks/src/onboarding/plugin-persistence.d.ts
1731
+ interface PersistPluginEnabledResult {
1732
+ id: string;
1733
+ }
1734
+ /**
1735
+ * Persisted extension config entry cached in a ref to preserve config blobs
1736
+ * across enabled-state toggles without driving re-renders.
1737
+ */
1738
+ interface PersistedExtensionConfigEntry {
1739
+ /** Stable storage row identifier */
1740
+ id: string;
1741
+ /** Existing extension config payload that must be preserved across enabled toggles */
1742
+ config: Record<string, unknown> | undefined;
1743
+ }
1744
+ /**
1745
+ * Persist only the enabled state for a plugin config row.
1746
+ *
1747
+ * This uses the storage layer's atomic `setEnabled` RPC instead of
1748
+ * reconstructing a partial `set` payload client-side. Cached config blobs stay
1749
+ * available in-memory for future full writes, but enabled toggles no longer
1750
+ * need to round-trip or risk clearing them.
1751
+ * @param pluginName - Registry name of the plugin
1752
+ * @param enabled - Desired enabled state
1753
+ * @param cache - Ref map of persisted config entries
1754
+ * @param bus - Bus instance used to dispatch the set request
1755
+ * @returns Persisted row identifier for the extension config record
1756
+ */
1757
+ declare function persistPluginEnabled(pluginName: string, enabled: boolean, cache: Map<string, PersistedExtensionConfigEntry>, bus: IMakaioBus): Promise<PersistPluginEnabledResult>;
1758
+ //#endregion
1759
+ //#region ui/hooks/src/state/app-context-store.d.ts
1760
+ interface AppContextState {
1761
+ /** Default agent selection for new windows (null = use system default) */
1762
+ defaultSelection: AgentSelection | null;
1763
+ /** Set the default selection for new windows */
1764
+ setDefaultSelection: (selection: AgentSelection | null) => void;
1765
+ }
1766
+ /**
1767
+ * Cross-tab application context store.
1768
+ *
1769
+ * Use this for user-level defaults that should:
1770
+ * - Persist across browser sessions
1771
+ * - Apply to newly opened windows/tabs
1772
+ * - Be overridable per-window via useSelectionStore
1773
+ * @example
1774
+ * ```tsx
1775
+ * const { defaultSelection, setDefaultSelection } = useAppContext();
1776
+ *
1777
+ * // Update default for new windows
1778
+ * setDefaultSelection({ kind: 'adapter', adapterName: 'claude-code', model: 'opus' });
1779
+ * ```
1780
+ */
1781
+ declare const useAppContext: UseBoundStore<Omit<StoreApi<AppContextState>, "setState" | "persist"> & {
1782
+ setState(partial: AppContextState | Partial<AppContextState> | ((state: AppContextState) => AppContextState | Partial<AppContextState>), replace?: false | undefined): unknown;
1783
+ setState(state: AppContextState | ((state: AppContextState) => AppContextState), replace: true): unknown;
1784
+ persist: {
1785
+ setOptions: (options: Partial<PersistOptions<AppContextState, Partial<AppContextState>, unknown>>) => void;
1786
+ clearStorage: () => void;
1787
+ rehydrate: () => Promise<void> | void;
1788
+ hasHydrated: () => boolean;
1789
+ onHydrate: (fn: (state: AppContextState) => void) => () => void;
1790
+ onFinishHydration: (fn: (state: AppContextState) => void) => () => void;
1791
+ getOptions: () => Partial<PersistOptions<AppContextState, Partial<AppContextState>, unknown>>;
1792
+ };
1793
+ }>;
1794
+ //#endregion
1795
+ //#region ui/hooks/src/state/provider-store.d.ts
1796
+ /**
1797
+ * An adapter that is bound to a provider config.
1798
+ *
1799
+ * Used by the model picker to emit model×adapter combinations. The
1800
+ * `displayLabel` resolves to the adapter's human-readable display name.
1801
+ */
1802
+ interface BoundAdapter {
1803
+ /** Stable adapter driver name (e.g., `'claude-code'`, `'openai-node'`). */
1804
+ adapterName: string;
1805
+ /**
1806
+ * Human-readable label for display in picker UI.
1807
+ * Sourced from the canonical adapter config's `displayName`, falling back to
1808
+ * the stable adapter `name` when the display label is absent.
1809
+ */
1810
+ displayLabel: string;
1811
+ }
1812
+ /**
1813
+ * Runtime information about a configured provider instance.
1814
+ *
1815
+ * Each entry corresponds to one canonical provider-config record and carries
1816
+ * the model catalog sourced from the linked provider definition.
1817
+ */
1818
+ interface ProviderInfo {
1819
+ /**
1820
+ * Provider config UUID — stable identifier for this configuration instance.
1821
+ * Corresponds to `providerConfigId` in {@link AgentSelection}.
1822
+ */
1823
+ providerConfigId: string;
1824
+ /** FK to providers.id — links this config to the provider definition. */
1825
+ definitionId: string;
1826
+ /** Display name for UI, as configured by the user. */
1827
+ name: string;
1828
+ /** Available models sourced from the provider definition catalog. */
1829
+ availableModels: AIModel[];
1830
+ /** Whether this is the default config for its provider definition. */
1831
+ isDefault: boolean;
1832
+ /** Whether this config is enabled. */
1833
+ enabled: boolean;
1834
+ /** Controls default visibility for models without explicit overrides. */
1835
+ modelFilterMode: ModelFilterMode;
1836
+ /** True when at least one credential key exists in storage. */
1837
+ hasCredentials: boolean;
1838
+ /** Sparse per-model visibility overrides. */
1839
+ modelVisibility?: Record<string, ModelVisibility>;
1840
+ /**
1841
+ * Adapters currently bound to this provider config.
1842
+ *
1843
+ * Used by the model picker to enumerate model×adapter combinations for
1844
+ * selection. Empty when no adapters are bound.
1845
+ */
1846
+ boundAdapters: BoundAdapter[];
1847
+ }
1848
+ interface ProviderState {
1849
+ /** All available providers across all definitions */
1850
+ providers: ProviderInfo[];
1851
+ /** Loading state */
1852
+ isLoading: boolean;
1853
+ /** Error state */
1854
+ error: Error | null;
1855
+ /** Fetch in progress (for deduplication) */
1856
+ _fetchPromise: Promise<void> | null;
1857
+ /**
1858
+ * Whether providers have been fetched at least once.
1859
+ * Used to gate the stale-cache guard so `invalidate()` can force a refresh.
1860
+ */
1861
+ _hasFetched: boolean;
1862
+ /**
1863
+ * Monotonically increasing counter incremented on every `invalidate()` call.
1864
+ * In-flight fetches compare their captured generation against the current
1865
+ * value on completion — if they differ, the results are discarded so a
1866
+ * subsequent `fetchProviders()` can start a fresh fetch.
1867
+ */
1868
+ _fetchGeneration: number;
1869
+ /**
1870
+ * Fetch providers from all enabled provider configs. Idempotent — concurrent
1871
+ * calls share the same promise. No-ops when already fetched unless
1872
+ * `invalidate()` has been called first.
1873
+ */
1874
+ fetchProviders: () => Promise<void>;
1875
+ /**
1876
+ * Mark the provider list as stale so the next `fetchProviders()` call
1877
+ * triggers a real refetch. Call this after creating, updating, or deleting
1878
+ * a provider config.
1879
+ */
1880
+ invalidate: () => void;
1881
+ /** Set providers */
1882
+ setProviders: (providers: ProviderInfo[]) => void;
1883
+ /** Set error state */
1884
+ setError: (error: Error | null) => void;
1885
+ }
1886
+ declare const useProviderStore: UseBoundStore<StoreApi<ProviderState>>;
1887
+ //#endregion
1888
+ //#region ui/hooks/src/utils/persisted-agent-selection.d.ts
1889
+ type PersistableAdapterSelection = Extract<AgentSelection, {
1890
+ kind: 'adapter';
1891
+ }> & {
1892
+ providerConfigId: string;
1893
+ model: string;
1894
+ };
1895
+ type PersistableProjectSelection = Exclude<AgentSelection, {
1896
+ kind: 'adapter';
1897
+ }> | PersistableAdapterSelection;
1898
+ /**
1899
+ * Parse persisted browser selection state into the current AgentSelection union.
1900
+ *
1901
+ * The wire schema intentionally stays open for host-tier extension. Browser
1902
+ * persistence is stricter: only current application kinds are accepted, with
1903
+ * one-way migration for legacy `'model'` and `'virtualModel'` payloads.
1904
+ * @param value - Raw persisted value from storage/preferences
1905
+ * @returns Current AgentSelection, or null when the payload is stale/invalid
1906
+ */
1907
+ declare function parsePersistedAgentSelection(value: unknown): AgentSelection | null;
1908
+ /**
1909
+ * Project defaults must be concrete and lossless when persisted.
1910
+ * @param selection - Candidate selection from UI state
1911
+ * @returns True when the selection can be stored as an explicit project default
1912
+ */
1913
+ declare function isPersistableProjectSelection(selection: AgentSelection): selection is PersistableProjectSelection;
1914
+ //#endregion
1915
+ export { type AppContextState, type BoundAdapter, BusContext, BusProvider, type BusProviderProps, type CoreOnboardingStepComponents, type ExecutablePage, type ExtensionBrowserLoadOptions, type ExtensionBrowserLoadResult, type FocusContextId, type FocusContextLayout, type FocusContextObject, type FocusContextWidgetSize, type FocusState, type GroupedPages, type HealthCheckResult, type OnboardingAdapter, type OnboardingClient, type OnboardingFlowActions, type OnboardingFlowState, type OnboardingStepDefinition, type OnboardingStepProps, type PageOverlayState, type PersistableAdapterSelection, type PersistableProjectSelection, type PersistedExtensionConfigEntry, type PersistedStoreConfig, type PlacedFocusWidget, type ProviderConfigDetailView, type ProviderConfigSummaryView, type ProviderInfo, type RuntimeNavigationLevel, type ScanContext, type SharedLoaderState, type SidebarState, type StorageType, type UseBusQueryOptions, type UseBusQueryResult, type UseOnboardingFlowOptions, type UseOnboardingFlowResult, type UseWidgetConfigOptions, type UseWidgetConfigResult, type UseWidgetRegistryOptions, type UseWidgetsOptions, type UseWidgetsResult, type WindowContextState, addWidgetToFocusLayout, buildScanContext, clearOnboardingCompleted, clearOnboardingSkipped, createEmptyFocusContextLayout, createPersistedStore, getOnboardingCompleted, getOnboardingSkipped, getProviderConfigDetailView, groupPagesByNavigationGroup, isPersistableProjectSelection, listProviderConfigSummaryViews, loadExtensionBrowserContributions, noopStorage, parsePersistedAgentSelection, persistPluginEnabled, registerCoreOnboardingSteps, registerNavigationHandler, removeWidgetFromFocusLayout, scanOnboarding, scanOnboardingAdapters, scanOnboardingClients, setOnboardingCompleted, setOnboardingSkipped, updateFocusContextWidgetPosition, updateFocusContextWidgetSize, useAppContext, useBus, useBusEvent, useBusQuery, useFocusStore, useNavigationLevel, useOnboardingFlow, useOptionalBus, usePageComponent, usePageDefinitions, usePageOverlayStore, usePages, useProviderStore, useSidebarStore, useTrayLayout, useWidgetConfig, useWidgetLayout, useWidgetLayoutActions, useWidgetRegistry, useWidgets, useWindowContext, useWindowIdPages };