@makaio/framework 1.0.0-dev-1783705652236 → 1.0.0-dev-1783940945655

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 (449) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/account-identity-BYfeWLe-.mjs +1 -0
  3. package/dist/adapter-auth-runtime-a4O7cSNP.mjs +1 -0
  4. package/dist/adapter-binding-DDUyv1JK.d.mts +254 -0
  5. package/dist/{adapter-CA8rPIUz.mjs → adapter-nl_xz9dz.mjs} +1 -1
  6. package/dist/adapter-subsystem/index.d.mts +110 -5
  7. package/dist/adapter-subsystem/index.mjs +1 -1
  8. package/dist/adapters/acp-client/index.d.mts +10 -0
  9. package/dist/adapters/acp-client/index.mjs +2 -2
  10. package/dist/adapters/config/index.d.mts +176 -153
  11. package/dist/adapters/config/index.mjs +1 -1
  12. package/dist/adapters/index.d.mts +1021 -1005
  13. package/dist/adapters/index.mjs +6 -6
  14. package/dist/adapters/node.d.mts +1 -1
  15. package/dist/adapters/node.mjs +1 -1
  16. package/dist/adapters/stream-session/index.d.mts +7 -5
  17. package/dist/adapters/stream-session/index.mjs +1 -1
  18. package/dist/auth-C3NOWqTU.mjs +1 -0
  19. package/dist/{base-orchestrator-J1WKAUkF.d.mts → base-orchestrator-BiShpVKL.d.mts} +6 -0
  20. package/dist/bus/index.d.mts +21 -21
  21. package/dist/bus/index.mjs +1 -1
  22. package/dist/{canonical-model-DV-Z8gsb.mjs → canonical-model-CVRCW9h7.mjs} +1 -1
  23. package/dist/client-BkpLM8Fx.mjs +1 -0
  24. package/dist/client-binary-version-verifier-BK_vIjIo.mjs +2 -0
  25. package/dist/client-binary-version-verifier-BwrMTAh2.d.mts +179 -0
  26. package/dist/clients/index.d.mts +74 -90
  27. package/dist/clients/index.mjs +1 -2
  28. package/dist/clients/managed-install.d.mts +2 -0
  29. package/dist/clients/managed-install.mjs +1 -0
  30. package/dist/{clients-namespace-Bt_VTkEU.d.mts → clients-namespace-B96QIJOs.d.mts} +224 -21
  31. package/dist/compression-CZ_6fYq8.mjs +1 -0
  32. package/dist/config-namespace-DTA6EQL8.mjs +1 -0
  33. package/dist/{config-namespace-DqdFE6zk.d.mts → config-namespace-x0fuhEXe.d.mts} +73 -1
  34. package/dist/contracts/adapter/index.d.mts +3 -3
  35. package/dist/contracts/adapter/index.mjs +1 -1
  36. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  37. package/dist/contracts/artifact/index.d.mts +1 -1
  38. package/dist/contracts/auth/index.d.mts +3 -0
  39. package/dist/contracts/auth/index.mjs +1 -0
  40. package/dist/contracts/canonical-model/index.d.mts +1 -1
  41. package/dist/contracts/canonical-model/index.mjs +1 -1
  42. package/dist/contracts/client/index.d.mts +3 -3
  43. package/dist/contracts/client/index.mjs +1 -1
  44. package/dist/contracts/common/index.d.mts +1 -1
  45. package/dist/contracts/config/index.d.mts +20 -93
  46. package/dist/contracts/config/index.mjs +1 -1
  47. package/dist/contracts/extension/index.d.mts +3 -3
  48. package/dist/contracts/extension/index.mjs +1 -1
  49. package/dist/contracts/facet/index.d.mts +1 -1
  50. package/dist/contracts/facet/index.mjs +1 -1
  51. package/dist/contracts/harness/index.d.mts +1 -1
  52. package/dist/contracts/harness/index.mjs +1 -1
  53. package/dist/contracts/host/index.d.mts +1 -1
  54. package/dist/contracts/host/index.mjs +1 -1
  55. package/dist/contracts/index.d.mts +1214 -261
  56. package/dist/contracts/index.mjs +1 -1
  57. package/dist/contracts/materialization/index.d.mts +3 -3
  58. package/dist/contracts/materialization/index.mjs +1 -1
  59. package/dist/contracts/model-registry/index.d.mts +1 -1
  60. package/dist/contracts/model-registry/index.mjs +1 -1
  61. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  62. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  63. package/dist/contracts/platform/index.d.mts +1 -1
  64. package/dist/contracts/platform/index.mjs +1 -1
  65. package/dist/contracts/provider/index.d.mts +2 -2
  66. package/dist/contracts/provider/index.mjs +1 -1
  67. package/dist/contracts/session/index.d.mts +2 -2
  68. package/dist/contracts/session/index.mjs +1 -1
  69. package/dist/contracts/shared/index.d.mts +2 -2
  70. package/dist/contracts/shared/index.mjs +1 -1
  71. package/dist/contracts/skill/index.d.mts +1 -1
  72. package/dist/contracts/skill/index.mjs +1 -1
  73. package/dist/contracts/telemetry/index.d.mts +1 -1
  74. package/dist/contracts/telemetry/index.mjs +1 -1
  75. package/dist/contracts/timeout/index.d.mts +1 -1
  76. package/dist/contracts/timeout/index.mjs +1 -1
  77. package/dist/contracts/toast/index.mjs +1 -1
  78. package/dist/contracts/variant/index.d.mts +1 -1
  79. package/dist/contracts/variant/index.mjs +1 -1
  80. package/dist/contracts/workflow/index.d.mts +2 -2
  81. package/dist/contracts/workflow/index.mjs +1 -1
  82. package/dist/{definition-s9PIua2B.d.mts → definition-Bj9Vr16H.d.mts} +1 -1
  83. package/dist/{definition-Cllhr9mi.d.mts → definition-BsTlOz99.d.mts} +36 -4
  84. package/dist/{definition-CuJvtYeG.d.mts → definition-Cbl0k6Fc.d.mts} +31 -1
  85. package/dist/definition-K3m51lgO.mjs +1 -0
  86. package/dist/definitions-C1pgx0Nq.mjs +1 -0
  87. package/dist/{detached-extension-handle-Cx6-0eqg.mjs → detached-extension-handle-CTaQoolf.mjs} +1 -1
  88. package/dist/execution-target-Bg2wpfML.mjs +1 -0
  89. package/dist/{extension-CJClssfp.mjs → extension-CjTu6mzW.mjs} +1 -1
  90. package/dist/extension-D4iKUUMG.mjs +1 -0
  91. package/dist/{filesystem-service-Bmyqo6po.mjs → filesystem-service-maY_P3yA.mjs} +1 -1
  92. package/dist/git/index.mjs +1 -1
  93. package/dist/{globby-D4SANVoq.mjs → globby-CisClzat.mjs} +1 -1
  94. package/dist/handlers-RGs3eC9X.mjs +57 -0
  95. package/dist/{harness-DkUpbsuY.mjs → harness-DflvHAGV.mjs} +1 -1
  96. package/dist/{index-C23g_M_J2.d.mts → index-5s_dN3cg2.d.mts} +18 -1
  97. package/dist/index-9dISOTLT.d.mts +174 -0
  98. package/dist/{index-B9d_8_V2.d.mts → index-9g0agW_p.d.mts} +55 -55
  99. package/dist/{index-DoEF9LAc.d.mts → index-BcejR1Jc.d.mts} +3 -3
  100. package/dist/index-BsEvzFey.d.mts +1175 -0
  101. package/dist/{index-ntS1EXlf.d.mts → index-BtL7ONuM.d.mts} +1 -1
  102. package/dist/index-BxuiHVFi.d.mts +284 -0
  103. package/dist/{index-PIlYSC73.d.mts → index-C9Q1E8Y-.d.mts} +66 -53
  104. package/dist/{index-CaerrEDH.d.mts → index-CB2XTzvd.d.mts} +3 -3
  105. package/dist/{index-Cx1Bm6WD.d.mts → index-CVs0Qxks.d.mts} +8 -8
  106. package/dist/{index-WHUV7neB.d.mts → index-CW6-0k3Z.d.mts} +105 -105
  107. package/dist/index-CagRgpXI2.d.mts +84 -0
  108. package/dist/{index-DZPNuWMc.d.mts → index-Cw3cjGAT.d.mts} +7 -7
  109. package/dist/{index-DnnKUwHm.d.mts → index-D5IEq4_E.d.mts} +36 -32
  110. package/dist/{index-h5go5Dtd.d.mts → index-D75FnT0B.d.mts} +1 -1
  111. package/dist/{index-O08Q2ikz.d.mts → index-DNc1yLQs.d.mts} +8 -8
  112. package/dist/{index-FFVwQMad.d.mts → index-DlUPWOh4.d.mts} +737 -97
  113. package/dist/{index-DScUb-hF.d.mts → index-Do7Wgio_2.d.mts} +35 -12
  114. package/dist/{index-C9FCWOhp.d.mts → index-DxatNFz7.d.mts} +124 -22
  115. package/dist/{index-BvTd61i5.d.mts → index-T96ydgVk.d.mts} +260 -160
  116. package/dist/{index-DLNRgZPo2.d.mts → index-j2YlW_Fc.d.mts} +1 -1
  117. package/dist/{index-BcvG3wPv.d.mts → index-p6dWV52m.d.mts} +513 -373
  118. package/dist/{index-B2DjrVb8.d.mts → index-sCOlgPyj.d.mts} +1589 -482
  119. package/dist/kernel/cli/index.d.mts +2 -2
  120. package/dist/kernel/cli/index.mjs +1 -1
  121. package/dist/kernel/cli/register.d.mts +1 -1
  122. package/dist/kernel/cli/register.mjs +1 -1
  123. package/dist/kernel/cli/schemas.mjs +1 -1
  124. package/dist/kernel/extension/index.d.mts +1 -1
  125. package/dist/kernel/extension/index.mjs +1 -1
  126. package/dist/kernel/index.d.mts +5 -5
  127. package/dist/kernel/index.mjs +1 -1
  128. package/dist/kernel/namespace/index.d.mts +1 -1
  129. package/dist/kernel/namespace/index.mjs +1 -1
  130. package/dist/kernel/observability/index.d.mts +1 -1
  131. package/dist/kernel/observability/index.mjs +1 -1
  132. package/dist/kernel/providers/index.d.mts +1 -1
  133. package/dist/kernel/providers/index.mjs +1 -1
  134. package/dist/kernel/window/index.d.mts +1 -1
  135. package/dist/kernel/window/index.mjs +1 -1
  136. package/dist/{lib-BOmKyjWD.mjs → lib-DIVnpS8e.mjs} +1 -1
  137. package/dist/{lib-DLZYp5z3.mjs → lib-DymjnkAP.mjs} +1 -1
  138. package/dist/{load-extensions-Cze1RHcG.mjs → load-extensions-BtUrq2_t.mjs} +1 -1
  139. package/dist/{load-extensions-DNRIy4zC.d.mts → load-extensions-_EnedkUp.d.mts} +1 -1
  140. package/dist/{loop-gate-handlers-o2B5FPdF.mjs → loop-gate-handlers-0a3dIY8O.mjs} +1 -1
  141. package/dist/mcp-http-server/index.mjs +1 -1
  142. package/dist/model-uE5IyUFJ.mjs +1 -0
  143. package/dist/namespace-C05pkLbN.mjs +1 -0
  144. package/dist/{namespace-D8P8Sxce2.d.mts → namespace-CGgOLxiW2.d.mts} +2 -2
  145. package/dist/{namespace-BGIeqwfU.d.mts → namespace-CQBSXm1U.d.mts} +20 -20
  146. package/dist/{namespace-CfvtDD_U.d.mts → namespace-CfgtqUWS.d.mts} +156 -156
  147. package/dist/{namespace-D9PLFmPQ.d.mts → namespace-CpyL93kW.d.mts} +27 -27
  148. package/dist/{namespace-CZK2ff3B.d.mts → namespace-D3SQQgxa2.d.mts} +1 -1
  149. package/dist/namespace-D7pE2QWv.mjs +1 -0
  150. package/dist/{namespace-dFBD2ZmS.mjs → namespace-DwQtzlY-.mjs} +1 -1
  151. package/dist/namespace-HsI0Jbbr.mjs +1 -0
  152. package/dist/namespace-VmsT_tLJ.d.mts +3729 -0
  153. package/dist/namespace-Xp9-g_r-.mjs +1 -0
  154. package/dist/{native-session-supervisor-7ElwM6Is.mjs → native-session-supervisor-CdtVGWA9.mjs} +1 -1
  155. package/dist/node/bus-server/index.d.mts +1 -1
  156. package/dist/node/bus-server/index.mjs +1 -1
  157. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  158. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  159. package/dist/node/transports/index.d.mts +36 -1
  160. package/dist/node/transports/index.mjs +2 -2
  161. package/dist/{orchestrator-shared-ChygCvR1.mjs → orchestrator-shared-DAkGOu9H.mjs} +1 -1
  162. package/dist/{orchestrator-shared-DFLb1otg.d.mts → orchestrator-shared-pxtyNu3W.d.mts} +13 -6
  163. package/dist/{package-Co_GO3UD.mjs → package-0gVhAVkO.mjs} +1 -1
  164. package/dist/package-BwvGaKwn.mjs +1 -0
  165. package/dist/package.json +1 -1
  166. package/dist/{profile-BMBXUqqh.mjs → profile-D2m94ZYD.mjs} +1 -1
  167. package/dist/provider-context-BYkMl--1.mjs +1 -0
  168. package/dist/provider-context-DOsjOjiR.mjs +1 -0
  169. package/dist/{providers-namespace-5GoTlHXz.d.mts → providers-namespace-O4de1tgO.d.mts} +161 -14
  170. package/dist/resolved-O2XXjTeu.mjs +1 -0
  171. package/dist/rules/index.d.mts +1 -1
  172. package/dist/rules/index.mjs +1 -1
  173. package/dist/rules/schemas.d.mts +1 -1
  174. package/dist/runtime-bun/index.mjs +1 -1
  175. package/dist/runtime-node/client-binary-strategy-dependencies.d.mts +34 -0
  176. package/dist/runtime-node/client-binary-strategy-dependencies.mjs +1 -0
  177. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  178. package/dist/runtime-node/extension-validation.d.mts +1 -1
  179. package/dist/runtime-node/extension-validation.mjs +1 -1
  180. package/dist/runtime-node/index.d.mts +32 -6
  181. package/dist/runtime-node/index.mjs +24 -24
  182. package/dist/runtime-node/makaio-config.d.mts +1 -1
  183. package/dist/runtime-node/makaio-config.mjs +1 -1
  184. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  185. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  186. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  187. package/dist/{schema-7aKBGB7S.mjs → schema-BI0aCHvV.mjs} +1 -1
  188. package/dist/{schema-B5vHi7Uu.d.mts → schema-BnTOFCdU.d.mts} +1 -1
  189. package/dist/{schemas-Br-rSxPE2.d.mts → schemas--uwN5dfK2.d.mts} +11 -11
  190. package/dist/schemas-C-J4W1ID.mjs +1 -0
  191. package/dist/{schemas-CoFCV42v.d.mts → schemas-C17AifUQ.d.mts} +156 -156
  192. package/dist/schemas-D6lj9NMg.mjs +1 -0
  193. package/dist/schemas-K3Td_WdR.d.mts +3175 -0
  194. package/dist/schemas-n9Ff6_RX.mjs +1 -0
  195. package/dist/selection-YRuVSdck.mjs +1 -0
  196. package/dist/services/adapter-runtime/index.d.mts +3 -3
  197. package/dist/services/adapter-runtime/index.mjs +1 -1
  198. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  199. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  200. package/dist/services/adapter-subsystem/index.d.mts +4 -3
  201. package/dist/services/adapter-subsystem/index.mjs +1 -1
  202. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  203. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  204. package/dist/services/agent-runtime/index.d.mts +2 -2
  205. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  206. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  207. package/dist/services/capability/index.d.mts +1 -1
  208. package/dist/services/capability/index.mjs +1 -1
  209. package/dist/services/codebase/index.d.mts +2 -2
  210. package/dist/services/codebase/namespace.d.mts +1 -1
  211. package/dist/services/codebase/schemas.d.mts +1 -1
  212. package/dist/services/compression/index.d.mts +2 -2
  213. package/dist/services/compression/namespace.d.mts +1 -1
  214. package/dist/services/compression/schemas.d.mts +1 -1
  215. package/dist/services/context-rules/index.d.mts +1 -1
  216. package/dist/services/context-rules/index.mjs +1 -1
  217. package/dist/services/definition/namespace.d.mts +1 -19
  218. package/dist/services/definition/schemas.d.mts +0 -9
  219. package/dist/services/definition/schemas.mjs +1 -1
  220. package/dist/services/execution-target/index.d.mts +4 -4
  221. package/dist/services/execution-target/index.mjs +1 -1
  222. package/dist/services/execution-target/namespace.d.mts +1 -1
  223. package/dist/services/execution-target/namespace.mjs +1 -1
  224. package/dist/services/execution-target/schemas.d.mts +1 -1
  225. package/dist/services/execution-target/schemas.mjs +1 -1
  226. package/dist/services/filesystem/index.d.mts +1 -1
  227. package/dist/services/filesystem/index.mjs +1 -1
  228. package/dist/services/filesystem/namespace.d.mts +6 -6
  229. package/dist/services/filesystem/schemas.d.mts +3 -3
  230. package/dist/services/git/namespace.mjs +1 -1
  231. package/dist/services/git/schemas.mjs +1 -1
  232. package/dist/services/harness/index.d.mts +6 -6
  233. package/dist/services/harness/index.mjs +1 -1
  234. package/dist/services/index.d.mts +1671 -253
  235. package/dist/services/index.mjs +1 -1
  236. package/dist/services/log-import/browser.d.mts +2 -2
  237. package/dist/services/log-import/index.d.mts +2 -2
  238. package/dist/services/log-import/log-import.d.mts +1 -1
  239. package/dist/services/log-import/log-import.mjs +1 -1
  240. package/dist/services/log-import/namespace.mjs +1 -1
  241. package/dist/services/log-import/schemas.mjs +1 -1
  242. package/dist/services/model-registry/index.d.mts +1 -1
  243. package/dist/services/model-registry/index.mjs +1 -1
  244. package/dist/services/preferences/index.d.mts +2 -2
  245. package/dist/services/preferences/schemas.d.mts +1 -1
  246. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  247. package/dist/services/provider-context/index.d.mts +2 -2
  248. package/dist/services/provider-context/index.mjs +1 -1
  249. package/dist/services/provider-runtime/index.d.mts +18 -0
  250. package/dist/services/provider-runtime/index.mjs +1 -1
  251. package/dist/services/session/handlers/index.d.mts +1 -1
  252. package/dist/services/session/handlers/index.mjs +1 -1
  253. package/dist/services/session/index.d.mts +10 -10
  254. package/dist/services/session/index.mjs +1 -1
  255. package/dist/services/session/messages/namespace.d.mts +1 -1
  256. package/dist/services/session/messages/namespace.mjs +1 -1
  257. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  258. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  259. package/dist/services/session/session-events/namespace.d.mts +1 -1
  260. package/dist/services/session/session-events/namespace.mjs +1 -1
  261. package/dist/services/session/storage/namespace.d.mts +1 -1
  262. package/dist/services/session/storage/schema.d.mts +1 -1
  263. package/dist/services/session/testing/index.d.mts +2 -2
  264. package/dist/services/session/testing/index.mjs +10 -10
  265. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  266. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  267. package/dist/services/session/turns/namespace.d.mts +1 -1
  268. package/dist/services/session/turns/namespace.mjs +1 -1
  269. package/dist/services/session-editor/index.d.mts +1 -1
  270. package/dist/services/session-editor/index.mjs +1 -1
  271. package/dist/services/settings/index.d.mts +3 -3
  272. package/dist/services/settings/index.mjs +1 -1
  273. package/dist/services/settings/namespace.d.mts +18 -25
  274. package/dist/services/settings/namespace.mjs +1 -1
  275. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  276. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  277. package/dist/services/settings/storage/index.d.mts +3 -3
  278. package/dist/services/settings/storage/index.mjs +1 -1
  279. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  280. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  281. package/dist/services/subagent/index.d.mts +2 -2
  282. package/dist/services/subagent/index.mjs +1 -1
  283. package/dist/services/subagent-template/index.d.mts +2 -2
  284. package/dist/services/subagent-template/namespace.d.mts +1 -1
  285. package/dist/services/subagent-template/schemas.d.mts +1 -1
  286. package/dist/services/tool-approval/index.d.mts +1 -1
  287. package/dist/services/tool-approval/index.mjs +1 -1
  288. package/dist/services/tools/index.d.mts +1 -1
  289. package/dist/services/tools/index.mjs +1 -1
  290. package/dist/services/tray-menu/index.d.mts +3 -3
  291. package/dist/services/tray-menu/index.mjs +1 -1
  292. package/dist/services/tray-menu/namespace.d.mts +1 -1
  293. package/dist/services/tray-menu/schemas.d.mts +1 -1
  294. package/dist/services/turn/index.d.mts +1 -1
  295. package/dist/services/turn/namespace.d.mts +1 -1
  296. package/dist/session-CAjudDuJ.mjs +76 -0
  297. package/dist/{session-DBfQkgdy.mjs → session-lRd8HZNZ.mjs} +1 -1
  298. package/dist/{session-lineage-C1M7-O3C.d.mts → session-lineage-BLw8iWAj.d.mts} +1 -1
  299. package/dist/{shared-BVW-3Dhy.mjs → shared-RP_KARKF.mjs} +1 -1
  300. package/dist/{skill-N-ttlp1i.mjs → skill-CpNjWFuE.mjs} +1 -1
  301. package/dist/{src-Ck2sbaDa.mjs → src-Bo2eA51B.mjs} +1 -1
  302. package/dist/storage/drizzle/client.d.mts +1 -1
  303. package/dist/storage/drizzle/client.mjs +1 -1
  304. package/dist/storage/drizzle/index.d.mts +1 -1
  305. package/dist/storage/drizzle/index.mjs +1 -1
  306. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  307. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  308. package/dist/storage/handlers/index.d.mts +1 -1
  309. package/dist/storage/handlers/index.mjs +1 -1
  310. package/dist/{tool-approval-service-DEiMKTv9.mjs → tool-approval-service-Dh0XI21f.mjs} +1 -1
  311. package/dist/tools-C8vqn1KY.mjs +1 -0
  312. package/dist/{transition-OzGXyy3p.d.mts → transition-Bfe8VVc1.d.mts} +2 -2
  313. package/dist/{types-BWduCvRU.d.mts → types-B-xY9WW2.d.mts} +1 -1
  314. package/dist/{types-BrUOVfwe.d.mts → types-DvKaEOOn.d.mts} +252 -19
  315. package/dist/{types-CBLPaQXe.d.mts → types-q95p55BF.d.mts} +437 -287
  316. package/dist/ui-hooks/index.d.mts +103 -14
  317. package/dist/ui-hooks/index.mjs +1 -1
  318. package/dist/ui-kernel/index.d.mts +3 -3
  319. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  320. package/dist/utils/keychain.mjs +1 -1
  321. package/dist/{version-DoV_pSzT.mjs → version-C1-VD-XL.mjs} +1 -1
  322. package/dist/workflow-CvVAZ89A.mjs +1 -0
  323. package/dist/workflow-engine/index.d.mts +33 -33
  324. package/dist/workflow-engine/index.mjs +1 -1
  325. package/dist/workflow-engine/package.d.mts +1 -1
  326. package/dist/workflow-engine/package.mjs +1 -1
  327. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  328. package/dist/{workflow-worker-dH70EbjE.mjs → workflow-worker-CudfEstp.mjs} +1 -1
  329. package/package.json +5 -1
  330. package/dist/account-identity-C7Kx_ieU.mjs +0 -1
  331. package/dist/cleanEnvForAdapter-BooAgM2R.mjs +0 -1
  332. package/dist/client-DaR4mzqn.mjs +0 -1
  333. package/dist/compression-C5JAWdgZ.mjs +0 -1
  334. package/dist/config-namespace-CY9leBnE.mjs +0 -1
  335. package/dist/credential-ref-YWQQENEo.mjs +0 -1
  336. package/dist/definition-C-GVz7uw.mjs +0 -1
  337. package/dist/execution-target-BR8bLkCR.mjs +0 -1
  338. package/dist/extension-BS_4BOeO.mjs +0 -1
  339. package/dist/handlers-B74FvKlA.mjs +0 -57
  340. package/dist/index-BcwOnvUh.d.mts +0 -749
  341. package/dist/index-D6aAzr32.d.mts +0 -997
  342. package/dist/index-DtwGhFFQ.d.mts +0 -40
  343. package/dist/namespace-B4cV_pk3.d.mts +0 -1317
  344. package/dist/namespace-BO3tODGC.mjs +0 -1
  345. package/dist/namespace-CVMZVqB5.mjs +0 -1
  346. package/dist/namespace-DBHwyhME.mjs +0 -1
  347. package/dist/namespace-DibbhCPP.mjs +0 -1
  348. package/dist/package-CF_Zm2v4.mjs +0 -1
  349. package/dist/provider-context-CqMgPOWF.mjs +0 -1
  350. package/dist/provider-context-DC_eq7es.mjs +0 -1
  351. package/dist/schemas-CVo8qAK-.mjs +0 -1
  352. package/dist/schemas-CuG17U3L.mjs +0 -1
  353. package/dist/session-CX6QDhi2.mjs +0 -76
  354. package/dist/tools-CGFZkB7F.mjs +0 -1
  355. package/dist/workflow-C3dgVwTY.mjs +0 -1
  356. /package/dist/{ajv-B5dPIck0.mjs → ajv-DfHhgdS5.mjs} +0 -0
  357. /package/dist/{await-trigger-DwVldnMt.mjs → await-trigger-D623tvig.mjs} +0 -0
  358. /package/dist/{capability-service-XlymTzz1.mjs → capability-service-Dg2bU8qc.mjs} +0 -0
  359. /package/dist/{client-CebV_fZc.d.mts → client-DmJwprw1.d.mts} +0 -0
  360. /package/dist/{create-static-mount-DkK28kKW.mjs → create-static-mount-CBTXRtbN.mjs} +0 -0
  361. /package/dist/{cross-spawn-CDXy3BjE.mjs → cross-spawn-D9WWFl2a.mjs} +0 -0
  362. /package/dist/{cursor-storage-luQAg7E_.mjs → cursor-storage-Bw-7ROzx.mjs} +0 -0
  363. /package/dist/{descriptor-to-package-DdpjpT7n.mjs → descriptor-to-package-D5SWf6TL.mjs} +0 -0
  364. /package/dist/{drizzle-DVTAl7Us.mjs → drizzle-DYfaDzlO.mjs} +0 -0
  365. /package/dist/{esm-CQG9Pc7n.mjs → esm-oHhRYTEn.mjs} +0 -0
  366. /package/dist/{event-DguYjV6D.mjs → event-DTM0-qWP.mjs} +0 -0
  367. /package/dist/{extension-discovery-CIZn5bkq.d.mts → extension-discovery-APMf1Tes.d.mts} +0 -0
  368. /package/dist/{extension-namespace-v3K0qVry.mjs → extension-namespace-vrh4ERXR.mjs} +0 -0
  369. /package/dist/{facet-BM4y4aQP.mjs → facet-DqPBpqkl.mjs} +0 -0
  370. /package/dist/{filesystem-service-Cwp0sWNc.d.mts → filesystem-service-Bx0bR2Lb.d.mts} +0 -0
  371. /package/dist/{handler-BFNvtv5t.mjs → handler-4pKQi3eo.mjs} +0 -0
  372. /package/dist/{host-vY07gek-.mjs → host-BfgdjlII.mjs} +0 -0
  373. /package/dist/{identity-DC3Pk0ps.mjs → identity-2qUT1NME.mjs} +0 -0
  374. /package/dist/{index-COI1tjAf.d.mts → index-BZ_DSGnE.d.mts} +0 -0
  375. /package/dist/{index-D7rWAEY0.d.mts → index-Bd52mmj9.d.mts} +0 -0
  376. /package/dist/{index-Dfi8Rorw.d.mts → index-BkAKfh4d.d.mts} +0 -0
  377. /package/dist/{index-CuHqL95P.d.mts → index-Bv9lm0Kf.d.mts} +0 -0
  378. /package/dist/{index-C4nStEdA.d.mts → index-C18Pn3zP.d.mts} +0 -0
  379. /package/dist/{index-Cr9lh21j.d.mts → index-CarbJsC92.d.mts} +0 -0
  380. /package/dist/{index-BjoOSg95.d.mts → index-Ctw617Tj.d.mts} +0 -0
  381. /package/dist/{index-DUD7wikz2.d.mts → index-D0eUQjTU2.d.mts} +0 -0
  382. /package/dist/{index-DEzdNQum.d.mts → index-DfVSWBBp.d.mts} +0 -0
  383. /package/dist/{index-D3ahzHwb.d.mts → index-DnWZdG6C.d.mts} +0 -0
  384. /package/dist/{index-CpKikwK4.d.mts → index-DoLdETfR.d.mts} +0 -0
  385. /package/dist/{index-B92mToDo2.d.mts → index-DvaPrL6C.d.mts} +0 -0
  386. /package/dist/{index-D7Hkmrr3.d.mts → index-DwDBa2mb.d.mts} +0 -0
  387. /package/dist/{index-Y8rMeYYX.d.mts → index-FDyqQIt5.d.mts} +0 -0
  388. /package/dist/{index-BWIkf5oJ.d.mts → index-Lp0T_V1W.d.mts} +0 -0
  389. /package/dist/{index-OGIC4puQ.d.mts → index-Rhcr4YNA.d.mts} +0 -0
  390. /package/dist/{index-BvLXySoB2.d.mts → index-S-mAqWwq.d.mts} +0 -0
  391. /package/dist/{index-DOOrKin9.d.mts → index-_zsihEmk.d.mts} +0 -0
  392. /package/dist/{index-wq7XeqyG.d.mts → index-iJP-l15K.d.mts} +0 -0
  393. /package/dist/{json-value-DtIkQN7g.d.mts → json-value-C8duSh9X.d.mts} +0 -0
  394. /package/dist/{jsonl-transport-CGPgD8iU.mjs → jsonl-transport-l5NPcQ_2.mjs} +0 -0
  395. /package/dist/{lib-ZKtnbCqH.mjs → lib-ClRTNIuz.mjs} +0 -0
  396. /package/dist/{materialization-CUYxZCfk.mjs → materialization-BwTORtBr.mjs} +0 -0
  397. /package/dist/{model-registry-C2VXobZj.mjs → model-registry-BneK5SGo.mjs} +0 -0
  398. /package/dist/{model-registry-rYICIwyR.mjs → model-registry-C8MInDtX.mjs} +0 -0
  399. /package/dist/{namespace-65uwTpbg.d.mts → namespace-3YVLQ_bM.d.mts} +0 -0
  400. /package/dist/{namespace-CQ8uza7o.d.mts → namespace-BcDHt-ww.d.mts} +0 -0
  401. /package/dist/{namespace-BigVYQyx.d.mts → namespace-BhVlHfoO.d.mts} +0 -0
  402. /package/dist/{namespace-j7vFsmYL.d.mts → namespace-Bl1UhLnK.d.mts} +0 -0
  403. /package/dist/{namespace-Dk4OslmY.d.mts → namespace-BsEoWXV_.d.mts} +0 -0
  404. /package/dist/{namespace-DYSFDC2G.mjs → namespace-C238RqwB.mjs} +0 -0
  405. /package/dist/{namespace-BdO4e1Fm.mjs → namespace-CDO4rY11.mjs} +0 -0
  406. /package/dist/{namespace-wke7juzy.mjs → namespace-DDx4NVJm.mjs} +0 -0
  407. /package/dist/{namespace-D1_9WVCo.d.mts → namespace-Dar3O6iT.d.mts} +0 -0
  408. /package/dist/{namespace-DAj_riOn.d.mts → namespace-DoNigVgx.d.mts} +0 -0
  409. /package/dist/{namespace-D2s-4pyg.d.mts → namespace-Dvi66QS6.d.mts} +0 -0
  410. /package/dist/{out-BoEZjBNz.mjs → out-BB6Kb4Xu.mjs} +0 -0
  411. /package/dist/{package-DmVZxufT.d.mts → package-CdBiknf3.d.mts} +0 -0
  412. /package/dist/{platform-DnbSvm2u.mjs → platform-CWhGFQFX.mjs} +0 -0
  413. /package/dist/{providers-Bd7BOZs0.mjs → providers-CUnrif24.mjs} +0 -0
  414. /package/dist/{quick-lru-6e7I1Bgf.mjs → quick-lru-BLaSzINB.mjs} +0 -0
  415. /package/dist/{registry-U_3aYSin.mjs → registry-TJjQgTgp.mjs} +0 -0
  416. /package/dist/{schema-CHp6I33k.mjs → schema-cus0dJ81.mjs} +0 -0
  417. /package/dist/{schema-introspection-B7xODt4I.mjs → schema-introspection-BsWLmoFp.mjs} +0 -0
  418. /package/dist/{schemas-KlH1hB7u.d.mts → schemas-9QJf1FtS.d.mts} +0 -0
  419. /package/dist/{schemas-CJ2JvA7d.d.mts → schemas-BolSW7pQ.d.mts} +0 -0
  420. /package/dist/{schemas-D4zaFE2p.d.mts → schemas-CLsbsX1W.d.mts} +0 -0
  421. /package/dist/{schemas-XeIBqwvE.mjs → schemas-CMyv7l7-.mjs} +0 -0
  422. /package/dist/{schemas-CPI00yvh.mjs → schemas-CWxf_Yut.mjs} +0 -0
  423. /package/dist/{schemas-BemsLc_V.d.mts → schemas-D_9X_CRo.d.mts} +0 -0
  424. /package/dist/{schemas-DZGnr9Tl.mjs → schemas-DwfTUQIa.mjs} +0 -0
  425. /package/dist/{schemas-B6tEKf9T.d.mts → schemas-XRhqOgVE.d.mts} +0 -0
  426. /package/dist/{schemas-DKncXGnb.d.mts → schemas-fRLDhefF.d.mts} +0 -0
  427. /package/dist/{schemas-DWfo0wp4.d.mts → schemas-jDRSOXJL.d.mts} +0 -0
  428. /package/dist/{schemas-lnE9YoG7.d.mts → schemas-qpo1Goit.d.mts} +0 -0
  429. /package/dist/{schemas-t6h9oSct.d.mts → schemas-qt5QTjVc.d.mts} +0 -0
  430. /package/dist/{semver-CIhHqMkw.mjs → semver-BccS1s9R.mjs} +0 -0
  431. /package/dist/{server-lifecycle-C5Z5PSMD.mjs → server-lifecycle-D-jxVr_0.mjs} +0 -0
  432. /package/dist/{server-lifecycle-_AA6EfzL.d.mts → server-lifecycle-r5Tkk8bU.d.mts} +0 -0
  433. /package/dist/{shared-schemas-BEVG96xW.mjs → shared-schemas-BNCPgGYP.mjs} +0 -0
  434. /package/dist/{src-_VODAJnf.mjs → src-Ci_WY9uw.mjs} +0 -0
  435. /package/dist/{storage-namespace-D5q9CrBp.mjs → storage-namespace-BzE2M4Hq.mjs} +0 -0
  436. /package/dist/{storage-namespace-Di1A3DMm.d.mts → storage-namespace-DWKFqEW-.d.mts} +0 -0
  437. /package/dist/{storage-namespace-definition-CzXPW45M.mjs → storage-namespace-definition-4UYuij1r.mjs} +0 -0
  438. /package/dist/{storage-namespace-definition-BffdI5Bz.d.mts → storage-namespace-definition-BZJGSaX3.d.mts} +0 -0
  439. /package/dist/{supports-color-DcXkvGDF.mjs → supports-color-Dzp6WuF5.mjs} +0 -0
  440. /package/dist/{telemetry-Cvi4rxiE.mjs → telemetry-B42EMbZt.mjs} +0 -0
  441. /package/dist/{timeout-XsYIOKrc.mjs → timeout-CvONPl0l.mjs} +0 -0
  442. /package/dist/{tray-menu-service-B2AxiQqL.mjs → tray-menu-service-Bonl2KXf.mjs} +0 -0
  443. /package/dist/{types-Bo78h9e3.d.mts → types-BCW9kr4L.d.mts} +0 -0
  444. /package/dist/{types-DCvp_swt.d.mts → types-CrJ7KEZ0.d.mts} +0 -0
  445. /package/dist/{types-BNW5n6qm.d.mts → types-DWNoZ3Sd.d.mts} +0 -0
  446. /package/dist/{ui-config-9bDRwFZr.mjs → ui-config-B2L3Xgqo.mjs} +0 -0
  447. /package/dist/{variant-5huHjUTm.mjs → variant-ByI-RZua.mjs} +0 -0
  448. /package/dist/{window-registry-PkrFIwX2.mjs → window-registry-DsWnCc8z.mjs} +0 -0
  449. /package/dist/{window-registry-ofIUQnfo.d.mts → window-registry-WsWu-rcK.d.mts} +0 -0
@@ -5,10 +5,10 @@ import { AdapterInfo, ComponentLike, NavigationGroupConfig, OnboardingContext, O
5
5
  import { ExtensionInfo } from "@makaio/framework/kernel";
6
6
  import { IMakaioBus } from "@makaio/framework/bus";
7
7
  import { AIModel, AgentSelection, ModelFilterMode, ModelVisibility, UiContextSnapshot, UiRuntimeNavigationLevel, UiScope } from "@makaio/framework/contracts";
8
- import { BindingRecord, ProviderConfigFileRecord } from "@makaio/framework/services/adapter-subsystem";
8
+ import { BindingRecord, CompatibleAuthOption, ProviderConfigFileRecord } from "@makaio/framework/services/adapter-subsystem";
9
9
  import { LogImportMode } from "@makaio/framework/services/log-import/log-import";
10
+ import { AuthMethodRef, ClientAuthMethodRef, NativeAccountSelection, ProviderConfigAuth } from "@makaio/framework/contracts/auth";
10
11
  import { EventHandler, EventMessagePayload, ExtractSubjectPayload, SubjectDefinition } from "@makaio/framework/core";
11
- import { CredentialRef } from "@makaio/framework/contracts/config";
12
12
  import { ModelFilterMode as ModelFilterMode$1, ModelVisibility as ModelVisibility$1, ProtocolEndpoints, ProtocolId } from "@makaio/framework/contracts/provider";
13
13
 
14
14
  //#region ui/hooks/src/bus/bus-provider.d.ts
@@ -1226,10 +1226,7 @@ interface ProviderConfigSummaryView extends ProviderConfigFileRecord {
1226
1226
  /**
1227
1227
  * UI-facing provider-config detail enriched with provider definition metadata.
1228
1228
  */
1229
- interface ProviderConfigDetailView extends ProviderConfigSummaryView {
1230
- /** Credential refs resolved through the runtime context seam. */
1231
- credentialRefs?: Record<string, CredentialRef>;
1232
- }
1229
+ type ProviderConfigDetailView = ProviderConfigSummaryView;
1233
1230
  /**
1234
1231
  * List provider-config summaries enriched for UI consumption.
1235
1232
  * @param bus - Bus used to load subsystem configs and provider definitions.
@@ -1241,11 +1238,93 @@ declare function listProviderConfigSummaryViews(bus: IMakaioBus, options?: {
1241
1238
  }): Promise<ProviderConfigSummaryView[]>;
1242
1239
  /**
1243
1240
  * Load one provider-config detail view enriched for UI consumption.
1244
- * @param bus - Bus used to load subsystem config, provider metadata, and runtime context.
1241
+ * @param bus - Bus used to load the safe config summary and provider metadata.
1245
1242
  * @param id - Provider-config identifier.
1246
1243
  * @returns Enriched detail view or `null` when missing.
1247
1244
  */
1248
1245
  declare function getProviderConfigDetailView(bus: IMakaioBus, id: string): Promise<ProviderConfigDetailView | null>;
1246
+ /**
1247
+ * List adapter-deliverable authentication methods for one provider definition.
1248
+ * @param bus - Bus used to query the adapter subsystem.
1249
+ * @param definitionId - Provider definition whose auth methods are requested.
1250
+ * @returns Safe method declarations with fields/source hints but no credential refs.
1251
+ */
1252
+ declare function listCompatibleAuthOptions(bus: IMakaioBus, definitionId: string): Promise<CompatibleAuthOption[]>;
1253
+ //#endregion
1254
+ //#region ui/hooks/src/provider-config/auth-draft.d.ts
1255
+ /** One explicit credential field sourced from encrypted product storage. */
1256
+ interface StoredAuthFieldDraft {
1257
+ readonly source: 'stored';
1258
+ readonly value: string;
1259
+ }
1260
+ /** One explicit credential field sourced from a declared environment variable. */
1261
+ interface EnvironmentAuthFieldDraft {
1262
+ readonly source: 'environment';
1263
+ readonly variable: string;
1264
+ }
1265
+ /** UI selection for one explicit authentication field. */
1266
+ type AuthFieldDraft = StoredAuthFieldDraft | EnvironmentAuthFieldDraft;
1267
+ /** UI authentication selection before plaintext fields are persisted. */
1268
+ type ProviderConfigAuthDraft = {
1269
+ readonly mode: 'explicit';
1270
+ readonly method: AuthMethodRef;
1271
+ readonly fields: Readonly<Record<string, AuthFieldDraft>>;
1272
+ } | {
1273
+ readonly mode: 'inferred';
1274
+ readonly method: ClientAuthMethodRef;
1275
+ readonly account?: NativeAccountSelection;
1276
+ } | {
1277
+ readonly mode: 'none';
1278
+ readonly method: AuthMethodRef;
1279
+ };
1280
+ /** Normalized refs-only auth plus plaintext values that still need storage. */
1281
+ interface CompiledProviderConfigAuthDraft {
1282
+ /** Canonical refs-only selection persisted in the provider config. */
1283
+ readonly auth: ProviderConfigAuth;
1284
+ /** Plaintext values destined for the encrypted credential service. */
1285
+ readonly storedCredentials: Readonly<Record<string, string>>;
1286
+ }
1287
+ /**
1288
+ * Create editable field drafts for one compatible authentication option.
1289
+ * @param option - Exact adapter-compatible method selected by the UI.
1290
+ * @returns Stored-source drafts for every explicit field, or an empty map for non-explicit methods.
1291
+ */
1292
+ declare function createInitialAuthFieldDrafts(option: CompatibleAuthOption): Record<string, AuthFieldDraft>;
1293
+ /**
1294
+ * Build one strict provider-config auth draft from an adapter-compatible option.
1295
+ *
1296
+ * This is the shared form boundary for onboarding and settings. It preserves
1297
+ * optional omissions, rejects undeclared field/source selections, and keeps
1298
+ * inferred account selection separate from explicit credential fields.
1299
+ * @param option - Exact adapter-compatible method selected by the UI.
1300
+ * @param fieldDrafts - Current explicit field-source/value drafts.
1301
+ * @param account - Optional native account selected for an inferred method.
1302
+ * @returns Complete mode-specific provider-config auth draft.
1303
+ */
1304
+ declare function buildProviderConfigAuthDraft(option: CompatibleAuthOption, fieldDrafts?: Readonly<Record<string, AuthFieldDraft>>, account?: NativeAccountSelection): ProviderConfigAuthDraft;
1305
+ /**
1306
+ * Build a collision-free owner-qualified key for UI method controls.
1307
+ * @param method - Normalized provider- or client-owned auth method.
1308
+ * @returns Stable key suitable for form control values.
1309
+ */
1310
+ declare function authMethodRefKey(method: AuthMethodRef): string;
1311
+ /**
1312
+ * Compile one UI auth draft into the canonical refs-only selection.
1313
+ *
1314
+ * Stored refs are deterministic from the final provider-config ID, allowing a
1315
+ * disabled reservation to contain its final auth snapshot before plaintext is
1316
+ * written. Environment-only, inferred, and no-auth drafts do not need an ID.
1317
+ * @param draft - Complete UI authentication selection.
1318
+ * @param providerConfigId - Final canonical ID when any field uses stored plaintext.
1319
+ * @returns Canonical auth plus the plaintext subset that still needs storage.
1320
+ */
1321
+ declare function compileProviderConfigAuthDraft(draft: ProviderConfigAuthDraft, providerConfigId?: string): CompiledProviderConfigAuthDraft;
1322
+ /**
1323
+ * Return whether an auth draft contains at least one stored plaintext field.
1324
+ * @param draft - UI authentication selection to inspect.
1325
+ * @returns Whether the host-owned encrypted storage bridge is required.
1326
+ */
1327
+ declare function authDraftRequiresStorage(draft: ProviderConfigAuthDraft): boolean;
1249
1328
  //#endregion
1250
1329
  //#region ui/hooks/src/onboarding/scan-onboarding-adapters.d.ts
1251
1330
  /**
@@ -1432,10 +1511,8 @@ interface OnboardingProviderConfigDraft {
1432
1511
  definitionId: string;
1433
1512
  /** Optional display name. */
1434
1513
  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>;
1514
+ /** Exactly one normalized authentication method and its UI field sources. */
1515
+ auth: ProviderConfigAuthDraft;
1439
1516
  /** Optional endpoint overrides. */
1440
1517
  endpointOverrides?: ProtocolEndpoints;
1441
1518
  /** Optional per-model visibility overrides. */
@@ -1833,8 +1910,6 @@ interface ProviderInfo {
1833
1910
  enabled: boolean;
1834
1911
  /** Controls default visibility for models without explicit overrides. */
1835
1912
  modelFilterMode: ModelFilterMode;
1836
- /** True when at least one credential key exists in storage. */
1837
- hasCredentials: boolean;
1838
1913
  /** Sparse per-model visibility overrides. */
1839
1914
  modelVisibility?: Record<string, ModelVisibility>;
1840
1915
  /**
@@ -1885,6 +1960,20 @@ interface ProviderState {
1885
1960
  }
1886
1961
  declare const useProviderStore: UseBoundStore<StoreApi<ProviderState>>;
1887
1962
  //#endregion
1963
+ //#region ui/hooks/src/provider-config/use-compatible-auth-options.d.ts
1964
+ /** Reactive result for one definition's adapter-compatible auth methods. */
1965
+ interface UseCompatibleAuthOptionsResult {
1966
+ readonly options: CompatibleAuthOption[];
1967
+ readonly isLoading: boolean;
1968
+ readonly error: Error | null;
1969
+ }
1970
+ /**
1971
+ * Load the safe adapter-compatible authentication methods for one definition.
1972
+ * @param definitionId - Provider definition ID, or empty while no definition is selected.
1973
+ * @returns Current options plus loading and error state.
1974
+ */
1975
+ declare function useCompatibleAuthOptions(definitionId: string): UseCompatibleAuthOptionsResult;
1976
+ //#endregion
1888
1977
  //#region ui/hooks/src/utils/persisted-agent-selection.d.ts
1889
1978
  type PersistableAdapterSelection = Extract<AgentSelection, {
1890
1979
  kind: 'adapter';
@@ -1912,4 +2001,4 @@ declare function parsePersistedAgentSelection(value: unknown): AgentSelection |
1912
2001
  */
1913
2002
  declare function isPersistableProjectSelection(selection: AgentSelection): selection is PersistableProjectSelection;
1914
2003
  //#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 };
2004
+ export { type AppContextState, type AuthFieldDraft, type BoundAdapter, BusContext, BusProvider, type BusProviderProps, type CompiledProviderConfigAuthDraft, type CoreOnboardingStepComponents, type EnvironmentAuthFieldDraft, 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 OnboardingProviderConfigCreator, type OnboardingProviderConfigDraft, type OnboardingStepDefinition, type OnboardingStepProps, type PageOverlayState, type PersistableAdapterSelection, type PersistableProjectSelection, type PersistedExtensionConfigEntry, type PersistedStoreConfig, type PlacedFocusWidget, type ProviderConfigAuthDraft, type ProviderConfigDetailView, type ProviderConfigSummaryView, type ProviderInfo, type RuntimeNavigationLevel, type ScanContext, type SharedLoaderState, type SidebarState, type StorageType, type StoredAuthFieldDraft, type UseBusQueryOptions, type UseBusQueryResult, type UseCompatibleAuthOptionsResult, type UseOnboardingFlowOptions, type UseOnboardingFlowResult, type UseWidgetConfigOptions, type UseWidgetConfigResult, type UseWidgetRegistryOptions, type UseWidgetsOptions, type UseWidgetsResult, type WindowContextState, addWidgetToFocusLayout, authDraftRequiresStorage, authMethodRefKey, buildProviderConfigAuthDraft, buildScanContext, clearOnboardingCompleted, clearOnboardingSkipped, compileProviderConfigAuthDraft, createEmptyFocusContextLayout, createInitialAuthFieldDrafts, createPersistedStore, getOnboardingCompleted, getOnboardingSkipped, getProviderConfigDetailView, groupPagesByNavigationGroup, isPersistableProjectSelection, listCompatibleAuthOptions, listProviderConfigSummaryViews, loadExtensionBrowserContributions, noopStorage, parsePersistedAgentSelection, persistPluginEnabled, registerCoreOnboardingSteps, registerNavigationHandler, removeWidgetFromFocusLayout, scanOnboarding, scanOnboardingAdapters, scanOnboardingClients, setOnboardingCompleted, setOnboardingSkipped, updateFocusContextWidgetPosition, updateFocusContextWidgetSize, useAppContext, useBus, useBusEvent, useBusQuery, useCompatibleAuthOptions, useFocusStore, useNavigationLevel, useOnboardingFlow, useOptionalBus, usePageComponent, usePageDefinitions, usePageOverlayStore, usePages, useProviderStore, useSidebarStore, useTrayLayout, useWidgetConfig, useWidgetLayout, useWidgetLayoutActions, useWidgetRegistry, useWidgets, useWindowContext, useWindowIdPages };
@@ -1 +1 @@
1
- import e,{createContext as t,lazy as n,useCallback as r,useContext as i,useEffect as a,useMemo as o,useRef as s,useState as c,useSyncExternalStore as l}from"react";import{jsx as u}from"react/jsx-runtime";import{PreferencesSubjects as d}from"@makaio/framework/services/preferences";import{UiSubjects as f,deriveBrowserTarget as p,deriveDefaultEnabled as m,deriveTrayLayout as h,findCategory as g,isOverlayMode as _,isWidgetLayout as v,onboardingStepRegistry as y,pageDefinitionRegistry as b,queryPageDefinitions as x,runCleanupsInReverse as S,subscribeToWidgetEvents as C,widgetRegistry as w}from"@makaio/framework/ui-kernel";import{ExtensionSubjects as ee}from"@makaio/framework/kernel";import{MakaioBus as T}from"@makaio/framework/bus";import{AdapterSubjects as te,AgentSelectionSchema as ne}from"@makaio/framework/contracts";import{AdapterRuntimeSubjects as re}from"@makaio/framework/services/adapter-runtime";import{AdapterSubsystemSubjects as E}from"@makaio/framework/services/adapter-subsystem";import{LogImportSubjects as ie}from"@makaio/framework/services/log-import/log-import";import{SettingsSubjects as D}from"@makaio/framework/services/settings/namespace";import{ExtensionConfigStorageSubjects as ae}from"@makaio/framework/services/settings/storage/extension-configs/namespace";import{buildProviderContext as O}from"@makaio/framework/services/provider-context";import{ClientStorageSubjects as oe,ProviderStorageSubjects as k}from"@makaio/framework/services/settings/storage";import{ClientSubjects as se}from"@makaio/framework/contracts/client";const A=t(null);function ce({bus:e,children:t}){return u(A.Provider,{value:e,children:t})}function j(){let e=i(A);if(!e)throw Error(`useBus must be used within a BusProvider`);return e}function le(){return i(A)}function ue({subject:e,request:t,skip:n=!1,refetchOn:i=[]}){let l=j(),[u,d]=c(),[f,p]=c(!n),[m,h]=c(),g=o(()=>{if(t===void 0)return{deserializable:!0};try{let e=JSON.stringify(t);return e===void 0?{deserializable:!1}:{serialized:e,deserializable:!0}}catch{return{deserializable:!1}}},[t]),_=g.deserializable?g.serialized:`non-serializable-request`,v=o(()=>{if(g.deserializable&&g.serialized!==void 0)return JSON.parse(g.serialized)},[_,g.deserializable,g.serialized]),y=s(i);y.current=i;let b=o(()=>i.map(de).join(`,`),[i]),x=s(b);x.current!==b&&(x.current=b);let S=x.current,C=s(0),w=r(async()=>{let t=++C.current;p(!0),h(void 0);try{if(!g.deserializable)throw Error(`useBusQuery request must be JSON-serializable.`);let n=await l.request(e,v);t===C.current&&d(n)}catch(e){t===C.current&&h(e instanceof Error?e:Error(String(e)))}finally{t===C.current&&p(!1)}},[l,e,_,v,g.deserializable]);return a(()=>{n||w()},[w,n]),a(()=>{if(n||y.current.length===0)return;let e=y.current.map(e=>l.on(e,(()=>void w())));return()=>{for(let t of e)t()}},[l,S,w,n]),{data:u,loading:f,error:m,refetch:w}}function de(e){return JSON.stringify({subject:String(e.subject),meta:e.$meta})}function fe(e,t){let n=j(),r=s(t);r.current=t,a(()=>n.on(e,(e=>r.current(e))),[n,e])}function pe(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}const M=Object.freeze([]);function me(e={}){let{builtIns:t=M,scope:n,includeAny:i=!0}=e,s=j(),[u,d]=c(!1);a(()=>{w.registerAll(t)},[t]),a(()=>{let e=C(s);return d(!0),()=>{e(),d(!1)}},[s]);let f=r(e=>w.subscribe(e),[]),p=r(()=>w.getAll(),[]),m=l(f,p,p),h=o(()=>n?w.getByScope(n,i):m,[m,i,n]);return{builtInWidgets:t,loading:!u,widgets:u?h:void 0}}function he(e={}){let{scope:t,includeAny:n=!0}=e,i=r(e=>w.subscribe(e),[]),a=r(()=>w.getAll(),[]),s=l(i,a,a);return o(()=>t?w.getByScope(t,n):s,[s,n,t])}function ge(e){return e.contextId?`${e.scope}:${e.contextId}`:e.scope}function _e(e){let{paneId:t,widgetId:n,context:i,surface:l,defaultConfig:u}=e,f=j(),[p,m]=c(u),h=s(0),g=o(()=>ge(i),[i.contextId,i.scope]),_=o(()=>({category:`widget-config:${t}:${n}`,key:{scope:g,surface:l}}),[g,t,l,n]),v=o(()=>structuredClone(u),[u]);a(()=>{let e=++h.current,t=()=>h.current===e;return m(v),(async()=>{try{let{value:e}=await f.request(d.get,{category:_.category,key:_.key});if(!t())return;pe(e)&&m(t=>({...t,...e}))}catch{}})(),()=>{++h.current}},[f,v,_]);let y=r(async e=>{try{await f.request(d.set,{category:_.category,key:_.key,value:e})}catch{}},[f,_]);return{config:p,updateConfig:r(e=>{m(t=>{let n={...t,...e};return y(n),n})},[y])}}function ve(e){let t=j(),[n,i]=c(null),[o,s]=c(!0),[l,u]=c(null),f=r(async()=>{s(!0),u(null);try{let{value:n}=await t.request(d.get,{category:`widget-layout`,key:e});i(v(n)?n:null)}catch(e){u(e instanceof Error?e:Error(`Failed to load layout`)),i(null)}finally{s(!1)}},[t,e]);return a(()=>{f()},[f]),{layout:n,isLoading:o,error:l,refresh:f}}const N=`widget-layout`;function P(){let e=j();return{saveLayout:r(async(t,n)=>{await e.request(d.set,{category:N,key:t,value:n})},[e]),resetLayout:r(async t=>{await e.request(d.delete,{category:N,key:t})},[e])}}const ye=Object.freeze([]);function F(e=ye){let t=r(e=>w.subscribe(e),[]),n=r(()=>w.getAll(),[]),i=l(t,n,n);return o(()=>h(i,e),[i,e])}async function I(e){return import(e)}function L(e){return e.kind===`resolved`&&e.factory!==void 0}function be(e){return e.filter(e=>e.state===`active`&&e.browser?.entrypoint)}function R(){return{cleanups:[],errorMessage:null,shell:null,state:`empty`}}function xe(e){return e===`cancelled`}function z(e,t,n,r){return{cleanups:e,errorMessage:r,shell:n,state:t}}async function Se(e,t){let{bus:n,isCurrentRun:r,waitForRuntimeReady:i}=e,a=i(n);t.push(a.cleanup);let o=await a.ready;if(xe(o))return S(t,`[ExtensionBrowserLoader]`),{kind:`aborted`};if(o===`timeout`)return{kind:`result`,result:z(t,`error`,null,`The Makaio runtime did not respond. The service may have failed to start — try restarting the application or check the logs for errors.`)};if(!r())return S(t,`[ExtensionBrowserLoader]`),{kind:`aborted`};let{extensions:s}=await n.request(ee.list,{}),c=be(s);return c.length===0?{kind:`result`,result:z(t,`empty`,null,null)}:{browserExtensions:c,kind:`ok`}}function Ce(e){let t=e.browser.entrypoint,n;try{n=new URL(t,globalThis.location.origin)}catch{return console.warn(`[ExtensionBrowserLoader] Extension "${e.name}" has malformed entrypoint "${t}"`),null}return n.origin!==globalThis.location.origin||!n.pathname.startsWith(`/extensions/`)?(console.warn(`[ExtensionBrowserLoader] Extension "${e.name}" has unsafe entrypoint "${t}" (must stay under /extensions/)`),null):n.pathname}async function we(e,t,n,r){let{bus:i,getRegisteredFactory:a,importModule:o=I,isCurrentRun:s,registerExtensionUI:c,resolveFactory:l,unregisterFactory:u}=e,d=Ce(t);if(d===null)return{failed:!0,kind:`ok`,shell:r};let f=[()=>u(t.name)];try{let e=await o(d);if(!s())return S(f,`[ExtensionBrowserLoader] ${t.name}`),S(n,`[ExtensionBrowserLoader]`),{kind:`aborted`};let u=l(e.default,a(t.name));if(!L(u))return S(f,`[ExtensionBrowserLoader] ${t.name}`),console.warn(`[ExtensionBrowserLoader] Extension "${t.name}" has invalid browser factory (${u.reason??`unknown resolution error`})`),{failed:!0,kind:`ok`,shell:r};let p=u.factory({bus:i});if(!p||typeof p!=`object`)return S(f,`[ExtensionBrowserLoader] ${t.name}`),console.warn(`[ExtensionBrowserLoader] Extension "${t.name}" factory returned invalid contribution (expected object, got ${p===null?`null`:typeof p})`),{failed:!0,kind:`ok`,shell:r};p.destroy&&f.push(p.destroy),f.push(c(i,t.name,p));let m=r;return p.shell&&(m!==null&&console.warn(`[ExtensionBrowserLoader] Extension "${t.name}" replaces the previously registered shell (shell contributions are last-wins)`),m=p.shell.component),n.push(...f),{failed:!1,kind:`ok`,shell:m}}catch(e){return S(f,`[ExtensionBrowserLoader] ${t.name}`),console.error(`[ExtensionBrowserLoader] Failed to load extension "${t.name}":`,e),{failed:!0,kind:`ok`,shell:r}}}async function Te(e){let t=[];try{let n=await Se(e,t);if(n.kind===`aborted`)return R();if(n.kind===`result`)return n.result;let r=0,i=null;for(let a of n.browserExtensions){let n=await we(e,a,t,i);if(n.kind===`aborted`)return R();i=n.shell,n.failed&&(r+=1)}return e.isCurrentRun()?i===null?r>0?z(t,`error`,null,`One or more extensions failed to load before providing workspace chrome.`):z(t,`empty`,null,null):z(t,`ready`,i,null):(S(t,`[ExtensionBrowserLoader]`),R())}catch(e){return console.error(`[ExtensionBrowserLoader] Failed to query extensions:`,e),z(t,`error`,null,e instanceof Error?e.message:String(e))}}const B=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},V=(e=>e?B(e):B),Ee=e=>e;function De(t,n=Ee){let r=e.useSyncExternalStore(t.subscribe,e.useCallback(()=>n(t.getState()),[t,n]),e.useCallback(()=>n(t.getInitialState()),[t,n]));return e.useDebugValue(r),r}const H=e=>{let t=V(e),n=e=>De(t,e);return Object.assign(n,t),n},U=(e=>e?H(e):H);function W(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}const G=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return G(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return G(t)(e)}}}},Oe=(e,t)=>(n,r,i)=>{let a={storage:W(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let p=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>p;let m,h=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??p));let t=a.onRehydrateStorage?.call(a,r()??p)||void 0;return G(u.getItem.bind(u))(a.name).then(e=>{if(e)if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(t=>{if(e!==s)return;let[i,o]=t;if(m=a.merge(o,r()??p),n(m,!0),i)return d()}).then(()=>{e===s&&(t?.(r(),void 0),m=r(),o=!0,l.forEach(e=>e(m)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||h(),m||p},K={length:0,clear:()=>{},getItem:()=>null,key:()=>null,removeItem:()=>{},setItem:()=>{}};function ke(e){let t=`__makaio_storage_probe__`,n=n=>{let r=null,i=!1;try{return r=n.getItem(t),i=r!==null,n.setItem(t,`1`),!0}catch{return!1}finally{try{i&&r!==null?n.setItem(t,r):n.removeItem(t)}catch(t){console.warn(`[createPersistedStore] Storage probe cleanup failed`,{type:e,error:t})}}};try{return e===`localStorage`?typeof localStorage>`u`?K:n(localStorage)?localStorage:K:typeof sessionStorage>`u`?K:n(sessionStorage)?sessionStorage:K}catch{return K}}function q(e,t){let{name:n,storage:r=`sessionStorage`,version:i,partialize:a,merge:o,extraPersistOptions:s}=t,c={name:n,storage:W(()=>ke(r)),...i===void 0?{}:{version:i},...a?{partialize:a}:{},...o?{merge:o}:{},...s};return U()(Oe(e,c))}const Ae={level:`root`,values:{}};function J(e){return{level:e.level,values:{...e.values}}}const Y=q(e=>({windowId:null,uiContext:J(Ae),activePaneId:null,setWindowId:t=>e(e=>e.windowId!==null&&e.windowId!==t?{}:{windowId:t}),setUiContext:t=>e({uiContext:J(t),activePaneId:null}),setActivePaneId:t=>e({activePaneId:t}),clearUiContext:()=>e({uiContext:J(Ae),activePaneId:null})}),{name:`makaio-window-context`,storage:`sessionStorage`,partialize:e=>({uiContext:e.uiContext})}),X=q(e=>({activePageId:null,internalRoute:null,openPage:(t,n)=>e({activePageId:t,internalRoute:n??null}),close:()=>e({activePageId:null,internalRoute:null}),navigate:t=>e(e=>({internalRoute:t,activePageId:e.activePageId}))}),{name:`makaio-page-overlay`,storage:`sessionStorage`});function je(e,t,n){return{collapsedByLevel:{...e.collapsedByLevel,[t]:n}}}const Me=q((e,t)=>({collapsedByLevel:{},isCollapsed:e=>t().collapsedByLevel[e]??!1,toggle:t=>e(e=>je(e,t,!(e.collapsedByLevel[t]??!1))),setCollapsed:(t,n)=>e(e=>je(e,t,n))}),{name:`makaio-sidebar`,storage:`localStorage`}),Ne={onboarding:{id:`onboarding`,name:`Welcome`,isPreset:!0},chat:{id:`chat`,name:`Chat`,isPreset:!0,quickPromptSuggestions:[`Help me understand this code`,`What are the key files in this project?`,`Explain the architecture`]},git:{id:`git`,name:`Git`,isPreset:!0,quickPromptSuggestions:[`Show recent commits`,`What changed in this branch?`,`Create a new branch`]},review:{id:`review`,name:`Code Review`,isPreset:!0,quickPromptSuggestions:[`Review this pull request`,`Show file differences`,`Add review comments`]},planning:{id:`planning`,name:`Planning`,isPreset:!0,quickPromptSuggestions:[`Break down this task`,`Create implementation plan`,`Estimate complexity`]},settings:{id:`settings`,name:`Settings`,isPreset:!0},dashboard:{id:`dashboard`,name:`Dashboard`,isPreset:!0,quickPromptSuggestions:[`Show recent projects`,`Open a workspace`,`Create a new project`]}},Pe={activeFocus:Ne.chat},Fe=q((e,t)=>({activeFocus:Pe.activeFocus,setActiveFocus:t=>{let n=Ne[t];if(!n){console.error(`[focusStore] Unknown focus preset id: ${t}`);return}e({activeFocus:n})},setActiveFocusContext:t=>{e({activeFocus:t})},setFocusContextLayout:n=>{let{activeFocus:r}=t();e({activeFocus:{...r,layout:n}})},getFocusContextLayout:()=>t().activeFocus.layout}),{name:`makaio-focus`,storage:`sessionStorage`});function Ie(){return{version:1,widgets:[]}}function Le(e,t){return e.widgets.some(e=>e.widgetId===t.widgetId)?e:{...e,widgets:[...e.widgets,t]}}function Re(e,t){return e.widgets.some(e=>e.widgetId===t)?{...e,widgets:e.widgets.filter(e=>e.widgetId!==t)}:e}function ze(e,t,n){return e.widgets.some(e=>e.widgetId===t)?{...e,widgets:e.widgets.map(e=>e.widgetId===t?{...e,size:n}:e)}:e}function Be(e,t,n){return e.widgets.some(e=>e.widgetId===t)?{...e,widgets:e.widgets.map(e=>e.widgetId===t?{...e,...n}:e)}:e}function Ve(){return Y(e=>e.uiContext.level)}const He=new Set([`http:`,`https:`]);function Ue(e){return e.on(f.navigate,e=>{let{url:t}=e.payload,n;try{n=new URL(t,window.location.href)}catch{throw Error(`[registerNavigationHandler] Invalid URL: ${t}`)}if(!He.has(n.protocol))throw Error(`[registerNavigationHandler] Unsafe URL protocol "${n.protocol}" in: ${t}`);let r=n.toString(),i=p(n.pathname+n.search+n.hash);window.open(r,i,`noopener,noreferrer`),e.setResult({action:`navigated`})},{priority:10})}function We(e,t){let n=e.filter(e=>e.group!==void 0),r=new Map;for(let e of n){let t=e.group;r.has(t)||r.set(t,[]),r.get(t).push(e)}let i=[],a=new Set,o=[...t].sort((e,t)=>e.order-t.order);for(let e of o){let t=r.get(e.id)??[];i.push({config:e,pages:t}),a.add(e.id)}for(let[e,t]of r)if(!a.has(e)){let n={id:e,label:e,order:999};i.push({config:n,pages:t})}return i}function Ge(e){let t=r(e=>b.subscribe(e),[]),n=r(()=>b.getAll(),[]);return x(l(t,n,n),e)}function Ke(e){let t=Ge(e),n=X(e=>e.openPage),i=X(e=>e.activePageId),a=Fe(e=>e.setActiveFocus),o=Fe(e=>e.activeFocus.id),s=r(e=>_(e.mode)?()=>n(e.id):()=>{e.focusContext&&a(e.focusContext)},[n,a]);return t.map(e=>{let t;return t=e.isActive?e.isActive():_(e.mode)?i===e.id:e.focusContext?o===e.focusContext:!1,{...e,execute:s(e),isActive:t}})}function qe(e,t){return e===void 0?!0:Array.isArray(e)?e.includes(t):e===t}function Je(e){let t=Y(e=>e.windowId),n=Ke(e);return t?n.filter(e=>qe(e.windowId,t)):n}function Ye(e,t=0){let i=r(t=>e===null?()=>void 0:b.subscribe(t),[e]),a=r(()=>{if(e!==null)return b.get(e)},[e]),s=l(i,a,a);return o(()=>{if(s)return{Component:n(s.component),definition:s}},[s,t])}function Xe(e){let t=[],n=e=>{t.push(y.register(e))};return n({id:`welcome`,title:`Welcome`,kaiState:`wave`,order:10,skippable:!1,component:e.WelcomeStep}),n({id:`clients`,title:`Clients`,kaiState:`neutral`,order:20,skippable:!0,component:e.ClientsStep}),n({id:`providers`,title:`Providers`,kaiState:`neutral`,order:25,skippable:!0,component:e.ProvidersStep}),n({id:`adapters`,title:`Tools`,kaiState:`neutral`,order:30,skippable:!0,component:e.AdaptersStep}),n({id:`preferences`,title:`Preferences`,kaiState:`smile`,order:35,skippable:!0,component:e.PreferencesStep}),n({id:`plugins`,title:`Plugins`,kaiState:`neutral`,order:40,skippable:!0,condition:e=>e.extensions.length>0,component:e.PluginsStep}),n({id:`done`,title:`All Set`,kaiState:`success`,order:50,skippable:!1,component:e.DoneStep}),()=>{for(let e of t)e()}}function Ze(e){try{return localStorage.getItem(e)===`true`}catch{return!1}}function Qe(e){try{localStorage.setItem(e,`true`)}catch{}}function $e(e){try{localStorage.removeItem(e)}catch{}}const et=`makaio-onboarding-skipped`;function tt(){return Ze(et)}function nt(){Qe(et)}function rt(){$e(et)}const it=`makaio-onboarding-completed`;function at(){return Ze(it)}function ot(){Qe(it)}function st(){$e(it)}function Z(e,t,n,r){let i=n.get(e)??{id:`onboarding-${e}`,config:void 0};return n.set(e,i),r.request(ae.setEnabled,{extensionName:e,scope:`default`,enabled:t}).then(t=>(n.set(e,{...i,id:t.id}),t))}function ct(e){let t=ne.safeParse(e);if(!t.success)return null;let n=t.data;if(n.kind===`model`){let e=Q(n.adapterName),t=Q(n.model),r=Q(n.providerConfigId)??Q(n.providerId);return!e||!t?null:{kind:`adapter`,adapterName:e,model:t,...r?{providerConfigId:r}:{}}}if(n.kind===`virtualModel`){let e=Q(n.virtualModelId);return e?{kind:`virtual-model`,virtualModelId:e}:null}switch(n.kind){case`adapter`:{let e=Q(n.adapterName);if(!e)return null;let t=Q(n.model),r=Q(n.providerConfigId);return{kind:`adapter`,adapterName:e,...t?{model:t}:{},...r?{providerConfigId:r}:{}}}case`persona`:{let e=Q(n.personaId);return e?{kind:`persona`,personaId:e}:null}case`profile`:{let e=Q(n.profileId);return e?{kind:`profile`,profileId:e}:null}case`virtual-model`:{let e=Q(n.virtualModelId);return e?{kind:`virtual-model`,virtualModelId:e}:null}default:return null}}function lt(e){return e.kind===`adapter`?typeof e.adapterName==`string`&&e.adapterName.trim().length>0&&typeof e.providerConfigId==`string`&&e.providerConfigId.trim().length>0&&typeof e.model==`string`&&e.model.trim().length>0:!0}function Q(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function ut(e,t){if(typeof e==`object`&&e&&`defaultSelection`in e){let n=e.defaultSelection;if(n==null)return t;let r=ct(n);return r===null?t:{...t,defaultSelection:r}}return t}const dt=q(e=>({defaultSelection:null,setDefaultSelection:t=>e({defaultSelection:t})}),{name:`makaio-app-context`,storage:`localStorage`,merge:ut});async function ft(){let[{configs:e},{configs:t},{providers:n}]=await Promise.all([T.request(E.listProviderConfigs,{enabled:!0}),T.request(E.listAdapterConfigs,{}),T.request(k.list,{})]),r=new Map(n.map(e=>[e.id,e])),i=new Map;for(let e of t){if(!e.enabled)continue;let t=e.displayName??e.name;for(let n of e.bindings){let e={adapterName:n.adapterName,displayLabel:t},r=i.get(n.providerConfigId);r?r.push(e):i.set(n.providerConfigId,[e])}}return e.map(e=>({providerConfigId:e.id,definitionId:e.definitionId,name:e.name,availableModels:r.get(e.definitionId)?.availableModels??[],isDefault:e.isDefault,enabled:e.enabled,modelFilterMode:e.modelFilterMode,modelVisibility:e.modelVisibility,hasCredentials:e.hasCredentials,boundAdapters:i.get(e.id)??[]}))}const pt=U((e,t)=>({providers:[],isLoading:!1,error:null,_fetchPromise:null,_hasFetched:!1,_fetchGeneration:0,fetchProviders:async()=>{let n=t();if(n._hasFetched&&!n.isLoading)return Promise.resolve();if(n._fetchPromise)return n._fetchPromise;let r=t()._fetchGeneration;e({isLoading:!0,error:null});let i=ft().then(e=>{t()._fetchGeneration===r&&(console.debug(`[providerStore] providers:`,e.map(e=>({providerConfigId:e.providerConfigId,definitionId:e.definitionId,name:e.name}))),t().setProviders(e))}).catch(e=>{if(t()._fetchGeneration!==r)return;let n=e instanceof Error?e:Error(String(e));t().setError(n)}).finally(()=>{e(e=>e._fetchPromise===i?{_fetchPromise:null}:{})});return e({_fetchPromise:i}),i},invalidate:()=>{e(e=>({_hasFetched:!1,_fetchPromise:null,_fetchGeneration:e._fetchGeneration+1,isLoading:!1}))},setProviders:t=>{e({providers:t,isLoading:!1,error:null,_hasFetched:!0})},setError:t=>{e({error:t,isLoading:!1})}}));async function mt(){let[{clients:e},{adapters:t}]=await Promise.all([T.request(oe.list,{}),T.request(D.adapter.list,{})]),n=e.filter(e=>e.enabled&&e.binary!==void 0).map(e=>({id:e.id,name:e.name,binary:e.binary.name,supportedVersions:e.binary.supportedVersions}));if(n.length===0)return null;let{results:r}=await T.request(se.scan,{targets:n.map(e=>({clientId:e.id,binaryName:e.binary,supportedVersions:e.supportedVersions}))}),i=new Map(r.map(e=>[e.clientId,e])),a=n.map(e=>{let t=i.get(e.id);return{id:e.id,name:e.name,binary:e.binary,found:t?.found??!1,version:t?.version,warningMessage:t?.warningMessage}}),o=new Map;for(let e of t){if(!e.clientId)continue;let t=o.get(e.clientId);t?t.push(e.adapterName):o.set(e.clientId,[e.adapterName])}return{scannedClients:a,adaptersByClientId:o}}function ht(e){let{scannedClients:t,adaptersByClientId:n}=e,r=[];for(let e of t){let t=n.get(e.id);if(t?.length)for(let n of t)r.push({adapterName:n,displayName:e.name,binary:e.binary,found:e.found,version:e.version,warningMessage:e.warningMessage})}return r}function gt(e){let t=e.toLowerCase();return t.includes(`cli`)?0:t.includes(`sdk`)?1:2}function _t(e){let{scannedClients:t,adaptersByClientId:n}=e,r=[];for(let e of t){let t=(n.get(e.id)??[]).sort((e,t)=>{let n=gt(e),r=gt(t);return n===r?e.localeCompare(t):n-r});r.push({clientId:e.id,name:e.name,binary:e.binary,found:e.found,version:e.version,warningMessage:e.warningMessage,adapterNames:t})}return r}async function vt(){let e=await mt();return e?ht(e):[]}async function yt(){let e=await mt();return e?_t(e):[]}async function bt(){let e=await mt();return e?{adapters:ht(e),clients:_t(e)}:{adapters:[],clients:[]}}function xt(e,t){return{...e,supportedProtocols:t==null?[]:Object.keys(t.endpoints??{})}}async function St(e,t={}){let[{configs:n},{providers:r}]=await Promise.all([e.request(E.listProviderConfigs,t),e.request(k.list,{})]),i=new Map(r.map(e=>[e.id,e]));return n.map(e=>xt(e,i.get(e.definitionId)))}async function Ct(e,t){let{config:n}=await e.request(E.getProviderConfig,{id:t});if(n===null)return null;let{context:r}=await e.request(E.buildProviderContext,{providerConfigId:t});if(r===null||r.definitionId!==n.definitionId)return null;let{provider:i}=await e.request(k.get,{id:r.definitionId}),a=r.credentialRefs;return{...xt(n,i),...a&&Object.keys(a).length>0?{credentialRefs:a}:{}}}let $=null;function wt(e){if($===null)$={creator:e,count:1};else if($.creator===e)$.count+=1;else throw Error(`useOnboardingFlow: only one host-owned create bridge may be registered at a time.`);return()=>Tt(e)}function Tt(e){if($?.creator===e){if($.count===1){$=null;return}--$.count}}function Et(e){return e}function Dt(e){try{ot()}catch(e){console.error(`[useOnboardingFlow] Failed to persist completion flag:`,e)}finally{e()}}async function Ot(e,t){let n=$?.creator??null;if(n){let r=await n(T,e);return await t(),r}let r=!!e.credentials&&Object.keys(e.credentials).length>0,i=!!e.credentialRefs&&Object.keys(e.credentialRefs).length>0;if(r&&!i)throw Error(`useOnboardingFlow: plaintext provider-config creation requires a host-owned create bridge.`);let{credentials:a,...o}=e,{config:s}=await T.request(E.createProviderConfig,o);return await t(),s.id}async function kt(e){let t=await T.requestOptional(E.getDefaultBinding,{adapterName:e});if(!t.handled||!t.data.binding)return;let{binding:n}=t.data;try{return await O(T,n.providerConfigId)}catch(e){console.warn(`[onboarding] buildProviderContext failed for ${n.providerConfigId}:`,e);return}}function At({context:e,onComplete:t,onSkip:n}){let{setDefaultSelection:i}=dt(),l=j(),[u]=c(()=>{let t=Et(y.getAll());return Object.freeze(t.filter(t=>t.condition===void 0||t.condition(e)))}),[d,f]=c(0),[p,h]=c(e.adapters),[_,v]=c(()=>new Set(e.adapters.filter(e=>e.enabled).map(e=>e.adapterName))),[b,x]=c(()=>new Map),[S,C]=c(()=>new Map),[w,ne]=c(null),[O,oe]=c(()=>e.extensions),[k,se]=c(()=>new Map),[A,ce]=c([]),[le,ue]=c(!1),[de,fe]=c(null),[pe,M]=c(()=>new Set),[me,he]=c([]),[ge,_e]=c([]),[ve,N]=c([]),P=s(new Map),ye=s(0),F=s(0),I=s(new Map);a(()=>{let e=++ye.current,t=()=>ye.current===e;(async()=>{try{let[e,n]=await Promise.all([T.request(ee.list,{}),T.request(ae.list,{})]);if(!t())return;let r=new Map;for(let e of n.extensionConfigs)e.scope===`default`&&!r.has(e.extensionName)&&r.set(e.extensionName,{id:e.id,enabled:e.enabled,config:e.config});let i=new Map,a=new Map;for(let t of e.extensions){let e=r.get(t.name);e!==void 0&&(i.set(t.name,e.enabled),a.set(t.name,{id:e.id,config:e.config}))}oe(e.extensions),se(i),P.current=a}catch(e){if(!t())return;console.error(`[useOnboardingFlow] Failed to load extension list:`,e)}})()},[]),a(()=>()=>{for(let e of I.current.values())e.abort();I.current.clear()},[]);let L=r(async()=>{let{adapters:e}=await T.request(D.adapter.list,{});h(e),v(new Set(e.filter(e=>e.enabled).map(e=>e.adapterName)))},[]),be=r(async e=>{(await T.request(D.adapter.setEnabled,{adapterName:e,enabled:!0})).success&&(await L(),pt.getState().invalidate())},[L]),R=r(async e=>{(await T.request(D.adapter.setEnabled,{adapterName:e,enabled:!1})).success&&(v(t=>{let n=new Set(t);return n.delete(e),n}),await L(),pt.getState().invalidate())},[L]),xe=r(async e=>{x(t=>new Map([...t,[e,{status:`pending`}]])),I.current.get(e)?.abort();let t=new AbortController;I.current.set(e,t);let n;try{n=(await T.request(re.resolveId,{adapterName:e},{signal:t.signal})).adapterId}catch(n){if(t.signal.aborted)return{status:`pending`};let r={status:`error`,message:`Could not resolve adapter "${e}": ${n instanceof Error?n.message:String(n)}`};return x(t=>new Map([...t,[e,r]])),r}if(t.signal.aborted)return{status:`pending`};let r=await kt(e);if(t.signal.aborted)return{status:`pending`};let i=Date.now(),a={adapterId:n,prompt:`Reply with the single word: OK`,...r&&{providerContext:r}};try{if(await T.request(te.infer,a,{timeout:3e4,signal:t.signal}),t.signal.aborted)return{status:`pending`};let n={status:`success`,durationMs:Date.now()-i};return x(t=>new Map([...t,[e,n]])),n}catch(n){if(t.signal.aborted)return{status:`pending`};let r={status:`error`,message:n instanceof Error?n.message:String(n)};return x(t=>new Map([...t,[e,r]])),r}finally{I.current.get(e)===t&&I.current.delete(e)}},[]),z=r((e,t)=>{C(n=>new Map([...n,[e,t]]))},[]),Se=r(e=>{ne(e)},[]),Ce=r(async()=>{let e=++F.current;ue(!0),fe(null);try{let{adapters:t,clients:n}=await bt();if(F.current!==e)return;ce(t),he(n);let r=new Set(n.filter(e=>e.found).map(e=>e.clientId));M(e=>e.size===0?r:new Set([...e].filter(e=>r.has(e))))}catch(t){if(F.current!==e)return;let n=t instanceof Error?t:Error(String(t));throw fe(n),n}finally{F.current===e&&ue(!1)}},[]),we=r((e,t)=>{se(n=>new Map([...n,[e,t]])),Z(e,t,P.current,l).catch(t=>{console.error(`[useOnboardingFlow] Failed to persist plugin toggle for ${e}:`,t)})},[l]),Te=r(e=>M(t=>new Set([...t,e])),[]),B=r(e=>{M(t=>{let n=new Set(t);return n.delete(e),n})},[]),V=r(async()=>{_e(await St(T))},[]),Ee=r(async e=>Ot(e,V),[V]),De=r(async e=>{await T.request(E.deleteProviderConfig,{id:e}),await V(),N(t=>t.filter(t=>t.providerConfigId!==e))},[V]),H=r(async e=>{let{bindings:t}=await T.request(E.listBindings,{adapterName:e});N(n=>[...n.filter(t=>t.adapterName!==e),...t])},[]),U=r(async(e,t)=>{await T.request(E.bind,{adapterName:e,providerConfigId:t}),await H(e)},[H]),W=r(async(e,t)=>{await T.request(E.unbind,{adapterName:e,providerConfigId:t}),await H(e)},[H]),G=r(async(e,t)=>{await T.request(E.setDefaultBinding,{adapterName:e,providerConfigId:t}),await H(e)},[H]),Oe=o(()=>({enableAdapter:be,disableAdapter:R,runHealthCheck:xe,setLogImportMode:z,setDefaultAgent:Se,refreshAdapterList:L,togglePlugin:we,scan:Ce,selectClient:Te,deselectClient:B,createProviderConfig:Ee,deleteProviderConfig:De,bindProvider:U,unbindProvider:W,setDefaultProvider:G,refreshProviderConfigs:V,refreshBindings:H}),[be,R,xe,z,Se,L,we,Ce,Te,B,Ee,De,U,W,G,V,H]),K=r(()=>{f(e=>Math.min(e+1,u.length-1))},[u.length]),ke=r(()=>{f(e=>Math.max(e-1,0))},[]),q=r(async e=>{w&&i(w);let t=Array.from(S.entries());if(await Promise.all(t.map(([e,t])=>T.request(ie.setMode,{adapterName:e,mode:t},{timeout:8e3}))),await Promise.all(Array.from(k.entries()).map(([e,t])=>Z(e,t,P.current,l))),e){for(let e of O)if(!k.has(e.name)){let t=m(g(e.name));Z(e.name,t,P.current,l).catch(t=>{console.error(`[useOnboardingFlow] Failed to persist default extension state for ${e.name}:`,t)})}}},[l,S,w,i,O,k]),Ae=r(async()=>{try{await q(!1)}catch(e){console.error(`[useOnboardingFlow] Failed to persist selections on skip:`,e)}finally{n()}},[q,n]),J=r(async()=>{try{await q(!0)}catch(e){console.error(`[useOnboardingFlow] Failed to persist selections on complete:`,e)}finally{Dt(t)}},[q,t]),Y=o(()=>({adapters:p,enabledAdapterNames:_,healthCheckResults:b,logImportSelections:S,defaultAgentSelection:w,extensions:O,pluginEnabledStates:k,scanAdapters:A,isScanning:le,scanError:de,scanClients:me,selectedClientIds:pe,providerConfigs:ge,adapterProviderBindings:ve}),[p,_,b,S,w,O,k,A,le,de,me,pe,ge,ve]),X=u[d]??u[0];if(X===void 0)throw Error(`useOnboardingFlow: no active steps found. Call registerCoreOnboardingSteps() before mounting the onboarding flow.`);return{activeSteps:u,currentStepIndex:d,currentStep:X,flowState:Y,actions:Oe,goNext:K,goBack:ke,skip:Ae,complete:J}}const jt=Object.assign(At,{registerCreateProviderConfig:wt,unregisterCreateProviderConfig:Tt});export{A as BusContext,ce as BusProvider,Le as addWidgetToFocusLayout,mt as buildScanContext,st as clearOnboardingCompleted,rt as clearOnboardingSkipped,Ie as createEmptyFocusContextLayout,q as createPersistedStore,at as getOnboardingCompleted,tt as getOnboardingSkipped,Ct as getProviderConfigDetailView,We as groupPagesByNavigationGroup,lt as isPersistableProjectSelection,St as listProviderConfigSummaryViews,Te as loadExtensionBrowserContributions,K as noopStorage,ct as parsePersistedAgentSelection,Z as persistPluginEnabled,Xe as registerCoreOnboardingSteps,Ue as registerNavigationHandler,Re as removeWidgetFromFocusLayout,bt as scanOnboarding,vt as scanOnboardingAdapters,yt as scanOnboardingClients,ot as setOnboardingCompleted,nt as setOnboardingSkipped,Be as updateFocusContextWidgetPosition,ze as updateFocusContextWidgetSize,dt as useAppContext,j as useBus,fe as useBusEvent,ue as useBusQuery,Fe as useFocusStore,Ve as useNavigationLevel,jt as useOnboardingFlow,le as useOptionalBus,Ye as usePageComponent,Ge as usePageDefinitions,X as usePageOverlayStore,Ke as usePages,pt as useProviderStore,Me as useSidebarStore,F as useTrayLayout,_e as useWidgetConfig,ve as useWidgetLayout,P as useWidgetLayoutActions,he as useWidgetRegistry,me as useWidgets,Y as useWindowContext,Je as useWindowIdPages};
1
+ import e,{createContext as t,lazy as n,useCallback as r,useContext as i,useEffect as a,useMemo as o,useRef as s,useState as c,useSyncExternalStore as l}from"react";import{jsx as u}from"react/jsx-runtime";import{PreferencesSubjects as d}from"@makaio/framework/services/preferences";import{UiSubjects as f,deriveBrowserTarget as p,deriveDefaultEnabled as m,deriveTrayLayout as h,findCategory as g,isOverlayMode as _,isWidgetLayout as v,onboardingStepRegistry as y,pageDefinitionRegistry as b,queryPageDefinitions as x,runCleanupsInReverse as S,subscribeToWidgetEvents as C,widgetRegistry as w}from"@makaio/framework/ui-kernel";import{ExtensionSubjects as ee}from"@makaio/framework/kernel";import{MakaioBus as T}from"@makaio/framework/bus";import{AdapterSubjects as te,AgentSelectionSchema as ne}from"@makaio/framework/contracts";import{AdapterRuntimeSubjects as re}from"@makaio/framework/services/adapter-runtime";import{AdapterSubsystemSubjects as E}from"@makaio/framework/services/adapter-subsystem";import{LogImportSubjects as ie}from"@makaio/framework/services/log-import/log-import";import{SettingsSubjects as D}from"@makaio/framework/services/settings/namespace";import{ExtensionConfigStorageSubjects as ae}from"@makaio/framework/services/settings/storage/extension-configs/namespace";import{resolveRuntimeProviderContext as O}from"@makaio/framework/services/provider-context";import{ClientStorageSubjects as oe,ProviderStorageSubjects as k}from"@makaio/framework/services/settings/storage";import{ClientSubjects as se}from"@makaio/framework/contracts/client";import{AuthCredentialRefSchema as ce,ProviderConfigAuthSchema as le}from"@makaio/framework/contracts/auth";import{buildStoredCredentialRef as ue}from"@makaio/framework/contracts/config";const A=t(null);function de({bus:e,children:t}){return u(A.Provider,{value:e,children:t})}function j(){let e=i(A);if(!e)throw Error(`useBus must be used within a BusProvider`);return e}function fe(){return i(A)}function pe({subject:e,request:t,skip:n=!1,refetchOn:i=[]}){let l=j(),[u,d]=c(),[f,p]=c(!n),[m,h]=c(),g=o(()=>{if(t===void 0)return{deserializable:!0};try{let e=JSON.stringify(t);return e===void 0?{deserializable:!1}:{serialized:e,deserializable:!0}}catch{return{deserializable:!1}}},[t]),_=g.deserializable?g.serialized:`non-serializable-request`,v=o(()=>{if(g.deserializable&&g.serialized!==void 0)return JSON.parse(g.serialized)},[_,g.deserializable,g.serialized]),y=s(i);y.current=i;let b=o(()=>i.map(M).join(`,`),[i]),x=s(b);x.current!==b&&(x.current=b);let S=x.current,C=s(0),w=r(async()=>{let t=++C.current;p(!0),h(void 0);try{if(!g.deserializable)throw Error(`useBusQuery request must be JSON-serializable.`);let n=await l.request(e,v);t===C.current&&d(n)}catch(e){t===C.current&&h(e instanceof Error?e:Error(String(e)))}finally{t===C.current&&p(!1)}},[l,e,_,v,g.deserializable]);return a(()=>{n||w()},[w,n]),a(()=>{if(n||y.current.length===0)return;let e=y.current.map(e=>l.on(e,(()=>void w())));return()=>{for(let t of e)t()}},[l,S,w,n]),{data:u,loading:f,error:m,refetch:w}}function M(e){return JSON.stringify({subject:String(e.subject),meta:e.$meta})}function me(e,t){let n=j(),r=s(t);r.current=t,a(()=>n.on(e,(e=>r.current(e))),[n,e])}function he(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}const ge=Object.freeze([]);function _e(e={}){let{builtIns:t=ge,scope:n,includeAny:i=!0}=e,s=j(),[u,d]=c(!1);a(()=>{w.registerAll(t)},[t]),a(()=>{let e=C(s);return d(!0),()=>{e(),d(!1)}},[s]);let f=r(e=>w.subscribe(e),[]),p=r(()=>w.getAll(),[]),m=l(f,p,p),h=o(()=>n?w.getByScope(n,i):m,[m,i,n]);return{builtInWidgets:t,loading:!u,widgets:u?h:void 0}}function ve(e={}){let{scope:t,includeAny:n=!0}=e,i=r(e=>w.subscribe(e),[]),a=r(()=>w.getAll(),[]),s=l(i,a,a);return o(()=>t?w.getByScope(t,n):s,[s,n,t])}function ye(e){return e.contextId?`${e.scope}:${e.contextId}`:e.scope}function N(e){let{paneId:t,widgetId:n,context:i,surface:l,defaultConfig:u}=e,f=j(),[p,m]=c(u),h=s(0),g=o(()=>ye(i),[i.contextId,i.scope]),_=o(()=>({category:`widget-config:${t}:${n}`,key:{scope:g,surface:l}}),[g,t,l,n]),v=o(()=>structuredClone(u),[u]);a(()=>{let e=++h.current,t=()=>h.current===e;return m(v),(async()=>{try{let{value:e}=await f.request(d.get,{category:_.category,key:_.key});if(!t())return;he(e)&&m(t=>({...t,...e}))}catch{}})(),()=>{++h.current}},[f,v,_]);let y=r(async e=>{try{await f.request(d.set,{category:_.category,key:_.key,value:e})}catch{}},[f,_]);return{config:p,updateConfig:r(e=>{m(t=>{let n={...t,...e};return y(n),n})},[y])}}function P(e){let t=j(),[n,i]=c(null),[o,s]=c(!0),[l,u]=c(null),f=r(async()=>{s(!0),u(null);try{let{value:n}=await t.request(d.get,{category:`widget-layout`,key:e});i(v(n)?n:null)}catch(e){u(e instanceof Error?e:Error(`Failed to load layout`)),i(null)}finally{s(!1)}},[t,e]);return a(()=>{f()},[f]),{layout:n,isLoading:o,error:l,refresh:f}}const F=`widget-layout`;function I(){let e=j();return{saveLayout:r(async(t,n)=>{await e.request(d.set,{category:F,key:t,value:n})},[e]),resetLayout:r(async t=>{await e.request(d.delete,{category:F,key:t})},[e])}}const L=Object.freeze([]);function be(e=L){let t=r(e=>w.subscribe(e),[]),n=r(()=>w.getAll(),[]),i=l(t,n,n);return o(()=>h(i,e),[i,e])}async function xe(e){return import(e)}function Se(e){return e.kind===`resolved`&&e.factory!==void 0}function Ce(e){return e.filter(e=>e.state===`active`&&e.browser?.entrypoint)}function R(){return{cleanups:[],errorMessage:null,shell:null,state:`empty`}}function we(e){return e===`cancelled`}function z(e,t,n,r){return{cleanups:e,errorMessage:r,shell:n,state:t}}async function Te(e,t){let{bus:n,isCurrentRun:r,waitForRuntimeReady:i}=e,a=i(n);t.push(a.cleanup);let o=await a.ready;if(we(o))return S(t,`[ExtensionBrowserLoader]`),{kind:`aborted`};if(o===`timeout`)return{kind:`result`,result:z(t,`error`,null,`The Makaio runtime did not respond. The service may have failed to start — try restarting the application or check the logs for errors.`)};if(!r())return S(t,`[ExtensionBrowserLoader]`),{kind:`aborted`};let{extensions:s}=await n.request(ee.list,{}),c=Ce(s);return c.length===0?{kind:`result`,result:z(t,`empty`,null,null)}:{browserExtensions:c,kind:`ok`}}function Ee(e){let t=e.browser.entrypoint,n;try{n=new URL(t,globalThis.location.origin)}catch{return console.warn(`[ExtensionBrowserLoader] Extension "${e.name}" has malformed entrypoint "${t}"`),null}return n.origin!==globalThis.location.origin||!n.pathname.startsWith(`/extensions/`)?(console.warn(`[ExtensionBrowserLoader] Extension "${e.name}" has unsafe entrypoint "${t}" (must stay under /extensions/)`),null):n.pathname}async function B(e,t,n,r){let{bus:i,getRegisteredFactory:a,importModule:o=xe,isCurrentRun:s,registerExtensionUI:c,resolveFactory:l,unregisterFactory:u}=e,d=Ee(t);if(d===null)return{failed:!0,kind:`ok`,shell:r};let f=[()=>u(t.name)];try{let e=await o(d);if(!s())return S(f,`[ExtensionBrowserLoader] ${t.name}`),S(n,`[ExtensionBrowserLoader]`),{kind:`aborted`};let u=l(e.default,a(t.name));if(!Se(u))return S(f,`[ExtensionBrowserLoader] ${t.name}`),console.warn(`[ExtensionBrowserLoader] Extension "${t.name}" has invalid browser factory (${u.reason??`unknown resolution error`})`),{failed:!0,kind:`ok`,shell:r};let p=u.factory({bus:i});if(!p||typeof p!=`object`)return S(f,`[ExtensionBrowserLoader] ${t.name}`),console.warn(`[ExtensionBrowserLoader] Extension "${t.name}" factory returned invalid contribution (expected object, got ${p===null?`null`:typeof p})`),{failed:!0,kind:`ok`,shell:r};p.destroy&&f.push(p.destroy),f.push(c(i,t.name,p));let m=r;return p.shell&&(m!==null&&console.warn(`[ExtensionBrowserLoader] Extension "${t.name}" replaces the previously registered shell (shell contributions are last-wins)`),m=p.shell.component),n.push(...f),{failed:!1,kind:`ok`,shell:m}}catch(e){return S(f,`[ExtensionBrowserLoader] ${t.name}`),console.error(`[ExtensionBrowserLoader] Failed to load extension "${t.name}":`,e),{failed:!0,kind:`ok`,shell:r}}}async function De(e){let t=[];try{let n=await Te(e,t);if(n.kind===`aborted`)return R();if(n.kind===`result`)return n.result;let r=0,i=null;for(let a of n.browserExtensions){let n=await B(e,a,t,i);if(n.kind===`aborted`)return R();i=n.shell,n.failed&&(r+=1)}return e.isCurrentRun()?i===null?r>0?z(t,`error`,null,`One or more extensions failed to load before providing workspace chrome.`):z(t,`empty`,null,null):z(t,`ready`,i,null):(S(t,`[ExtensionBrowserLoader]`),R())}catch(e){return console.error(`[ExtensionBrowserLoader] Failed to query extensions:`,e),z(t,`error`,null,e instanceof Error?e.message:String(e))}}const V=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},H=(e=>e?V(e):V),Oe=e=>e;function U(t,n=Oe){let r=e.useSyncExternalStore(t.subscribe,e.useCallback(()=>n(t.getState()),[t,n]),e.useCallback(()=>n(t.getInitialState()),[t,n]));return e.useDebugValue(r),r}const W=e=>{let t=H(e),n=e=>U(t,e);return Object.assign(n,t),n},ke=(e=>e?W(e):W);function Ae(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}const G=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return G(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return G(t)(e)}}}},K=(e,t)=>(n,r,i)=>{let a={storage:Ae(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let p=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>p;let m,h=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??p));let t=a.onRehydrateStorage?.call(a,r()??p)||void 0;return G(u.getItem.bind(u))(a.name).then(e=>{if(e)if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(t=>{if(e!==s)return;let[i,o]=t;if(m=a.merge(o,r()??p),n(m,!0),i)return d()}).then(()=>{e===s&&(t?.(r(),void 0),m=r(),o=!0,l.forEach(e=>e(m)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||h(),m||p},q={length:0,clear:()=>{},getItem:()=>null,key:()=>null,removeItem:()=>{},setItem:()=>{}};function je(e){let t=`__makaio_storage_probe__`,n=n=>{let r=null,i=!1;try{return r=n.getItem(t),i=r!==null,n.setItem(t,`1`),!0}catch{return!1}finally{try{i&&r!==null?n.setItem(t,r):n.removeItem(t)}catch(t){console.warn(`[createPersistedStore] Storage probe cleanup failed`,{type:e,error:t})}}};try{return e===`localStorage`?typeof localStorage>`u`?q:n(localStorage)?localStorage:q:typeof sessionStorage>`u`?q:n(sessionStorage)?sessionStorage:q}catch{return q}}function J(e,t){let{name:n,storage:r=`sessionStorage`,version:i,partialize:a,merge:o,extraPersistOptions:s}=t,c={name:n,storage:Ae(()=>je(r)),...i===void 0?{}:{version:i},...a?{partialize:a}:{},...o?{merge:o}:{},...s};return ke()(K(e,c))}const Y={level:`root`,values:{}};function Me(e){return{level:e.level,values:{...e.values}}}const Ne=J(e=>({windowId:null,uiContext:Me(Y),activePaneId:null,setWindowId:t=>e(e=>e.windowId!==null&&e.windowId!==t?{}:{windowId:t}),setUiContext:t=>e({uiContext:Me(t),activePaneId:null}),setActivePaneId:t=>e({activePaneId:t}),clearUiContext:()=>e({uiContext:Me(Y),activePaneId:null})}),{name:`makaio-window-context`,storage:`sessionStorage`,partialize:e=>({uiContext:e.uiContext})}),Pe=J(e=>({activePageId:null,internalRoute:null,openPage:(t,n)=>e({activePageId:t,internalRoute:n??null}),close:()=>e({activePageId:null,internalRoute:null}),navigate:t=>e(e=>({internalRoute:t,activePageId:e.activePageId}))}),{name:`makaio-page-overlay`,storage:`sessionStorage`});function Fe(e,t,n){return{collapsedByLevel:{...e.collapsedByLevel,[t]:n}}}const Ie=J((e,t)=>({collapsedByLevel:{},isCollapsed:e=>t().collapsedByLevel[e]??!1,toggle:t=>e(e=>Fe(e,t,!(e.collapsedByLevel[t]??!1))),setCollapsed:(t,n)=>e(e=>Fe(e,t,n))}),{name:`makaio-sidebar`,storage:`localStorage`}),Le={onboarding:{id:`onboarding`,name:`Welcome`,isPreset:!0},chat:{id:`chat`,name:`Chat`,isPreset:!0,quickPromptSuggestions:[`Help me understand this code`,`What are the key files in this project?`,`Explain the architecture`]},git:{id:`git`,name:`Git`,isPreset:!0,quickPromptSuggestions:[`Show recent commits`,`What changed in this branch?`,`Create a new branch`]},review:{id:`review`,name:`Code Review`,isPreset:!0,quickPromptSuggestions:[`Review this pull request`,`Show file differences`,`Add review comments`]},planning:{id:`planning`,name:`Planning`,isPreset:!0,quickPromptSuggestions:[`Break down this task`,`Create implementation plan`,`Estimate complexity`]},settings:{id:`settings`,name:`Settings`,isPreset:!0},dashboard:{id:`dashboard`,name:`Dashboard`,isPreset:!0,quickPromptSuggestions:[`Show recent projects`,`Open a workspace`,`Create a new project`]}},Re={activeFocus:Le.chat},ze=J((e,t)=>({activeFocus:Re.activeFocus,setActiveFocus:t=>{let n=Le[t];if(!n){console.error(`[focusStore] Unknown focus preset id: ${t}`);return}e({activeFocus:n})},setActiveFocusContext:t=>{e({activeFocus:t})},setFocusContextLayout:n=>{let{activeFocus:r}=t();e({activeFocus:{...r,layout:n}})},getFocusContextLayout:()=>t().activeFocus.layout}),{name:`makaio-focus`,storage:`sessionStorage`});function Be(){return{version:1,widgets:[]}}function Ve(e,t){return e.widgets.some(e=>e.widgetId===t.widgetId)?e:{...e,widgets:[...e.widgets,t]}}function He(e,t){return e.widgets.some(e=>e.widgetId===t)?{...e,widgets:e.widgets.filter(e=>e.widgetId!==t)}:e}function Ue(e,t,n){return e.widgets.some(e=>e.widgetId===t)?{...e,widgets:e.widgets.map(e=>e.widgetId===t?{...e,size:n}:e)}:e}function We(e,t,n){return e.widgets.some(e=>e.widgetId===t)?{...e,widgets:e.widgets.map(e=>e.widgetId===t?{...e,...n}:e)}:e}function Ge(){return Ne(e=>e.uiContext.level)}const Ke=new Set([`http:`,`https:`]);function qe(e){return e.on(f.navigate,e=>{let{url:t}=e.payload,n;try{n=new URL(t,window.location.href)}catch{throw Error(`[registerNavigationHandler] Invalid URL: ${t}`)}if(!Ke.has(n.protocol))throw Error(`[registerNavigationHandler] Unsafe URL protocol "${n.protocol}" in: ${t}`);let r=n.toString(),i=p(n.pathname+n.search+n.hash);window.open(r,i,`noopener,noreferrer`),e.setResult({action:`navigated`})},{priority:10})}function Je(e,t){let n=e.filter(e=>e.group!==void 0),r=new Map;for(let e of n){let t=e.group;r.has(t)||r.set(t,[]),r.get(t).push(e)}let i=[],a=new Set,o=[...t].sort((e,t)=>e.order-t.order);for(let e of o){let t=r.get(e.id)??[];i.push({config:e,pages:t}),a.add(e.id)}for(let[e,t]of r)if(!a.has(e)){let n={id:e,label:e,order:999};i.push({config:n,pages:t})}return i}function Ye(e){let t=r(e=>b.subscribe(e),[]),n=r(()=>b.getAll(),[]);return x(l(t,n,n),e)}function Xe(e){let t=Ye(e),n=Pe(e=>e.openPage),i=Pe(e=>e.activePageId),a=ze(e=>e.setActiveFocus),o=ze(e=>e.activeFocus.id),s=r(e=>_(e.mode)?()=>n(e.id):()=>{e.focusContext&&a(e.focusContext)},[n,a]);return t.map(e=>{let t;return t=e.isActive?e.isActive():_(e.mode)?i===e.id:e.focusContext?o===e.focusContext:!1,{...e,execute:s(e),isActive:t}})}function Ze(e,t){return e===void 0?!0:Array.isArray(e)?e.includes(t):e===t}function Qe(e){let t=Ne(e=>e.windowId),n=Xe(e);return t?n.filter(e=>Ze(e.windowId,t)):n}function $e(e,t=0){let i=r(t=>e===null?()=>void 0:b.subscribe(t),[e]),a=r(()=>{if(e!==null)return b.get(e)},[e]),s=l(i,a,a);return o(()=>{if(s)return{Component:n(s.component),definition:s}},[s,t])}function et(e){let t=[],n=e=>{t.push(y.register(e))};return n({id:`welcome`,title:`Welcome`,kaiState:`wave`,order:10,skippable:!1,component:e.WelcomeStep}),n({id:`clients`,title:`Clients`,kaiState:`neutral`,order:20,skippable:!0,component:e.ClientsStep}),n({id:`providers`,title:`Providers`,kaiState:`neutral`,order:25,skippable:!0,component:e.ProvidersStep}),n({id:`adapters`,title:`Tools`,kaiState:`neutral`,order:30,skippable:!0,component:e.AdaptersStep}),n({id:`preferences`,title:`Preferences`,kaiState:`smile`,order:35,skippable:!0,component:e.PreferencesStep}),n({id:`plugins`,title:`Plugins`,kaiState:`neutral`,order:40,skippable:!0,condition:e=>e.extensions.length>0,component:e.PluginsStep}),n({id:`done`,title:`All Set`,kaiState:`success`,order:50,skippable:!1,component:e.DoneStep}),()=>{for(let e of t)e()}}function tt(e){try{return localStorage.getItem(e)===`true`}catch{return!1}}function nt(e){try{localStorage.setItem(e,`true`)}catch{}}function rt(e){try{localStorage.removeItem(e)}catch{}}const it=`makaio-onboarding-skipped`;function at(){return tt(it)}function ot(){nt(it)}function st(){rt(it)}const ct=`makaio-onboarding-completed`;function lt(){return tt(ct)}function ut(){nt(ct)}function dt(){rt(ct)}function X(e,t,n,r){let i=n.get(e)??{id:`onboarding-${e}`,config:void 0};return n.set(e,i),r.request(ae.setEnabled,{extensionName:e,scope:`default`,enabled:t}).then(t=>(n.set(e,{...i,id:t.id}),t))}function ft(e){let t=ne.safeParse(e);if(!t.success)return null;let n=t.data;if(n.kind===`model`){let e=Z(n.adapterName),t=Z(n.model),r=Z(n.providerConfigId)??Z(n.providerId);return!e||!t?null:{kind:`adapter`,adapterName:e,model:t,...r?{providerConfigId:r}:{}}}if(n.kind===`virtualModel`){let e=Z(n.virtualModelId);return e?{kind:`virtual-model`,virtualModelId:e}:null}switch(n.kind){case`adapter`:{let e=Z(n.adapterName);if(!e)return null;let t=Z(n.model),r=Z(n.providerConfigId);return{kind:`adapter`,adapterName:e,...t?{model:t}:{},...r?{providerConfigId:r}:{}}}case`persona`:{let e=Z(n.personaId);return e?{kind:`persona`,personaId:e}:null}case`profile`:{let e=Z(n.profileId);return e?{kind:`profile`,profileId:e}:null}case`virtual-model`:{let e=Z(n.virtualModelId);return e?{kind:`virtual-model`,virtualModelId:e}:null}default:return null}}function pt(e){return e.kind===`adapter`?typeof e.adapterName==`string`&&e.adapterName.trim().length>0&&typeof e.providerConfigId==`string`&&e.providerConfigId.trim().length>0&&typeof e.model==`string`&&e.model.trim().length>0:!0}function Z(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function mt(e,t){if(typeof e==`object`&&e&&`defaultSelection`in e){let n=e.defaultSelection;if(n==null)return t;let r=ft(n);return r===null?t:{...t,defaultSelection:r}}return t}const ht=J(e=>({defaultSelection:null,setDefaultSelection:t=>e({defaultSelection:t})}),{name:`makaio-app-context`,storage:`localStorage`,merge:mt});async function gt(){let[{configs:e},{configs:t},{providers:n}]=await Promise.all([T.request(E.listProviderConfigs,{enabled:!0}),T.request(E.listAdapterConfigs,{}),T.request(k.list,{})]),r=new Map(n.map(e=>[e.id,e])),i=new Map;for(let e of t){if(!e.enabled)continue;let t=e.displayName??e.name;for(let n of e.bindings){let e={adapterName:n.adapterName,displayLabel:t},r=i.get(n.providerConfigId);r?r.push(e):i.set(n.providerConfigId,[e])}}return e.map(e=>({providerConfigId:e.id,definitionId:e.definitionId,name:e.name,availableModels:r.get(e.definitionId)?.availableModels??[],isDefault:e.isDefault,enabled:e.enabled,modelFilterMode:e.modelFilterMode,modelVisibility:e.modelVisibility,boundAdapters:i.get(e.id)??[]}))}const _t=ke((e,t)=>({providers:[],isLoading:!1,error:null,_fetchPromise:null,_hasFetched:!1,_fetchGeneration:0,fetchProviders:async()=>{let n=t();if(n._hasFetched&&!n.isLoading)return Promise.resolve();if(n._fetchPromise)return n._fetchPromise;let r=t()._fetchGeneration;e({isLoading:!0,error:null});let i=gt().then(e=>{t()._fetchGeneration===r&&(console.debug(`[providerStore] providers:`,e.map(e=>({providerConfigId:e.providerConfigId,definitionId:e.definitionId,name:e.name}))),t().setProviders(e))}).catch(e=>{if(t()._fetchGeneration!==r)return;let n=e instanceof Error?e:Error(String(e));t().setError(n)}).finally(()=>{e(e=>e._fetchPromise===i?{_fetchPromise:null}:{})});return e({_fetchPromise:i}),i},invalidate:()=>{e(e=>({_hasFetched:!1,_fetchPromise:null,_fetchGeneration:e._fetchGeneration+1,isLoading:!1}))},setProviders:t=>{e({providers:t,isLoading:!1,error:null,_hasFetched:!0})},setError:t=>{e({error:t,isLoading:!1})}}));async function Q(){let[{clients:e},{adapters:t}]=await Promise.all([T.request(oe.list,{}),T.request(D.adapter.list,{})]),n=e.filter(e=>e.enabled&&e.binary!==void 0).map(e=>({id:e.id,name:e.name,binary:e.binary.name,supportedVersions:e.binary.supportedVersions}));if(n.length===0)return null;let{results:r}=await T.request(se.scan,{targets:n.map(e=>({clientId:e.id,binaryName:e.binary,supportedVersions:e.supportedVersions}))}),i=new Map(r.map(e=>[e.clientId,e])),a=n.map(e=>{let t=i.get(e.id);return{id:e.id,name:e.name,binary:e.binary,found:t?.found??!1,version:t?.version,warningMessage:t?.warningMessage}}),o=new Map;for(let e of t){if(!e.clientId)continue;let t=o.get(e.clientId);t?t.push(e.adapterName):o.set(e.clientId,[e.adapterName])}return{scannedClients:a,adaptersByClientId:o}}function vt(e){let{scannedClients:t,adaptersByClientId:n}=e,r=[];for(let e of t){let t=n.get(e.id);if(t?.length)for(let n of t)r.push({adapterName:n,displayName:e.name,binary:e.binary,found:e.found,version:e.version,warningMessage:e.warningMessage})}return r}function yt(e){let t=e.toLowerCase();return t.includes(`cli`)?0:t.includes(`sdk`)?1:2}function bt(e){let{scannedClients:t,adaptersByClientId:n}=e,r=[];for(let e of t){let t=(n.get(e.id)??[]).sort((e,t)=>{let n=yt(e),r=yt(t);return n===r?e.localeCompare(t):n-r});r.push({clientId:e.id,name:e.name,binary:e.binary,found:e.found,version:e.version,warningMessage:e.warningMessage,adapterNames:t})}return r}async function xt(){let e=await Q();return e?vt(e):[]}async function St(){let e=await Q();return e?bt(e):[]}async function Ct(){let e=await Q();return e?{adapters:vt(e),clients:bt(e)}:{adapters:[],clients:[]}}function wt(e,t){return{...e,supportedProtocols:t==null?[]:Object.keys(t.endpoints??{})}}async function Tt(e,t={}){let[{configs:n},{providers:r}]=await Promise.all([e.request(E.listProviderConfigs,t),e.request(k.list,{})]),i=new Map(r.map(e=>[e.id,e]));return n.map(e=>wt(e,i.get(e.definitionId)))}async function Et(e,t){let{config:n}=await e.request(E.getProviderConfig,{id:t});if(n===null)return null;let{provider:r}=await e.request(k.get,{id:n.definitionId});return wt(n,r)}async function Dt(e,t){let{options:n}=await e.request(E.listCompatibleAuthOptions,{definitionId:t});return n}function Ot(e){return e.mode===`explicit`?Object.fromEntries(e.fields.map(({id:e})=>[e,{source:`stored`,value:``}])):{}}function kt(e,t={},n){if(e.mode===`explicit`){if(n)throw Error(`Explicit authentication cannot select a native account.`);let r=new Map(e.fields.map(e=>[e.id,e])),i=Object.keys(t).find(e=>!r.has(e));if(i)throw Error(`Authentication field "${i}" is not declared by method "${e.method.methodId}".`);let a={};for(let n of e.fields){let e=t[n.id];if(!e||e.source===`stored`&&e.value.length===0){if(n.required)throw Error(`Complete the required field: ${n.label}.`);continue}if(e.source===`environment`&&!n.sourceHints.some(t=>t.kind===`environment`&&t.variable===e.variable))throw Error(`Environment source "${e.variable}" is not declared for authentication field "${n.id}".`);a[n.id]=e}return{mode:e.mode,method:{...e.method},fields:a}}if(Object.keys(t).length>0)throw Error(`${e.mode} authentication cannot contain credential fields.`);if(e.mode===`inferred`)return{mode:e.mode,method:{...e.method},...n?{account:{...n}}:{}};if(n)throw Error(`No-auth authentication cannot select a native account.`);return{mode:e.mode,method:{...e.method}}}function At(e){return e.owner===`provider`?`provider:${e.providerDefinitionId}:${e.methodId}`:`client:${e.clientId}:${e.methodId}`}function jt(e,t){if(e.mode!==`explicit`)return{auth:le.parse(e.mode===`inferred`?{mode:e.mode,method:{...e.method},...e.account?{account:{...e.account}}:{}}:{mode:e.mode,method:{...e.method}}),storedCredentials:{}};let n={},r={};for(let[i,a]of Object.entries(e.fields)){if(a.source===`environment`){n[i]=ce.parse(`env:${a.variable}`);continue}if(!t)throw Error(`Stored authentication fields require the final provider-config ID.`);if(a.value.length===0)throw Error(`Stored authentication field "${i}" cannot be empty.`);n[i]=ue(t,i),r[i]=a.value}return{auth:le.parse({mode:e.mode,method:{...e.method},credentialRefs:n}),storedCredentials:r}}function Mt(e){return e.mode===`explicit`&&Object.values(e.fields).some(({source:e})=>e===`stored`)}let $=null;function Nt(e){if($===null)$={creator:e,count:1};else if($.creator===e)$.count+=1;else throw Error(`useOnboardingFlow: only one host-owned create bridge may be registered at a time.`);return()=>Pt(e)}function Pt(e){if($?.creator===e){if($.count===1){$=null;return}--$.count}}function Ft(e){return e}function It(e){try{ut()}catch(e){console.error(`[useOnboardingFlow] Failed to persist completion flag:`,e)}finally{e()}}async function Lt(e,t){let n=$?.creator??null;if(n){let r=await n(T,e);return await t(),r}if(Mt(e.auth))throw Error(`useOnboardingFlow: plaintext provider-config creation requires a host-owned create bridge.`);let{auth:r}=jt(e.auth),{auth:i,...a}=e,{config:o}=await T.request(E.createProviderConfig,{...a,auth:r});return await t(),o.id}async function Rt(e){let t=await T.requestOptional(E.getDefaultBinding,{adapterName:e});if(!t.handled||!t.data.binding)return;let{binding:n}=t.data;return O(T,{adapterName:n.adapterName,providerConfigId:n.providerConfigId})}function zt({context:e,onComplete:t,onSkip:n}){let{setDefaultSelection:i}=ht(),l=j(),[u]=c(()=>{let t=Ft(y.getAll());return Object.freeze(t.filter(t=>t.condition===void 0||t.condition(e)))}),[d,f]=c(0),[p,h]=c(e.adapters),[_,v]=c(()=>new Set(e.adapters.filter(e=>e.enabled).map(e=>e.adapterName))),[b,x]=c(()=>new Map),[S,C]=c(()=>new Map),[w,ne]=c(null),[O,oe]=c(()=>e.extensions),[k,se]=c(()=>new Map),[ce,le]=c([]),[ue,A]=c(!1),[de,fe]=c(null),[pe,M]=c(()=>new Set),[me,he]=c([]),[ge,_e]=c([]),[ve,ye]=c([]),N=s(new Map),P=s(0),F=s(0),I=s(new Map);a(()=>{let e=++P.current,t=()=>P.current===e;(async()=>{try{let[e,n]=await Promise.all([T.request(ee.list,{}),T.request(ae.list,{})]);if(!t())return;let r=new Map;for(let e of n.extensionConfigs)e.scope===`default`&&!r.has(e.extensionName)&&r.set(e.extensionName,{id:e.id,enabled:e.enabled,config:e.config});let i=new Map,a=new Map;for(let t of e.extensions){let e=r.get(t.name);e!==void 0&&(i.set(t.name,e.enabled),a.set(t.name,{id:e.id,config:e.config}))}oe(e.extensions),se(i),N.current=a}catch(e){if(!t())return;console.error(`[useOnboardingFlow] Failed to load extension list:`,e)}})()},[]),a(()=>()=>{for(let e of I.current.values())e.abort();I.current.clear()},[]);let L=r(async()=>{let{adapters:e}=await T.request(D.adapter.list,{});h(e),v(new Set(e.filter(e=>e.enabled).map(e=>e.adapterName)))},[]),be=r(async e=>{(await T.request(D.adapter.setEnabled,{adapterName:e,enabled:!0})).success&&(await L(),_t.getState().invalidate())},[L]),xe=r(async e=>{(await T.request(D.adapter.setEnabled,{adapterName:e,enabled:!1})).success&&(v(t=>{let n=new Set(t);return n.delete(e),n}),await L(),_t.getState().invalidate())},[L]),Se=r(async e=>{x(t=>new Map([...t,[e,{status:`pending`}]])),I.current.get(e)?.abort();let t=new AbortController;I.current.set(e,t);let n=()=>{I.current.get(e)===t&&I.current.delete(e)},r;try{r=(await T.request(re.resolveId,{adapterName:e},{signal:t.signal})).adapterId}catch(r){if(n(),t.signal.aborted)return{status:`pending`};let i={status:`error`,message:`Could not resolve adapter "${e}": ${r instanceof Error?r.message:String(r)}`};return x(t=>new Map([...t,[e,i]])),i}try{if(t.signal.aborted)return{status:`pending`};let n=await Rt(e);if(t.signal.aborted)return{status:`pending`};let i=Date.now(),a={adapterId:r,prompt:`Reply with the single word: OK`,...n&&{providerContext:n}};if(await T.request(te.infer,a,{timeout:3e4,signal:t.signal}),t.signal.aborted)return{status:`pending`};let o={status:`success`,durationMs:Date.now()-i};return x(t=>new Map([...t,[e,o]])),o}catch(n){if(t.signal.aborted)return{status:`pending`};let r={status:`error`,message:n instanceof Error?n.message:String(n)};return x(t=>new Map([...t,[e,r]])),r}finally{n()}},[]),Ce=r((e,t)=>{C(n=>new Map([...n,[e,t]]))},[]),R=r(e=>{ne(e)},[]),we=r(async()=>{let e=++F.current;A(!0),fe(null);try{let{adapters:t,clients:n}=await Ct();if(F.current!==e)return;le(t),he(n);let r=new Set(n.filter(e=>e.found).map(e=>e.clientId));M(e=>e.size===0?r:new Set([...e].filter(e=>r.has(e))))}catch(t){if(F.current!==e)return;let n=t instanceof Error?t:Error(String(t));throw fe(n),n}finally{F.current===e&&A(!1)}},[]),z=r((e,t)=>{se(n=>new Map([...n,[e,t]])),X(e,t,N.current,l).catch(t=>{console.error(`[useOnboardingFlow] Failed to persist plugin toggle for ${e}:`,t)})},[l]),Te=r(e=>M(t=>new Set([...t,e])),[]),Ee=r(e=>{M(t=>{let n=new Set(t);return n.delete(e),n})},[]),B=r(async()=>{_e(await Tt(T))},[]),De=r(async e=>Lt(e,B),[B]),V=r(async e=>{await T.request(E.deleteProviderConfig,{id:e}),await B(),ye(t=>t.filter(t=>t.providerConfigId!==e))},[B]),H=r(async e=>{let{bindings:t}=await T.request(E.listBindings,{adapterName:e});ye(n=>[...n.filter(t=>t.adapterName!==e),...t])},[]),Oe=r(async(e,t)=>{await T.request(E.bind,{adapterName:e,providerConfigId:t}),await H(e)},[H]),U=r(async(e,t)=>{await T.request(E.unbind,{adapterName:e,providerConfigId:t}),await H(e)},[H]),W=r(async(e,t)=>{await T.request(E.setDefaultBinding,{adapterName:e,providerConfigId:t}),await H(e)},[H]),ke=o(()=>({enableAdapter:be,disableAdapter:xe,runHealthCheck:Se,setLogImportMode:Ce,setDefaultAgent:R,refreshAdapterList:L,togglePlugin:z,scan:we,selectClient:Te,deselectClient:Ee,createProviderConfig:De,deleteProviderConfig:V,bindProvider:Oe,unbindProvider:U,setDefaultProvider:W,refreshProviderConfigs:B,refreshBindings:H}),[be,xe,Se,Ce,R,L,z,we,Te,Ee,De,V,Oe,U,W,B,H]),Ae=r(()=>{f(e=>Math.min(e+1,u.length-1))},[u.length]),G=r(()=>{f(e=>Math.max(e-1,0))},[]),K=r(async e=>{w&&i(w);let t=Array.from(S.entries());if(await Promise.all(t.map(([e,t])=>T.request(ie.setMode,{adapterName:e,mode:t},{timeout:8e3}))),await Promise.all(Array.from(k.entries()).map(([e,t])=>X(e,t,N.current,l))),e){for(let e of O)if(!k.has(e.name)){let t=m(g(e.name));X(e.name,t,N.current,l).catch(t=>{console.error(`[useOnboardingFlow] Failed to persist default extension state for ${e.name}:`,t)})}}},[l,S,w,i,O,k]),q=r(async()=>{try{await K(!1)}catch(e){console.error(`[useOnboardingFlow] Failed to persist selections on skip:`,e)}finally{n()}},[K,n]),je=r(async()=>{try{await K(!0)}catch(e){console.error(`[useOnboardingFlow] Failed to persist selections on complete:`,e)}finally{It(t)}},[K,t]),J=o(()=>({adapters:p,enabledAdapterNames:_,healthCheckResults:b,logImportSelections:S,defaultAgentSelection:w,extensions:O,pluginEnabledStates:k,scanAdapters:ce,isScanning:ue,scanError:de,scanClients:me,selectedClientIds:pe,providerConfigs:ge,adapterProviderBindings:ve}),[p,_,b,S,w,O,k,ce,ue,de,me,pe,ge,ve]),Y=u[d]??u[0];if(Y===void 0)throw Error(`useOnboardingFlow: no active steps found. Call registerCoreOnboardingSteps() before mounting the onboarding flow.`);return{activeSteps:u,currentStepIndex:d,currentStep:Y,flowState:J,actions:ke,goNext:Ae,goBack:G,skip:q,complete:je}}const Bt=Object.assign(zt,{registerCreateProviderConfig:Nt,unregisterCreateProviderConfig:Pt});function Vt(e){let t=j(),[n,r]=c([]),[i,o]=c(!1),[s,l]=c(null);return a(()=>{let n=!0;return e?(o(!0),l(null),Dt(t,e).then(e=>{n&&r(e)}).catch(e=>{n&&(r([]),l(e instanceof Error?e:Error(String(e))))}).finally(()=>{n&&o(!1)}),()=>{n=!1}):(r([]),o(!1),l(null),()=>{n=!1})},[t,e]),{options:n,isLoading:i,error:s}}export{A as BusContext,de as BusProvider,Ve as addWidgetToFocusLayout,Mt as authDraftRequiresStorage,At as authMethodRefKey,kt as buildProviderConfigAuthDraft,Q as buildScanContext,dt as clearOnboardingCompleted,st as clearOnboardingSkipped,jt as compileProviderConfigAuthDraft,Be as createEmptyFocusContextLayout,Ot as createInitialAuthFieldDrafts,J as createPersistedStore,lt as getOnboardingCompleted,at as getOnboardingSkipped,Et as getProviderConfigDetailView,Je as groupPagesByNavigationGroup,pt as isPersistableProjectSelection,Dt as listCompatibleAuthOptions,Tt as listProviderConfigSummaryViews,De as loadExtensionBrowserContributions,q as noopStorage,ft as parsePersistedAgentSelection,X as persistPluginEnabled,et as registerCoreOnboardingSteps,qe as registerNavigationHandler,He as removeWidgetFromFocusLayout,Ct as scanOnboarding,xt as scanOnboardingAdapters,St as scanOnboardingClients,ut as setOnboardingCompleted,ot as setOnboardingSkipped,We as updateFocusContextWidgetPosition,Ue as updateFocusContextWidgetSize,ht as useAppContext,j as useBus,me as useBusEvent,pe as useBusQuery,Vt as useCompatibleAuthOptions,ze as useFocusStore,Ge as useNavigationLevel,Bt as useOnboardingFlow,fe as useOptionalBus,$e as usePageComponent,Ye as usePageDefinitions,Pe as usePageOverlayStore,Xe as usePages,_t as useProviderStore,Ie as useSidebarStore,be as useTrayLayout,N as useWidgetConfig,P as useWidgetLayout,I as useWidgetLayoutActions,ve as useWidgetRegistry,_e as useWidgets,Ne as useWindowContext,Qe as useWindowIdPages};
@@ -1,4 +1,4 @@
1
- import { r as PageSurfaceConfig, s as SurfaceId } from "../schemas-BemsLc_V.mjs";
1
+ import { r as PageSurfaceConfig, s as SurfaceId } from "../schemas-D_9X_CRo.mjs";
2
2
  import * as _$zod from "zod";
3
3
  import { z } from "zod";
4
4
  import * as _$_makaio_core0 from "@makaio/framework/core";
@@ -2518,8 +2518,8 @@ interface AdapterInfo {
2518
2518
  }>;
2519
2519
  /** Setup instructions in Markdown format. */
2520
2520
  instructions?: string;
2521
- /** Readiness signal describing required configuration work, if any. */
2522
- readiness?: 'ready' | 'missing-credentials' | 'needs-setup';
2521
+ /** Readiness signal describing required configuration work. */
2522
+ readiness: 'ready' | 'needs-setup';
2523
2523
  /** Stable client identifier this adapter belongs to. */
2524
2524
  clientId?: string;
2525
2525
  /** Wire protocol this adapter speaks (for provider matching). */
@@ -1,2 +1,2 @@
1
- import { a as SurfaceCapabilitySchema, c as SurfaceIdSchema, i as SurfaceCapability, l as isPageVisibleOnSurface, n as PageSchemas, o as SurfaceDeclaration, r as PageSurfaceConfig, s as SurfaceId, t as PageMetadata } from "../../schemas-BemsLc_V.mjs";
1
+ import { a as SurfaceCapabilitySchema, c as SurfaceIdSchema, i as SurfaceCapability, l as isPageVisibleOnSurface, n as PageSchemas, o as SurfaceDeclaration, r as PageSurfaceConfig, s as SurfaceId, t as PageMetadata } from "../../schemas-D_9X_CRo.mjs";
2
2
  export { PageMetadata, PageSchemas, PageSurfaceConfig, SurfaceCapability, SurfaceCapabilitySchema, SurfaceDeclaration, SurfaceId, SurfaceIdSchema, isPageVisibleOnSurface };
@@ -1 +1 @@
1
- import{execFile as e}from"node:child_process";import{promisify as t}from"node:util";const n=t(e);function r(e){let t=/^password: 0x([0-9A-Fa-f]+)/m.exec(e);if(t)return Buffer.from(t[1],`hex`).toString(`utf-8`);let n=/^password: "(.*)"/m.exec(e);if(n)return n[1];let r=e.replace(/^password:.*$/gm,`password: [REDACTED]`);throw Error(`Unexpected security output format: ${r}`)}async function i(e,t){let i=[`find-generic-password`,`-s`,e,`-g`];t&&i.push(`-a`,t);try{let{stderr:e}=await n(`/usr/bin/security`,i);return r(e)}catch(e){if(e instanceof Error){let t=e.code;if(t===`ENOENT`)throw e;if(t===44)return null}throw e}}async function a(e,t,r){await n(`/usr/bin/security`,[`add-generic-password`,`-U`,`-s`,e,`-a`,t,`-X`,Buffer.from(r,`utf-8`).toString(`hex`)])}async function o(e,t){let r=[`delete-generic-password`,`-s`,e];t&&r.push(`-a`,t);try{await n(`/usr/bin/security`,r)}catch(e){if(e instanceof Error){let t=e.code;if(t===`ENOENT`)throw e;if(t===44)return}throw e}}export{o as keychainDelete,i as keychainRead,a as keychainWrite};
1
+ import{execFile as e}from"node:child_process";import{promisify as t}from"node:util";const n=t(e);function r(e){let t=/^password: 0x([0-9A-Fa-f]+)/m.exec(e);if(t)return Buffer.from(t[1],`hex`).toString(`utf-8`);let n=/^password: "(.*)"/m.exec(e);if(n)return n[1];throw Error(`Unexpected macOS keychain output format`)}function i(e){if(e instanceof Error)return e.code}function a(e){return Error(`macOS keychain ${e} failed`)}async function o(e,t){let o=[`find-generic-password`,`-s`,e,`-g`];t&&o.push(`-a`,t);try{let{stderr:e}=await n(`/usr/bin/security`,o);return r(e)}catch(e){if(i(e)===44)return null;throw a(`read`)}}async function s(e,t,r){let i=Buffer.from(r,`utf-8`).toString(`hex`);try{await n(`/usr/bin/security`,[`add-generic-password`,`-U`,`-s`,e,`-a`,t,`-X`,i])}catch{throw a(`write`)}}async function c(e,t){let r=[`delete-generic-password`,`-s`,e];t&&r.push(`-a`,t);try{await n(`/usr/bin/security`,r)}catch(e){if(i(e)===44)return;throw a(`delete`)}}export{c as keychainDelete,o as keychainRead,s as keychainWrite};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-DTipWd-i.mjs";import{t}from"./semver-CIhHqMkw.mjs";import{z as n}from"zod";var r=e(t(),1);const i=n.string().min(1).refine(e=>e.trim().length>0&&(0,r.validRange)(e)!==null,{message:`Must be a valid semver range (e.g. ">=1.0.0 <2.0.0", "^1.5.0")`});function a(e,t){return(0,r.satisfies)(e,t,{includePrerelease:!0})}function o(e){let t=(0,r.validRange)(e);return t===`*`||t===`>=0.0.0`||t===`>=0.0.0-0`}const s=n.string().min(1).refine(e=>(0,r.valid)(e)!==null&&!e.startsWith(`v`),{message:`Must be a valid semver version (e.g. "1.0.0")`});export{a as i,i as n,o as r,s as t};
1
+ import{o as e}from"./chunk-DTipWd-i.mjs";import{t}from"./semver-BccS1s9R.mjs";import{z as n}from"zod";var r=e(t(),1);const i=n.string().min(1).refine(e=>e.trim().length>0&&(0,r.validRange)(e)!==null,{message:`Must be a valid semver range (e.g. ">=1.0.0 <2.0.0", "^1.5.0")`});function a(e,t){return(0,r.satisfies)(e,t,{includePrerelease:!0})}function o(e){let t=(0,r.validRange)(e);return t===`*`||t===`>=0.0.0`||t===`>=0.0.0-0`}const s=n.string().min(1).refine(e=>(0,r.valid)(e)!==null&&!e.startsWith(`v`),{message:`Must be a valid semver version (e.g. "1.0.0")`});export{a as i,i as n,o as r,s as t};
@@ -0,0 +1 @@
1
+ import{C as e,g as t,w as n}from"./artifact-CGjnoyCC.mjs";import{i as r,r as i,t as a}from"./json-value-DmU8ibo_.mjs";import{a as o}from"./visibility-Cb62p9bv.mjs";import"./model-uE5IyUFJ.mjs";import{t as s}from"./provider-context-DOsjOjiR.mjs";import{a as c,o as l}from"./schemas-D6lj9NMg.mjs";import{z as u}from"zod";import{createBusNamespace as d,getFullSubjectForSubjectDefinition as f,observability as p}from"@makaio/framework/core";const m=u.enum([`wait-in-process`,`exit-and-redispatch`,`exit-and-resume`]),ee=u.discriminatedUnion(`kind`,[u.object({kind:u.literal(`path`),path:u.string().min(1)}).strict(),u.object({kind:u.literal(`source`),filename:u.string().min(1),source:u.string()}).strict()]),h=u.object({source:ee.optional(),requirements:u.object({isolation:u.enum([`local`,`container`,`remote`]).optional(),capabilities:u.array(u.string()).optional()}).catchall(r).optional(),providers:u.record(u.string(),r).optional()}).catchall(r),g=u.object({kind:u.string().min(1),id:u.string().min(1)});function te(e){return`${re(e.kind)}:${re(e.id)}`}function ne(e){let t=ie(e);if(t<1)throw Error(`Invalid artifact ref key: ${e}`);let n=ae(e.slice(t+1));if(n.length===0)throw Error(`Invalid artifact ref key (empty id): ${e}`);return{kind:ae(e.slice(0,t)),id:n}}function re(e){return e.replace(/\\/g,`\\\\`).replace(/:/g,`\\:`)}function ie(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];if(t){t=!1;continue}if(r===`\\`){t=!0;continue}if(r===`:`)return n}return-1}function ae(e){let t=``,n=!1;for(let r of e){if(n){if(r!==`\\`&&r!==`:`)throw Error(`Invalid artifact ref key component: ${e}`);t+=r,n=!1;continue}if(r===`\\`){n=!0;continue}t+=r}if(n)throw Error(`Invalid artifact ref key component: ${e}`);return t}const _=u.union([u.string(),u.number(),u.boolean(),u.null()]),oe=u.union([_,u.object({$in:u.array(_)}).strict(),u.object({$ne:_}).strict(),u.object({$exists:u.boolean()}).strict(),u.object({$startsWith:u.string()}).strict(),u.object({$endsWith:u.string()}).strict()]),se=u.record(u.string(),oe),ce=u.object({type:u.literal(`bus-event`),subject:u.string(),filter:se.optional(),filterExpression:u.string().optional()}),v=u.object({type:u.literal(`extension`),extensionType:u.string().regex(/^[a-z0-9-]+:[a-z0-9._-]+$/),config:a.optional()}),y=u.discriminatedUnion(`type`,[u.object({type:u.literal(`manual`)}),u.object({type:u.literal(`cron`),schedule:u.string(),timezone:u.string().optional()}),u.object({type:u.literal(`webhook`),event:u.string(),branch:u.string().optional(),repo:u.string().optional()}),v,ce]),b=u.discriminatedUnion(`type`,[u.object({type:u.literal(`global`)}).strict(),u.object({type:u.literal(`workspace`),id:u.string().min(1)}).strict(),u.object({type:u.literal(`session`),id:u.string().min(1)}).strict(),u.object({type:u.literal(`external`),kind:u.string().min(1),id:u.string().min(1)}).strict()]),x=u.string().min(1),S=u.object({kind:u.string().min(1),schemaVersion:u.string().min(1),scope:n,resolve:u.string().min(1).optional(),create:u.string().min(1).optional(),statusPath:u.string().min(1).optional()}),le=u.object({kind:u.string().min(1),schemaVersion:u.string().min(1),scope:n,dataExpression:u.string().optional()}),ue=u.object({file:u.string().min(1),line:u.number().int().positive().optional(),column:u.number().int().positive().optional()}),C=u.enum([`station`,`delegate-agent`,`delegate-role`,`parallel`,`gate`,`iterate`,`iterate-chain`,`loop`,`sequence`]),de=u.enum([`all-settled`,`fail-fast`]),w=u.object({id:u.string().min(1),when:x.optional(),skip:x.optional(),writes:u.array(le).optional()}),T=u.lazy(()=>u.discriminatedUnion(`type`,[D,fe,pe,me,he,ge,_e,ye,E])),E=w.extend({type:u.literal(`sequence`),nodes:u.lazy(()=>u.array(T))}),D=w.extend({type:u.literal(`station`),prompt:u.string().min(1),role:u.string().min(1).optional(),outputSchema:i.optional(),timeoutMs:u.number().int().positive().optional(),completion:c.optional()}),fe=w.extend({type:u.literal(`delegate-agent`),agentId:u.string().min(1),inputExpression:u.string().optional(),outputSchema:i.optional()}),pe=w.extend({type:u.literal(`delegate-role`),role:u.string().min(1),prompt:u.string().min(1),outputSchema:i.optional(),timeoutMs:u.number().int().positive().optional(),completion:c.optional()}),me=w.extend({type:u.literal(`parallel`),mode:de.optional(),branches:u.record(u.string().min(1),u.lazy(()=>E))}),he=w.extend({type:u.literal(`gate`),prompt:u.string().min(1),title:u.string().optional(),autoAction:u.enum([`approve`,`reject`]),timeoutMs:u.number().int().positive().nullable(),resumeSchema:i.optional()}),ge=w.extend({type:u.literal(`iterate`),collection:u.string().min(1),body:u.lazy(()=>E),concurrency:u.number().int().nonnegative().optional()}),_e=w.extend({type:u.literal(`iterate-chain`),collection:u.string().min(1),body:u.lazy(()=>E)}),ve=u.discriminatedUnion(`kind`,[u.object({kind:u.literal(`pass`)}).strict(),u.object({kind:u.literal(`loop`)}).strict(),u.object({kind:u.literal(`escalate`),reason:u.string().min(1)}).strict()]),ye=w.extend({type:u.literal(`loop`),maxRounds:u.number().int().positive(),body:u.lazy(()=>E),gate:u.object({handler:u.string().min(1),input:u.string().min(1).optional(),config:r.optional(),escalation:u.object({title:u.string().optional(),prompt:u.string().min(1),resumeSchema:i.optional(),autoAction:u.enum([`approve`,`reject`]).default(`reject`),timeoutMs:u.number().int().positive().nullable().default(null)}).strict().optional()}).strict()}),be=u.object({factoryId:u.string().min(1),preview:u.array(u.lazy(()=>T)).optional(),sourceLocation:ue.optional()}),xe=u.discriminatedUnion(`kind`,[u.object({kind:u.literal(`editor`)}).strict(),u.object({kind:u.literal(`extension`),extension:u.string().min(1),externalId:u.string().min(1).optional(),syncedAt:u.string().datetime().optional(),metadata:a.default({})}).strict()]),Se=u.object({schema:i,initial:r.optional()}),O=u.object({id:u.string().min(1),name:u.string().optional(),description:u.string().optional(),inputSchema:i.optional(),configSchema:i.optional(),outputSchema:i.optional(),state:Se.optional(),artifact:S.optional(),root:E,triggers:u.array(y).optional(),scope:b.default({type:`global`}),canvasLayout:u.record(u.string(),r).optional(),source:xe.optional(),executionHints:h.optional()}),k=u.enum([`pending`,`running`,`paused`,`completed`,`failed`,`cancelled`]),A=u.object({id:u.string(),workflowId:u.string(),coordinatorSessionId:u.string().optional(),status:k,inputs:r,config:a.optional(),startedAt:u.number(),completedAt:u.number().optional(),error:u.string().optional(),reason:u.string().optional(),triggerPayload:a.optional(),scope:b,artifactRef:g.optional()}),j=u.object({frameId:u.string(),nodeId:u.string(),nodeType:C,path:u.array(u.string()),parentFrameId:u.string().optional(),status:u.enum([`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]),attempt:u.number().int().nonnegative().default(0),iteration:u.number().int().nonnegative().optional(),branchKey:u.string().optional(),output:r.optional(),error:u.string().optional(),startedAt:u.number().optional(),completedAt:u.number().optional()}),M=u.enum([`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]),N=u.object({executionId:u.string(),nodeId:u.string(),frameId:u.string(),schema:i,prompt:u.string().optional(),status:M,autoAction:u.enum([`approve`,`reject`]),timeoutMs:u.number().int().positive().nullable(),resumeData:r.optional(),reason:u.string().optional(),createdAt:u.number(),resolvedAt:u.number().optional()}),P=u.object({adapterName:u.string().min(1),model:u.string().optional(),reasoningEffort:o.optional(),harnessId:u.string().optional(),systemPrompt:u.string().optional(),contextMode:l.optional(),providerContext:s.optional(),completion:c.optional()}),Ce=P,we=u.object({scope:b.optional()}),Te=u.object({startedAt:u.number(),id:u.string()}),Ee=1,De=500,Oe=50,ke=u.object({workflowId:u.string().min(1).optional(),scope:b.optional(),status:k.optional(),artifactRef:g.optional(),limit:u.number().int().min(1).max(500).default(50),cursor:Te.optional()}).refine(e=>e.workflowId!==void 0||e.scope!==void 0||e.artifactRef!==void 0,{message:`Either workflowId, scope, or artifactRef is required.`}),Ae=200,je=100,Me=10,Ne=u.object({refs:u.array(g).min(1).max(200),limitPerRef:u.number().int().min(1).max(100).default(10)}),Pe=u.object({executionId:u.string().min(1).optional(),status:M.optional(),limit:u.number().int().min(1).max(500).default(50)}).refine(e=>e.executionId!==void 0||e.status!==void 0,{message:`Either executionId or status is required.`}),F=u.enum([`station`,`delegate-agent`,`delegate-role`,`gate`]),Fe=u.enum([`station`]),Ie=u.object({input:u.number().int().nonnegative(),output:u.number().int().nonnegative(),cached:u.number().int().nonnegative().optional()}),Le=u.object({duration:u.number().nonnegative(),tokenUsage:Ie.optional(),estimatedCost:u.number().nonnegative().optional(),toolCalls:u.number().int().nonnegative().optional()}),Re=u.discriminatedUnion(`kind`,[u.object({kind:u.literal(`none`)}).strict(),u.object({kind:u.literal(`hmac`),secret:u.string().min(1)}).strict()]),ze=u.object({cwd:u.string().min(1),env:u.record(u.string(),u.string()).optional()}),Be=u.object({executionId:u.string().min(1),stepId:u.string().min(1),reason:u.string().optional()});function Ve(e){let t=e.indexOf(`.`);if(t<=0||t===e.length-1)throw Error(`Invalid step cancel subject: ${e}`);return{subject:e.slice(t+1),$meta:{namespace:e.slice(0,t),isRequest:!1,payload:{},local:!1,channel:!1}}}const He=u.object({executionId:u.string().min(1),reason:u.string().optional()});function Ue(e){let t=e.indexOf(`.`);if(t<=0||t===e.length-1)throw Error(`Invalid workflow cancel subject: ${e}`);return{subject:e.slice(t+1),$meta:{namespace:e.slice(0,t),isRequest:!1,payload:{},local:!1,channel:!1}}}const We=u.object({stepId:u.string().min(1),executionId:u.string().min(1),workflowId:u.string().min(1),coordinatorSessionId:u.string().min(1),stepType:Fe,stepDefinition:D,resolvedInputs:a,busUrl:u.string().optional(),busAuth:Re.default({kind:`none`}),platformDefaults:ze,cancelSubject:u.string().min(1)}).superRefine((e,t)=>{e.stepType!==e.stepDefinition.type&&t.addIssue({code:`custom`,path:[`stepDefinition`,`type`],message:`stepDefinition.type must match stepType (${e.stepType})`})}),Ge=`Workflow cancelled`,Ke=u.object({status:u.enum([`completed`,`failed`]),output:r.optional(),error:u.string().optional(),telemetry:Le}),qe=u.enum([`running`,`completed`,`failed`,`skipped`]),I=u.object({executionId:u.string().min(1),frameId:u.string().min(1),stepId:u.string().min(1),stepType:F,status:qe,startedAt:u.number().optional(),completedAt:u.number().optional(),durationMs:u.number().nonnegative().optional(),inputTokens:u.number().int().nonnegative().optional(),outputTokens:u.number().int().nonnegative().optional(),estimatedCost:u.number().nonnegative().optional(),toolCallCount:u.number().int().nonnegative().optional(),input:u.string().optional(),output:u.string().optional()}),Je=u.enum([`triggered-by`,`feedback-loop`,`rerun-of`]),L=u.object({sourceExecutionId:u.string().min(1),targetExecutionId:u.string().min(1),linkType:Je,metadata:u.record(u.string(),u.unknown()).optional()}),Ye=u.object({sourceExecutionId:u.string().min(1).optional(),targetExecutionId:u.string().min(1).optional()}).refine(e=>e.sourceExecutionId!==void 0||e.targetExecutionId!==void 0,{message:`Either sourceExecutionId or targetExecutionId is required.`}),Xe={RUN_CONTEXT_NOT_FOUND:`WORKFLOW_RUN_CONTEXT_NOT_FOUND`,SNAPSHOT_UNAVAILABLE:`WORKFLOW_SNAPSHOT_UNAVAILABLE`,SOURCE_MISMATCH:`WORKFLOW_SOURCE_MISMATCH`,NOT_EXECUTABLE:`WORKFLOW_NOT_EXECUTABLE`,HANDLER_UNAVAILABLE:`WORKFLOW_HANDLER_UNAVAILABLE`};var Ze=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`WorkflowError`}};const R=u.string().refine(e=>e===``||e.startsWith(`/`),{message:`JSON Patch paths must be empty or start with "/".`}),Qe=u.object({op:u.enum([`add`,`replace`,`test`]),path:R,value:r}).strict(),$e=u.object({op:u.literal(`remove`),path:R}).strict(),et=u.object({op:u.enum([`move`,`copy`]),path:R,from:R}).strict(),z=u.discriminatedUnion(`op`,[Qe,$e,et]),tt=u.object({type:u.literal(`artifact-query`),query:t,select:u.enum([`latest`,`all`]),optional:u.boolean().optional()}),nt=u.object({type:u.literal(`bus-request`),subject:u.string().min(1),payload:u.record(u.string(),u.unknown()).optional(),optional:u.boolean().optional()}),rt=u.discriminatedUnion(`type`,[tt,nt]),it=u.object({type:u.literal(`artifact`),kind:u.string().min(1),schemaVersion:u.string().min(1),scope:n,metadata:u.record(u.string(),u.unknown()).optional()}),at=u.object({type:u.literal(`bus-event`),subject:u.string().min(1),payload:u.record(u.string(),u.unknown()).optional()}),ot=u.discriminatedUnion(`type`,[it,at]),st=u.object({content:u.string(),metadata:u.record(u.string(),u.unknown()).optional()}),ct=u.object({sources:u.record(u.string(),st)}),lt=u.discriminatedUnion(`kind`,[u.object({kind:u.literal(`none`)}).strict(),u.object({kind:u.literal(`hmac`),secret:u.string().min(1)}).strict()]),B=u.discriminatedUnion(`kind`,[u.object({kind:u.literal(`path`),path:u.string().min(1)}).strict(),u.object({kind:u.literal(`source`),filename:u.string().min(1),source:u.string()}).strict(),u.object({kind:u.literal(`definition`),workflowId:u.string().min(1)}).strict()]),ut=u.object({source:B,definition:O.optional(),executionId:u.string().min(1),workflowId:u.string().min(1),triggerPayload:a.default({}),inputs:r.default({}),config:a.optional(),artifactRef:g.optional(),scope:b.default({type:`global`}),busUrl:u.string().optional(),busAuth:lt.default({kind:`none`}),context:u.object({repoPath:u.string().min(1),makaioHome:u.string().min(1),os:u.enum([`darwin`,`linux`,`win32`]),arch:u.string().min(1),worktree:u.string().optional()}),env:u.record(u.string(),u.string()).default({}),coordinatorSessionId:u.string().min(1),executionHints:h.optional(),cancelSubject:u.string().min(1),suspensionStrategy:m.default(`wait-in-process`)}),V=u.object({executionId:u.string().min(1),workflowId:u.string().min(1)}),dt=u.discriminatedUnion(`status`,[V.extend({status:u.literal(`completed`),artifact:e.optional()}).strict(),V.extend({status:u.literal(`failed`),error:u.string().min(1)}).strict(),V.extend({status:u.literal(`cancelled`),reason:u.string().min(1).optional()}).strict(),V.extend({status:u.literal(`paused`),pausedAtGateId:u.string().min(1),pausedAtFrameId:u.string().min(1)}).strict()]),ft=u.object({name:u.string().min(1),importPath:u.string().min(1)}),pt=u.object({packages:u.array(ft).default([])}),mt=u.object({executionId:u.string().min(1),workflowId:u.string().min(1),source:B,definitionSnapshot:O.optional(),workerManifest:pt.default({packages:[]}),inputs:r.default({}),config:a.optional(),scope:b.default({type:`global`}),triggerPayload:a.default({}),artifactRef:g.optional(),coordinatorSessionId:u.string().min(1),executionHints:h.optional(),dispatchMetadata:a.optional(),cancelSubject:u.string().min(1),context:u.object({repoPath:u.string().min(1),makaioHome:u.string().min(1),os:u.enum([`darwin`,`linux`,`win32`]),arch:u.string().min(1),worktree:u.string().optional()}),env:u.record(u.string(),u.string()).default({}),createdAt:u.number(),suspensionStrategy:m.default(`wait-in-process`)}).superRefine((e,t)=>{e.source.kind===`definition`&&e.definitionSnapshot===void 0&&t.addIssue({code:u.ZodIssueCode.custom,path:[`definitionSnapshot`],message:`definitionSnapshot is required when source.kind is "definition"`})}),H=u.object({executionId:u.string().min(1),workflowId:u.string().min(1),workflowName:u.string().optional(),status:u.enum([`pending`,`running`,`paused`,`completed`,`failed`,`cancelled`]),startedAt:u.number(),completedAt:u.number().optional(),durationMs:u.number().nonnegative().optional(),totalInputTokens:u.number().int().nonnegative().optional(),totalOutputTokens:u.number().int().nonnegative().optional(),totalEstimatedCost:u.number().nonnegative().optional(),error:u.string().optional(),failedNodeId:u.string().optional()}),ht=u.object({executionId:u.string().min(1),frameId:u.string().min(1),nodeId:u.string().min(1),nodeType:C,path:u.array(u.string()),status:u.enum([`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]),attempt:u.number().int().nonnegative(),iteration:u.number().int().nonnegative().optional(),branchKey:u.string().optional(),startedAt:u.number().optional(),completedAt:u.number().optional(),durationMs:u.number().nonnegative().optional(),inputTokens:u.number().int().nonnegative().optional(),outputTokens:u.number().int().nonnegative().optional(),estimatedCost:u.number().nonnegative().optional(),error:u.string().optional()}),gt=u.object({executionId:u.string().min(1),frameId:u.string().min(1),nodeId:u.string().min(1),artifact:S,revision:u.string().min(1).optional(),writtenAt:u.number()}),_t=u.object({executionId:u.string().min(1),nodeId:u.string().min(1),frameId:u.string().min(1),status:u.enum([`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]),prompt:u.string().optional(),openedAt:u.number(),resolvedAt:u.number().optional(),resumeData:r.optional()}),vt=u.object({executionId:u.string().min(1),inputTokens:u.number().int().nonnegative(),outputTokens:u.number().int().nonnegative(),cachedTokens:u.number().int().nonnegative().optional(),estimatedCost:u.number().nonnegative(),byModel:u.record(u.string(),u.object({inputTokens:u.number().int().nonnegative(),outputTokens:u.number().int().nonnegative(),estimatedCost:u.number().nonnegative()})).optional()}),yt=u.object({total:u.number().int().nonnegative(),byStatus:u.object({pending:u.number().int().nonnegative(),running:u.number().int().nonnegative(),paused:u.number().int().nonnegative(),completed:u.number().int().nonnegative(),failed:u.number().int().nonnegative(),cancelled:u.number().int().nonnegative()}),totalDurationMs:u.number().nonnegative(),totalInputTokens:u.number().int().nonnegative(),totalOutputTokens:u.number().int().nonnegative(),totalEstimatedCost:u.number().nonnegative()}),bt=u.object({executionId:u.string().min(1),frameId:u.string().min(1),factoryId:u.string().min(1),materializedNodeIds:u.array(u.string().min(1)),factoryInput:i.optional(),materializedAt:u.number()}),xt=`wfx-ext-`,St=u.object({frameId:u.string().min(1).optional(),nodeId:u.string().min(1),nodeType:F,path:u.array(u.string().min(1)).optional(),attempt:u.number().int().nonnegative().default(0),iteration:u.number().int().nonnegative().optional(),branchKey:u.string().min(1).optional(),startedAt:u.number().int().nonnegative().optional()}).strict(),Ct=u.object({frameId:u.string().min(1),nodeId:u.string().min(1),nodeType:F,path:u.array(u.string().min(1)),attempt:u.number().int().nonnegative().default(0),iteration:u.number().int().nonnegative().optional(),branchKey:u.string().min(1).optional(),startedAt:u.number().int().nonnegative(),durationMs:u.number().int().nonnegative().optional()}).strict(),wt=u.object({executionId:u.string().startsWith(xt,{message:`executionId must use the wfx-ext- prefix`}).optional(),name:u.string().min(1),startedAt:u.number().int().nonnegative().optional(),scope:b.optional(),artifactRef:g.optional(),input:r.optional(),triggerPayload:a.optional(),frame:St.optional()}).superRefine((e,t)=>{e.executionId!==void 0&&e.startedAt===void 0&&t.addIssue({code:u.ZodIssueCode.custom,message:`startedAt is required when executionId is supplied`,path:[`startedAt`]})}),Tt=u.object({executionId:u.string().min(1),status:u.enum([`completed`,`failed`,`cancelled`]),error:u.string().min(1).optional(),reason:u.string().min(1).optional(),completedAt:u.number().nonnegative().overwrite(e=>Math.trunc(e)).optional(),frame:Ct.optional()}).superRefine((e,t)=>{if(e.status===`failed`&&e.error===void 0&&t.addIssue({code:u.ZodIssueCode.custom,message:`status 'failed' requires a non-empty 'error' message`,path:[`error`]}),e.status===`cancelled`&&e.reason===void 0&&t.addIssue({code:u.ZodIssueCode.custom,message:`status 'cancelled' requires a non-empty 'reason' string`,path:[`reason`]}),e.status===`completed`&&e.error!==void 0&&t.addIssue({code:u.ZodIssueCode.custom,message:`status 'completed' must not carry an 'error'`,path:[`error`]}),e.status===`completed`&&e.reason!==void 0&&t.addIssue({code:u.ZodIssueCode.custom,message:`status 'completed' must not carry a 'reason'`,path:[`reason`]}),e.frame!==void 0&&e.completedAt===void 0&&t.addIssue({code:u.ZodIssueCode.custom,message:`completedAt is required when frame metadata is supplied`,path:[`completedAt`]}),e.frame!==void 0&&e.completedAt!==void 0){let n=e.completedAt-e.frame.startedAt;n<0&&t.addIssue({code:u.ZodIssueCode.custom,message:`completedAt must not precede frame.startedAt`,path:[`completedAt`]}),e.frame.durationMs!==void 0&&e.frame.durationMs!==n&&t.addIssue({code:u.ZodIssueCode.custom,message:`frame.durationMs must equal completedAt - frame.startedAt`,path:[`frame`,`durationMs`]})}}),Et=u.object({message:u.string().min(1),details:u.string().min(1).optional(),kind:u.string().min(1).optional(),metadata:r.optional()}).strict(),U=u.object({executionId:u.string(),stepId:u.string(),stepType:u.enum([`station`,`delegate-agent`,`delegate-role`,`gate`])}),W=U.extend({stepType:u.literal(`gate`)}),Dt=u.discriminatedUnion(`source`,[W.extend({frameId:u.string(),action:u.enum([`approve`,`reject`]),source:u.literal(`user`),reason:u.string().optional()}),W.extend({frameId:u.string(),action:u.enum([`approve`,`reject`]),source:u.literal(`timeout`)}),W.extend({frameId:u.string(),source:u.literal(`cancelled`)})]),Ot=W.extend({workflowId:u.string(),workflowName:u.string(),title:u.string(),message:u.string(),autoAction:u.enum([`approve`,`reject`]),timeoutMs:u.number().nullable(),openedAt:u.number()}),kt={getDefinition:{request:u.object({id:u.string()}),response:u.object({workflow:O.nullable()})},setDefinition:{request:u.object({workflow:O}),response:u.object({id:u.string()})},deleteDefinition:{request:u.object({id:u.string()}),response:u.object({deleted:u.boolean()})},listDefinitions:{request:we,response:u.object({workflows:u.array(O)})},"definition.created":O,"definition.updated":O,"definition.deleted":u.object({id:u.string()}),start:{request:u.object({workflowId:u.string(),input:r.optional(),config:r.optional(),artifactRef:g.optional(),scope:b.optional(),executionHints:h.optional(),parentSessionId:u.string().optional(),triggerPayload:a.optional()}),response:u.object({executionId:u.string()})},rerun:{request:u.object({executionId:u.string().min(1),mode:u.enum([`snapshot`,`current`]),input:r.optional(),config:r.optional(),artifactRef:g.optional(),scope:b.optional(),executionHints:h.optional(),parentSessionId:u.string().optional(),triggerPayload:a.optional(),reason:u.string().min(1).optional()}),response:u.object({executionId:u.string()})},cancel:{request:u.object({executionId:u.string(),reason:u.string().optional()}),response:u.object({cancelled:u.boolean()})},getExecution:{request:u.object({executionId:u.string()}),response:u.object({execution:A.nullable()})},listExecutions:{request:ke,response:u.object({executions:u.array(A)})},listExecutionsByArtifactRefs:{request:Ne,response:u.object({executionsByRef:u.record(u.string(),u.array(A))})},listSpans:{request:u.object({executionId:u.string()}),response:u.object({spans:u.array(I)})},listGateInstances:{request:Pe,response:u.object({gates:u.array(N)})},setExecutionLink:{request:u.object({link:L}),response:u.object({id:u.string()})},listExecutionLinks:{request:Ye,response:u.object({links:u.array(L)})},listFrames:{request:u.object({executionId:u.string().min(1)}),response:u.object({frames:u.array(j)})},listTriggerTypes:{request:u.object({}),response:u.object({triggerTypes:u.array(u.object({type:u.string(),displayName:u.string(),icon:u.string(),category:u.string(),description:u.string().optional(),configJsonSchema:i,outputJsonSchema:i,source:u.string()}))})},runFile:{request:u.object({filePath:u.string().min(1),triggerPayload:a.optional(),scope:b.optional()}),response:u.object({executionId:u.string()})},registerExternalExecution:{request:wt,response:u.object({executionId:u.string(),frameId:u.string().optional()})},completeExternalExecution:{request:Tt,response:u.object({success:u.boolean()})},resolveRole:{request:u.object({roleId:u.string().min(1)}),response:P},resolveAgent:{request:u.object({agentId:u.string().min(1)}),response:Ce},getRunContext:{request:u.object({executionId:u.string().min(1)}),response:mt},"execution.started":u.object({executionId:u.string(),workflowId:u.string(),coordinatorSessionId:u.string().optional(),startedAt:u.number().nonnegative().optional(),artifactRef:g.optional()}),"execution.completed":u.object({executionId:u.string(),workflowId:u.string(),totalDuration:u.number(),completedAt:u.number().nonnegative().optional()}),"execution.failed":u.object({executionId:u.string(),workflowId:u.string(),error:u.string(),failedStepId:u.string().optional(),completedAt:u.number().nonnegative().optional()}),"execution.cancelled":u.object({executionId:u.string(),workflowId:u.string(),reason:u.string().optional(),completedAt:u.number().nonnegative().optional()}),"execution.progress":u.object({executionId:u.string().min(1),workflowId:u.string().min(1),frameId:u.string().min(1),nodeId:u.string().min(1),progress:Et,emittedAt:u.number().int().nonnegative()}),"execution.paused":p.schema(u.object({executionId:u.string(),workflowId:u.string(),pausedAtGateId:u.string().min(1),pausedAtFrameId:u.string().min(1)}),{traceAll:!0}),"step.beforeStart":U,"step.started":U.extend({sessionId:u.string().optional(),subagentId:u.string().optional()}),"step.completed":U.extend({result:r.optional(),duration:u.number()}),"step.failed":U.extend({error:u.string()}),"step.skipped":U.extend({reason:u.string().optional(),condition:u.string().optional()}),"gate.requested":Ot,"gate.awaitApproval":{request:Ot,response:u.object({action:u.enum([`approve`,`reject`]),source:u.enum([`user`,`timeout`]),reason:u.string().optional()})},"gate.respond":{request:u.object({executionId:u.string(),gateId:u.string(),action:u.enum([`approve`,`reject`]),frameId:u.string().optional(),resumeData:r,reason:u.string().optional()}),response:u.object({accepted:u.boolean()})},"gate.resolved":Dt,"frame.started":u.object({executionId:u.string(),frameId:u.string(),nodeId:u.string(),nodeType:C,path:u.array(u.string()),parentFrameId:u.string().optional(),startedAt:u.number().nonnegative().optional()}),"frame.completed":u.object({executionId:u.string(),frameId:u.string(),nodeId:u.string(),output:r.optional(),duration:u.number().nonnegative().optional(),completedAt:u.number().nonnegative().optional()}),"frame.failed":u.object({executionId:u.string(),frameId:u.string(),nodeId:u.string(),error:u.string(),duration:u.number().nonnegative().optional(),completedAt:u.number().nonnegative().optional()}),"frame.sessionLinked":u.object({executionId:p.attribute(u.string(),`makaio.execution.id`),frameId:p.attribute(u.string(),`makaio.frame.id`),sessionId:p.attribute(u.string(),`makaio.session.id`)}).strict(),"gate.suspended":u.object({executionId:u.string(),frameId:u.string(),nodeId:u.string(),schema:i,prompt:u.string().optional(),title:u.string().optional(),autoAction:u.enum([`approve`,`reject`]),timeoutMs:u.number().nullable(),openedAt:u.number()}),"gate.resumed":u.object({executionId:u.string(),frameId:u.string(),nodeId:u.string(),resumeData:r}),"dynamic.materialized":u.object({executionId:u.string(),frameId:u.string(),factoryId:u.string().min(1),materializedNodes:u.number().int().nonnegative()}),"artifact.updated":u.object({executionId:u.string(),frameId:u.string(),artifactRef:u.object({kind:u.string().min(1),id:u.string().min(1)}),paths:u.array(u.string()),operation:u.string().min(1),revision:u.string().min(1).optional()}),"worklog.get":{request:u.object({executionId:u.string().min(1)}),response:u.object({summary:H.nullable()})},"worklog.frame.get":{request:u.object({frameId:u.string().min(1)}),response:u.object({frame:ht.nullable()})},"worklog.list":{request:u.object({workflowId:u.string().min(1).optional(),status:k.optional(),limit:u.number().int().positive().optional(),offset:u.number().int().nonnegative().optional()}),response:u.object({items:u.array(H),total:u.number().int().nonnegative()})},"worklog.stats":{request:u.object({workflowId:u.string().min(1).optional(),since:u.number().int().nonnegative().optional(),until:u.number().int().nonnegative().optional()}),response:u.object({stats:yt})},"worklog.changed":u.object({executionId:u.string().min(1)}),"state.get":{request:u.object({executionId:u.string().min(1)}),response:u.object({executionId:u.string().min(1),sequence:u.number().int().nonnegative(),value:r})},"state.patch":{request:u.object({executionId:u.string().min(1),expectedSequence:u.number().int().nonnegative(),patch:u.array(z),nextValue:r}),response:u.object({executionId:u.string().min(1),sequence:u.number().int().positive(),value:r})},"state.updated":u.object({executionId:u.string().min(1),sequence:u.number().int().positive(),patch:u.array(z),value:r,updatedAt:u.number().int().positive()})},At=d(`workflow`,kt),jt=At.subjects;function Mt(e,t){G(e,t,void 0,0,[],`root`,void 0,void 0)}function G(e,t,n,r,i,a,o,s){let c={parent:n,depth:r,ancestors:i,relationship:a,...o!==void 0&&{index:o},...s!==void 0&&{branchKey:s}};if(t.enter?.(e,c)===!1)return;let l=[...i,e.id],u=r+1;switch(e.type){case`sequence`:{let n=e;for(let r=0;r<n.nodes.length;r++)G(n.nodes[r],t,e,u,l,`sequence-child`,r,void 0);break}case`parallel`:{let n=e;for(let[r,i]of Object.entries(n.branches))G(i,t,e,u,l,`parallel-branch`,void 0,r);break}case`iterate`:G(e.body,t,e,u,l,`iterate-body`,void 0,void 0);break;case`iterate-chain`:G(e.body,t,e,u,l,`iterate-chain-body`,void 0,void 0);break;case`loop`:G(e.body,t,e,u,l,`loop-body`,void 0,void 0);break}t.leave?.(e,c)}function Nt(e){switch(e){case`station`:case`delegate-agent`:case`delegate-role`:case`gate`:return`leaf`;case`parallel`:case`iterate`:case`iterate-chain`:case`loop`:return`control`;case`sequence`:return`structural`}}function Pt(e,t,n){return e===`parallel-branch`&&t!==void 0?[{kind:`branch`,key:t}]:e===`sequence-child`&&n!==void 0?[{kind:`index`,value:n}]:e===`iterate-body`||e===`iterate-chain-body`||e===`loop-body`?[{kind:`body`}]:[]}function Ft(e){return e.replace(/\\/g,`\\\\`).replace(/\//g,`\\/`)}function It(e){return e.map(e=>{switch(e.kind){case`node`:return`n:${Ft(e.id)}`;case`branch`:return`b:${Ft(e.key)}`;case`index`:return`i:${e.value}`;case`body`:return`body`}}).join(`/`)}function Lt(e){let t=[],n=[],r=new Map,i=[],a=[],o=[];return Mt(e.root,{enter(e,s){let c=Pt(s.relationship,s.branchKey,s.index),l={kind:`node`,id:e.id};i.push(...c,l),o.push(c.length+1);let u=[...i],d=It(u),f=a.at(-1);if(t.push({key:d,nodeId:e.id,type:e.type,role:Nt(e.type),path:u,parentKey:f,...s.branchKey!==void 0&&{branchKey:s.branchKey}}),f!==void 0&&s.parent!==void 0)switch(s.parent.type){case`sequence`:{n.push({sourceKey:f,targetKey:d,kind:`contains`});let e=r.get(f);e!==void 0&&n.push({sourceKey:e,targetKey:d,kind:`sequence`}),r.set(f,d);break}case`parallel`:n.push({sourceKey:f,targetKey:d,kind:`branch`});break;case`iterate`:case`iterate-chain`:case`loop`:n.push({sourceKey:f,targetKey:d,kind:`body`});break;default:n.push({sourceKey:f,targetKey:d,kind:`contains`});break}a.push(d)},leave(){let e=o.pop()??0;i.splice(i.length-e,e),a.pop()}}),{nodes:t,edges:n}}function K(e){return q(e.body.nodes,e.id)}function q(e,t){for(let n of e){if(n.type===`loop`)return`Nested loop '${n.id}' found inside loop '${t}' — V1 does not support nested loops`;if(n.type===`sequence`){let e=q(n.nodes,t);if(e)return e}if(n.type===`parallel`)for(let e of Object.values(n.branches)){let n=q(e.nodes,t);if(n)return n}if(n.type===`iterate`||n.type===`iterate-chain`){let e=n.body,r=q(e.nodes,t);if(r)return r}}}const J=new WeakMap,Rt=new WeakMap;function Y(e){let{$schema:t,...n}=u.toJSONSchema(e);return n}function X(e,t,n){let r=J.get(e);if(r!==void 0&&t.set(e.id,r),e.type===`sequence`)for(let r of e.nodes)X(r,t,n);else if(e.type===`parallel`)for(let r of Object.values(e.branches))X(r,t,n);else if(e.type===`iterate`)X(e.body,t,n);else if(e.type===`iterate-chain`)X(e.body,t,n);else if(e.type===`loop`){if(n!==void 0){let t=Rt.get(e);t!==void 0&&n.set(e.gate.handler,t)}X(e.body,t,n)}}function zt(e,t,n){let r={id:e,type:`station`,prompt:e,...n?.when!==void 0&&{when:n.when},...n?.skip!==void 0&&{skip:n.skip}};return J.set(r,t),r}function Bt(e,t,n){return{id:e,type:`delegate-agent`,agentId:t.agentId,...t.inputExpression!==void 0&&{inputExpression:t.inputExpression},...t.outputSchema!==void 0&&{outputSchema:t.outputSchema},...n?.when!==void 0&&{when:n.when},...n?.skip!==void 0&&{skip:n.skip}}}function Vt(e,t,n){return{id:e,type:`delegate-role`,role:t,prompt:n?.prompt??e,...n?.when!==void 0&&{when:n.when},...n?.skip!==void 0&&{skip:n.skip},...n?.outputSchema!==void 0&&{outputSchema:n.outputSchema},...n?.timeoutMs!==void 0&&{timeoutMs:n.timeoutMs},...n?.completion!==void 0&&{completion:n.completion}}}function Ht(e,t){return{id:e,type:`gate`,prompt:t.prompt,autoAction:t.autoAction,timeoutMs:t.timeoutMs,...t.title!==void 0&&{title:t.title},...t.resume!==void 0&&{resumeSchema:Y(t.resume)}}}function Ut(e,t,n){let r=`${e}__item`,i={id:r,type:`station`,prompt:r},a={id:e,type:`iterate`,collection:n.collection,body:{id:`${e}__body`,type:`sequence`,nodes:[i]},...n.concurrency!==void 0&&{concurrency:n.concurrency},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}};return J.set(i,t),a}function Wt(e,t,n){return{id:e,type:`iterate-chain`,collection:n.collection,body:{id:`${e}__body`,type:`sequence`,nodes:t},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}}}function Gt(e,t,n){let r={id:e,type:`loop`,maxRounds:n.maxRounds,body:{id:`${e}__body`,type:`sequence`,nodes:t},gate:Kt(n),...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}},i=K(r);if(i!==void 0)throw Error(i);return Rt.set(r,n.gate.evaluate),r}function Kt(e){let t=e.gate.escalation;return{handler:e.gate.handler,...e.gate.input!==void 0&&{input:e.gate.input},...e.gate.config!==void 0&&{config:e.gate.config},...t!==void 0&&{escalation:{prompt:t.prompt,autoAction:t.autoAction??`reject`,timeoutMs:t.timeoutMs??null,...t.title!==void 0&&{title:t.title},...t.resumeSchema!==void 0&&{resumeSchema:t.resumeSchema}}}}}function qt(e){return{type:`bus-event`,subject:f(e.subject),...e.filter!==void 0&&{filter:e.filter},...e.filterExpression!==void 0&&{filterExpression:e.filterExpression}}}function Jt(){return{type:`manual`}}function Yt(e){return{type:`cron`,schedule:e.schedule,...e.timezone!==void 0&&{timezone:e.timezone}}}function Xt(e){return{type:`webhook`,event:e.event,...e.branch!==void 0&&{branch:e.branch},...e.repo!==void 0&&{repo:e.repo}}}function Zt(e){return{type:`extension`,extensionType:e.extensionType,...e.config!==void 0&&{config:e.config}}}function Z(e,t){if(e.has(t))throw Error(`Duplicate step ID: ${t}`);e.add(t)}function Q(e,t){if(Z(e,t.id),t.type===`sequence`)for(let n of t.nodes)Q(e,n);else if(t.type===`parallel`)for(let n of Object.values(t.branches))Q(e,n);else (t.type===`iterate`||t.type===`iterate-chain`||t.type===`loop`)&&Q(e,t.body)}function Qt(e,t,n,r,i){let a={};return t.forEach((t,o)=>{if(t.id.length===0)throw Error(`parallel branch at index ${o} has an empty ID`);let s=t.id,c=`${e}__${s}`;Q(n,t),Z(n,c),X(t,r,i),a[s]={id:c,type:`sequence`,nodes:[t]}}),a}function $t(e,t,n,r,i){let a=`${e}__body`,o=`${e}__item`;Z(r,a),Z(r,o),i.set(o,t);let s={id:o,type:`station`,prompt:o};return{id:e,type:`iterate`,collection:n.collection,body:{id:a,type:`sequence`,nodes:[s]},...n.concurrency!==void 0&&{concurrency:n.concurrency},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}}}function en(e,t,n){return t.resume!==void 0&&(n[e]=t.resume),{id:e,type:`gate`,prompt:t.prompt,autoAction:t.autoAction,timeoutMs:t.timeoutMs,...t.title!==void 0&&{title:t.title},...t.resume!==void 0&&{resumeSchema:Y(t.resume)}}}function tn(e,t,n,r,i,a){let o=`${e}__body`;Z(r,o);for(let e of t)Q(r,e),X(e,i,a);return{id:e,type:`iterate-chain`,collection:n.collection,body:{id:o,type:`sequence`,nodes:t},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}}}function nn(e,t,n,r,i,a){let o=`${e}__body`;Z(r,o);for(let e of t)Q(r,e),X(e,i,a);let s={id:e,type:`loop`,maxRounds:n.maxRounds,body:{id:o,type:`sequence`,nodes:t},gate:Kt(n),...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}},c=K(s);if(c!==void 0)throw Error(c);return a.set(n.gate.handler,n.gate.evaluate),s}function rn(e,t){e.input=n=>(t.zodSchemas.input=n,t.definition.inputSchema=Y(n),e),e.config=n=>(t.zodSchemas.config=n,t.definition.configSchema=Y(n),e),e.output=n=>(t.zodSchemas.output=n,t.definition.outputSchema=Y(n),e),e.artifact=n=>(n.schema!==void 0&&(t.zodSchemas.artifact=n.schema),t.definition.artifact={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,...n.resolve!==void 0&&{resolve:n.resolve},...n.create!==void 0&&{create:n.create},...n.statusPath!==void 0&&{statusPath:n.statusPath}},e),e.state=e=>(t.definition.state={schema:e.schema,...e.initial!==void 0&&{initial:e.initial}},$(t))}function an(e,t){let{rootNodes:n,runtimeHandlers:r,runtimeLoopGates:i,registeredIds:a,zodGates:o}=t;e.station=(t,i,o)=>(Z(a,t),n.push({id:t,type:`station`,prompt:t,...o?.when!==void 0&&{when:o.when},...o?.skip!==void 0&&{skip:o.skip}}),r.set(t,i),e),e.delegateToAgent=(t,r,i)=>{Z(a,t);let o={id:t,type:`delegate-agent`,agentId:r.agentId,...r.inputExpression!==void 0&&{inputExpression:r.inputExpression},...r.outputSchema!==void 0&&{outputSchema:r.outputSchema},...i?.when!==void 0&&{when:i.when},...i?.skip!==void 0&&{skip:i.skip}};return n.push(o),e},e.delegateToRole=(t,r,i)=>(Z(a,t),n.push({id:t,type:`delegate-role`,role:r,prompt:i?.prompt??t,...i?.when!==void 0&&{when:i.when},...i?.skip!==void 0&&{skip:i.skip},...i?.outputSchema!==void 0&&{outputSchema:i.outputSchema},...i?.timeoutMs!==void 0&&{timeoutMs:i.timeoutMs},...i?.completion!==void 0&&{completion:i.completion}}),e),e.parallel=(t,o,s)=>(Z(a,t),n.push({id:t,type:`parallel`,mode:o.mode??`all-settled`,branches:Qt(t,s,a,r,i),...o.when!==void 0&&{when:o.when},...o.skip!==void 0&&{skip:o.skip}}),e),e.gate=(t,r)=>(Z(a,t),n.push(en(t,r,o)),e),e.iterate=(t,i,o)=>(Z(a,t),n.push($t(t,i,o,a,r)),e),e.iterateChain=(t,o,s)=>(Z(a,t),n.push(tn(t,o,s,a,r,i)),e),e.loop=(t,o,s)=>(Z(a,t),n.push(nn(t,o,s,a,r,i)),e),e.addNode=e=>on(e,a,r,i,n)}function on(e,t,n,r,i){Q(t,e),X(e,n,r),i.push(e)}function $(e){let t={id:e.definition.id,definition:e.definition,runtimeHandlers:e.runtimeHandlers,runtimeFactories:e.runtimeFactories,runtimeLoopGates:e.runtimeLoopGates,source:void 0,get zodSchemas(){return e.zodSchemas},addTrigger(t){return e.triggers.push(t),$(e)}};return rn(t,e),an(t,e),t}function sn(e,t){let n=[],r=new Map,i=new Map,a=new Set,o={},s={gates:o},c=new Map,l=t?.triggers?[...t.triggers]:[];return $({rootNodes:n,runtimeHandlers:r,runtimeFactories:c,runtimeLoopGates:i,registeredIds:a,zodGates:o,zodSchemas:s,definition:{id:e,...t?.name!==void 0&&{name:t.name},...t?.description!==void 0&&{description:t.description},root:{id:`${e}__root`,type:`sequence`,nodes:n},triggers:l,scope:{type:`global`}},triggers:l})}function cn(e){if(e.workflows.length===0)throw Error(`defineWorkflowBundle: workflows must not be empty`);return{workflows:Object.freeze([...e.workflows])}}const ln=u.enum([`artifact.created`,`artifact.revised`,`artifact.status.changed`]),un=u.record(u.string(),r),dn=u.object({type:u.string().min(1),input:u.record(u.string(),r).optional(),executionHints:h.optional()}),fn=u.object({id:u.string().min(1),description:u.string().optional(),on:ln,when:un.optional(),action:dn,enabled:u.boolean().default(!0)});export{st as $,w as $t,St as A,k as At,pt as B,fe as Bt,At as C,je as Ct,Tt as D,Ee as Dt,jt as E,De as Et,ht as F,S as Ft,B as G,j as Gt,dt as H,be as Ht,_t as I,le as It,at as J,M as Jt,it as K,N as Kt,yt as L,x as Lt,gt as M,v as Mt,bt as N,Pe as Nt,xt as O,Te as Ot,H as P,ve as Pt,rt as Q,ye as Qt,vt as R,xe as Rt,Mt as S,Me as St,kt as T,Oe as Tt,lt as U,A as Ut,ft as V,pe as Vt,ut as W,b as Wt,ct as X,ge as Xt,nt as Y,_e as Yt,ot as Z,we as Zt,Gt as _,Fe as _t,cn as a,P as an,Je as at,K as b,Ue as bt,Yt as c,Se as cn,Be as ct,Xt as d,g as dn,Re as dt,T as en,z as et,Bt as f,ne as fn,ze as ft,Wt as g,m as gn,He as gt,Ut as h,ee as hn,Ge as ht,fn as i,Ce as in,L as it,wt as j,Ne as jt,Ct as k,ke as kt,Zt as l,D as ln,We as lt,Ht as m,h as mn,Ie as mt,un as n,de as nn,Xe as nt,sn as o,E as on,I as ot,Vt as p,te as pn,Le as pt,tt as q,he as qt,ln as r,me as rn,Ye as rt,qt as s,ue as sn,qe as st,dn as t,C as tn,Ze as tt,Jt as u,y as un,Ke as ut,zt as v,F as vt,Et as w,Ae as wt,Lt as x,ce as xt,Y as y,Ve as yt,mt as z,O as zt};