@makaio/framework 1.0.0-dev-1790114433794 → 1.0.0-dev-1790165411632

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 (290) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/adapter-subsystem/index.mjs +1 -1
  3. package/dist/adapters/claude/index.d.mts +24 -24
  4. package/dist/adapters/config/index.d.mts +1 -1
  5. package/dist/adapters/index.d.mts +2 -2
  6. package/dist/adapters/node.d.mts +1 -1
  7. package/dist/bus/index.d.mts +46 -21
  8. package/dist/bus/index.mjs +1 -1
  9. package/dist/{bus-CX0d5tTa.mjs → bus-D4DBDaoS.mjs} +1 -1
  10. package/dist/clients/index.d.mts +2 -1
  11. package/dist/clients/index.mjs +1 -1
  12. package/dist/clients/managed-install.d.mts +1 -1
  13. package/dist/code-execution/worker-entry.d.mts +1 -1
  14. package/dist/contracts/adapter/index.d.mts +2 -2
  15. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  16. package/dist/contracts/artifact/index.d.mts +2 -2
  17. package/dist/contracts/auth/index.d.mts +2 -2
  18. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  19. package/dist/contracts/canonical-model/index.d.mts +1 -1
  20. package/dist/contracts/capabilities/index.d.mts +1 -1
  21. package/dist/contracts/client/index.d.mts +2 -2
  22. package/dist/contracts/code-execution/index.d.mts +1 -1
  23. package/dist/contracts/common/index.d.mts +1 -1
  24. package/dist/contracts/config/index.d.mts +2 -2
  25. package/dist/contracts/extension/index.d.mts +5 -5
  26. package/dist/contracts/facet/index.d.mts +1 -1
  27. package/dist/contracts/harness/index.d.mts +1 -1
  28. package/dist/contracts/host/index.d.mts +1 -1
  29. package/dist/contracts/index.d.mts +179 -179
  30. package/dist/contracts/index.mjs +1 -1
  31. package/dist/contracts/materialization/index.d.mts +2 -2
  32. package/dist/contracts/model-registry/index.d.mts +1 -1
  33. package/dist/contracts/native-session-supervisor/index.d.mts +2 -2
  34. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  35. package/dist/contracts/platform/index.d.mts +1 -1
  36. package/dist/contracts/provider/index.d.mts +2 -2
  37. package/dist/contracts/reaction/index.d.mts +1 -1
  38. package/dist/contracts/session/index.d.mts +2 -2
  39. package/dist/contracts/shared/index.d.mts +2 -2
  40. package/dist/contracts/skill/index.d.mts +1 -1
  41. package/dist/contracts/telemetry/index.d.mts +1 -1
  42. package/dist/contracts/timeout/index.d.mts +1 -1
  43. package/dist/contracts/variant/index.d.mts +1 -1
  44. package/dist/contracts/worker/index.d.mts +2 -2
  45. package/dist/contracts/workflow/index.d.mts +2 -2
  46. package/dist/{contribution-1GL7Rjaq.d.mts → contribution-DTb65rRN.d.mts} +2 -2
  47. package/dist/{definition-DeIGoROj.d.mts → definition-DWhjp0db.d.mts} +1 -1
  48. package/dist/{detached-extension-handle-W5_yfCyE.mjs → detached-extension-handle-QrXVNUR2.mjs} +1 -1
  49. package/dist/{extension-context-pQ7Uio_s.d.mts → extension-context-DH84KOm9.d.mts} +1 -1
  50. package/dist/filesystem-service-CIaAqTRi.mjs +1 -0
  51. package/dist/{framework-packages-U4Xhouxe.mjs → framework-packages-C2tvdFmP.mjs} +1 -1
  52. package/dist/{hook-responses-B882RcQc.d.mts → hook-responses-OETFKaAL.d.mts} +1 -1
  53. package/dist/{index-BtMWM80d.d.mts → index-8hJCLlAE.d.mts} +12 -12
  54. package/dist/{index-DfREUyAk.d.mts → index-B1uHTa1l.d.mts} +1 -1
  55. package/dist/{index-UjNxC0VC2.d.mts → index-B7KgjUmJ2.d.mts} +4 -4
  56. package/dist/{index-DGoJayJg.d.mts → index-BDTcg6tu.d.mts} +100 -100
  57. package/dist/{index-DQU8ZoJr.d.mts → index-BM53WQaQ.d.mts} +1 -1
  58. package/dist/{index-CmCLAMNs.d.mts → index-BRF5X-EZ.d.mts} +1 -1
  59. package/dist/{index-D6Uq1btG.d.mts → index-BUxs65tf.d.mts} +2 -2
  60. package/dist/{index-ConhyAnB.d.mts → index-BVG-RaIu.d.mts} +102 -102
  61. package/dist/{index-L6mssyeZ.d.mts → index-BfFi98B_.d.mts} +1 -1
  62. package/dist/{index-FyY9jdCQ2.d.mts → index-BnNNfBck.d.mts} +12 -12
  63. package/dist/{index-CESqYf8a.d.mts → index-C0Jfr8UK.d.mts} +2 -2
  64. package/dist/{index-DqliLe_D2.d.mts → index-C9Dz8UoK2.d.mts} +242 -7
  65. package/dist/{index-D2TphOHU2.d.mts → index-CDuEmakt2.d.mts} +383 -383
  66. package/dist/{index-DOD7Lmgu.d.mts → index-CI5ss_XH.d.mts} +357 -357
  67. package/dist/{index-DUYjTfHD.d.mts → index-CLwnkYRD.d.mts} +1 -1
  68. package/dist/{index-C8two8wz.d.mts → index-CdkIg4Gu.d.mts} +1 -1
  69. package/dist/{index-Di-R1gmo.d.mts → index-CmTVBNCe.d.mts} +288 -288
  70. package/dist/{index-DJxg7U2X.d.mts → index-D5BLD2Pw.d.mts} +7 -3
  71. package/dist/{index-B2bxgKiK.d.mts → index-D9BLsMs8.d.mts} +1 -1
  72. package/dist/{index-DdJKsdya.d.mts → index-D9hIDsPr.d.mts} +1 -1
  73. package/dist/{index-m5ZQFglW2.d.mts → index-DPsQ_cFG2.d.mts} +1 -1
  74. package/dist/{index-DpLjyQ-Z.d.mts → index-DRSeELQh.d.mts} +3 -3
  75. package/dist/{index-6bsTWnnc.d.mts → index-DyzmUD1S.d.mts} +27 -27
  76. package/dist/{index-aIJ7A4DC2.d.mts → index-QYdQSOnc2.d.mts} +6 -6
  77. package/dist/{index-DJVQG6Nn.d.mts → index-qtH2O8j_.d.mts} +14 -14
  78. package/dist/{index-Jdju2W3y.d.mts → index-t6LnywuE.d.mts} +1 -1
  79. package/dist/kernel/cli/index.d.mts +2 -2
  80. package/dist/kernel/cli/register.d.mts +1 -1
  81. package/dist/kernel/extension/index.d.mts +2 -2
  82. package/dist/kernel/index.d.mts +5 -5
  83. package/dist/kernel/namespace/index.d.mts +1 -1
  84. package/dist/kernel/observability/index.d.mts +1 -1
  85. package/dist/kernel/providers/index.d.mts +1 -1
  86. package/dist/kernel/window/index.d.mts +1 -1
  87. package/dist/{load-extensions-Be_lOjm_.d.mts → load-extensions-CCzTHlUE.d.mts} +1 -1
  88. package/dist/{load-extensions-BGfSWW_R.mjs → load-extensions-eyXZhbRn.mjs} +1 -1
  89. package/dist/{namespace-D5DkpaaN.d.mts → namespace-B0__88KU.d.mts} +154 -154
  90. package/dist/{namespace-Bhx72V7S.d.mts → namespace-BaUgxONS.d.mts} +2 -2
  91. package/dist/{namespace-B1CgZ0oQ.d.mts → namespace-BhpzgnH3.d.mts} +1 -1
  92. package/dist/{namespace-BtOBQybk.d.mts → namespace-Bz0ZDWhE.d.mts} +18 -18
  93. package/dist/{namespace-zusFEJPh.d.mts → namespace-CNX4llM5.d.mts} +6 -6
  94. package/dist/native-session-supervisor-BmnAZuia.mjs +1 -0
  95. package/dist/node/bus-server/index.d.mts +1 -1
  96. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  97. package/dist/node/transports/index.d.mts +53 -1
  98. package/dist/node/transports/index.mjs +2 -2
  99. package/dist/node-bridge-backend-DtRT--yn.mjs +1 -0
  100. package/dist/node-pty-backend-C72EgRws.mjs +1 -0
  101. package/dist/{package-kkPGlxMm.mjs → package-CeEUAKHI.mjs} +1 -1
  102. package/dist/{package-CwyC-Krg.d.mts → package-jjugnMVh.d.mts} +2 -2
  103. package/dist/package.json +1 -1
  104. package/dist/rules/index.d.mts +1 -1
  105. package/dist/rules/schemas.d.mts +1 -1
  106. package/dist/runtime-bun/index.d.mts +5 -0
  107. package/dist/runtime-bun/index.mjs +1 -1
  108. package/dist/runtime-node/bridge/pty-bridge.cjs +222 -0
  109. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  110. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  111. package/dist/runtime-node/extension-validation.d.mts +1 -1
  112. package/dist/runtime-node/extension-validation.mjs +1 -1
  113. package/dist/runtime-node/index.d.mts +5 -5
  114. package/dist/runtime-node/index.mjs +25 -21
  115. package/dist/runtime-node/makaio-config.d.mts +1 -1
  116. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  117. package/dist/{schemas-B7YzDHLs.d.mts → schemas-CjFPsYeV.d.mts} +4 -4
  118. package/dist/{schemas-BLxdGZkr.d.mts → schemas-D9pXu76T.d.mts} +4 -4
  119. package/dist/{schemas-CD3Mq-jC.d.mts → schemas-DFamD1UF.d.mts} +154 -154
  120. package/dist/{schemas-DNNHiY8g2.d.mts → schemas-DPtj1sPC2.d.mts} +7 -7
  121. package/dist/{schemas--wiEYYQs.d.mts → schemas-KyQQPGjX.d.mts} +11 -11
  122. package/dist/service-base/index.d.mts +35 -5
  123. package/dist/service-base/index.mjs +1 -1
  124. package/dist/services/adapter-runtime/index.d.mts +3 -3
  125. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  126. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  127. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  128. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  129. package/dist/services/agent-runtime/index.d.mts +2 -2
  130. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  131. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  132. package/dist/services/capability/index.d.mts +2 -2
  133. package/dist/services/code-execution/index.d.mts +1 -1
  134. package/dist/services/codebase/index.d.mts +2 -2
  135. package/dist/services/codebase/namespace.d.mts +1 -1
  136. package/dist/services/codebase/schemas.d.mts +1 -1
  137. package/dist/services/compression/index.d.mts +2 -2
  138. package/dist/services/compression/namespace.d.mts +1 -1
  139. package/dist/services/compression/schemas.d.mts +1 -1
  140. package/dist/services/context-rules/index.d.mts +1 -1
  141. package/dist/services/execution-target/index.d.mts +3 -3
  142. package/dist/services/execution-target/namespace.d.mts +1 -1
  143. package/dist/services/execution-target/schemas.d.mts +1 -1
  144. package/dist/services/filesystem/index.d.mts +1 -1
  145. package/dist/services/filesystem/index.mjs +1 -1
  146. package/dist/services/filesystem/namespace.d.mts +12 -12
  147. package/dist/services/filesystem/schemas.d.mts +6 -6
  148. package/dist/services/git/namespace.d.mts +2 -2
  149. package/dist/services/git/schemas.d.mts +2 -2
  150. package/dist/services/index.d.mts +134 -134
  151. package/dist/services/index.mjs +1 -1
  152. package/dist/services/log-import/browser.d.mts +2 -2
  153. package/dist/services/log-import/index.d.mts +2 -2
  154. package/dist/services/log-import/log-import.d.mts +1 -1
  155. package/dist/services/materialization/index.d.mts +1 -1
  156. package/dist/services/model-registry/index.d.mts +1 -1
  157. package/dist/services/preferences/index.d.mts +2 -2
  158. package/dist/services/preferences/schemas.d.mts +1 -1
  159. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  160. package/dist/services/provider-context/index.d.mts +1 -1
  161. package/dist/services/session/handlers/index.d.mts +1 -1
  162. package/dist/services/session/index.d.mts +9 -9
  163. package/dist/services/session/index.mjs +1 -1
  164. package/dist/services/session/messages/namespace.d.mts +1 -1
  165. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  166. package/dist/services/session/session-events/namespace.d.mts +1 -1
  167. package/dist/services/session/storage/namespace.d.mts +1 -1
  168. package/dist/services/session/storage/schema.d.mts +1 -1
  169. package/dist/services/session/testing/index.mjs +1 -1
  170. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  171. package/dist/services/session/turns/namespace.d.mts +1 -1
  172. package/dist/services/session-editor/index.d.mts +1 -1
  173. package/dist/services/settings/index.d.mts +3 -3
  174. package/dist/services/settings/namespace.d.mts +8 -8
  175. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  176. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  177. package/dist/services/settings/storage/index.d.mts +3 -3
  178. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  179. package/dist/services/subagent/index.d.mts +1 -1
  180. package/dist/services/subagent-template/index.d.mts +2 -2
  181. package/dist/services/subagent-template/namespace.d.mts +1 -1
  182. package/dist/services/subagent-template/schemas.d.mts +1 -1
  183. package/dist/services/tool-approval/index.d.mts +1 -1
  184. package/dist/services/tool-approval/index.mjs +1 -1
  185. package/dist/services/tools/index.d.mts +1 -1
  186. package/dist/services/tools/index.mjs +1 -1
  187. package/dist/services/tray-menu/index.d.mts +3 -3
  188. package/dist/services/tray-menu/namespace.d.mts +1 -1
  189. package/dist/services/tray-menu/schemas.d.mts +1 -1
  190. package/dist/services/turn/index.d.mts +1 -1
  191. package/dist/services/turn/namespace.d.mts +1 -1
  192. package/dist/services/workflow-transitions/index.d.mts +1 -1
  193. package/dist/services/workflow-transitions/index.mjs +1 -1
  194. package/dist/{session-CMbztxNO.mjs → session-D38UuGGX.mjs} +1 -1
  195. package/dist/{session-lineage-BuGN3RZs.d.mts → session-lineage-CmP7L5g2.d.mts} +1 -1
  196. package/dist/storage/drizzle/client.d.mts +1 -1
  197. package/dist/storage/drizzle/index.d.mts +1 -1
  198. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  199. package/dist/storage/handlers/index.d.mts +1 -1
  200. package/dist/{storage-namespace-DaCB01dg.d.mts → storage-namespace-CwwiV3kt.d.mts} +10 -10
  201. package/dist/{tool-approval-service-CRo3fZRF.mjs → tool-approval-service-vG2mEC9p.mjs} +1 -1
  202. package/dist/{tools-CKaxi3Mb.mjs → tools-ByDy0ueE.mjs} +1 -1
  203. package/dist/{transition-DMv8cgEd.d.mts → transition-CAtcgdUp.d.mts} +2 -2
  204. package/dist/{types-Dvsn8TOX.d.mts → types-BbqmHOM-.d.mts} +341 -341
  205. package/dist/{types-7L3BrU9m2.d.mts → types-DyBD5MdV2.d.mts} +1 -1
  206. package/dist/ui-kernel/index.d.mts +4 -4
  207. package/dist/ui-kernel/pages/namespace.d.mts +4 -4
  208. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  209. package/dist/{view-builder-BVIbIS_J.d.mts → view-builder-6YQFmKD6.d.mts} +2 -2
  210. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  211. package/dist/workflow-engine/index.d.mts +59 -59
  212. package/dist/workflow-engine/index.mjs +1 -1
  213. package/dist/workflow-engine/package.d.mts +1 -1
  214. package/dist/workflow-engine/package.mjs +1 -1
  215. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  216. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  217. package/dist/workflow-engine/testing/index.d.mts +1 -1
  218. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  219. package/dist/{workflow-transitions-t0ORS1F5.mjs → workflow-transitions-UOXY-VZa.mjs} +1 -1
  220. package/package.json +2 -1
  221. package/dist/filesystem-service-ClZEAw7E.mjs +0 -1
  222. package/dist/native-session-supervisor-DtuN1Dgs.mjs +0 -1
  223. package/dist/{adapter-binding-CaYBrIkL.d.mts → adapter-binding-DF-j-XHg.d.mts} +0 -0
  224. package/dist/{base-orchestrator-1ofFsqUz.d.mts → base-orchestrator-FNFJ6Cwf.d.mts} +0 -0
  225. package/dist/{capability-service-CUN0MIS7.d.mts → capability-service-BHcRd1td.d.mts} +0 -0
  226. package/dist/{client-BY3sBW2L.d.mts → client-Sx_N8LXo.d.mts} +0 -0
  227. package/dist/{client-binary-version-verifier-BeO4Eptw.d.mts → client-binary-version-verifier-C8gtKQFO.d.mts} +0 -0
  228. package/dist/{clients-namespace-D92YsbKI.d.mts → clients-namespace-CASHxXUM.d.mts} +0 -0
  229. package/dist/{config-namespace-OEckUfVE.d.mts → config-namespace-CeTODseW.d.mts} +0 -0
  230. package/dist/{credential-ref-w4ZYpYW0.d.mts → credential-ref-MsnUkz9G.d.mts} +0 -0
  231. package/dist/{definition-DLJg-P4G.d.mts → definition-D2SO1tX-.d.mts} +0 -0
  232. package/dist/{execution-attempt-repository-DOb5V4N2.d.mts → execution-attempt-repository-C2XKRZ3O.d.mts} +0 -0
  233. package/dist/{extension-discovery-Rup-gANp.d.mts → extension-discovery-BqSPn73R.d.mts} +0 -0
  234. package/dist/{filesystem-service-BmavE-uO.d.mts → filesystem-service-5Ecp3nSV.d.mts} +0 -0
  235. package/dist/{index-DubyRZD9.d.mts → index-62OoZLGr.d.mts} +0 -0
  236. package/dist/{index-DEx4ZFkz.d.mts → index-BCuWtlv5.d.mts} +0 -0
  237. package/dist/{index-BneZFJ7x.d.mts → index-BEPn58tG.d.mts} +0 -0
  238. package/dist/{index-CpN2C9jq.d.mts → index-BOxMyaqG.d.mts} +0 -0
  239. package/dist/{index-fxh7TB0q.d.mts → index-BTd3fTkW.d.mts} +0 -0
  240. package/dist/{index--gbsE1W0.d.mts → index-B_Hf4XPX.d.mts} +0 -0
  241. package/dist/{index-BQYGOXY5.d.mts → index-BjrbddkU.d.mts} +0 -0
  242. package/dist/{index-D7smT-YD.d.mts → index-BleQ0SR7.d.mts} +0 -0
  243. package/dist/{index-BDcK7jqJ2.d.mts → index-Bmb7jPIe2.d.mts} +0 -0
  244. package/dist/{index-CvdvuhTL2.d.mts → index-By1UhKYU2.d.mts} +0 -0
  245. package/dist/{index-YOXWpZAS.d.mts → index-CURT4JaX.d.mts} +0 -0
  246. package/dist/{index-CCTzitBA.d.mts → index-Ce6-SiB3.d.mts} +0 -0
  247. package/dist/{index-DxkSkszz.d.mts → index-CwVSr7Ow.d.mts} +0 -0
  248. package/dist/{index-C2StVLk4.d.mts → index-DAqAa9aL.d.mts} +0 -0
  249. package/dist/{index-CsRPJ9FV.d.mts → index-DDnY7JhE.d.mts} +0 -0
  250. package/dist/{index-DTvYp2GT.d.mts → index-DMgbNdEU.d.mts} +0 -0
  251. package/dist/{index-BD1SbHpP.d.mts → index-DOui-7u2.d.mts} +0 -0
  252. package/dist/{index-BujgCaKt.d.mts → index-DsmyofuM.d.mts} +0 -0
  253. package/dist/{index-DwOpaQAE.d.mts → index-N0-r5Hcd.d.mts} +0 -0
  254. package/dist/{index-Cj_V1aRL.d.mts → index-_OD_Nz3m.d.mts} +0 -0
  255. package/dist/{index-TBJ1kIGA.d.mts → index-rik4Uc5G.d.mts} +0 -0
  256. package/dist/{index-D3peNmHN2.d.mts → index-u0EteHlR2.d.mts} +0 -0
  257. package/dist/{index-B36rL4gp.d.mts → index-w1AeWV4F.d.mts} +0 -0
  258. package/dist/{index-anIxF_eT.d.mts → index-wGlFWRXg.d.mts} +0 -0
  259. package/dist/{index-zqo2mX_Z.d.mts → index-z_wA9LhQ.d.mts} +0 -0
  260. package/dist/{json-value-Bjl8jzom.d.mts → json-value--pv1-OHx.d.mts} +0 -0
  261. package/dist/{namespace-DudchWPb.d.mts → namespace-6O0G1s65.d.mts} +0 -0
  262. package/dist/{namespace-hlhPqSsw.d.mts → namespace-CHSwZhH7.d.mts} +0 -0
  263. package/dist/{namespace-D09uQ231.d.mts → namespace-CJ5sH_Bp.d.mts} +0 -0
  264. package/dist/{namespace-DHLwz4o3.d.mts → namespace-CL9OyrHs.d.mts} +0 -0
  265. package/dist/{namespace-DHbrNQYD.d.mts → namespace-D38Fmd0E.d.mts} +0 -0
  266. package/dist/{namespace-MW-Eg_yB.d.mts → namespace-D6W4Erwp.d.mts} +0 -0
  267. package/dist/{namespace-CxEQv9iZ.d.mts → namespace-DbtfwD5Z.d.mts} +0 -0
  268. package/dist/{namespace-Dz5_Hrz7.d.mts → namespace-QV_2m25r.d.mts} +0 -0
  269. package/dist/{namespace-DyD06b5-.d.mts → namespace-Sd6qj6w22.d.mts} +0 -0
  270. package/dist/{orchestrator-shared-ChU5qRSe.d.mts → orchestrator-shared-Bvo0u-1D.d.mts} +0 -0
  271. package/dist/{packages-D2s51nGU.d.mts → packages-KX9yofCa.d.mts} +0 -0
  272. package/dist/{providers-namespace-BLVt8OyP.d.mts → providers-namespace-B-l-OQZk.d.mts} +0 -0
  273. package/dist/{runtime-inputs-BU_kBrP7.d.mts → runtime-inputs-B7nWstrY.d.mts} +0 -0
  274. package/dist/{schema-FY0EakKe.d.mts → schema-De6d0FWI.d.mts} +0 -0
  275. package/dist/{schemas-CqawCYTY.d.mts → schemas-BGTuiO3u.d.mts} +0 -0
  276. package/dist/{schemas-3KTmPuZg.d.mts → schemas-BXkSHQaF.d.mts} +0 -0
  277. package/dist/{schemas-B-5_Dp4_.d.mts → schemas-C0Fb2-LN.d.mts} +0 -0
  278. package/dist/{schemas-DiXL8NfA.d.mts → schemas-Cb9OJ9va.d.mts} +0 -0
  279. package/dist/{schemas-rMUsvzeJ.d.mts → schemas-CuOZoC08.d.mts} +8 -8
  280. /package/dist/{schemas-CBBzvIh0.d.mts → schemas-Dxfk39-v.d.mts} +0 -0
  281. /package/dist/{schemas-BegArpU_.d.mts → schemas-feb64ScA.d.mts} +0 -0
  282. /package/dist/{server-lifecycle-CTJvpdeL.d.mts → server-lifecycle-BINetU26.d.mts} +0 -0
  283. /package/dist/{src-C0sw_Vs_.mjs → src-CkKKoY0M.mjs} +0 -0
  284. /package/dist/{storage-namespace-definition-DiYr8UNl.d.mts → storage-namespace-definition-DV3IipmH.d.mts} +0 -0
  285. /package/dist/{types-DEGuc-fn.d.mts → types-B_mVEuYd.d.mts} +0 -0
  286. /package/dist/{types-CpEoQapk.d.mts → types-BrsmFcWl.d.mts} +0 -0
  287. /package/dist/{types-DciLiPMd.d.mts → types-CjoaGe_E.d.mts} +0 -0
  288. /package/dist/{types-BSx8YYlc.d.mts → types-CqVuKsLC.d.mts} +0 -0
  289. /package/dist/{types-Cuhnt15L.d.mts → types-D7WtaoMR.d.mts} +0 -0
  290. /package/dist/{window-registry-C3W2wtlX.d.mts → window-registry-1jI3f9ir.d.mts} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 1,
3
- "fingerprint": "91e5f47ee61d124e526b6540eb8910bb5303fc5989ae264fe6f4b84902bc5af9",
4
- "builtAt": "2026-09-22T22:01:28.638Z",
3
+ "fingerprint": "9ceb3433a07ea52f1255e7d574c2155dbdf7b494df7e68132d17d8138a8d6536",
4
+ "builtAt": "2026-09-23T12:11:23.659Z",
5
5
  "declarations": true,
6
6
  "declarationBackend": "tsc"
7
7
  }
@@ -1 +1 @@
1
- import{isDeepStrictEqual as e}from"node:util";import*as t from"node:fs/promises";import*as n from"node:path";import{randomUUID as r}from"node:crypto";import{AdapterProviderAuthSchema as i,AdapterSubjects as a,CapabilitySubjects as o,ClientDefinitionSchema as s,CredentialSubjects as c,ProviderDefinitionSchema as l,ResolvedProviderContextSchema as u,aggregateTeardownResults as d,assertAdapterAuthBindingMatchesMethod as f,dep as p,extensionToken as m,isUniversalRange as h,teardownWasObserved as g,versionSatisfies as _}from"@makaio/framework/contracts";import{MakaioBus as v}from"@makaio/framework/bus";import{ExtensionSubjects as y}from"@makaio/framework/kernel";import{BaseService as ee}from"@makaio/framework/service-base";import{ProviderConfigAuthSchema as te,assertAdapterAuthBindingMatchesMethod as ne}from"@makaio/framework/contracts/auth";import{ADAPTER_FILE_SCHEMA_VERSION as re,AdapterFileSchema as b,PROVIDER_CONFIG_SCHEMA_VERSION as x,ProviderConfigFileSchema as ie,resolveCanonicalProviderConfigName as ae,slugifyProviderConfigName as S}from"@makaio/framework/contracts/config";import{resolveModelVisibility as oe}from"@makaio/framework/contracts/provider";import{AdapterRuntimeSubjects as se,buildDeterministicAdapterId as C}from"@makaio/framework/services/adapter-runtime";import{ClientSubjects as ce}from"@makaio/framework/contracts/client";import{ClientStorageSubjects as w,ProviderStorageSubjects as T}from"@makaio/framework/services/settings/storage";import{SessionToken as E}from"@makaio/framework/services";import{ADAPTER_SUBSYSTEM_PACKAGE_NAME as D,AdapterSubsystemSubjects as O}from"@makaio/framework/services/adapter-subsystem";import{ModelRegistryProviderNotFoundError as le,ModelRegistrySubjects as ue}from"@makaio/framework/services/model-registry";function de(e){return e?{...e}:void 0}function fe(e){return e?{...e}:void 0}function pe(e){return e?structuredClone(e):void 0}function me(e,t){let n=[];for(let[r,i]of t.providerConfigs){let t=e.providerConfigs.get(r);t!==i&&n.push({kind:`write-provider`,key:`provider:${r}`,id:r,next:i,previous:t})}for(let[r,i]of t.adapters){let t=e.adapters.get(r);t!==i&&n.push({kind:`write-adapter`,key:`adapter:${r}`,name:r,next:i,previous:t})}for(let[r,i]of e.providerConfigs)t.providerConfigs.has(r)||n.push({kind:`delete-provider`,key:`provider-delete:${r}`,id:r,previous:i});return n}async function he(e,t){switch(t.kind){case`write-provider`:await e.writeProviderConfig(t.id,t.next);return;case`write-adapter`:await e.writeAdapterFile(t.name,t.next);return;case`delete-provider`:if(!await e.deleteProviderConfig(t.id))throw Error(`Provider config file missing during delete: ${t.id}`);return}}async function ge(e,t){switch(t.kind){case`write-provider`:if(t.previous){await e.writeProviderConfig(t.id,t.previous);return}await e.deleteProviderConfig(t.id);return;case`write-adapter`:if(t.previous){await e.writeAdapterFile(t.name,t.previous);return}await e.deleteAdapterFile(t.name);return;case`delete-provider`:await e.writeProviderConfig(t.id,t.previous);return}}async function _e(e,t,n){let r=me(t,n);if(r.length===0)return;let i=[];try{for(let t of r)i.push(t),await he(e,t)}catch(t){try{await ve(e,i)}catch(e){throw AggregateError([t,e],`Adapter subsystem snapshot commit failed and rollback could not restore the previous state.`,{cause:e})}throw t}}async function ve(e,t){let n=[];for(let r of[...t].reverse())try{await ge(e,r)}catch(e){n.push(e instanceof Error?Error(`[${r.key}] ${e.message}`,{cause:e}):Error(`[${r.key}] ${String(e)}`))}if(n.length>0)throw AggregateError(n,`Snapshot rollback failed.`)}function k(e,t){return{id:e,definitionId:t.definitionId,name:t.name??t.definitionId,...t.endpointOverrides?{endpointOverrides:{...t.endpointOverrides}}:{},...t.modelVisibility?{modelVisibility:{...t.modelVisibility}}:{},modelFilterMode:t.modelFilterMode??`show-all`,isDefault:t.isDefault??!1,enabled:t.enabled??!0,auth:ye(t),...t.managedBy?{managedBy:{...t.managedBy}}:{}}}function ye(e){switch(e.auth.mode){case`explicit`:return{mode:`explicit`,method:{...e.auth.method},hasCredentials:!0};case`inferred`:return{mode:`inferred`,method:{...e.auth.method},...e.auth.account?{account:{...e.auth.account}}:{},hasCredentials:!1};case`none`:return{mode:`none`,method:{...e.auth.method},hasCredentials:!1}}}function A(e,t){return(t??[]).map(t=>({adapterName:e,providerConfigId:t.providerConfigId,isDefault:t.isDefault??!1}))}function be(e,t,n){return{name:e,enabled:t.enabled??!0,...t.displayName===void 0?{}:{displayName:t.displayName},...t.description===void 0?{}:{description:t.description},...t.helpLinks===void 0?{}:{helpLinks:t.helpLinks.map(e=>({...e}))},...t.instructions===void 0?{}:{instructions:t.instructions},...t.clientId===void 0?{}:{clientId:t.clientId},...t.protocol===void 0?{}:{protocol:t.protocol},...t.providerDefinitionIds===void 0?{}:{providerDefinitionIds:[...t.providerDefinitionIds]},...t.settings?{settings:structuredClone(t.settings)}:{},bindings:n.map(e=>({...e}))}}function xe(e,t){let n=[],r=new Set;for(let i of e){let e=t.get(i.providerConfigId);!e||r.has(e.definitionId)||(r.add(e.definitionId),n.push(e.definitionId))}return n}function Se(e){let t=new Map,n=new Map,r=new Map;for(let[i,a]of e.providerConfigs){let e=k(i,a);t.set(i,e),n.set(S(e.name),i);let o=r.get(e.definitionId)??[];o.push(i),r.set(e.definitionId,o)}let i=new Map,a=new Map,o=new Map,s=new Map;for(let[n,r]of e.adapters){let e=A(n,r.bindings),c=be(n,r,e),l=e.filter(e=>t.get(e.providerConfigId)?.enabled);i.set(n,c),a.set(n,e),s.set(n,l.find(e=>e.isDefault)??l[0]??null);for(let t of e){let e=o.get(t.providerConfigId)??[];e.push(t),o.set(t.providerConfigId,e)}}return{providerConfigRecords:t,providerConfigSlugToId:n,providerConfigIdsByDefinition:r,adapterRecords:i,bindingsByAdapter:a,bindingsByConfig:o,defaultBindingByAdapter:s,adapterNames:new Set(i.keys())}}function j(e,t){let n=e.get(t);return n!==void 0&&(n.enabled??!0)}function Ce(e,t){return e.some(e=>j(t,e.providerConfigId))}function M(e,t){let n=e.find(e=>j(t,e.providerConfigId));return{bindings:e.map(e=>({...e,isDefault:e.providerConfigId===n?.providerConfigId})),...n?{promoted:{...n,isDefault:!0}}:{}}}function we(e,t,n){let r=[...n.entries()].filter(([n,r])=>n!==t&&r.definitionId===e).map(([e,t])=>({id:e,config:t})),i=r.find(({id:e})=>j(n,e))?.id??null;for(let{id:e,config:t}of r)n.set(e,{...t,isDefault:i!==null&&e===i});return i}function N(e){if(!e.provider.enabled)throw new P(`provider-definition-disabled`,`Provider definition is disabled for auth selection: ${e.provider.id}`);if(e.client!==void 0&&!e.client.enabled)throw new P(`client-definition-disabled`,`Client definition is disabled for auth selection: ${e.client.id}`)}var P=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`ProviderConfigAuthValidationError`}};async function F(e,t,n,r){let i=r??(await e.request(T.get,{id:t})).provider;if(!i||i.id!==t)throw new P(`provider-definition-not-found`,`Provider definition not found for auth selection: ${t}`);let a,o;if(n.method.owner===`provider`){if(n.method.providerDefinitionId!==t)throw new P(`auth-method-not-found`,`Provider auth method "${n.method.methodId}" does not belong to definition "${t}".`);a=i.authMethods.find(({id:e})=>e===n.method.methodId)}else{if({client:o}=await e.request(w.get,{id:n.method.clientId}),!o)throw new P(`client-definition-not-found`,`Client definition not found for auth selection: ${n.method.clientId}`);a=o.authMethods.find(({id:e})=>e===n.method.methodId)}if(!a){let e=n.method.owner===`provider`?n.method.providerDefinitionId:n.method.clientId;throw new P(`auth-method-not-found`,`Authentication method "${n.method.methodId}" is not declared by ${n.method.owner} "${e}".`)}if(a.mode!==n.mode)throw new P(`auth-mode-mismatch`,`Authentication method "${a.id}" declares mode "${a.mode}", not "${n.mode}".`);return a.mode===`explicit`&&n.mode===`explicit`&&Te(a,n),{method:a,provider:i,...o?{client:o}:{}}}function Te(e,t){let n=new Set(e.fields.map(({id:e})=>e)),r=e.fields.filter(({id:e,required:n})=>n&&t.credentialRefs[e]===void 0).map(({id:e})=>e),i=Object.keys(t.credentialRefs).filter(e=>!n.has(e));if(r.length===0&&i.length===0)return;let a=[...r.length>0?[`missing required fields [${r.join(`, `)}]`]:[],...i.length>0?[`unexpected fields [${i.join(`, `)}]`]:[]];throw new P(`auth-credential-fields-mismatch`,`Authentication method "${e.id}" has ${a.join(` and `)}.`)}var I=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`ProviderRuntimeContextError`}};async function L(e,t,n){if(n.enabled===!1)throw new I(`provider-config-disabled`,`ProviderConfig '${t}' is disabled and cannot be used for adapter startup.`);let r=await F(e,n.definitionId,n.auth);N(r);let i=Ee(n.auth,r.method),a={...r.provider.endpoints??{},...n.endpointOverrides??{}};return{context:u.parse({state:`resolved`,providerConfigId:t,definitionId:r.provider.id,...Object.keys(a).length>0?{endpointOverrides:a}:{},auth:i,...r.provider.capabilities?{capabilities:r.provider.capabilities}:{}}),definition:structuredClone(r.provider)}}function Ee(e,t){switch(e.mode){case`explicit`:if(t.mode!==`explicit`)throw R(e.mode,t.mode);return{mode:e.mode,method:{...e.method},definition:structuredClone(t),credentialRefs:{...e.credentialRefs}};case`inferred`:if(t.mode!==`inferred`)throw R(e.mode,t.mode);return{mode:e.mode,method:{...e.method},definition:{...t},...e.account?{account:{...e.account}}:{}};case`none`:if(t.mode!==`none`)throw R(e.mode,t.mode);return{mode:e.mode,method:{...e.method},definition:{...t}}}}function R(e,t){return new P(`auth-mode-mismatch`,`Validated authentication mode changed during context assembly: selected "${e}", declared "${t}".`)}var De=class{tail=Promise.resolve();async run(e){let t=this.tail.then(e,e);return this.tail=t.then(()=>void 0,()=>void 0),await t}},Oe=class{configRepository;bus;snapshot={providerConfigs:new Map,adapters:new Map};providerConfigRecords=new Map;providerConfigSlugToId=new Map;adapterRecords=new Map;bindingsByAdapter=new Map;bindingsByConfig=new Map;defaultBindingByAdapter=new Map;providerConfigIdsByDefinition=new Map;knownAdapterNames=new Set;logImportProviderKeysPromise=null;snapshotMutationQueue=new De;constructor(e){this.configRepository=e.configRepository,this.bus=e.bus}async loadSnapshot(){let[e,t]=await Promise.all([this.configRepository.loadProviderConfigs(),this.configRepository.loadAdapterConfigs()]);this.replaceSnapshot({providerConfigs:new Map(e.configs),adapters:new Map(t.configs)})}registerListeners(e){let t=()=>{this.logImportProviderKeysPromise=null};e(this.bus.on(o.register,t,{filter:{capabilityId:`log-import`}})),e(this.bus.on(o.unregister,t,{filter:{capabilityId:`log-import`}}))}clear(){this.snapshot={providerConfigs:new Map,adapters:new Map},this.providerConfigRecords.clear(),this.providerConfigSlugToId.clear(),this.adapterRecords.clear(),this.bindingsByAdapter.clear(),this.bindingsByConfig.clear(),this.defaultBindingByAdapter.clear(),this.providerConfigIdsByDefinition.clear(),this.knownAdapterNames.clear(),this.logImportProviderKeysPromise=null}replaceSnapshot(e){this.snapshot=e,this.applyDerivedState()}cloneSnapshot(){return{providerConfigs:new Map(this.snapshot.providerConfigs),adapters:new Map(this.snapshot.adapters)}}async commitSnapshotMutation(e,t){return await this.snapshotMutationQueue.run(async()=>{let n=this.cloneSnapshot();return await e(n),await this.commitSnapshot(n),await t?.()})}async commitSnapshot(e){await _e(this.configRepository,this.snapshot,e),this.replaceSnapshot(e)}applyDerivedState(){let e=Se(this.snapshot);this.providerConfigRecords=e.providerConfigRecords,this.providerConfigSlugToId=e.providerConfigSlugToId,this.providerConfigIdsByDefinition=e.providerConfigIdsByDefinition,this.adapterRecords=e.adapterRecords,this.bindingsByAdapter=e.bindingsByAdapter,this.bindingsByConfig=e.bindingsByConfig,this.defaultBindingByAdapter=e.defaultBindingByAdapter,(e.adapterNames.size!==this.knownAdapterNames.size||[...e.adapterNames].some(e=>!this.knownAdapterNames.has(e)))&&(this.knownAdapterNames=e.adapterNames,this.logImportProviderKeysPromise=null)}getProviderConfig(e){let t=this.providerConfigRecords.get(e);return t?structuredClone(t):null}requireProviderConfig(e,t){let n=this.getProviderConfig(e);if(!n)throw Error(`Provider config could not be loaded after ${t}: ${e}`);return n}getAdapterConfig(e){let t=this.adapterRecords.get(e);return t?structuredClone(t):null}requireAdapterConfig(e,t){let n=this.getAdapterConfig(e);if(!n)throw Error(`Adapter config could not be loaded after ${t}: ${e}`);return n}isAdapterEnabled(e){return this.getAdapterConfig(e)?.enabled??!1}listProviderConfigs(e){let t=[...this.providerConfigRecords.values()].map(e=>structuredClone(e));return e===void 0?t:t.filter(t=>t.enabled===e)}listProviderConfigsByDefinition(e){return this.getProviderConfigIdsByDefinition(e).map(e=>this.getProviderConfig(e)).filter(e=>e!==null)}listAdapterConfigs(){return[...this.adapterRecords.values()].map(e=>structuredClone(e))}listBindings(e){return structuredClone(this.bindingsByAdapter.get(e)??[])}listBindingsByConfig(e){return structuredClone(this.bindingsByConfig.get(e)??[])}getDefaultBinding(e){let t=this.defaultBindingByAdapter.get(e)??null;return t?structuredClone(t):null}findConfigForDefinitionAndAdapter(e,t){let n=new Set((this.bindingsByAdapter.get(t)??[]).map(e=>e.providerConfigId)),r=this.getProviderConfigIdsByDefinition(e).map(e=>this.providerConfigRecords.get(e)).filter(e=>e!==void 0&&e.enabled&&n.has(e.id)),i=r.find(e=>e.isDefault)??r[0]??null;return i?structuredClone(i):null}getProviderConfigIdsByDefinition(e){return[...this.providerConfigIdsByDefinition.get(e)??[]]}assertProviderConfigNameUnique(e,t){let n=S(e),r=this.providerConfigSlugToId.get(n);if(r!==void 0&&r!==t){let t=this.providerConfigRecords.get(r)?.name??r;throw Error(`Provider config name "${e}" conflicts with existing config "${t}": both slugify to "${n}". Choose a different name.`)}}async setAdapterConfig(e,t){return{config:await this.commitSnapshotMutation(n=>{let r=n.adapters.get(e);n.adapters.set(e,this.buildNextAdapterFile(r,t))},()=>this.requireAdapterConfig(e,`update`))}}buildNextAdapterFile(e,t){return{...e??{},$schema:re,...this.applyAdapterPatch(e,t),bindings:e?.bindings}}applyAdapterPatch(e,t){let n=e??{},r=t.helpLinks?.map(e=>({...e}))??n.helpLinks,i=t.providerDefinitionIds?[...t.providerDefinitionIds]:n.providerDefinitionIds;return{enabled:t.enabled??n.enabled??!0,displayName:t.displayName??n.displayName,description:t.description??n.description,helpLinks:r,instructions:t.instructions??n.instructions,clientId:t.clientId??n.clientId,protocol:t.protocol??n.protocol,providerDefinitionIds:i,settings:t.settings===void 0?n.settings:pe(t.settings)}}async setAdapterEnabled(e,t){await this.setAdapterConfig(e,{enabled:t})}async buildEffectiveAdapters(){let e=await this.getLogImportProviderKeys();return[...this.adapterRecords.values()].map(t=>{let n=this.bindingsByAdapter.get(t.name)??[],r=n.filter(e=>this.providerConfigRecords.get(e.providerConfigId)?.enabled),i=[...t.providerDefinitionIds??xe(n,this.providerConfigRecords)];return{name:t.name,displayName:t.displayName??t.name,...t.description===void 0?{}:{description:t.description},enabled:t.enabled,configCount:n.length,readiness:r.length>0?`ready`:`needs-setup`,supportsLogImport:e.has(t.name),...t.helpLinks===void 0?{}:{helpLinks:t.helpLinks.map(e=>({...e}))},...t.instructions===void 0?{}:{instructions:t.instructions},...t.clientId===void 0?{}:{clientId:t.clientId},...t.protocol===void 0?{}:{protocol:t.protocol},...t.providerDefinitionIds!==void 0||i.length>0?{providerDefinitionIds:i}:{}}})}async getLogImportProviderKeys(){if(!this.logImportProviderKeysPromise){let e=this.bus.requestOptional(o.listProviders,{capabilityId:`log-import`}).then(t=>t.handled?new Set(t.data.providers.map(e=>e.providerKey??e.id)):(this.logImportProviderKeysPromise===e&&(this.logImportProviderKeysPromise=null),new Set)).catch(e=>{throw this.logImportProviderKeysPromise=null,e});this.logImportProviderKeysPromise=e}return await this.logImportProviderKeysPromise}async resolveProviderRuntimeSnapshot(e){let t=this.snapshot.providerConfigs.get(e);if(!t)return null;let{context:n,definition:r}=await L(this.bus,e,t);return{config:k(e,t),context:n,definition:r}}async resolveBoundProviderRuntimeSnapshot(e,t){let n=this.snapshot,r=n.providerConfigs.get(t),i=n.adapters.get(e),a=r!==void 0&&A(e,i?.bindings).some(e=>e.providerConfigId===t);if(!r)return{snapshot:null,isBound:!1};let{context:o,definition:s}=await L(this.bus,t,r);return{isBound:a,snapshot:{config:k(t,r),context:o,definition:s}}}removeBindingsForConfig(e,t,n){let r=new Map,i=[],a=[];for(let[o,s]of t){let t=A(o,s.bindings),c=t.findIndex(t=>t.providerConfigId===e);if(c===-1)continue;let[l]=t.splice(c,1);if(l&&i.push(l),l?.isDefault&&t.length>0){let e=M(t,n);t.splice(0,t.length,...e.bindings),e.promoted&&a.push({adapterName:o,providerConfigId:e.promoted.providerConfigId})}r.set(o,{...s,bindings:t.map(({adapterName:e,...t})=>t)})}return{changedAdapters:r,deletedBindings:i,defaultChangedBindings:a}}promoteProviderConfigDefault(e,t,n){return we(e,t,n)}};const z=process.env.MAKAIO_SKIP_CLIENT_VERSION_CHECK===`1`;function ke(e){if(!(e===void 0||e.length===0))return e.map(e=>({...e}))}function Ae(e,t){if(e===void 0||e.length===0)return;let n=new Map(t.map(e=>[e.definition.id,e.definition]));return e.map(e=>{let t=n.get(e.id);if(t===void 0)throw Error(`Adapter client definition "${e.id}" is missing from the active contribution catalog.`);return t})}function B(e,t){return e.clientId!==void 0&&t?.some(t=>t.id===e.clientId)?e.clientId:t?.[0]?.id}async function V(e,t,n,r,i={}){if(t===void 0||t.length===0)return;let a=new Map(n.map(e=>[e.definition.id,e.definition]));for(let n of t){let t=a.get(n.id);if(t===void 0)throw Error(`Adapter "${e}" references missing client "${n.id}"`);je(t.version,n.version,`Adapter "${e}" client "${n.id}" definition version ${t.version}`)}if(i.checkBinaryVersions===!1)return;let o=t.filter(e=>e.binaryVersion!==void 0);await Promise.all(o.map(async t=>{if(h(t.binaryVersion))return;let n=await r.requestOptional(ce.resolveBinary,{clientId:t.id});if(!n.handled){if(z){console.warn(`[SKIP_VERSION_CHECK] Adapter "${e}" client "${t.id}" declares binaryVersion ${t.binaryVersion}, but no client.resolveBinary handler is registered — check bypassed`);return}throw Error(`Adapter "${e}" client "${t.id}" declares binaryVersion ${t.binaryVersion}, but no client.resolveBinary handler is registered`)}let i=n.data.version;if(i===null){if(z){console.warn(`[SKIP_VERSION_CHECK] Adapter "${e}" client "${t.id}" binary did not report a version; requires ${t.binaryVersion} — check bypassed`);return}throw Error(`Adapter "${e}" client "${t.id}" binary did not report a version; requires ${t.binaryVersion}`)}if(!_(i,t.binaryVersion)){let n=`Adapter "${e}" client "${t.id}" binary version ${i}`;if(z){console.warn(`[SKIP_VERSION_CHECK] ${n} does not satisfy ${t.binaryVersion} — check bypassed`);return}throw Error(`${n} does not satisfy ${t.binaryVersion}`)}}))}function je(e,t,n){if(!_(e,t))throw Error(`${n} does not satisfy ${t}`)}var H=class extends Error{adapterId;timeoutMs;constructor(e,t){super(`Timed out closing adapter ${e} after ${t}ms`),this.adapterId=e,this.timeoutMs=t,this.name=`AdapterInstanceCloseTimeoutError`}};function U(e,t,n,r){return t instanceof H?{adapterId:e,evidence:`unknown`,detail:`Adapter ${e} did not return from its close hook within ${t.timeoutMs}ms; whatever it holds may still be running.`}:t===void 0?n?r===void 0?{adapterId:e,evidence:`detached`,detail:`Adapter ${e} returned from its close hook without reporting a class, so what it held is unproven.`}:{adapterId:e,...r}:{adapterId:e,evidence:`released`}:{adapterId:e,evidence:`unknown`,detail:`Adapter ${e} close hook failed: ${t instanceof Error?t.message:String(t)}`}}function W(e){return{...d(e),results:e}}function Me(e){let t=e.split(`/`).pop()?.replace(/^ai-adapters-/,``)?.trim();return t&&t.length>0?t:e}function Ne(e){let t=B(e.options,e.clients);return{name:e.name,displayName:e.displayName??e.name,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:t,protocol:e.protocol,providerDefinitionIds:[...e.providerDefinitionIds]}}async function Pe(e,t,n=5e3){let r=Ve(t),i,a,o;if(r!==void 0){let t=await Fe(r,n);t.kind===`settled`?a=t.reported:t.kind===`failed`?i=t.error:(i=new H(e,n),o=t.pendingCloseCompletion.then(t=>U(e,void 0,!0,t),t=>U(e,t,!0,void 0)))}let s=U(e,i,r!==void 0,a);return o===void 0?{report:s}:{report:s,pendingCompletion:o}}async function Fe(e,t){let n=Promise.resolve().then(e);n.catch(()=>void 0);let r,i=n.then(e=>({kind:`settled`,reported:e}),e=>({kind:`failed`,error:e}));try{return await Promise.race([i,new Promise(e=>{r=setTimeout(()=>{e({kind:`timed-out`,pendingCloseCompletion:n})},t)})])}finally{r&&clearTimeout(r)}}async function Ie(e){let t=await Promise.all([...e].map(([e,t])=>Le(e,t)));return e.clear(),W(t)}async function Le(e,t){let{report:n}=await Pe(e,t);return n.evidence===`unknown`&&console.error(`[adapter-runtime] Error shutting down adapter ${e}:`,n.detail),n}async function G(e,t,n,r,i,a){try{await i(t,e.name,n,r,a)}catch(t){console.error(`[adapter-runtime] Error rolling back adapter ${e.name}:`,t)}}async function Re(e,t,n,r,i,o){let s=o;await e.emit(a.initialized,{adapterId:n,adapterName:t.name,machineId:r,ownerInstanceId:i,capabilities:[...s.capabilities??[]],...s.nativeTools===void 0?{}:{nativeTools:[...s.nativeTools]}})}async function ze(e,t){let{config:n}=await e.request(O.getAdapterConfig,{name:t});return n?.enabled??!1}function Be(e,t){return e.options.adapterId??C(t,e.name)}function Ve(e){let t=e;if(typeof t.shutdown==`function`)return t.shutdown.bind(e);if(typeof t.closeAsync==`function`)return t.closeAsync.bind(e);if(typeof t.close==`function`)return t.close.bind(e)}async function He(e,t){let{bus:n,machineId:r,adapterInstances:i,platformDefaults:a,onRollback:o,isCurrentAdapter:s}=t;if(!await ze(n,e.name)){console.info(`Skipping disabled adapter: ${e.name}`);return}if(!s(e))return;let c=Be(e,r),l=t.resolveOwnerInstanceId(),u=B(e.options,e.clients),d=await e.factory({...e.options,adapterId:c,machineId:r,ownerInstanceId:l,platformDefaults:a,definitionProviders:e.providers,clientId:u,globalBus:n});if(!s(e)){await G(e,c,l,d,o,!1);return}if(d.adapterId!==c)throw await G(e,c,l,d,o,!1),Error(`Adapter '${e.name}' initialized with mismatched adapterId (expected '${c}', got '${d.adapterId}')`);i.set(c,d);try{t.onInitialized(c,l)}catch(t){throw await G(e,c,l,d,o,!1),t}try{await Re(n,e,c,r,l,d)}catch(t){throw await G(e,c,l,d,o,!0),t}console.info(`Initialized adapter: ${e.name} (${e.packageName})`)}async function Ue(e,t,n,r,i,a,o,s,c){let l=[],u={bus:e,machineId:t,adapterInstances:r,platformDefaults:i,resolveOwnerInstanceId:a,onInitialized:o,onRollback:s,isCurrentAdapter:c};for(let e of n)try{await He(e,u)}catch(t){l.push({adapterName:e.name,error:t})}if(l.length>0){let e=l.map(({adapterName:e,error:t})=>`${e}: ${t instanceof Error?t.message:String(t)}`).join(`; `);throw Error(`Failed to initialize enabled adapters: ${e}`)}}async function We(e,t){await t.request(O.ensureReady,{});let n=await Promise.all(e.map(async e=>({adapter:e,config:(await t.request(O.getAdapterConfig,{name:e.name})).config})));await Promise.all(n.filter(({config:e})=>!e).map(({adapter:e})=>t.request(O.setAdapterConfig,{name:e.name,patch:{displayName:e.displayName,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:B(e.options,e.clients),protocol:e.protocol,providerDefinitionIds:[...e.providerDefinitionIds],enabled:!1}})))}function Ge(e,t,n,r){let i=e.get(n);if(i===void 0)throw Error(`Managed adapter ${n} has no recorded runtime owner`);return{adapterId:n,adapterName:r,machineId:t,ownerInstanceId:i.ownerInstanceId}}function Ke(e,t,n,r,i,a){if(e.get(r)!==i||t.has(a))return;e.delete(r);let o=n.get(i.packageName);if(o===void 0)return;let s=o.filter(e=>e!==r);s.length===0?n.delete(i.packageName):n.set(i.packageName,s)}function qe(e,t,n){let r=e.get(t);if(r===void 0)return;let i=r.filter(e=>e!==n);i.length===0?e.delete(t):e.set(t,i)}function K(e,t,n,r,i){let a=e.get(t);a?.state!==`retiring`||a.instance!==n||a.flight!==r||(g(i.evidence)?e.delete(t):e.set(t,{state:`retiring`,instance:n,ownerInstanceId:a.ownerInstanceId,report:i}))}function Je(e,t,n,r,i,a,o,s){if(!i()||e.has(n))return;for(let[r,i]of e)r.name===n.name&&i.retirementCompletion===t.completion&&(i.cancelled=!0,e.delete(r));let c={cancelled:!1,started:!1,retirementCompletion:t.completion,cancellationCompletion:t.cancellationCompletion,completion:Promise.resolve()},l=t.completion.then(async e=>{c.cancelled||!g(e.evidence)||!i()||a()||(c.started=!0,await o(n,r))});c.completion=l,e.set(n,c),l.then(()=>{e.get(n)===c&&e.delete(n)},t=>{e.get(n)===c&&e.delete(n),s(t)})}function Ye(e,t,n,r,i,a){if(!r()||e.has(t))return!1;let o;for(let[n,r]of e)n.name===t.name&&!r.cancelled&&(o=r);if(o===void 0)return!1;o.cancelled=!0;let s={cancelled:!1,started:!1,retirementCompletion:o.retirementCompletion,cancellationCompletion:o.completion.catch(()=>void 0),completion:Promise.resolve()},c=o.completion.catch(()=>void 0).then(async()=>{s.cancelled||!r()||(s.started=!0,await i(t,n))});return s.completion=c,e.set(t,s),c.then(()=>{e.get(t)===s&&e.delete(t)},n=>{e.get(t)===s&&e.delete(t),a(n)}),!0}function Xe(e,t){let n=e.get(t);if(n!==void 0)return n.cancelled=!0,n.started?{completion:n.completion}:(e.delete(t),{completion:n.cancellationCompletion})}async function Ze(e,t,n,r,i){let a=Xe(e,t);if(a===void 0)return!1;if(await a.completion.catch(()=>void 0),!n())return!0;let o=r();return o===void 0?(i(),!0):o.state===`retiring`?(o.flight!==void 0&&o.flight.completion.then(e=>{g(e.evidence)&&n()&&r()===void 0&&i()}),!0):!1}async function Qe(e){let t=[];for(let n of e.values())n.cancelled=!0,t.push((n.started?n.completion:n.cancellationCompletion).catch(()=>void 0));await Promise.all(t),e.clear()}async function q(e){let{dependencies:t,adapter:n,platformDefaults:r,fromDeferredActivation:i}=e,{bus:a,machineId:o,resolveOwnerInstanceId:s,loadedAdapters:c,adapterEntries:l,deferredActivations:u,resolveLoadedAdapterId:d,retireAdapterEntry:f}=t,p=u.get(n);if(p!==void 0&&!i){await p.completion;return}let m=d(n),h=l.get(m);if(h?.state===`live`||h?.state===`retiring`&&await $e(e,m,h,p))return;let g=new Map;await Ue(a,o,[n],g,r,s,(e,t)=>{if(c.get(n.name)!==n)throw Error(`Adapter ${n.name} was stopped before initialization completed`);let r=g.get(e);if(r===void 0)throw Error(`Initialized adapter ${e} was not retained by its lifecycle`);l.set(e,{state:`live`,instance:r,ownerInstanceId:t})},async(e,t,n,r,i)=>{i?l.set(e,{state:`live`,instance:r,ownerInstanceId:n}):l.set(e,{state:`retiring`,instance:r,ownerInstanceId:n,report:{evidence:`unknown`,detail:`Failed activation for ${t} is retiring.`}}),await f(e,t,i)},e=>c.get(e.name)===e&&u.get(e)?.cancelled!==!0)}async function $e(e,t,n,r){let{dependencies:i,adapter:a,platformDefaults:o,fromDeferredActivation:s}=e,{loadedAdapters:c,adapterEntries:l,deferredActivations:u,retireAdapterEntry:d}=i;if(n.flight===void 0){let e=await d(t,a.name);return e!==void 0&&!g(e.report.evidence)}if(s&&r?.started){r.started=!1,r.retirementCompletion=n.flight.completion,r.cancellationCompletion=n.flight.cancellationCompletion;let t=await n.flight.completion;return r.cancelled||!g(t.evidence)?!0:(r.started=!0,r.cancellationCompletion=r.completion,await q({...e,fromDeferredActivation:!0}),!0)}return Je(u,n.flight,a,o,()=>c.get(a.name)===a,()=>l.has(t),(t,n)=>q({...e,adapter:t,platformDefaults:n,fromDeferredActivation:!0}),e=>console.error(`[AdapterRuntimeRegistry] Error activating deferred adapter "${a.name}":`,e)),!0}async function et(e){let{dependencies:t,adapter:n,platformDefaults:r}=e,{deferredActivations:i,adapterEntries:a,resolveLoadedAdapterId:o,retireAdapterEntry:s}=t,c=i.get(n);if(c!==void 0){await c.completion;return}let l=o(n),u=await s(l,n.name);if(u!==void 0&&!g(u.report.evidence)){if(u.pendingCompletion!==void 0){let e=a.get(l);Je(i,(e?.state===`retiring`?e.flight:void 0)??{completion:u.pendingCompletion,cancellationCompletion:Promise.resolve()},n,r,()=>t.loadedAdapters.get(n.name)===n,()=>a.has(l),(e,n)=>q({dependencies:t,adapter:e,platformDefaults:n,fromDeferredActivation:!0}),e=>console.error(`[AdapterRuntimeRegistry] Error restarting deferred adapter "${n.name}":`,e))}return}await t.initializeAdapter(n,r)}async function tt(e,t){try{await e.emit(a.deinitialized,t)}catch(e){console.warn(`[AdapterRuntimeRegistry] Failed to publish deinitialization for "${t.adapterName}":`,e)}}function nt(e,t,n=()=>void 0){let r=!1;return{async publishFallback(){r||await tt(e,t)},dispose:e.on(a.deinitialized,e=>{let i=e.payload,a=i.adapterId===t.adapterId&&i.adapterName===t.adapterName&&i.machineId===t.machineId&&i.ownerInstanceId===t.ownerInstanceId;!r&&a&&(r=!0,n())})}}async function rt(e,t,n,r){let i=nt(e,t,r),a=!1;try{let e=await n();if(e.pendingCompletion!==void 0){a=!0;let t=e.pendingCompletion.then(async e=>(await i.publishFallback(),e)).finally(()=>i.dispose()).then(e=>e,()=>e.report);return{report:e.report,pendingCompletion:t}}return await i.publishFallback(),{report:e.report}}finally{a||i.dispose()}}function it(e,t,n,r){return r?rt(e,t,n,()=>void 0):n()}var at=class{bus;machineId;resolveOwnerInstanceId;loadedAdapters=new Map;adapterEntries=new Map;deferredActivations=new Map;packageAdapters=new Map;publicationChain=Promise.resolve();constructor(e){this.bus=e.bus,this.machineId=e.machineId,this.resolveOwnerInstanceId=e.resolveOwnerInstanceId??(()=>{throw Error(`Adapter initialization requires a session ownership authority incarnation`)})}getLoadedAdapters(){return[...this.loadedAdapters.values()]}getAdapterInstances(){return new Map([...this.adapterEntries].flatMap(([e,t])=>t.state===`live`?[[e,t.instance]]:[]))}hasAdapterInstance(e){return this.adapterEntries.get(this.resolveLoadedAdapterId(e))?.state===`live`}resolveLoadedAdapterId(e){return Be(e,this.machineId)}resolveLiveAdapterId(e){let t=this.loadedAdapters.get(e);if(!t)return;let n=this.resolveLoadedAdapterId(t);return this.adapterEntries.get(n)?.state===`live`?n:void 0}resolveLiveAdapterIdentity(e){for(let t of this.loadedAdapters.values()){let n=this.adapterEntries.get(e);if(this.resolveLoadedAdapterId(t)===e&&n?.state===`live`)return{adapterId:e,adapterName:t.name,machineId:this.machineId,ownerInstanceId:n.ownerInstanceId}}}getLiveAdapterIdentities(){return[...this.adapterEntries.keys()].flatMap(e=>{let t=this.resolveLiveAdapterIdentity(e);return t===void 0?[]:[t]})}getSettingsAvailableAdapters(){return[...this.loadedAdapters.values()].map(Ne)}registerAdapter(e,t){let n=this.loadedAdapters.get(e.name);if(n){let r=this.resolveLoadedAdapterId(n);if(n.packageName===t&&this.resolveLoadedAdapterId(e)===r&&this.adapterEntries.get(r)?.state===`retiring`){this.loadedAdapters.set(e.name,e);let n=this.packageAdapters.get(t)??[];n.includes(e.name)||this.packageAdapters.set(t,[...n,e.name]);return}throw Error(`Duplicate adapter name '${e.name}' from owners '${n.packageName}' and '${t}'.`)}this.loadedAdapters.set(e.name,e);let r=this.packageAdapters.get(t)??[];this.packageAdapters.set(t,[...r,e.name])}updateAdapterProviders(e,t){let n=this.loadedAdapters.get(e);if(!n)return;let r={...n,providers:t};return this.loadedAdapters.set(e,r),r}async removeProviderPackage(e,t){let n=[];for(let r of this.loadedAdapters.values()){if(r.packageName===e)continue;let i=r.providers.filter(t=>t.providerPackageName!==e);if(i.length===r.providers.length)continue;let a={...r,providers:i};this.loadedAdapters.set(r.name,a),n.push(a);let o=this.adapterEntries.get(this.resolveLoadedAdapterId(a));if(!(o===void 0&&Ye(this.deferredActivations,a,t,()=>this.loadedAdapters.get(a.name)===a,(e,t)=>this.initializeAdapterInternal(e,t,!0),t=>console.error(`[AdapterRuntimeRegistry] Error activating deferred adapter "${a.name}" after provider package "${e}" stopped:`,t)))&&(o?.state===`live`||o?.flight!==void 0))try{await this.restartAdapterInstance(a,t)}catch(t){console.error(`[AdapterRuntimeRegistry] Error restarting adapter "${a.name}" after provider package "${e}" stopped:`,t)}}return n}async deregisterAdapter(e){let t=this.loadedAdapters.get(e);if(!t)return;let n=this.resolveLoadedAdapterId(t);if(await Ze(this.deferredActivations,t,()=>this.loadedAdapters.get(e)===t,()=>this.adapterEntries.get(n),()=>{this.loadedAdapters.delete(e),qe(this.packageAdapters,t.packageName,e)}))return;let r=await this.retireAdapterEntry(n,t.name);r===void 0||g(r.report.evidence)?this.loadedAdapters.delete(e):r.pendingCompletion!==void 0&&r.pendingCompletion.then(r=>{g(r.evidence)&&Ke(this.loadedAdapters,this.adapterEntries,this.packageAdapters,e,t,n)})}removePackageTracking(e){this.packageAdapters.get(e)?.some(e=>{let t=this.loadedAdapters.get(e);return t!==void 0&&this.adapterEntries.get(this.resolveLoadedAdapterId(t))?.state===`retiring`})||this.packageAdapters.delete(e)}async deregisterPackage(e){let t=this.packageAdapters.get(e);if(!t?.length)return;let n=!1;for(let e of t)try{await this.deregisterAdapter(e);let t=this.loadedAdapters.get(e);t!==void 0&&this.adapterEntries.get(this.resolveLoadedAdapterId(t))?.state===`retiring`&&(n=!0)}catch(t){n=!0,console.error(`[AdapterRuntimeRegistry] Error shutting down adapter "${e}":`,t)}n||this.packageAdapters.delete(e)}publishAdapterRegistered(e){let{adapterName:t,displayName:n,packageName:r,enabled:i,adapterId:a,providerDefinitionIds:o}=e,s=this.adapterEntries.get(a)?.state===`live`,c=this.publicationChain.catch(()=>void 0).then(()=>this.bus.emit(O.adapter.registered,{adapterName:t,displayName:n??t,packageName:r,enabled:i,initialized:s,providerDefinitionIds:[...o]}));return this.publicationChain=c.catch(()=>void 0),c}async initializeAdapter(e,t){await this.initializeAdapterInternal(e,t,!1)}async initializeAdapterInternal(e,t,n){await q({dependencies:this.createAdmissionDependencies(),adapter:e,platformDefaults:t,fromDeferredActivation:n})}async restartAdapterInstance(e,t){await et({dependencies:this.createAdmissionDependencies(),adapter:e,platformDefaults:t})}createAdmissionDependencies(){return{bus:this.bus,machineId:this.machineId,resolveOwnerInstanceId:this.resolveOwnerInstanceId,loadedAdapters:this.loadedAdapters,adapterEntries:this.adapterEntries,deferredActivations:this.deferredActivations,resolveLoadedAdapterId:e=>this.resolveLoadedAdapterId(e),retireAdapterEntry:(e,t,n)=>this.retireAdapterEntry(e,t,n),initializeAdapter:(e,t)=>this.initializeAdapter(e,t)}}async shutdownAll(){await Qe(this.deferredActivations);let e=W(await Promise.all([...this.adapterEntries.keys()].map(async e=>{let t=[...this.loadedAdapters.values()].find(t=>this.resolveLoadedAdapterId(t)===e)?.name;if(t===void 0)throw Error(`Managed adapter ${e} has no loaded definition`);let n=await this.retireAdapterEntry(e,t);return n===void 0?{adapterId:e,evidence:`released`}:n.report})));return this.loadedAdapters.clear(),this.packageAdapters.clear(),this.adapterEntries.clear(),e}async retireAdapterEntry(e,t,n=!0){let r=this.adapterEntries.get(e);if(r===void 0)return;if(r.state===`retiring`&&r.flight!==void 0)return{report:{adapterId:e,...r.report},pendingCompletion:r.flight.completion};let i=r.state===`retiring`?r.report:{evidence:`unknown`,detail:`Adapter retirement is in progress.`},{promise:a,resolve:o}=Promise.withResolvers(),{promise:s,resolve:c}=Promise.withResolvers(),l={completion:a,cancellationCompletion:s};this.adapterEntries.set(e,{state:`retiring`,instance:r.instance,ownerInstanceId:r.ownerInstanceId,report:i,flight:l});let u=await it(this.bus,Ge(this.adapterEntries,this.machineId,e,t),()=>Pe(e,r.instance),r.state===`live`&&n);return c(),u.pendingCompletion===void 0?(K(this.adapterEntries,e,r.instance,l,u.report),o(u.report),u):(this.adapterEntries.set(e,{state:`retiring`,instance:r.instance,ownerInstanceId:r.ownerInstanceId,report:u.report,flight:l}),u.pendingCompletion.then(t=>{K(this.adapterEntries,e,r.instance,l,t),o(t)},()=>{K(this.adapterEntries,e,r.instance,l,u.report),o(u.report)}),{report:u.report,pendingCompletion:l.completion})}};function ot(e,t,n,r){let i=n.isDefault??!1;return r?i?!0:![...e.entries()].some(([e,r])=>e!==t&&r.definitionId===n.definitionId&&(r.enabled??!0)&&(r.isDefault??!1)):!1}var st=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async createProviderConfig(e){let t=await this.getProviderDefinitionOrThrow(e.definitionId),n=te.parse(e.auth),r=e.enabled??!0,i=await F(this.bus,e.definitionId,n,t);r&&N(i);let a=this.resolveProviderConfigNameFromDefinition(e.definitionId,t.name,e.name),o=S(a),s=de(e.endpointOverrides),c=fe(e.modelVisibility),l=await this.configStore.commitSnapshotMutation(t=>{if(this.configStore.assertProviderConfigNameUnique(a),t.providerConfigs.has(o))throw Error(`Provider config already exists: ${o}`);t.providerConfigs.set(o,{$schema:x,definitionId:e.definitionId,name:a,auth:structuredClone(n),...e.managedBy?{managedBy:{...e.managedBy}}:{},endpointOverrides:s,modelVisibility:c,modelFilterMode:e.modelFilterMode??`show-all`,isDefault:r&&![...t.providerConfigs.values()].some(t=>t.definitionId===e.definitionId&&(t.enabled??!0)&&(t.isDefault??!1)),enabled:r})},()=>this.configStore.requireProviderConfig(o,`creation`));return await this.bus.emit(O.providerConfig.created,l),{config:l}}async updateProviderConfig(e,t){let n,r=await this.configStore.commitSnapshotMutation(async r=>{n=await this.applyProviderConfigPatch(r,e,t)},()=>this.configStore.requireProviderConfig(e,`update`));return await this.bus.emit(O.providerConfig.updated,r),n&&await this.bus.emit(O.providerConfig.defaultChanged,n),{config:r}}async applyProviderConfigPatch(e,t,n){let r=e.providerConfigs.get(t);if(!r)throw Error(`Provider config not found: ${t}`);let i=n.name??r.name??r.definitionId;n.name!==void 0&&this.configStore.assertProviderConfigNameUnique(i,t);let a=n.enabled??r.enabled??!0;a&&!(r.enabled??!0)&&N(await F(this.bus,r.definitionId,r.auth));let o=ot(e.providerConfigs,t,r,a);return e.providerConfigs.set(t,{...r,name:i,endpointOverrides:n.endpointOverrides===null?void 0:n.endpointOverrides===void 0?r.endpointOverrides:de(n.endpointOverrides),modelVisibility:n.modelVisibility===void 0?r.modelVisibility:fe(n.modelVisibility),enabled:a,isDefault:o}),(r.isDefault??!1)&&!o?{definitionId:r.definitionId,configId:this.configStore.promoteProviderConfigDefault(r.definitionId,t,e.providerConfigs)}:!(r.isDefault??!1)&&o?{definitionId:r.definitionId,configId:t}:void 0}async setProviderConfigAuth(e,t){let n=te.parse(t),r=await this.configStore.commitSnapshotMutation(async t=>{let r=t.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);let i=await F(this.bus,r.definitionId,n);(r.enabled??!0)&&N(i),t.providerConfigs.set(e,{...r,auth:structuredClone(n)})},()=>this.configStore.requireProviderConfig(e,`auth update`));return await this.bus.emit(O.providerConfig.updated,r),{config:r}}async deleteProviderConfig(e){let t=!1,n,r=``,i=!1,a=null,o={changedAdapters:new Map,deletedBindings:[],defaultChangedBindings:[]},s=await this.configStore.commitSnapshotMutation(s=>{let c=s.providerConfigs.get(e);if(c){if(c.managedBy){(c.enabled??!0)&&(i=c.isDefault??!1,r=c.definitionId,s.providerConfigs.set(e,{...c,enabled:!1,isDefault:!1}),a=i?this.configStore.promoteProviderConfigDefault(c.definitionId,e,s.providerConfigs):null,n=e);return}o=this.configStore.removeBindingsForConfig(e,s.adapters,s.providerConfigs),i=c.isDefault??!1,r=c.definitionId,t=!0,s.providerConfigs.delete(e),a=i?this.configStore.promoteProviderConfigDefault(c.definitionId,e,s.providerConfigs):null;for(let[e,t]of o.changedAdapters)s.adapters.set(e,t)}},()=>n?this.configStore.requireProviderConfig(e,`managed config disable`):null);if(!t)return n?(await this.bus.emit(O.providerConfig.updated,s),i&&await this.bus.emit(O.providerConfig.defaultChanged,{definitionId:r,configId:a}),{deleted:!1}):{deleted:!1};await this.cleanupDeletedProviderCredentials(e);for(let e of o.deletedBindings)await this.bus.emit(O.binding.deleted,e);for(let e of o.defaultChangedBindings)await this.bus.emit(O.binding.defaultChanged,e);return await this.bus.emit(O.providerConfig.deleted,{id:e}),i&&await this.bus.emit(O.providerConfig.defaultChanged,{definitionId:r,configId:a}),{deleted:!0}}async setDefaultProviderConfig(e){let t=``,n=await this.configStore.commitSnapshotMutation(n=>{let r=n.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);if(!(r.enabled??!0))throw Error(`Disabled provider config cannot be default: ${e}`);t=r.definitionId;for(let[r,i]of n.providerConfigs)i.definitionId===t&&n.providerConfigs.set(r,{...i,isDefault:r===e})},()=>this.configStore.requireProviderConfig(e,`setDefault`));return await this.bus.emit(O.providerConfig.updated,n),await this.bus.emit(O.providerConfig.defaultChanged,{definitionId:t,configId:e}),{config:n}}async setModelFilterMode(e,t,n){let r=await this.configStore.commitSnapshotMutation(async r=>{let i=r.providerConfigs.get(e);if(!i)throw Error(`Provider config not found: ${e}`);let a=i.modelVisibility;if(t===`allowlist`){let e=await this.selectAllowlistKeeper(i.definitionId,i,n);e&&(a={...i.modelVisibility??{},[e]:`visible`})}r.providerConfigs.set(e,{...i,modelFilterMode:t,modelVisibility:a})},()=>this.configStore.requireProviderConfig(e,`setModelFilterMode`));return await this.bus.emit(O.providerConfig.updated,r),{config:r}}async cleanupDeletedProviderCredentials(e){try{await this.bus.requestOptional(c.delete,{configId:e})}catch(t){console.warn(`[AdapterProviderConfigService] Failed to delete credentials for removed provider config "${e}":`,t)}}async resolveProviderConfigName(e,t){let n=await this.getProviderDefinitionOrThrow(e);return this.resolveProviderConfigNameFromDefinition(e,n.name,t)}resolveProviderConfigNameFromDefinition(e,t,n){let r=ae({requestedName:n,providerName:t,definitionId:e});if(r)return r;throw Error(`Unable to derive a canonical provider config name for definition: ${e}`)}async getProviderDefinitionOrThrow(e){let{provider:t}=await this.bus.request(T.get,{id:e});if(!t)throw Error(`Provider definition not found: ${e}`);return t}async selectAllowlistKeeper(e,t,n){let{provider:r}=await this.bus.request(T.get,{id:e}),i=[n,...r?.availableModels?.map(e=>e.name)??[],...Object.keys(t.modelVisibility??{})].filter(e=>typeof e==`string`&&e.length>0);for(let e of i){let n=oe(e,`allowlist`,t.modelVisibility);if(n===`enabled`||n===`visible`)return}return i[0]}},ct=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async bind(e,t){let n,r=!1;if(await this.configStore.commitSnapshotMutation(i=>{let a=i.providerConfigs.get(t);if(!a)throw Error(`Provider config not found: ${t}`);let o=i.adapters.get(e);if(!o)throw Error(`Adapter config not found: ${e}`);let s=A(e,o.bindings),c=s.find(e=>e.providerConfigId===t);if(c){n={...c};return}r=!0,n={adapterName:e,providerConfigId:t,isDefault:(a.enabled??!0)&&!Ce(s,i.providerConfigs)};let l=[...s,n];i.adapters.set(e,{...o,bindings:l.map(({adapterName:e,...t})=>t)})}),!n)throw Error(`Binding could not be loaded after bind: ${e}/${t}`);return r&&await this.bus.emit(O.binding.created,n),n}async unbind(e,t){let n,r=!1;await this.configStore.commitSnapshotMutation(i=>{let a=i.adapters.get(e);if(!a)return;let o=A(e,a.bindings),s=o.findIndex(e=>e.providerConfigId===t);if(s===-1)return;let[c]=o.splice(s,1);if(r=!0,c?.isDefault&&o.length>0){let e=M(o,i.providerConfigs);n=e.promoted,o.splice(0,o.length,...e.bindings)}i.adapters.set(e,{...a,bindings:o.map(({adapterName:e,...t})=>t)})}),r&&(await this.bus.emit(O.binding.deleted,{adapterName:e,providerConfigId:t}),n&&await this.bus.emit(O.binding.defaultChanged,{adapterName:e,providerConfigId:n.providerConfigId}))}async setDefaultBinding(e,t){let n=!1;await this.configStore.commitSnapshotMutation(r=>{let i=r.adapters.get(e);if(!i)throw Error(`Adapter config not found: ${e}`);let a=A(e,i.bindings),o=a.find(e=>e.providerConfigId===t);if(!o)throw Error(`Binding not found for adapter ${e} and provider config ${t}`);if(!j(r.providerConfigs,o.providerConfigId))throw Error(`Disabled provider config cannot be default binding: ${t}`);o.isDefault||(n=!0,r.adapters.set(e,{...i,bindings:a.map(({adapterName:e,...n})=>({...n,isDefault:n.providerConfigId===t}))}))}),n&&await this.bus.emit(O.binding.defaultChanged,{adapterName:e,providerConfigId:t})}};function J(e){return!!e.adapters?.length||!!e.providers?.length}function lt(e){return e.map(e=>{if(!J(e))return e;let t=e.dependencies??[];return t.some(e=>e.name===D)?e:{...e,dependencies:[...t,p(D)]}})}function ut(e){return{filter:J,async processActivated(t,n,r){let i=e.getAdapterSubsystemService();if(!i)throw Error(`AdapterSubsystemService is not available. Ensure the adapter subsystem package starts before adapter-contributing packages.`);await i.processAdapterContributions(t,n,r)},async processStopped(t){let n=e.getAdapterSubsystemService();n&&await n.stopAdapterContributions(t)}}}function dt(e){return e.map(e=>({...e}))}function ft(e){if(e instanceof le)return!0;if(typeof e!=`object`||!e)return!1;let t=e;return t.name===`ModelRegistryProviderNotFoundError`&&typeof t.providerId==`string`||e instanceof Error&&/^Request to "getProviderModels" failed: Provider ".+" is not present in the model registry$/.test(e.message)||e instanceof Error&&/^Provider ".+" is not present in the model registry$/.test(e.message)?!0:ft(t.cause)}async function pt(e,t,n,r={}){let i=r.providerDefinitionCache;if(!i){i=new Map;let t=await e.request(y.contributions.catalog,{});for(let e of t.providers)i.set(e.definition.id,e)}let a=[],o=[];for(let e of t){let t=i.get(e.definitionId);if(!t){o.push(e.definitionId);continue}a.push({definition:t.definition,providerPackageName:t.packageName,...e.protocol!==void 0&&{protocol:e.protocol},configSchema:e.configSchema??r.adapterConfigSchema,...e.auth!==void 0&&{auth:mt(e.auth,t.definition,r.clientDefinitions??[],n)}})}return o.length>0&&console.warn(`[AdapterContributionProcessor] Adapter "${n}" declares providers [${o.join(`, `)}] but no active extension registers them. These providers will be unavailable until their extensions are loaded.`),a}function mt(e,t,n,r){let a=i.parse(e),o=new Set(a.scrubEnvVars);gt(t.authMethods??[],o);for(let e of n)gt(e.authMethods,o);for(let e of a.bindings)f(e,ht(e.method,t,n,r));return i.parse({bindings:a.bindings,scrubEnvVars:[...o]})}function ht(e,t,n,r){if(e.owner===`provider`){if(e.providerDefinitionId!==t.id)throw Error(`Adapter "${r}" binds provider method "${e.methodId}" to definition "${e.providerDefinitionId}" while serving "${t.id}".`);let n=(t.authMethods??[]).find(({id:t})=>t===e.methodId);if(n===void 0)throw Error(`Adapter "${r}" binds undeclared provider auth method "${t.id}/${e.methodId}".`);return n}let i=n.find(({id:t})=>t===e.clientId);if(i===void 0)throw Error(`Adapter "${r}" binds authentication method "${e.clientId}/${e.methodId}" without declaring that client.`);let a=i.authMethods.find(({id:t})=>t===e.methodId);if(a===void 0)throw Error(`Adapter "${r}" binds undeclared client auth method "${e.clientId}/${e.methodId}".`);return a}function gt(e,t){for(let n of e)if(n.mode===`explicit`)for(let e of n.fields)for(let n of e.sourceHints)t.add(n.variable)}async function _t(e,t,n,r){return Promise.all(n.map(async n=>{let i=n.definition.id;try{let t=r.get(i);if(t===void 0){let a=await e.requestOptional(ue.getProviderModels,{providerId:i});t=a.handled?a.data.models:n.definition.availableModels??[],r.set(i,t)}return{...n,definition:{...n.definition,availableModels:dt(t)}}}catch(e){return ft(e)||console.warn(`[AdapterContributionProcessor] Failed to populate available models for provider "${i}" on adapter "${t}". Falling back to declared provider models.`,e),{...n,definition:{...n.definition,availableModels:dt(n.definition.availableModels??[])}}}}))}async function vt(e,t,n,r){let i=await pt(t,e.providerRefs,e.name,{...e.providerConfigSchema!==void 0&&{adapterConfigSchema:e.providerConfigSchema},...e.clientDefinitions!==void 0&&{clientDefinitions:e.clientDefinitions},...r!==void 0&&{providerDefinitionCache:r}});return _t(t,e.name,i,n)}function yt(e){let t=new Set;for(let n of e){if(typeof n==`string`){(n===`anthropic`||n===`openai`)&&t.add(n);continue}n.anthropic!==void 0&&t.add(`anthropic`),n.openai!==void 0&&t.add(`openai`)}return[...t]}function bt(e,t,n){let r=yt(n);if(t!==void 0){if(!r.includes(t))throw Error(`Adapter "${e}" definition protocol "${t}" must be declared in manifest.protocols [${r.join(`, `)}].`);return t}return r.length===1?r[0]:void 0}var xt=class{configStore;registry;coordinator;machineId;platformDefaults;prepareAuthRuntime;constructor(e){this.configStore=e.configStore,this.registry=e.registry,this.coordinator=e.coordinator,this.machineId=e.machineId,this.platformDefaults=e.platformDefaults,this.prepareAuthRuntime=e.prepareAuthRuntime}register(e){let t={filter:J,processActivated:async(e,t,n)=>{await this.onPackageActivated(e,t,n)},processStopped:async e=>{await this.onPackageStopped(e)}};e(this.coordinator.registerContributionProcessor(t))}async onPackageActivated(e,t,n){let r=t.adapters??[],i=[],a=[],o=new Map,s=await n.bus.request(y.contributions.catalog,{}),c=new Map;for(let e of s.providers)c.set(e.definition.id,e);for(let n of t.providers??[])c.set(n.id,{packageName:e,definition:n});let l=s.clients,u=this.coordinator.getLoadedProviderDefinitionIds();try{for(let t of r){let r=await this.activateAdapterContribution(e,t,n.bus,o,c,l,u);i.push(t.definition.name),a.push(r)}}catch(t){let n=!1;for(let e of i.reverse())try{await this.registry.deregisterAdapter(e)}catch(t){n=!0,console.error(`[AdapterContributionProcessor] Rollback error for adapter "${e}":`,t)}throw n||this.registry.removePackageTracking(e),t}await this.publishActivatedAdapters(a);let d=await this.initializeAdaptersWaitingForProviders(n.bus,o,c,u);await this.publishActivatedAdapters(d)}async processAdapterContribution(e,t,n=v){let r=this.coordinator.getLoadedProviderDefinitionIds(),i=await this.activateAdapterContribution(e,t,n,new Map,void 0,void 0,r);await this.publishActivatedAdapters([i])}async activateAdapterContribution(e,t,n,r,i,a,o){let s=await this.buildLoadedAdapter(e,t,n,r,i,a),c=!1;try{await this.ensureAdapterConfig(s);let t=this.configStore.isAdapterEnabled(s.name);t&&await this.validateEnabledAdapterClientRefs(s,n,a),this.registry.registerAdapter(s,e),c=!0,t&&(this.getMissingProviderDefinitionIds(s,o).length>0?console.info(`[AdapterContributionProcessor] Deferring adapter "${s.name}" initialization until declared providers are active.`):(await this.registry.initializeAdapter(s,this.platformDefaults),console.info(`[AdapterContributionProcessor] Initialized adapter: ${s.name} (${s.packageName})`)))}catch(e){if(c)try{await this.registry.deregisterAdapter(s.name)}catch(e){console.error(`[AdapterContributionProcessor] Rollback error for adapter "${s.name}":`,e)}throw e}return s}async initializeAdaptersWaitingForProviders(e,t,n,r){let i=[];for(let a of this.registry.getLoadedAdapters()){let o;try{if(!this.configStore.isAdapterEnabled(a.name))continue;let s=a;if(this.getMissingProviderDefinitionIds(a,r).length>0){let i=await vt(a,e,t,n),c=this.registry.updateAdapterProviders(a.name,i);if(!c||this.getMissingProviderDefinitionIds(c,r).length>0)continue;s=c,o=c}if(this.registry.hasAdapterInstance(s)){if(s===a)continue;await this.registry.restartAdapterInstance(s,this.platformDefaults)}else await this.registry.initializeAdapter(s,this.platformDefaults);console.info(`[AdapterContributionProcessor] Initialized adapter: ${s.name} (${s.packageName}) after provider activation`),i.push(s)}catch(e){console.error(`[AdapterContributionProcessor] Deferred initialization failed for adapter "${a.name}".`,e),o&&i.push(o)}}return i}getMissingProviderDefinitionIds(e,t){let n=new Set(e.providers.map(e=>e.definition.id));return e.providerDefinitionIds.filter(e=>!n.has(e)&&t.has(e))}async validateEnabledAdapterClientRefs(e,t,n){if(e.clients===void 0||e.clients.length===0)return;let r=n??(await t.request(y.contributions.catalog,{})).clients;await V(e.name,e.clients,r,t)}async buildLoadedAdapter(e,t,n=v,r=new Map,i,a){let o=t.definition,s=t.manifest,c=o.name,l=a??(await n.request(y.contributions.catalog,{})).clients;await V(c,s.clients,l,n,{checkBinaryVersions:!1});let u=Ae(s.clients,l),d=await _t(n,c,await pt(n,o.providers,c,{...o.providerConfigSchema!==void 0&&{adapterConfigSchema:o.providerConfigSchema},...u!==void 0&&{clientDefinitions:u},...i!==void 0&&{providerDefinitionCache:i}}),r);return{name:c,displayName:o.displayName??s.displayName,description:o.description,packageName:e,factory:o.createAdapter,options:{adapterId:C(this.machineId,c),...this.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:this.prepareAuthRuntime}},adapterConfigSchema:o.adapterConfigSchema,providerDefinitionIds:o.providers.map(e=>e.definitionId),providerRefs:[...o.providers],providers:d,providerConfigSchema:o.providerConfigSchema,helpLinks:o.helpLinks,instructions:o.instructions,defaultPresetId:o.defaultPresetId,clients:ke(s.clients),...u!==void 0&&{clientDefinitions:u},protocol:bt(c,o.protocol,s.protocols)}}async ensureAdapterConfig(e){this.configStore.getAdapterConfig(e.name)||await this.configStore.setAdapterConfig(e.name,{displayName:e.displayName,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:B(e.options,e.clients),protocol:e.protocol,providerDefinitionIds:[...e.providerDefinitionIds],enabled:!1})}async onPackageStopped(e){await this.registry.deregisterPackage(e);let t=await this.registry.removeProviderPackage(e,this.platformDefaults);await this.publishActivatedAdapters(t)}publishAdapterRegistered(e){let t=this.configStore.isAdapterEnabled(e.name),n=this.registry.resolveLoadedAdapterId(e);return this.registry.publishAdapterRegistered({adapterName:e.name,displayName:e.displayName,packageName:e.packageName,enabled:t,adapterId:n,providerDefinitionIds:e.providerDefinitionIds})}async publishActivatedAdapters(e){for(let t of e)try{await this.publishAdapterRegistered(t)}catch(e){console.error(`[AdapterContributionProcessor] Failed to publish adapter "${t.name}" registration:`,e)}}};async function St(e,t,n){let r=new Map,i=new Map;for(let a of[...t].sort((e,t)=>e.name.localeCompare(t.name)))for(let t of a.providers.filter(({definition:e})=>e.id===n))for(let o of t.auth?.bindings??[]){let s=await wt(e,a,t,o.method,i);ne(o,s);let c=Ot(n,o.method),l=Et(n,o.method,s),u=r.get(c);if(u){if(!Ct(u.option,l))throw Error(`Authentication method ${c} has conflicting definitions across compatible adapters "${[...u.adapterNames].join(`, `)}" and "${a.name}".`);u.adapterNames.add(a.name);continue}r.set(c,{option:l,adapterNames:new Set([a.name])})}return[...r.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([,{option:e,adapterNames:t}])=>Dt(e,[...t].sort((e,t)=>e.localeCompare(t))))}function Ct(t,n){return e(t,n)}async function wt(e,t,n,r,i){if(r.owner===`provider`){if(r.providerDefinitionId!==n.definition.id)throw Error(`Adapter "${t.name}" binds provider method "${r.methodId}" to the wrong definition ("${r.providerDefinitionId}" instead of "${n.definition.id}").`);let e=(n.definition.authMethods??[]).find(({id:e})=>e===r.methodId);if(!e)throw Error(`Adapter "${t.name}" binds undeclared provider auth method "${n.definition.id}/${r.methodId}".`);return e}if(!(t.clients??[]).some(({id:e})=>e===r.clientId))throw Error(`Adapter "${t.name}" binds auth method "${r.clientId}/${r.methodId}" without declaring that client.`);let a=i.get(r.clientId);a||(a=Tt(e,r.clientId),i.set(r.clientId,a));let o=(await a).authMethods.find(({id:e})=>e===r.methodId);if(!o)throw Error(`Adapter "${t.name}" binds undeclared client auth method "${r.clientId}/${r.methodId}".`);return o}async function Tt(e,t){let{client:n}=await e.request(w.get,{id:t});if(!n)throw Error(`Authentication binding references missing client definition "${t}".`);return n}function Et(e,t,n){let r={definitionId:e,method:{...t},label:n.label,...n.description?{description:n.description}:{}};switch(n.mode){case`explicit`:return{...r,mode:`explicit`,fields:n.fields.map(e=>({...e,sourceHints:e.sourceHints.map(e=>({...e}))})),portability:`portable`};case`inferred`:if(t.owner!==`client`)throw Error(`Inferred auth method "${n.id}" must be client-owned.`);return{...r,method:{...t},mode:`inferred`,fields:[],portability:`local-only`};case`none`:return{...r,mode:`none`,fields:[],portability:`portable`}}}function Dt(e,t){switch(e.mode){case`explicit`:return{...e,compatibleAdapterNames:t};case`inferred`:return{...e,compatibleAdapterNames:t};case`none`:return{...e,compatibleAdapterNames:t}}}function Ot(e,t){return JSON.stringify(t.owner===`provider`?[e,t.owner,t.providerDefinitionId,t.methodId]:[e,t.owner,t.clientId,t.methodId])}function kt(e,t,n=-100){let r=e.on(T.get,async n=>{let r=(await Y(e,t())).get(n.payload.id)??null;n.setResult({provider:r})},{priority:n}),i=e.on(T.list,async n=>{n.setResult({providers:[...(await Y(e,t())).values()]})},{priority:n}),a=e.on(T.listByProtocol,async n=>{let r=[...(await Y(e,t())).values()].filter(e=>e.endpoints!==void 0&&n.payload.protocol in e.endpoints);n.setResult({providers:r})},{priority:n});return()=>{r(),i(),a()}}async function Y(e,t){let n=new Map,r=new Set;for(let e of t){for(let t of e.providerDefinitionIds)r.add(t);for(let t of e.providers)At(n,t.providerPackageName,t.definition)}let i=[...r].filter(e=>!n.has(e));if(i.length>0){let t=await e.request(y.contributions.catalog,{});for(let e of t.providers)i.includes(e.definition.id)&&At(n,e.packageName,e.definition)}return n}function At(e,t,n){let r=l.parse(n);e.has(r.id)||e.set(r.id,{id:r.id,packageName:t,name:r.name,...r.description===void 0?{}:{description:r.description},...r.endpoints===void 0?{}:{endpoints:r.endpoints},...r.defaultModel===void 0?{}:{defaultModel:r.defaultModel},...r.fastModel===void 0?{}:{fastModel:r.fastModel},availableModels:r.availableModels,defaultModelFilterMode:r.defaultModelFilterMode??`show-all`,authMethods:r.authMethods,...r.capabilities===void 0?{}:{capabilities:r.capabilities},enabled:!0,createdAt:0,updatedAt:0})}function jt(e,t,n=-100){let r=e.on(w.get,async n=>{let r=(await X(e,t())).get(n.payload.id)??null;n.setResult({client:r})},{priority:n}),i=e.on(w.list,async n=>{n.setResult({clients:[...(await X(e,t())).values()]})},{priority:n}),a=e.on(w.listByBinaryName,async n=>{let r=[...(await X(e,t())).values()].filter(e=>e.binary?.name===n.payload.binaryName);n.setResult({clients:r})},{priority:n});return()=>{r(),i(),a()}}async function X(e,t){let n=new Set(t.flatMap(e=>e.clients?.map(({id:e})=>e)??[]));if(n.size===0)return new Map;let r=await e.request(y.contributions.catalog,{}),i=new Map;for(let e of r.clients){if(!n.has(e.definition.id))continue;let t=s.parse(e.definition);i.set(t.id,Mt(e.packageName,t))}return i}function Mt(e,t){return{id:t.id,packageName:e,name:t.name,...t.description===void 0?{}:{description:t.description},...t.binary===void 0?{}:{binary:structuredClone(t.binary)},nativeTools:structuredClone(t.nativeTools),defaultApprovalPolicy:t.defaultApprovalPolicy,...t.logSources===void 0?{}:{logSources:structuredClone(t.logSources)},authMethods:structuredClone(t.authMethods),...t.defaultAuth===void 0?{}:{defaultAuth:{...t.defaultAuth}},enabled:!0,createdAt:0,updatedAt:0}}function Nt(e,t){let n=e.providerRefs.filter(e=>e.definitionId===t),r=e.providers.filter(e=>e.definition.id===t),i=n[0],a=r[0];return n.length===1&&r.length===1&&i!==void 0&&a!==void 0?{ref:i,provider:a}:null}function Pt(e,t){return t===void 0||e.clients?.some(e=>e.id===t)===!0}function Ft(e,t){return e?.bindings.some(e=>Rt(e.method,t))===!0}function It(e,t,n,r){return e.trim().length>0&&t.trim().length>0&&(n===void 0||(r?.trim().length??0)>0)}async function Lt(e){if(e.snapshot===null)return{status:`error`,code:`provider-config-not-found`};if(e.adapter===void 0)return{status:`error`,code:`adapter-not-loaded`};if(!e.isBound)return{status:`error`,code:`adapter-not-bound`};let t=e.snapshot.context.definitionId,n=Nt(e.adapter,t);if(n===null)return{status:`error`,code:`provider-incompatible`};let{provider:r}=n,i=r.auth,a=e.snapshot.context.auth.method;if(!Ft(i,a))return{status:`error`,code:`auth-binding-missing`};let o=a.owner===`client`?a.clientId:B(e.adapter.options,e.adapter.clients);if(!Pt(e.adapter,o))return{status:`error`,code:`client-incompatible`};let s=await e.bus.request(y.contributions.catalog,{}),c=o===void 0?[]:s.clients.filter(e=>e.definition.id===o);if(o!==void 0&&c.length!==1)return{status:`error`,code:`client-incompatible`};let l=c[0]?.packageName;if(!It(e.adapter.packageName,r.providerPackageName,o,l))return{status:`error`,code:`runtime-package-metadata-missing`};let u=e.adapter.providers.flatMap(e=>e.definition.id!==t&&e.auth!==void 0?[e.auth]:[]),d=o!==void 0&&l!==void 0?{packageName:l,clientId:o}:void 0;return{status:`resolved`,runtime:{snapshot:e.snapshot,adapterName:e.adapter.name,...o!==void 0&&{adapterClientId:o},...r.protocol!==void 0&&{providerProtocol:r.protocol},adapterProviderAuth:i,compatibleProviderAuths:u,runtimePackages:{adapter:{packageName:e.adapter.packageName},provider:{packageName:r.providerPackageName,definitionId:t},...d!==void 0&&{client:d}}}}}function Rt(e,t){return e.owner!==t.owner||e.methodId!==t.methodId?!1:e.owner===`provider`?t.owner===`provider`&&e.providerDefinitionId===t.providerDefinitionId:t.owner===`client`&&e.clientId===t.clientId}var zt=class extends ee{configStore;registry;providerConfigService;bindingService;contributionProcessor;runtimeSnapshotHandlerPriority;runtimeDefinitionHandlerPriority;resolveOwnerInstanceId;constructor(e){super(e.bus),this.configStore=new Oe({configRepository:e.configRepository,bus:e.bus}),this.registry=new at({bus:e.bus,machineId:e.machineId,...e.resolveOwnerInstanceId!==void 0&&{resolveOwnerInstanceId:e.resolveOwnerInstanceId}}),this.providerConfigService=new st({configStore:this.configStore,bus:e.bus}),this.bindingService=new ct({configStore:this.configStore,bus:e.bus}),this.contributionProcessor=new xt({configStore:this.configStore,registry:this.registry,coordinator:e.coordinator,machineId:e.machineId,platformDefaults:e.platformDefaults,...e.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:e.prepareAuthRuntime}}),this.runtimeSnapshotHandlerPriority=e.runtimeSnapshotHandlerPriority??0,this.runtimeDefinitionHandlerPriority=e.runtimeDefinitionHandlerPriority??-100,this.resolveOwnerInstanceId=e.resolveOwnerInstanceId}async onInit(){await this.configStore.loadSnapshot(),this.configStore.registerListeners(e=>this.addCleanup(e)),this.registerBusHandlers(),await this.bus.emit(O.ready,{})}registerBusHandlers(){this.addCleanup(kt(this.bus,()=>this.registry.getLoadedAdapters(),this.runtimeDefinitionHandlerPriority)),this.addCleanup(jt(this.bus,()=>this.registry.getLoadedAdapters(),this.runtimeDefinitionHandlerPriority)),this.registerReadHandlers(),this.registerMutationHandlers()}registerReadHandlers(){this.registerConfigReadHandlers(),this.registerRuntimeReadHandlers()}registerConfigReadHandlers(){this.registerHandler(O.getAdapterConfig,e=>{e.setResult({config:this.configStore.getAdapterConfig(e.payload.name)})}),this.registerHandler(O.listAdapterConfigs,e=>{e.setResult({configs:this.configStore.listAdapterConfigs()})}),this.registerHandler(O.getProviderConfig,e=>{e.setResult({config:this.configStore.getProviderConfig(e.payload.id)})}),this.registerHandler(O.listProviderConfigs,e=>{e.setResult({configs:this.configStore.listProviderConfigs(e.payload.enabled)})}),this.registerHandler(O.listProviderConfigsByDefinition,e=>{e.setResult({configs:this.configStore.listProviderConfigsByDefinition(e.payload.definitionId)})}),this.registerHandler(O.listBindings,e=>{e.setResult({bindings:this.configStore.listBindings(e.payload.adapterName)})}),this.registerHandler(O.listBindingsByConfig,e=>{e.setResult({bindings:this.configStore.listBindingsByConfig(e.payload.providerConfigId)})}),this.registerHandler(O.getDefaultBinding,e=>{e.setResult({binding:this.configStore.getDefaultBinding(e.payload.adapterName)})}),this.registerHandler(O.findConfigForDefinitionAndAdapter,e=>{e.setResult({config:this.configStore.findConfigForDefinitionAndAdapter(e.payload.definitionId,e.payload.adapterName)})})}registerRuntimeReadHandlers(){this.registerHandler(O.resolveProviderRuntimeSnapshot,async e=>{e.setResult({snapshot:await this.configStore.resolveProviderRuntimeSnapshot(e.payload.providerConfigId)})},{priority:this.runtimeSnapshotHandlerPriority}),this.registerHandler(O.resolveAdapterRuntimeSnapshot,async e=>{let t=this.registry.getLoadedAdapters().find(t=>t.name===e.payload.adapterName);try{let n=await this.configStore.resolveBoundProviderRuntimeSnapshot(e.payload.adapterName,e.payload.providerConfigId);e.setResult(await Lt({bus:this.bus,adapter:t,snapshot:n.snapshot,isBound:n.isBound}))}catch(t){if(t instanceof I&&t.code===`provider-config-disabled`){e.setResult({status:`error`,code:`provider-config-disabled`});return}throw t}},{priority:this.runtimeSnapshotHandlerPriority}),this.registerHandler(O.listAdapters,async e=>{e.setResult({adapters:await this.configStore.buildEffectiveAdapters()})}),this.registerHandler(O.getProviderDefinitionsByAdapter,async e=>{let t=this.registry.getLoadedAdapters().find(t=>t.name===e.payload.adapterName),n=new Map((t?.providers??[]).map(e=>[e.definition.id,e.definition])),r=(t?.providerDefinitionIds??[]).filter(e=>!n.has(e));if(r.length>0){let e=await this.bus.request(y.contributions.catalog,{});for(let t of e.providers)r.includes(t.definition.id)&&n.set(t.definition.id,t.definition)}let i=(t?.providerDefinitionIds??[]).flatMap(e=>{let t=n.get(e);return t===void 0?[]:[l.parse(t)]});e.setResult({definitions:i})}),this.registerHandler(O.listCompatibleAuthOptions,async e=>{e.setResult({options:await St(this.bus,this.registry.getLoadedAdapters(),e.payload.definitionId)})}),this.registerHandler(O.ensureReady,e=>{e.setResult({ready:!0})})}registerMutationHandlers(){this.registerHandler(O.createProviderConfig,async e=>{e.setResult(await this.providerConfigService.createProviderConfig(e.payload))}),this.registerHandler(O.updateProviderConfig,async e=>{e.setResult(await this.providerConfigService.updateProviderConfig(e.payload.id,e.payload.patch))}),this.registerHandler(O.setProviderConfigAuth,async e=>{e.setResult(await this.providerConfigService.setProviderConfigAuth(e.payload.id,e.payload.auth))}),this.registerHandler(O.deleteProviderConfig,async e=>{e.setResult(await this.providerConfigService.deleteProviderConfig(e.payload.id))}),this.registerHandler(O.setDefaultProviderConfig,async e=>{e.setResult(await this.providerConfigService.setDefaultProviderConfig(e.payload.id))}),this.registerHandler(O.setModelFilterMode,async e=>{e.setResult(await this.providerConfigService.setModelFilterMode(e.payload.id,e.payload.modelFilterMode,e.payload.preferredModel))}),this.registerHandler(O.setAdapterConfig,async e=>{e.setResult(await this.configStore.setAdapterConfig(e.payload.name,e.payload.patch))}),this.registerHandler(O.setAdapterEnabled,async e=>{await this.configStore.setAdapterEnabled(e.payload.name,e.payload.enabled),e.setResult({success:!0})}),this.registerHandler(O.bind,async e=>{e.setResult({binding:await this.bindingService.bind(e.payload.adapterName,e.payload.providerConfigId)})}),this.registerHandler(O.unbind,async e=>{await this.bindingService.unbind(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})}),this.registerHandler(O.setDefaultBinding,async e=>{await this.bindingService.setDefaultBinding(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})})}async onDestroy(){let e=await this.registry.shutdownAll();await this.bus.emit(se.teardownCompleted,{ownerInstanceId:this.resolveOwnerInstanceId?.()??null,evidence:e.evidence,...e.detail!==void 0&&{detail:e.detail}}),g(e.evidence)||console.warn(`[AdapterSubsystemService] Adapter instance shutdown reported "${e.evidence}": ${e.detail??`no detail reported.`}`),this.configStore.clear()}getLoadedAdapters(){return this.registry.getLoadedAdapters()}getAdapterInstances(){return this.registry.getAdapterInstances()}resolveLiveAdapterId(e){return this.registry.resolveLiveAdapterId(e)}resolveLiveAdapterIdentity(e){return this.registry.resolveLiveAdapterIdentity(e)}getLiveAdapterIdentities(){return this.registry.getLiveAdapterIdentities()}getSettingsAvailableAdapters(){return this.registry.getSettingsAvailableAdapters()}async processAdapterContributions(e,t,n){await this.contributionProcessor.onPackageActivated(e,t,n)}async stopAdapterContributions(e){await this.contributionProcessor.onPackageStopped(e)}},Z=class extends Error{code;source;constructor(e,t,n){super(`Provider config "${t}" cannot be loaded: ${n}`),this.name=`ProviderConfigDiagnosticError`,this.code=e,this.source=t}};const Q=`.json`;var Bt=class{providerConfigsDir;adaptersDir;constructor(e){this.providerConfigsDir=e.providerConfigsDir,this.adaptersDir=e.adaptersDir}async loadAdapterConfigs(){let e=new Map,t=await this.readJsonFiles(this.adaptersDir,`adapter`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`adapter`,n.filePath);if(!t)continue;let r=b.safeParse(n.jsonData);if(!r.success){this.warnSkippedFile(`adapter`,n.filePath,`invalid-adapter-config`,Vt(r.error));continue}e.set(t,r.data)}return{configs:e}}async loadProviderConfigs(){let e=new Map,t=await this.readJsonFiles(this.providerConfigsDir,`provider config`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`provider config`,n.filePath);if(t)try{e.set(t,this.parseProviderConfig(n.jsonData,t))}catch(e){if(e instanceof Z){this.warnSkippedFile(`provider config`,n.filePath,e.code,e.message);continue}throw e}}return{configs:e}}async writeProviderConfig(e,t){let r=this.assertCanonicalFileStem(e,`provider config id`),i=n.join(this.providerConfigsDir,`${r}${Q}`),a=this.parseProviderConfig(t,r);await this.writeJsonFile(i,a)}async deleteProviderConfig(e){let t=this.assertCanonicalFileStem(e,`provider config id`);try{return await this.unlinkFile(n.join(this.providerConfigsDir,`${t}${Q}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async writeAdapterFile(e,t){let r=this.assertCanonicalFileStem(e,`adapter name`),i=b.parse(t);await this.writeJsonFile(n.join(this.adaptersDir,`${r}${Q}`),i)}async deleteAdapterFile(e){let t=this.assertCanonicalFileStem(e,`adapter name`);try{return await this.unlinkFile(n.join(this.adaptersDir,`${t}${Q}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async readJsonFiles(e,r){try{let i=(await t.readdir(e,{withFileTypes:!0})).filter(e=>e.isFile()&&n.extname(e.name)===Q).sort((e,t)=>e.name.localeCompare(t.name));return(await Promise.all(i.map(async i=>{let a=n.join(e,i.name);try{let e=await t.readFile(a,`utf-8`);return{filePath:a,stem:n.parse(i.name).name,jsonData:JSON.parse(e)}}catch(e){let t,n;return e instanceof SyntaxError?(t=`invalid-json`,n=`file does not contain valid JSON.`):(t=`unreadable`,n=e instanceof Error?e.message:String(e)),this.warnSkippedFile(r,a,t,n),null}}))).filter(e=>e!==null)}catch(e){if(e.code===`ENOENT`)return[];throw e}}warnSkippedFile(e,t,n,r){console.warn(`[FileAdapterConfigRepository] Skipping invalid %s file (%s): %s — %s`,e,n,t,r)}parseProviderConfig(e,t){let n=typeof e==`object`&&e?e:void 0,r=n?.$schema,i=[`credentials`,`isSentinel`].filter(e=>Object.hasOwn(n??{},e));if(r===`makaio/provider-config/v1`||i.length>0)throw new Z(`legacy-provider-config`,t,`${[...r===`makaio/provider-config/v1`?[`schema v1`]:[],...i.length>0?[`legacy fields ${i.join(`, `)}`]:[]].join(` and `)} use retired authentication semantics. Recreate this config with an explicit normalized authentication method.`);if(r!==x)throw new Z(`unsupported-provider-config-version`,t,`expected $schema "${x}". Recreate the config with the current schema.`);let a=ie.safeParse(e);if(!a.success)throw new Z(`invalid-provider-config`,t,Vt(a.error));return a.data}getCanonicalLoadedStem(e,t,n){try{return this.assertCanonicalFileStem(e,`${t} file stem`)}catch(e){let r=e instanceof Error?e.message:String(e);return this.warnSkippedFile(t,n,`invalid-file-name`,r),null}}async writeJsonFile(e,i){let a=n.dirname(e),o=n.join(a,`.${n.basename(e)}.${r()}.tmp`);await t.mkdir(a,{recursive:!0});try{await t.writeFile(o,`${JSON.stringify(i,null,2)}\n`,{encoding:`utf-8`,mode:384}),await this.replaceFile(o,e)}catch(e){throw await this.removeFileIfPresent(o),e}}async replaceFile(e,t){try{await this.renameFile(e,t);return}catch(e){let t=e;if(![`EEXIST`,`EPERM`,`EACCES`].includes(t.code??``))throw e}let n=`${t}.${r()}.bak`,i=!1;try{await this.renameFile(t,n),i=!0}catch(e){if(e.code!==`ENOENT`)throw e}try{await this.renameFile(e,t)}catch(e){throw i&&await this.renameFile(n,t).catch(()=>void 0),e}i&&await this.removeFileIfPresent(n)}async renameFile(e,n){await t.rename(e,n)}async unlinkFile(e){await t.unlink(e)}async removeFileIfPresent(e){try{await t.unlink(e)}catch(t){t.code!==`ENOENT`&&console.warn(`[FileAdapterConfigRepository] Failed to remove temp file: %s`,e,t)}}assertCanonicalFileStem(e,t){let r=e.trim(),i=n.basename(r);if(!r||e!==r||r!==i||!/^[a-z0-9._-]+$/.test(r)||r.includes(`/`)||r.includes(`\\`)||r.toLowerCase().endsWith(`.json`)||r===`.`||r===`..`)throw Error(`Invalid canonical ${t}: ${e}`);return r}};function Vt(e){return e.issues.map(e=>`${e.path.length>0?e.path.join(`.`):`<root>`}: ${e.message}`).join(`; `)}const $=m(D);function Ht(e){return{name:$.name,displayName:`Adapter Subsystem`,version:`0.1.0`,provides:[`adapters`],dependencies:[p(E.name)],critical:!0,create:t=>{let n=t.getService(E);if(n===void 0)throw Error(`Adapter subsystem requires the active session ownership authority`);return new zt({bus:t.bus,configRepository:e.configRepository,coordinator:e.coordinator,machineId:t.machineId,resolveOwnerInstanceId:()=>n.requireOwnershipInstanceId(),platformDefaults:e.platformDefaults,...e.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:e.prepareAuthRuntime},...e.runtimeSnapshotHandlerPriority!==void 0&&{runtimeSnapshotHandlerPriority:e.runtimeSnapshotHandlerPriority},...e.runtimeDefinitionHandlerPriority!==void 0&&{runtimeDefinitionHandlerPriority:e.runtimeDefinitionHandlerPriority}})}}}export{H as AdapterInstanceCloseTimeoutError,zt as AdapterSubsystemService,$ as AdapterSubsystemToken,Bt as FileAdapterConfigRepository,P as ProviderConfigAuthValidationError,Z as ProviderConfigDiagnosticError,I as ProviderRuntimeContextError,W as aggregateAdapterInstanceTeardowns,N as assertProviderConfigAuthDefinitionsEnabled,U as classifyAdapterInstanceClose,J as contributesToAdapterSubsystem,ut as createAdapterSubsystemContributionProcessor,Ht as createAdapterSubsystemPackage,We as ensureAdapterConfigs,Me as extractAdapterIdFromPackageName,lt as orderAfterAdapterSubsystem,Ie as shutdownAdapterInstances,Ne as toAvailableAdapter,F as validateProviderConfigAuth};
1
+ import{isDeepStrictEqual as e}from"node:util";import*as t from"node:fs/promises";import*as n from"node:path";import{randomUUID as r}from"node:crypto";import{AdapterProviderAuthSchema as i,AdapterSubjects as a,CapabilitySubjects as o,ClientDefinitionSchema as s,CredentialSubjects as c,ProviderDefinitionSchema as l,ResolvedProviderContextSchema as u,aggregateTeardownResults as d,assertAdapterAuthBindingMatchesMethod as f,dep as p,extensionToken as m,isUniversalRange as h,teardownWasObserved as g,versionSatisfies as _}from"@makaio/framework/contracts";import{MakaioBus as v}from"@makaio/framework/bus";import{ExtensionSubjects as y}from"@makaio/framework/kernel";import{BaseService as ee}from"@makaio/framework/service-base";import{ProviderConfigAuthSchema as te,assertAdapterAuthBindingMatchesMethod as ne}from"@makaio/framework/contracts/auth";import{ADAPTER_FILE_SCHEMA_VERSION as re,AdapterFileSchema as b,PROVIDER_CONFIG_SCHEMA_VERSION as x,ProviderConfigFileSchema as ie,resolveCanonicalProviderConfigName as ae,slugifyProviderConfigName as S}from"@makaio/framework/contracts/config";import{resolveModelVisibility as oe}from"@makaio/framework/contracts/provider";import{AdapterRuntimeSubjects as se,buildDeterministicAdapterId as C}from"@makaio/framework/services/adapter-runtime";import{ClientSubjects as ce}from"@makaio/framework/contracts/client";import{ClientStorageSubjects as w,ProviderStorageSubjects as T}from"@makaio/framework/services/settings/storage";import{SessionToken as E}from"@makaio/framework/services";import{ADAPTER_SUBSYSTEM_PACKAGE_NAME as D,AdapterSubsystemSubjects as O}from"@makaio/framework/services/adapter-subsystem";import{ModelRegistryProviderNotFoundError as le,ModelRegistrySubjects as ue}from"@makaio/framework/services/model-registry";function de(e){return e?{...e}:void 0}function fe(e){return e?{...e}:void 0}function pe(e){return e?structuredClone(e):void 0}function me(e,t){let n=[];for(let[r,i]of t.providerConfigs){let t=e.providerConfigs.get(r);t!==i&&n.push({kind:`write-provider`,key:`provider:${r}`,id:r,next:i,previous:t})}for(let[r,i]of t.adapters){let t=e.adapters.get(r);t!==i&&n.push({kind:`write-adapter`,key:`adapter:${r}`,name:r,next:i,previous:t})}for(let[r,i]of e.providerConfigs)t.providerConfigs.has(r)||n.push({kind:`delete-provider`,key:`provider-delete:${r}`,id:r,previous:i});return n}async function he(e,t){switch(t.kind){case`write-provider`:await e.writeProviderConfig(t.id,t.next);return;case`write-adapter`:await e.writeAdapterFile(t.name,t.next);return;case`delete-provider`:if(!await e.deleteProviderConfig(t.id))throw Error(`Provider config file missing during delete: ${t.id}`);return}}async function ge(e,t){switch(t.kind){case`write-provider`:if(t.previous){await e.writeProviderConfig(t.id,t.previous);return}await e.deleteProviderConfig(t.id);return;case`write-adapter`:if(t.previous){await e.writeAdapterFile(t.name,t.previous);return}await e.deleteAdapterFile(t.name);return;case`delete-provider`:await e.writeProviderConfig(t.id,t.previous);return}}async function _e(e,t,n){let r=me(t,n);if(r.length===0)return;let i=[];try{for(let t of r)i.push(t),await he(e,t)}catch(t){try{await ve(e,i)}catch(e){throw AggregateError([t,e],`Adapter subsystem snapshot commit failed and rollback could not restore the previous state.`,{cause:e})}throw t}}async function ve(e,t){let n=[];for(let r of[...t].reverse())try{await ge(e,r)}catch(e){n.push(e instanceof Error?Error(`[${r.key}] ${e.message}`,{cause:e}):Error(`[${r.key}] ${String(e)}`))}if(n.length>0)throw AggregateError(n,`Snapshot rollback failed.`)}function k(e,t){return{id:e,definitionId:t.definitionId,name:t.name??t.definitionId,...t.endpointOverrides?{endpointOverrides:{...t.endpointOverrides}}:{},...t.modelVisibility?{modelVisibility:{...t.modelVisibility}}:{},modelFilterMode:t.modelFilterMode??`show-all`,isDefault:t.isDefault??!1,enabled:t.enabled??!0,auth:ye(t),...t.managedBy?{managedBy:{...t.managedBy}}:{}}}function ye(e){switch(e.auth.mode){case`explicit`:return{mode:`explicit`,method:{...e.auth.method},hasCredentials:!0};case`inferred`:return{mode:`inferred`,method:{...e.auth.method},...e.auth.account?{account:{...e.auth.account}}:{},hasCredentials:!1};case`none`:return{mode:`none`,method:{...e.auth.method},hasCredentials:!1}}}function A(e,t){return(t??[]).map(t=>({adapterName:e,providerConfigId:t.providerConfigId,isDefault:t.isDefault??!1}))}function be(e,t,n){return{name:e,enabled:t.enabled??!0,...t.displayName===void 0?{}:{displayName:t.displayName},...t.description===void 0?{}:{description:t.description},...t.helpLinks===void 0?{}:{helpLinks:t.helpLinks.map(e=>({...e}))},...t.instructions===void 0?{}:{instructions:t.instructions},...t.clientId===void 0?{}:{clientId:t.clientId},...t.protocol===void 0?{}:{protocol:t.protocol},...t.providerDefinitionIds===void 0?{}:{providerDefinitionIds:[...t.providerDefinitionIds]},...t.settings?{settings:structuredClone(t.settings)}:{},bindings:n.map(e=>({...e}))}}function xe(e,t){let n=[],r=new Set;for(let i of e){let e=t.get(i.providerConfigId);!e||r.has(e.definitionId)||(r.add(e.definitionId),n.push(e.definitionId))}return n}function Se(e){let t=new Map,n=new Map,r=new Map;for(let[i,a]of e.providerConfigs){let e=k(i,a);t.set(i,e),n.set(S(e.name),i);let o=r.get(e.definitionId)??[];o.push(i),r.set(e.definitionId,o)}let i=new Map,a=new Map,o=new Map,s=new Map;for(let[n,r]of e.adapters){let e=A(n,r.bindings),c=be(n,r,e),l=e.filter(e=>t.get(e.providerConfigId)?.enabled);i.set(n,c),a.set(n,e),s.set(n,l.find(e=>e.isDefault)??l[0]??null);for(let t of e){let e=o.get(t.providerConfigId)??[];e.push(t),o.set(t.providerConfigId,e)}}return{providerConfigRecords:t,providerConfigSlugToId:n,providerConfigIdsByDefinition:r,adapterRecords:i,bindingsByAdapter:a,bindingsByConfig:o,defaultBindingByAdapter:s,adapterNames:new Set(i.keys())}}function j(e,t){let n=e.get(t);return n!==void 0&&(n.enabled??!0)}function Ce(e,t){return e.some(e=>j(t,e.providerConfigId))}function M(e,t){let n=e.find(e=>j(t,e.providerConfigId));return{bindings:e.map(e=>({...e,isDefault:e.providerConfigId===n?.providerConfigId})),...n?{promoted:{...n,isDefault:!0}}:{}}}function we(e,t,n){let r=[...n.entries()].filter(([n,r])=>n!==t&&r.definitionId===e).map(([e,t])=>({id:e,config:t})),i=r.find(({id:e})=>j(n,e))?.id??null;for(let{id:e,config:t}of r)n.set(e,{...t,isDefault:i!==null&&e===i});return i}function N(e){if(!e.provider.enabled)throw new P(`provider-definition-disabled`,`Provider definition is disabled for auth selection: ${e.provider.id}`);if(e.client!==void 0&&!e.client.enabled)throw new P(`client-definition-disabled`,`Client definition is disabled for auth selection: ${e.client.id}`)}var P=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`ProviderConfigAuthValidationError`}};async function F(e,t,n,r){let i=r??(await e.request(T.get,{id:t})).provider;if(!i||i.id!==t)throw new P(`provider-definition-not-found`,`Provider definition not found for auth selection: ${t}`);let a,o;if(n.method.owner===`provider`){if(n.method.providerDefinitionId!==t)throw new P(`auth-method-not-found`,`Provider auth method "${n.method.methodId}" does not belong to definition "${t}".`);a=i.authMethods.find(({id:e})=>e===n.method.methodId)}else{if({client:o}=await e.request(w.get,{id:n.method.clientId}),!o)throw new P(`client-definition-not-found`,`Client definition not found for auth selection: ${n.method.clientId}`);a=o.authMethods.find(({id:e})=>e===n.method.methodId)}if(!a){let e=n.method.owner===`provider`?n.method.providerDefinitionId:n.method.clientId;throw new P(`auth-method-not-found`,`Authentication method "${n.method.methodId}" is not declared by ${n.method.owner} "${e}".`)}if(a.mode!==n.mode)throw new P(`auth-mode-mismatch`,`Authentication method "${a.id}" declares mode "${a.mode}", not "${n.mode}".`);return a.mode===`explicit`&&n.mode===`explicit`&&Te(a,n),{method:a,provider:i,...o?{client:o}:{}}}function Te(e,t){let n=new Set(e.fields.map(({id:e})=>e)),r=e.fields.filter(({id:e,required:n})=>n&&t.credentialRefs[e]===void 0).map(({id:e})=>e),i=Object.keys(t.credentialRefs).filter(e=>!n.has(e));if(r.length===0&&i.length===0)return;let a=[...r.length>0?[`missing required fields [${r.join(`, `)}]`]:[],...i.length>0?[`unexpected fields [${i.join(`, `)}]`]:[]];throw new P(`auth-credential-fields-mismatch`,`Authentication method "${e.id}" has ${a.join(` and `)}.`)}var I=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`ProviderRuntimeContextError`}};async function L(e,t,n){if(n.enabled===!1)throw new I(`provider-config-disabled`,`ProviderConfig '${t}' is disabled and cannot be used for adapter startup.`);let r=await F(e,n.definitionId,n.auth);N(r);let i=Ee(n.auth,r.method),a={...r.provider.endpoints??{},...n.endpointOverrides??{}};return{context:u.parse({state:`resolved`,providerConfigId:t,definitionId:r.provider.id,...Object.keys(a).length>0?{endpointOverrides:a}:{},auth:i,...r.provider.capabilities?{capabilities:r.provider.capabilities}:{}}),definition:structuredClone(r.provider)}}function Ee(e,t){switch(e.mode){case`explicit`:if(t.mode!==`explicit`)throw R(e.mode,t.mode);return{mode:e.mode,method:{...e.method},definition:structuredClone(t),credentialRefs:{...e.credentialRefs}};case`inferred`:if(t.mode!==`inferred`)throw R(e.mode,t.mode);return{mode:e.mode,method:{...e.method},definition:{...t},...e.account?{account:{...e.account}}:{}};case`none`:if(t.mode!==`none`)throw R(e.mode,t.mode);return{mode:e.mode,method:{...e.method},definition:{...t}}}}function R(e,t){return new P(`auth-mode-mismatch`,`Validated authentication mode changed during context assembly: selected "${e}", declared "${t}".`)}var De=class{tail=Promise.resolve();async run(e){let t=this.tail.then(e,e);return this.tail=t.then(()=>void 0,()=>void 0),await t}},Oe=class{configRepository;bus;snapshot={providerConfigs:new Map,adapters:new Map};providerConfigRecords=new Map;providerConfigSlugToId=new Map;adapterRecords=new Map;bindingsByAdapter=new Map;bindingsByConfig=new Map;defaultBindingByAdapter=new Map;providerConfigIdsByDefinition=new Map;knownAdapterNames=new Set;logImportProviderKeysPromise=null;snapshotMutationQueue=new De;constructor(e){this.configRepository=e.configRepository,this.bus=e.bus}async loadSnapshot(){let[e,t]=await Promise.all([this.configRepository.loadProviderConfigs(),this.configRepository.loadAdapterConfigs()]);this.replaceSnapshot({providerConfigs:new Map(e.configs),adapters:new Map(t.configs)})}registerListeners(e){let t=()=>{this.logImportProviderKeysPromise=null};e(this.bus.on(o.register,t,{filter:{capabilityId:`log-import`}})),e(this.bus.on(o.unregister,t,{filter:{capabilityId:`log-import`}}))}clear(){this.snapshot={providerConfigs:new Map,adapters:new Map},this.providerConfigRecords.clear(),this.providerConfigSlugToId.clear(),this.adapterRecords.clear(),this.bindingsByAdapter.clear(),this.bindingsByConfig.clear(),this.defaultBindingByAdapter.clear(),this.providerConfigIdsByDefinition.clear(),this.knownAdapterNames.clear(),this.logImportProviderKeysPromise=null}replaceSnapshot(e){this.snapshot=e,this.applyDerivedState()}cloneSnapshot(){return{providerConfigs:new Map(this.snapshot.providerConfigs),adapters:new Map(this.snapshot.adapters)}}async commitSnapshotMutation(e,t){return await this.snapshotMutationQueue.run(async()=>{let n=this.cloneSnapshot();return await e(n),await this.commitSnapshot(n),await t?.()})}async commitSnapshot(e){await _e(this.configRepository,this.snapshot,e),this.replaceSnapshot(e)}applyDerivedState(){let e=Se(this.snapshot);this.providerConfigRecords=e.providerConfigRecords,this.providerConfigSlugToId=e.providerConfigSlugToId,this.providerConfigIdsByDefinition=e.providerConfigIdsByDefinition,this.adapterRecords=e.adapterRecords,this.bindingsByAdapter=e.bindingsByAdapter,this.bindingsByConfig=e.bindingsByConfig,this.defaultBindingByAdapter=e.defaultBindingByAdapter,(e.adapterNames.size!==this.knownAdapterNames.size||[...e.adapterNames].some(e=>!this.knownAdapterNames.has(e)))&&(this.knownAdapterNames=e.adapterNames,this.logImportProviderKeysPromise=null)}getProviderConfig(e){let t=this.providerConfigRecords.get(e);return t?structuredClone(t):null}requireProviderConfig(e,t){let n=this.getProviderConfig(e);if(!n)throw Error(`Provider config could not be loaded after ${t}: ${e}`);return n}getAdapterConfig(e){let t=this.adapterRecords.get(e);return t?structuredClone(t):null}requireAdapterConfig(e,t){let n=this.getAdapterConfig(e);if(!n)throw Error(`Adapter config could not be loaded after ${t}: ${e}`);return n}isAdapterEnabled(e){return this.getAdapterConfig(e)?.enabled??!1}listProviderConfigs(e){let t=[...this.providerConfigRecords.values()].map(e=>structuredClone(e));return e===void 0?t:t.filter(t=>t.enabled===e)}listProviderConfigsByDefinition(e){return this.getProviderConfigIdsByDefinition(e).map(e=>this.getProviderConfig(e)).filter(e=>e!==null)}listAdapterConfigs(){return[...this.adapterRecords.values()].map(e=>structuredClone(e))}listBindings(e){return structuredClone(this.bindingsByAdapter.get(e)??[])}listBindingsByConfig(e){return structuredClone(this.bindingsByConfig.get(e)??[])}getDefaultBinding(e){let t=this.defaultBindingByAdapter.get(e)??null;return t?structuredClone(t):null}findConfigForDefinitionAndAdapter(e,t){let n=new Set((this.bindingsByAdapter.get(t)??[]).map(e=>e.providerConfigId)),r=this.getProviderConfigIdsByDefinition(e).map(e=>this.providerConfigRecords.get(e)).filter(e=>e!==void 0&&e.enabled&&n.has(e.id)),i=r.find(e=>e.isDefault)??r[0]??null;return i?structuredClone(i):null}getProviderConfigIdsByDefinition(e){return[...this.providerConfigIdsByDefinition.get(e)??[]]}assertProviderConfigNameUnique(e,t){let n=S(e),r=this.providerConfigSlugToId.get(n);if(r!==void 0&&r!==t){let t=this.providerConfigRecords.get(r)?.name??r;throw Error(`Provider config name "${e}" conflicts with existing config "${t}": both slugify to "${n}". Choose a different name.`)}}async setAdapterConfig(e,t){return{config:await this.commitSnapshotMutation(n=>{let r=n.adapters.get(e);n.adapters.set(e,this.buildNextAdapterFile(r,t))},()=>this.requireAdapterConfig(e,`update`))}}buildNextAdapterFile(e,t){return{...e??{},$schema:re,...this.applyAdapterPatch(e,t),bindings:e?.bindings}}applyAdapterPatch(e,t){let n=e??{},r=t.helpLinks?.map(e=>({...e}))??n.helpLinks,i=t.providerDefinitionIds?[...t.providerDefinitionIds]:n.providerDefinitionIds;return{enabled:t.enabled??n.enabled??!0,displayName:t.displayName??n.displayName,description:t.description??n.description,helpLinks:r,instructions:t.instructions??n.instructions,clientId:t.clientId??n.clientId,protocol:t.protocol??n.protocol,providerDefinitionIds:i,settings:t.settings===void 0?n.settings:pe(t.settings)}}async setAdapterEnabled(e,t){await this.setAdapterConfig(e,{enabled:t})}async buildEffectiveAdapters(){let e=await this.getLogImportProviderKeys();return[...this.adapterRecords.values()].map(t=>{let n=this.bindingsByAdapter.get(t.name)??[],r=n.filter(e=>this.providerConfigRecords.get(e.providerConfigId)?.enabled),i=[...t.providerDefinitionIds??xe(n,this.providerConfigRecords)];return{name:t.name,displayName:t.displayName??t.name,...t.description===void 0?{}:{description:t.description},enabled:t.enabled,configCount:n.length,readiness:r.length>0?`ready`:`needs-setup`,supportsLogImport:e.has(t.name),...t.helpLinks===void 0?{}:{helpLinks:t.helpLinks.map(e=>({...e}))},...t.instructions===void 0?{}:{instructions:t.instructions},...t.clientId===void 0?{}:{clientId:t.clientId},...t.protocol===void 0?{}:{protocol:t.protocol},...t.providerDefinitionIds!==void 0||i.length>0?{providerDefinitionIds:i}:{}}})}async getLogImportProviderKeys(){if(!this.logImportProviderKeysPromise){let e=this.bus.requestOptional(o.listProviders,{capabilityId:`log-import`}).then(t=>t.handled?new Set(t.data.providers.map(e=>e.providerKey??e.id)):(this.logImportProviderKeysPromise===e&&(this.logImportProviderKeysPromise=null),new Set)).catch(e=>{throw this.logImportProviderKeysPromise=null,e});this.logImportProviderKeysPromise=e}return await this.logImportProviderKeysPromise}async resolveProviderRuntimeSnapshot(e){let t=this.snapshot.providerConfigs.get(e);if(!t)return null;let{context:n,definition:r}=await L(this.bus,e,t);return{config:k(e,t),context:n,definition:r}}async resolveBoundProviderRuntimeSnapshot(e,t){let n=this.snapshot,r=n.providerConfigs.get(t),i=n.adapters.get(e),a=r!==void 0&&A(e,i?.bindings).some(e=>e.providerConfigId===t);if(!r)return{snapshot:null,isBound:!1};let{context:o,definition:s}=await L(this.bus,t,r);return{isBound:a,snapshot:{config:k(t,r),context:o,definition:s}}}removeBindingsForConfig(e,t,n){let r=new Map,i=[],a=[];for(let[o,s]of t){let t=A(o,s.bindings),c=t.findIndex(t=>t.providerConfigId===e);if(c===-1)continue;let[l]=t.splice(c,1);if(l&&i.push(l),l?.isDefault&&t.length>0){let e=M(t,n);t.splice(0,t.length,...e.bindings),e.promoted&&a.push({adapterName:o,providerConfigId:e.promoted.providerConfigId})}r.set(o,{...s,bindings:t.map(({adapterName:e,...t})=>t)})}return{changedAdapters:r,deletedBindings:i,defaultChangedBindings:a}}promoteProviderConfigDefault(e,t,n){return we(e,t,n)}};const z=process.env.MAKAIO_SKIP_CLIENT_VERSION_CHECK===`1`;function ke(e){if(!(e===void 0||e.length===0))return e.map(e=>({...e}))}function Ae(e,t){if(e===void 0||e.length===0)return;let n=new Map(t.map(e=>[e.definition.id,e.definition]));return e.map(e=>{let t=n.get(e.id);if(t===void 0)throw Error(`Adapter client definition "${e.id}" is missing from the active contribution catalog.`);return t})}function B(e,t){return e.clientId!==void 0&&t?.some(t=>t.id===e.clientId)?e.clientId:t?.[0]?.id}async function V(e,t,n,r,i={}){if(t===void 0||t.length===0)return;let a=new Map(n.map(e=>[e.definition.id,e.definition]));for(let n of t){let t=a.get(n.id);if(t===void 0)throw Error(`Adapter "${e}" references missing client "${n.id}"`);je(t.version,n.version,`Adapter "${e}" client "${n.id}" definition version ${t.version}`)}if(i.checkBinaryVersions===!1)return;let o=t.filter(e=>e.binaryVersion!==void 0);await Promise.all(o.map(async t=>{if(h(t.binaryVersion))return;let n=await r.requestOptional(ce.resolveBinary,{clientId:t.id});if(!n.handled){if(z){console.warn(`[SKIP_VERSION_CHECK] Adapter "${e}" client "${t.id}" declares binaryVersion ${t.binaryVersion}, but no client.resolveBinary handler is registered — check bypassed`);return}throw Error(`Adapter "${e}" client "${t.id}" declares binaryVersion ${t.binaryVersion}, but no client.resolveBinary handler is registered`)}let i=n.data.version;if(i===null){if(z){console.warn(`[SKIP_VERSION_CHECK] Adapter "${e}" client "${t.id}" binary did not report a version; requires ${t.binaryVersion} — check bypassed`);return}throw Error(`Adapter "${e}" client "${t.id}" binary did not report a version; requires ${t.binaryVersion}`)}if(!_(i,t.binaryVersion)){let n=`Adapter "${e}" client "${t.id}" binary version ${i}`;if(z){console.warn(`[SKIP_VERSION_CHECK] ${n} does not satisfy ${t.binaryVersion} — check bypassed`);return}throw Error(`${n} does not satisfy ${t.binaryVersion}`)}}))}function je(e,t,n){if(!_(e,t))throw Error(`${n} does not satisfy ${t}`)}var H=class extends Error{adapterId;timeoutMs;constructor(e,t){super(`Timed out closing adapter ${e} after ${t}ms`),this.adapterId=e,this.timeoutMs=t,this.name=`AdapterInstanceCloseTimeoutError`}};function U(e,t,n,r){return t instanceof H?{adapterId:e,evidence:`unknown`,detail:`Adapter ${e} did not return from its close hook within ${t.timeoutMs}ms; whatever it holds may still be running.`}:t===void 0?n?r===void 0?{adapterId:e,evidence:`detached`,detail:`Adapter ${e} returned from its close hook without reporting a class, so what it held is unproven.`}:{adapterId:e,...r}:{adapterId:e,evidence:`released`}:{adapterId:e,evidence:`unknown`,detail:`Adapter ${e} close hook failed: ${t instanceof Error?t.message:String(t)}`}}function W(e){return{...d(e),results:e}}function Me(e){let t=e.split(`/`).pop()?.replace(/^ai-adapters-/,``)?.trim();return t&&t.length>0?t:e}function Ne(e){let t=B(e.options,e.clients);return{name:e.name,displayName:e.displayName??e.name,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:t,protocol:e.protocol,providerDefinitionIds:[...e.providerDefinitionIds]}}async function Pe(e,t,n=5e3){let r=Ve(t),i,a,o;if(r!==void 0){let t=await Fe(r,n);t.kind===`settled`?a=t.reported:t.kind===`failed`?i=t.error:(i=new H(e,n),o=t.pendingCloseCompletion.then(t=>U(e,void 0,!0,t),t=>U(e,t,!0,void 0)))}let s=U(e,i,r!==void 0,a);return o===void 0?{report:s}:{report:s,pendingCompletion:o}}async function Fe(e,t){let n=Promise.resolve().then(e);n.catch(()=>void 0);let r,i=n.then(e=>({kind:`settled`,reported:e}),e=>({kind:`failed`,error:e}));try{return await Promise.race([i,new Promise(e=>{r=setTimeout(()=>{e({kind:`timed-out`,pendingCloseCompletion:n})},t)})])}finally{r&&clearTimeout(r)}}async function Ie(e){let t=await Promise.all([...e].map(([e,t])=>Le(e,t)));return e.clear(),W(t)}async function Le(e,t){let{report:n}=await Pe(e,t);return n.evidence===`unknown`&&console.error(`[adapter-runtime] Error shutting down adapter ${e}:`,n.detail),n}async function G(e,t,n,r,i,a){try{await i(t,e.name,n,r,a)}catch(t){console.error(`[adapter-runtime] Error rolling back adapter ${e.name}:`,t)}}async function Re(e,t,n,r,i,o){let s=o;await e.emit(a.initialized,{adapterId:n,adapterName:t.name,machineId:r,ownerInstanceId:i,capabilities:[...s.capabilities??[]],...s.nativeTools===void 0?{}:{nativeTools:[...s.nativeTools]}})}async function ze(e,t){let{config:n}=await e.request(O.getAdapterConfig,{name:t});return n?.enabled??!1}function Be(e,t){return e.options.adapterId??C(t,e.name)}function Ve(e){let t=e;if(typeof t.shutdown==`function`)return t.shutdown.bind(e);if(typeof t.closeAsync==`function`)return t.closeAsync.bind(e);if(typeof t.close==`function`)return t.close.bind(e)}async function He(e,t){let{bus:n,machineId:r,adapterInstances:i,platformDefaults:a,onRollback:o,isCurrentAdapter:s}=t;if(!await ze(n,e.name)){console.info(`Skipping disabled adapter: ${e.name}`);return}if(!s(e))return;let c=Be(e,r),l=t.resolveOwnerInstanceId(),u=B(e.options,e.clients),d=await e.factory({...e.options,adapterId:c,machineId:r,ownerInstanceId:l,platformDefaults:a,definitionProviders:e.providers,clientId:u,globalBus:n});if(!s(e)){await G(e,c,l,d,o,!1);return}if(d.adapterId!==c)throw await G(e,c,l,d,o,!1),Error(`Adapter '${e.name}' initialized with mismatched adapterId (expected '${c}', got '${d.adapterId}')`);i.set(c,d);try{t.onInitialized(c,l)}catch(t){throw await G(e,c,l,d,o,!1),t}try{await Re(n,e,c,r,l,d)}catch(t){throw await G(e,c,l,d,o,!0),t}console.info(`Initialized adapter: ${e.name} (${e.packageName})`)}async function Ue(e,t,n,r,i,a,o,s,c){let l=[],u={bus:e,machineId:t,adapterInstances:r,platformDefaults:i,resolveOwnerInstanceId:a,onInitialized:o,onRollback:s,isCurrentAdapter:c};for(let e of n)try{await He(e,u)}catch(t){l.push({adapterName:e.name,error:t})}if(l.length>0){let e=l.map(({adapterName:e,error:t})=>`${e}: ${t instanceof Error?t.message:String(t)}`).join(`; `);throw Error(`Failed to initialize enabled adapters: ${e}`)}}async function We(e,t){await t.request(O.ensureReady,{});let n=await Promise.all(e.map(async e=>({adapter:e,config:(await t.request(O.getAdapterConfig,{name:e.name})).config})));await Promise.all(n.filter(({config:e})=>!e).map(({adapter:e})=>t.request(O.setAdapterConfig,{name:e.name,patch:{displayName:e.displayName,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:B(e.options,e.clients),protocol:e.protocol,providerDefinitionIds:[...e.providerDefinitionIds],enabled:!1}})))}function Ge(e,t,n,r){let i=e.get(n);if(i===void 0)throw Error(`Managed adapter ${n} has no recorded runtime owner`);return{adapterId:n,adapterName:r,machineId:t,ownerInstanceId:i.ownerInstanceId}}function Ke(e,t,n,r,i,a){if(e.get(r)!==i||t.has(a))return;e.delete(r);let o=n.get(i.packageName);if(o===void 0)return;let s=o.filter(e=>e!==r);s.length===0?n.delete(i.packageName):n.set(i.packageName,s)}function qe(e,t,n){let r=e.get(t);if(r===void 0)return;let i=r.filter(e=>e!==n);i.length===0?e.delete(t):e.set(t,i)}function K(e,t,n,r,i){let a=e.get(t);a?.state!==`retiring`||a.instance!==n||a.flight!==r||(g(i.evidence)?e.delete(t):e.set(t,{state:`retiring`,instance:n,ownerInstanceId:a.ownerInstanceId,report:i}))}function Je(e,t,n,r,i,a,o,s){if(!i()||e.has(n))return;for(let[r,i]of e)r.name===n.name&&i.retirementCompletion===t.completion&&(i.cancelled=!0,e.delete(r));let c={cancelled:!1,started:!1,retirementCompletion:t.completion,cancellationCompletion:t.cancellationCompletion,completion:Promise.resolve()},l=t.completion.then(async e=>{c.cancelled||!g(e.evidence)||!i()||a()||(c.started=!0,await o(n,r))});c.completion=l,e.set(n,c),l.then(()=>{e.get(n)===c&&e.delete(n)},t=>{e.get(n)===c&&e.delete(n),s(t)})}function Ye(e,t,n,r,i,a){if(!r()||e.has(t))return!1;let o;for(let[n,r]of e)n.name===t.name&&!r.cancelled&&(o=r);if(o===void 0)return!1;o.cancelled=!0;let s={cancelled:!1,started:!1,retirementCompletion:o.retirementCompletion,cancellationCompletion:o.completion.catch(()=>void 0),completion:Promise.resolve()},c=o.completion.catch(()=>void 0).then(async()=>{s.cancelled||!r()||(s.started=!0,await i(t,n))});return s.completion=c,e.set(t,s),c.then(()=>{e.get(t)===s&&e.delete(t)},n=>{e.get(t)===s&&e.delete(t),a(n)}),!0}function Xe(e,t){let n=e.get(t);if(n!==void 0)return n.cancelled=!0,n.started?{completion:n.completion}:(e.delete(t),{completion:n.cancellationCompletion})}async function Ze(e,t,n,r,i){let a=Xe(e,t);if(a===void 0)return!1;if(await a.completion.catch(()=>void 0),!n())return!0;let o=r();return o===void 0?(i(),!0):o.state===`retiring`?(o.flight!==void 0&&o.flight.completion.then(e=>{g(e.evidence)&&n()&&r()===void 0&&i()}),!0):!1}async function Qe(e){let t=[];for(let n of e.values())n.cancelled=!0,t.push((n.started?n.completion:n.cancellationCompletion).catch(()=>void 0));await Promise.all(t),e.clear()}async function q(e){let{dependencies:t,adapter:n,platformDefaults:r,fromDeferredActivation:i}=e,{bus:a,machineId:o,resolveOwnerInstanceId:s,loadedAdapters:c,adapterEntries:l,deferredActivations:u,resolveLoadedAdapterId:d,retireAdapterEntry:f}=t,p=u.get(n);if(p!==void 0&&!i){await p.completion;return}let m=d(n),h=l.get(m);if(h?.state===`live`||h?.state===`retiring`&&await $e(e,m,h,p))return;let g=new Map;await Ue(a,o,[n],g,r,s,(e,t)=>{if(c.get(n.name)!==n)throw Error(`Adapter ${n.name} was stopped before initialization completed`);let r=g.get(e);if(r===void 0)throw Error(`Initialized adapter ${e} was not retained by its lifecycle`);l.set(e,{state:`live`,instance:r,ownerInstanceId:t})},async(e,t,n,r,i)=>{i?l.set(e,{state:`live`,instance:r,ownerInstanceId:n}):l.set(e,{state:`retiring`,instance:r,ownerInstanceId:n,report:{evidence:`unknown`,detail:`Failed activation for ${t} is retiring.`}}),await f(e,t,i)},e=>c.get(e.name)===e&&u.get(e)?.cancelled!==!0)}async function $e(e,t,n,r){let{dependencies:i,adapter:a,platformDefaults:o,fromDeferredActivation:s}=e,{loadedAdapters:c,adapterEntries:l,deferredActivations:u,retireAdapterEntry:d}=i;if(n.flight===void 0){let e=await d(t,a.name);return e!==void 0&&!g(e.report.evidence)}if(s&&r?.started){r.started=!1,r.retirementCompletion=n.flight.completion,r.cancellationCompletion=n.flight.cancellationCompletion;let t=await n.flight.completion;return r.cancelled||!g(t.evidence)?!0:(r.started=!0,r.cancellationCompletion=r.completion,await q({...e,fromDeferredActivation:!0}),!0)}return Je(u,n.flight,a,o,()=>c.get(a.name)===a,()=>l.has(t),(t,n)=>q({...e,adapter:t,platformDefaults:n,fromDeferredActivation:!0}),e=>console.error(`[AdapterRuntimeRegistry] Error activating deferred adapter "${a.name}":`,e)),!0}async function et(e){let{dependencies:t,adapter:n,platformDefaults:r}=e,{deferredActivations:i,adapterEntries:a,resolveLoadedAdapterId:o,retireAdapterEntry:s}=t,c=i.get(n);if(c!==void 0){await c.completion;return}let l=o(n),u=await s(l,n.name);if(u!==void 0&&!g(u.report.evidence)){if(u.pendingCompletion!==void 0){let e=a.get(l);Je(i,(e?.state===`retiring`?e.flight:void 0)??{completion:u.pendingCompletion,cancellationCompletion:Promise.resolve()},n,r,()=>t.loadedAdapters.get(n.name)===n,()=>a.has(l),(e,n)=>q({dependencies:t,adapter:e,platformDefaults:n,fromDeferredActivation:!0}),e=>console.error(`[AdapterRuntimeRegistry] Error restarting deferred adapter "${n.name}":`,e))}return}await t.initializeAdapter(n,r)}async function tt(e,t){try{await e.emit(a.deinitialized,t)}catch(e){console.warn(`[AdapterRuntimeRegistry] Failed to publish deinitialization for "${t.adapterName}":`,e)}}function nt(e,t,n=()=>void 0){let r=!1;return{async publishFallback(){r||await tt(e,t)},dispose:e.on(a.deinitialized,e=>{let i=e.payload,a=i.adapterId===t.adapterId&&i.adapterName===t.adapterName&&i.machineId===t.machineId&&i.ownerInstanceId===t.ownerInstanceId;!r&&a&&(r=!0,n())})}}async function rt(e,t,n,r){let i=nt(e,t,r),a=!1;try{let e=await n();if(e.pendingCompletion!==void 0){a=!0;let t=e.pendingCompletion.then(async e=>(await i.publishFallback(),e)).finally(()=>i.dispose()).then(e=>e,()=>e.report);return{report:e.report,pendingCompletion:t}}return await i.publishFallback(),{report:e.report}}finally{a||i.dispose()}}function it(e,t,n,r){return r?rt(e,t,n,()=>void 0):n()}var at=class{bus;machineId;resolveOwnerInstanceId;loadedAdapters=new Map;adapterEntries=new Map;deferredActivations=new Map;packageAdapters=new Map;publicationChain=Promise.resolve();constructor(e){this.bus=e.bus,this.machineId=e.machineId,this.resolveOwnerInstanceId=e.resolveOwnerInstanceId??(()=>{throw Error(`Adapter initialization requires a session ownership authority incarnation`)})}getLoadedAdapters(){return[...this.loadedAdapters.values()]}getAdapterInstances(){return new Map([...this.adapterEntries].flatMap(([e,t])=>t.state===`live`?[[e,t.instance]]:[]))}hasAdapterInstance(e){return this.adapterEntries.get(this.resolveLoadedAdapterId(e))?.state===`live`}resolveLoadedAdapterId(e){return Be(e,this.machineId)}resolveLiveAdapterId(e){let t=this.loadedAdapters.get(e);if(!t)return;let n=this.resolveLoadedAdapterId(t);return this.adapterEntries.get(n)?.state===`live`?n:void 0}resolveLiveAdapterIdentity(e){for(let t of this.loadedAdapters.values()){let n=this.adapterEntries.get(e);if(this.resolveLoadedAdapterId(t)===e&&n?.state===`live`)return{adapterId:e,adapterName:t.name,machineId:this.machineId,ownerInstanceId:n.ownerInstanceId}}}getLiveAdapterIdentities(){return[...this.adapterEntries.keys()].flatMap(e=>{let t=this.resolveLiveAdapterIdentity(e);return t===void 0?[]:[t]})}getSettingsAvailableAdapters(){return[...this.loadedAdapters.values()].map(Ne)}registerAdapter(e,t){let n=this.loadedAdapters.get(e.name);if(n){let r=this.resolveLoadedAdapterId(n);if(n.packageName===t&&this.resolveLoadedAdapterId(e)===r&&this.adapterEntries.get(r)?.state===`retiring`){this.loadedAdapters.set(e.name,e);let n=this.packageAdapters.get(t)??[];n.includes(e.name)||this.packageAdapters.set(t,[...n,e.name]);return}throw Error(`Duplicate adapter name '${e.name}' from owners '${n.packageName}' and '${t}'.`)}this.loadedAdapters.set(e.name,e);let r=this.packageAdapters.get(t)??[];this.packageAdapters.set(t,[...r,e.name])}updateAdapterProviders(e,t){let n=this.loadedAdapters.get(e);if(!n)return;let r={...n,providers:t};return this.loadedAdapters.set(e,r),r}async removeProviderPackage(e,t){let n=[];for(let r of this.loadedAdapters.values()){if(r.packageName===e)continue;let i=r.providers.filter(t=>t.providerPackageName!==e);if(i.length===r.providers.length)continue;let a={...r,providers:i};this.loadedAdapters.set(r.name,a),n.push(a);let o=this.adapterEntries.get(this.resolveLoadedAdapterId(a));if(!(o===void 0&&Ye(this.deferredActivations,a,t,()=>this.loadedAdapters.get(a.name)===a,(e,t)=>this.initializeAdapterInternal(e,t,!0),t=>console.error(`[AdapterRuntimeRegistry] Error activating deferred adapter "${a.name}" after provider package "${e}" stopped:`,t)))&&(o?.state===`live`||o?.flight!==void 0))try{await this.restartAdapterInstance(a,t)}catch(t){console.error(`[AdapterRuntimeRegistry] Error restarting adapter "${a.name}" after provider package "${e}" stopped:`,t)}}return n}async deregisterAdapter(e){let t=this.loadedAdapters.get(e);if(!t)return;let n=this.resolveLoadedAdapterId(t);if(await Ze(this.deferredActivations,t,()=>this.loadedAdapters.get(e)===t,()=>this.adapterEntries.get(n),()=>{this.loadedAdapters.delete(e),qe(this.packageAdapters,t.packageName,e)}))return;let r=await this.retireAdapterEntry(n,t.name);r===void 0||g(r.report.evidence)?this.loadedAdapters.delete(e):r.pendingCompletion!==void 0&&r.pendingCompletion.then(r=>{g(r.evidence)&&Ke(this.loadedAdapters,this.adapterEntries,this.packageAdapters,e,t,n)})}removePackageTracking(e){this.packageAdapters.get(e)?.some(e=>{let t=this.loadedAdapters.get(e);return t!==void 0&&this.adapterEntries.get(this.resolveLoadedAdapterId(t))?.state===`retiring`})||this.packageAdapters.delete(e)}async deregisterPackage(e){let t=this.packageAdapters.get(e);if(!t?.length)return;let n=!1;for(let e of t)try{await this.deregisterAdapter(e);let t=this.loadedAdapters.get(e);t!==void 0&&this.adapterEntries.get(this.resolveLoadedAdapterId(t))?.state===`retiring`&&(n=!0)}catch(t){n=!0,console.error(`[AdapterRuntimeRegistry] Error shutting down adapter "${e}":`,t)}n||this.packageAdapters.delete(e)}publishAdapterRegistered(e){let{adapterName:t,displayName:n,packageName:r,enabled:i,adapterId:a,providerDefinitionIds:o}=e,s=this.adapterEntries.get(a)?.state===`live`,c=this.publicationChain.catch(()=>void 0).then(()=>this.bus.emit(O.adapter.registered,{adapterName:t,displayName:n??t,packageName:r,enabled:i,initialized:s,providerDefinitionIds:[...o]}));return this.publicationChain=c.catch(()=>void 0),c}async initializeAdapter(e,t){await this.initializeAdapterInternal(e,t,!1)}async initializeAdapterInternal(e,t,n){await q({dependencies:this.createAdmissionDependencies(),adapter:e,platformDefaults:t,fromDeferredActivation:n})}async restartAdapterInstance(e,t){await et({dependencies:this.createAdmissionDependencies(),adapter:e,platformDefaults:t})}createAdmissionDependencies(){return{bus:this.bus,machineId:this.machineId,resolveOwnerInstanceId:this.resolveOwnerInstanceId,loadedAdapters:this.loadedAdapters,adapterEntries:this.adapterEntries,deferredActivations:this.deferredActivations,resolveLoadedAdapterId:e=>this.resolveLoadedAdapterId(e),retireAdapterEntry:(e,t,n)=>this.retireAdapterEntry(e,t,n),initializeAdapter:(e,t)=>this.initializeAdapter(e,t)}}async shutdownAll(){await Qe(this.deferredActivations);let e=W(await Promise.all([...this.adapterEntries.keys()].map(async e=>{let t=[...this.loadedAdapters.values()].find(t=>this.resolveLoadedAdapterId(t)===e)?.name;if(t===void 0)throw Error(`Managed adapter ${e} has no loaded definition`);let n=await this.retireAdapterEntry(e,t);return n===void 0?{adapterId:e,evidence:`released`}:n.report})));return this.loadedAdapters.clear(),this.packageAdapters.clear(),this.adapterEntries.clear(),e}async retireAdapterEntry(e,t,n=!0){let r=this.adapterEntries.get(e);if(r===void 0)return;if(r.state===`retiring`&&r.flight!==void 0)return{report:{adapterId:e,...r.report},pendingCompletion:r.flight.completion};let i=r.state===`retiring`?r.report:{evidence:`unknown`,detail:`Adapter retirement is in progress.`},{promise:a,resolve:o}=Promise.withResolvers(),{promise:s,resolve:c}=Promise.withResolvers(),l={completion:a,cancellationCompletion:s};this.adapterEntries.set(e,{state:`retiring`,instance:r.instance,ownerInstanceId:r.ownerInstanceId,report:i,flight:l});let u=await it(this.bus,Ge(this.adapterEntries,this.machineId,e,t),()=>Pe(e,r.instance),r.state===`live`&&n);return c(),u.pendingCompletion===void 0?(K(this.adapterEntries,e,r.instance,l,u.report),o(u.report),u):(this.adapterEntries.set(e,{state:`retiring`,instance:r.instance,ownerInstanceId:r.ownerInstanceId,report:u.report,flight:l}),u.pendingCompletion.then(t=>{K(this.adapterEntries,e,r.instance,l,t),o(t)},()=>{K(this.adapterEntries,e,r.instance,l,u.report),o(u.report)}),{report:u.report,pendingCompletion:l.completion})}};function ot(e,t,n,r){let i=n.isDefault??!1;return r?i?!0:![...e.entries()].some(([e,r])=>e!==t&&r.definitionId===n.definitionId&&(r.enabled??!0)&&(r.isDefault??!1)):!1}var st=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async createProviderConfig(e){let t=await this.getProviderDefinitionOrThrow(e.definitionId),n=te.parse(e.auth),r=e.enabled??!0,i=await F(this.bus,e.definitionId,n,t);r&&N(i);let a=this.resolveProviderConfigNameFromDefinition(e.definitionId,t.name,e.name),o=S(a),s=de(e.endpointOverrides),c=fe(e.modelVisibility),l=await this.configStore.commitSnapshotMutation(t=>{if(this.configStore.assertProviderConfigNameUnique(a),t.providerConfigs.has(o))throw Error(`Provider config already exists: ${o}`);t.providerConfigs.set(o,{$schema:x,definitionId:e.definitionId,name:a,auth:structuredClone(n),...e.managedBy?{managedBy:{...e.managedBy}}:{},endpointOverrides:s,modelVisibility:c,modelFilterMode:e.modelFilterMode??`show-all`,isDefault:r&&![...t.providerConfigs.values()].some(t=>t.definitionId===e.definitionId&&(t.enabled??!0)&&(t.isDefault??!1)),enabled:r})},()=>this.configStore.requireProviderConfig(o,`creation`));return await this.bus.emit(O.providerConfig.created,l),{config:l}}async updateProviderConfig(e,t){let n,r=await this.configStore.commitSnapshotMutation(async r=>{n=await this.applyProviderConfigPatch(r,e,t)},()=>this.configStore.requireProviderConfig(e,`update`));return await this.bus.emit(O.providerConfig.updated,r),n&&await this.bus.emit(O.providerConfig.defaultChanged,n),{config:r}}async applyProviderConfigPatch(e,t,n){let r=e.providerConfigs.get(t);if(!r)throw Error(`Provider config not found: ${t}`);let i=n.name??r.name??r.definitionId;n.name!==void 0&&this.configStore.assertProviderConfigNameUnique(i,t);let a=n.enabled??r.enabled??!0;a&&!(r.enabled??!0)&&N(await F(this.bus,r.definitionId,r.auth));let o=ot(e.providerConfigs,t,r,a);return e.providerConfigs.set(t,{...r,name:i,endpointOverrides:n.endpointOverrides===null?void 0:n.endpointOverrides===void 0?r.endpointOverrides:de(n.endpointOverrides),modelVisibility:n.modelVisibility===void 0?r.modelVisibility:fe(n.modelVisibility),enabled:a,isDefault:o}),(r.isDefault??!1)&&!o?{definitionId:r.definitionId,configId:this.configStore.promoteProviderConfigDefault(r.definitionId,t,e.providerConfigs)}:!(r.isDefault??!1)&&o?{definitionId:r.definitionId,configId:t}:void 0}async setProviderConfigAuth(e,t){let n=te.parse(t),r=await this.configStore.commitSnapshotMutation(async t=>{let r=t.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);let i=await F(this.bus,r.definitionId,n);(r.enabled??!0)&&N(i),t.providerConfigs.set(e,{...r,auth:structuredClone(n)})},()=>this.configStore.requireProviderConfig(e,`auth update`));return await this.bus.emit(O.providerConfig.updated,r),{config:r}}async deleteProviderConfig(e){let t=!1,n,r=``,i=!1,a=null,o={changedAdapters:new Map,deletedBindings:[],defaultChangedBindings:[]},s=await this.configStore.commitSnapshotMutation(s=>{let c=s.providerConfigs.get(e);if(c){if(c.managedBy){(c.enabled??!0)&&(i=c.isDefault??!1,r=c.definitionId,s.providerConfigs.set(e,{...c,enabled:!1,isDefault:!1}),a=i?this.configStore.promoteProviderConfigDefault(c.definitionId,e,s.providerConfigs):null,n=e);return}o=this.configStore.removeBindingsForConfig(e,s.adapters,s.providerConfigs),i=c.isDefault??!1,r=c.definitionId,t=!0,s.providerConfigs.delete(e),a=i?this.configStore.promoteProviderConfigDefault(c.definitionId,e,s.providerConfigs):null;for(let[e,t]of o.changedAdapters)s.adapters.set(e,t)}},()=>n?this.configStore.requireProviderConfig(e,`managed config disable`):null);if(!t)return n?(await this.bus.emit(O.providerConfig.updated,s),i&&await this.bus.emit(O.providerConfig.defaultChanged,{definitionId:r,configId:a}),{deleted:!1}):{deleted:!1};await this.cleanupDeletedProviderCredentials(e);for(let e of o.deletedBindings)await this.bus.emit(O.binding.deleted,e);for(let e of o.defaultChangedBindings)await this.bus.emit(O.binding.defaultChanged,e);return await this.bus.emit(O.providerConfig.deleted,{id:e}),i&&await this.bus.emit(O.providerConfig.defaultChanged,{definitionId:r,configId:a}),{deleted:!0}}async setDefaultProviderConfig(e){let t=``,n=await this.configStore.commitSnapshotMutation(n=>{let r=n.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);if(!(r.enabled??!0))throw Error(`Disabled provider config cannot be default: ${e}`);t=r.definitionId;for(let[r,i]of n.providerConfigs)i.definitionId===t&&n.providerConfigs.set(r,{...i,isDefault:r===e})},()=>this.configStore.requireProviderConfig(e,`setDefault`));return await this.bus.emit(O.providerConfig.updated,n),await this.bus.emit(O.providerConfig.defaultChanged,{definitionId:t,configId:e}),{config:n}}async setModelFilterMode(e,t,n){let r=await this.configStore.commitSnapshotMutation(async r=>{let i=r.providerConfigs.get(e);if(!i)throw Error(`Provider config not found: ${e}`);let a=i.modelVisibility;if(t===`allowlist`){let e=await this.selectAllowlistKeeper(i.definitionId,i,n);e&&(a={...i.modelVisibility??{},[e]:`visible`})}r.providerConfigs.set(e,{...i,modelFilterMode:t,modelVisibility:a})},()=>this.configStore.requireProviderConfig(e,`setModelFilterMode`));return await this.bus.emit(O.providerConfig.updated,r),{config:r}}async cleanupDeletedProviderCredentials(e){try{await this.bus.requestOptional(c.delete,{configId:e})}catch(t){console.warn(`[AdapterProviderConfigService] Failed to delete credentials for removed provider config "${e}":`,t)}}async resolveProviderConfigName(e,t){let n=await this.getProviderDefinitionOrThrow(e);return this.resolveProviderConfigNameFromDefinition(e,n.name,t)}resolveProviderConfigNameFromDefinition(e,t,n){let r=ae({requestedName:n,providerName:t,definitionId:e});if(r)return r;throw Error(`Unable to derive a canonical provider config name for definition: ${e}`)}async getProviderDefinitionOrThrow(e){let{provider:t}=await this.bus.request(T.get,{id:e});if(!t)throw Error(`Provider definition not found: ${e}`);return t}async selectAllowlistKeeper(e,t,n){let{provider:r}=await this.bus.request(T.get,{id:e}),i=[n,...r?.availableModels?.map(e=>e.name)??[],...Object.keys(t.modelVisibility??{})].filter(e=>typeof e==`string`&&e.length>0);for(let e of i){let n=oe(e,`allowlist`,t.modelVisibility);if(n===`enabled`||n===`visible`)return}return i[0]}},ct=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async bind(e,t){let n,r=!1;if(await this.configStore.commitSnapshotMutation(i=>{let a=i.providerConfigs.get(t);if(!a)throw Error(`Provider config not found: ${t}`);let o=i.adapters.get(e);if(!o)throw Error(`Adapter config not found: ${e}`);let s=A(e,o.bindings),c=s.find(e=>e.providerConfigId===t);if(c){n={...c};return}r=!0,n={adapterName:e,providerConfigId:t,isDefault:(a.enabled??!0)&&!Ce(s,i.providerConfigs)};let l=[...s,n];i.adapters.set(e,{...o,bindings:l.map(({adapterName:e,...t})=>t)})}),!n)throw Error(`Binding could not be loaded after bind: ${e}/${t}`);return r&&await this.bus.emit(O.binding.created,n),n}async unbind(e,t){let n,r=!1;await this.configStore.commitSnapshotMutation(i=>{let a=i.adapters.get(e);if(!a)return;let o=A(e,a.bindings),s=o.findIndex(e=>e.providerConfigId===t);if(s===-1)return;let[c]=o.splice(s,1);if(r=!0,c?.isDefault&&o.length>0){let e=M(o,i.providerConfigs);n=e.promoted,o.splice(0,o.length,...e.bindings)}i.adapters.set(e,{...a,bindings:o.map(({adapterName:e,...t})=>t)})}),r&&(await this.bus.emit(O.binding.deleted,{adapterName:e,providerConfigId:t}),n&&await this.bus.emit(O.binding.defaultChanged,{adapterName:e,providerConfigId:n.providerConfigId}))}async setDefaultBinding(e,t){let n=!1;await this.configStore.commitSnapshotMutation(r=>{let i=r.adapters.get(e);if(!i)throw Error(`Adapter config not found: ${e}`);let a=A(e,i.bindings),o=a.find(e=>e.providerConfigId===t);if(!o)throw Error(`Binding not found for adapter ${e} and provider config ${t}`);if(!j(r.providerConfigs,o.providerConfigId))throw Error(`Disabled provider config cannot be default binding: ${t}`);o.isDefault||(n=!0,r.adapters.set(e,{...i,bindings:a.map(({adapterName:e,...n})=>({...n,isDefault:n.providerConfigId===t}))}))}),n&&await this.bus.emit(O.binding.defaultChanged,{adapterName:e,providerConfigId:t})}};function J(e){return!!e.adapters?.length||!!e.providers?.length}function lt(e){return e.map(e=>{if(!J(e))return e;let t=e.dependencies??[];return t.some(e=>e.name===D)?e:{...e,dependencies:[...t,p(D)]}})}function ut(e){return{filter:J,async processActivated(t,n,r){let i=e.getAdapterSubsystemService();if(!i)throw Error(`AdapterSubsystemService is not available. Ensure the adapter subsystem package starts before adapter-contributing packages.`);await i.processAdapterContributions(t,n,r)},async processStopped(t){let n=e.getAdapterSubsystemService();n&&await n.stopAdapterContributions(t)}}}function dt(e){return e.map(e=>({...e}))}function ft(e){if(e instanceof le)return!0;if(typeof e!=`object`||!e)return!1;let t=e;return t.name===`ModelRegistryProviderNotFoundError`&&typeof t.providerId==`string`||e instanceof Error&&/^Request to "getProviderModels" failed: Provider ".+" is not present in the model registry$/.test(e.message)||e instanceof Error&&/^Provider ".+" is not present in the model registry$/.test(e.message)?!0:ft(t.cause)}async function pt(e,t,n,r={}){let i=r.providerDefinitionCache;if(!i){i=new Map;let t=await e.request(y.contributions.catalog,{});for(let e of t.providers)i.set(e.definition.id,e)}let a=[],o=[];for(let e of t){let t=i.get(e.definitionId);if(!t){o.push(e.definitionId);continue}a.push({definition:t.definition,providerPackageName:t.packageName,...e.protocol!==void 0&&{protocol:e.protocol},configSchema:e.configSchema??r.adapterConfigSchema,...e.auth!==void 0&&{auth:mt(e.auth,t.definition,r.clientDefinitions??[],n)}})}return o.length>0&&console.warn(`[AdapterContributionProcessor] Adapter "${n}" declares providers [${o.join(`, `)}] but no active extension registers them. These providers will be unavailable until their extensions are loaded.`),a}function mt(e,t,n,r){let a=i.parse(e),o=new Set(a.scrubEnvVars);gt(t.authMethods??[],o);for(let e of n)gt(e.authMethods,o);for(let e of a.bindings)f(e,ht(e.method,t,n,r));return i.parse({bindings:a.bindings,scrubEnvVars:[...o]})}function ht(e,t,n,r){if(e.owner===`provider`){if(e.providerDefinitionId!==t.id)throw Error(`Adapter "${r}" binds provider method "${e.methodId}" to definition "${e.providerDefinitionId}" while serving "${t.id}".`);let n=(t.authMethods??[]).find(({id:t})=>t===e.methodId);if(n===void 0)throw Error(`Adapter "${r}" binds undeclared provider auth method "${t.id}/${e.methodId}".`);return n}let i=n.find(({id:t})=>t===e.clientId);if(i===void 0)throw Error(`Adapter "${r}" binds authentication method "${e.clientId}/${e.methodId}" without declaring that client.`);let a=i.authMethods.find(({id:t})=>t===e.methodId);if(a===void 0)throw Error(`Adapter "${r}" binds undeclared client auth method "${e.clientId}/${e.methodId}".`);return a}function gt(e,t){for(let n of e)if(n.mode===`explicit`)for(let e of n.fields)for(let n of e.sourceHints)t.add(n.variable)}async function _t(e,t,n,r){return Promise.all(n.map(async n=>{let i=n.definition.id;try{let t=r.get(i);if(t===void 0){let a=await e.requestOptional(ue.getProviderModels,{providerId:i});t=a.handled?a.data.models:n.definition.availableModels??[],r.set(i,t)}return{...n,definition:{...n.definition,availableModels:dt(t)}}}catch(e){return ft(e)||console.warn(`[AdapterContributionProcessor] Failed to populate available models for provider "${i}" on adapter "${t}". Falling back to declared provider models.`,e),{...n,definition:{...n.definition,availableModels:dt(n.definition.availableModels??[])}}}}))}async function vt(e,t,n,r){let i=await pt(t,e.providerRefs,e.name,{...e.providerConfigSchema!==void 0&&{adapterConfigSchema:e.providerConfigSchema},...e.clientDefinitions!==void 0&&{clientDefinitions:e.clientDefinitions},...r!==void 0&&{providerDefinitionCache:r}});return _t(t,e.name,i,n)}function yt(e){let t=new Set;for(let n of e){if(typeof n==`string`){(n===`anthropic`||n===`openai`)&&t.add(n);continue}n.anthropic!==void 0&&t.add(`anthropic`),n.openai!==void 0&&t.add(`openai`)}return[...t]}function bt(e,t,n){let r=yt(n);if(t!==void 0){if(!r.includes(t))throw Error(`Adapter "${e}" definition protocol "${t}" must be declared in manifest.protocols [${r.join(`, `)}].`);return t}return r.length===1?r[0]:void 0}var xt=class{configStore;registry;coordinator;machineId;platformDefaults;prepareAuthRuntime;constructor(e){this.configStore=e.configStore,this.registry=e.registry,this.coordinator=e.coordinator,this.machineId=e.machineId,this.platformDefaults=e.platformDefaults,this.prepareAuthRuntime=e.prepareAuthRuntime}register(e){let t={filter:J,processActivated:async(e,t,n)=>{await this.onPackageActivated(e,t,n)},processStopped:async e=>{await this.onPackageStopped(e)}};e(this.coordinator.registerContributionProcessor(t))}async onPackageActivated(e,t,n){let r=t.adapters??[],i=[],a=[],o=new Map,s=await n.bus.request(y.contributions.catalog,{}),c=new Map;for(let e of s.providers)c.set(e.definition.id,e);for(let n of t.providers??[])c.set(n.id,{packageName:e,definition:n});let l=s.clients,u=this.coordinator.getLoadedProviderDefinitionIds();try{for(let t of r){let r=await this.activateAdapterContribution(e,t,n.bus,o,c,l,u);i.push(t.definition.name),a.push(r)}}catch(t){let n=!1;for(let e of i.reverse())try{await this.registry.deregisterAdapter(e)}catch(t){n=!0,console.error(`[AdapterContributionProcessor] Rollback error for adapter "${e}":`,t)}throw n||this.registry.removePackageTracking(e),t}await this.publishActivatedAdapters(a);let d=await this.initializeAdaptersWaitingForProviders(n.bus,o,c,u);await this.publishActivatedAdapters(d)}async processAdapterContribution(e,t,n=v){let r=this.coordinator.getLoadedProviderDefinitionIds(),i=await this.activateAdapterContribution(e,t,n,new Map,void 0,void 0,r);await this.publishActivatedAdapters([i])}async activateAdapterContribution(e,t,n,r,i,a,o){let s=await this.buildLoadedAdapter(e,t,n,r,i,a),c=!1;try{await this.ensureAdapterConfig(s);let t=this.configStore.isAdapterEnabled(s.name);t&&await this.validateEnabledAdapterClientRefs(s,n,a),this.registry.registerAdapter(s,e),c=!0,t&&(this.getMissingProviderDefinitionIds(s,o).length>0?console.info(`[AdapterContributionProcessor] Deferring adapter "${s.name}" initialization until declared providers are active.`):(await this.registry.initializeAdapter(s,this.platformDefaults),console.info(`[AdapterContributionProcessor] Initialized adapter: ${s.name} (${s.packageName})`)))}catch(e){if(c)try{await this.registry.deregisterAdapter(s.name)}catch(e){console.error(`[AdapterContributionProcessor] Rollback error for adapter "${s.name}":`,e)}throw e}return s}async initializeAdaptersWaitingForProviders(e,t,n,r){let i=[];for(let a of this.registry.getLoadedAdapters()){let o;try{if(!this.configStore.isAdapterEnabled(a.name))continue;let s=a;if(this.getMissingProviderDefinitionIds(a,r).length>0){let i=await vt(a,e,t,n),c=this.registry.updateAdapterProviders(a.name,i);if(!c||this.getMissingProviderDefinitionIds(c,r).length>0)continue;s=c,o=c}if(this.registry.hasAdapterInstance(s)){if(s===a)continue;await this.registry.restartAdapterInstance(s,this.platformDefaults)}else await this.registry.initializeAdapter(s,this.platformDefaults);console.info(`[AdapterContributionProcessor] Initialized adapter: ${s.name} (${s.packageName}) after provider activation`),i.push(s)}catch(e){console.error(`[AdapterContributionProcessor] Deferred initialization failed for adapter "${a.name}".`,e),o&&i.push(o)}}return i}getMissingProviderDefinitionIds(e,t){let n=new Set(e.providers.map(e=>e.definition.id));return e.providerDefinitionIds.filter(e=>!n.has(e)&&t.has(e))}async validateEnabledAdapterClientRefs(e,t,n){if(e.clients===void 0||e.clients.length===0)return;let r=n??(await t.request(y.contributions.catalog,{})).clients;await V(e.name,e.clients,r,t)}async buildLoadedAdapter(e,t,n=v,r=new Map,i,a){let o=t.definition,s=t.manifest,c=o.name,l=a??(await n.request(y.contributions.catalog,{})).clients;await V(c,s.clients,l,n,{checkBinaryVersions:!1});let u=Ae(s.clients,l),d=await _t(n,c,await pt(n,o.providers,c,{...o.providerConfigSchema!==void 0&&{adapterConfigSchema:o.providerConfigSchema},...u!==void 0&&{clientDefinitions:u},...i!==void 0&&{providerDefinitionCache:i}}),r);return{name:c,displayName:o.displayName??s.displayName,description:o.description,packageName:e,factory:o.createAdapter,options:{adapterId:C(this.machineId,c),...this.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:this.prepareAuthRuntime}},adapterConfigSchema:o.adapterConfigSchema,providerDefinitionIds:o.providers.map(e=>e.definitionId),providerRefs:[...o.providers],providers:d,providerConfigSchema:o.providerConfigSchema,helpLinks:o.helpLinks,instructions:o.instructions,defaultPresetId:o.defaultPresetId,clients:ke(s.clients),...u!==void 0&&{clientDefinitions:u},protocol:bt(c,o.protocol,s.protocols)}}async ensureAdapterConfig(e){this.configStore.getAdapterConfig(e.name)||await this.configStore.setAdapterConfig(e.name,{displayName:e.displayName,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:B(e.options,e.clients),protocol:e.protocol,providerDefinitionIds:[...e.providerDefinitionIds],enabled:!1})}async onPackageStopped(e){await this.registry.deregisterPackage(e);let t=await this.registry.removeProviderPackage(e,this.platformDefaults);await this.publishActivatedAdapters(t)}publishAdapterRegistered(e){let t=this.configStore.isAdapterEnabled(e.name),n=this.registry.resolveLoadedAdapterId(e);return this.registry.publishAdapterRegistered({adapterName:e.name,displayName:e.displayName,packageName:e.packageName,enabled:t,adapterId:n,providerDefinitionIds:e.providerDefinitionIds})}async publishActivatedAdapters(e){for(let t of e)try{await this.publishAdapterRegistered(t)}catch(e){console.error(`[AdapterContributionProcessor] Failed to publish adapter "${t.name}" registration:`,e)}}};async function St(e,t,n){let r=new Map,i=new Map;for(let a of[...t].sort((e,t)=>e.name.localeCompare(t.name)))for(let t of a.providers.filter(({definition:e})=>e.id===n))for(let o of t.auth?.bindings??[]){let s=await wt(e,a,t,o.method,i);ne(o,s);let c=Ot(n,o.method),l=Et(n,o.method,s),u=r.get(c);if(u){if(!Ct(u.option,l))throw Error(`Authentication method ${c} has conflicting definitions across compatible adapters "${[...u.adapterNames].join(`, `)}" and "${a.name}".`);u.adapterNames.add(a.name);continue}r.set(c,{option:l,adapterNames:new Set([a.name])})}return[...r.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([,{option:e,adapterNames:t}])=>Dt(e,[...t].sort((e,t)=>e.localeCompare(t))))}function Ct(t,n){return e(t,n)}async function wt(e,t,n,r,i){if(r.owner===`provider`){if(r.providerDefinitionId!==n.definition.id)throw Error(`Adapter "${t.name}" binds provider method "${r.methodId}" to the wrong definition ("${r.providerDefinitionId}" instead of "${n.definition.id}").`);let e=(n.definition.authMethods??[]).find(({id:e})=>e===r.methodId);if(!e)throw Error(`Adapter "${t.name}" binds undeclared provider auth method "${n.definition.id}/${r.methodId}".`);return e}if(!(t.clients??[]).some(({id:e})=>e===r.clientId))throw Error(`Adapter "${t.name}" binds auth method "${r.clientId}/${r.methodId}" without declaring that client.`);let a=i.get(r.clientId);a||(a=Tt(e,r.clientId),i.set(r.clientId,a));let o=(await a).authMethods.find(({id:e})=>e===r.methodId);if(!o)throw Error(`Adapter "${t.name}" binds undeclared client auth method "${r.clientId}/${r.methodId}".`);return o}async function Tt(e,t){let{client:n}=await e.request(w.get,{id:t});if(!n)throw Error(`Authentication binding references missing client definition "${t}".`);return n}function Et(e,t,n){let r={definitionId:e,method:{...t},label:n.label,...n.description?{description:n.description}:{}};switch(n.mode){case`explicit`:return{...r,mode:`explicit`,fields:n.fields.map(e=>({...e,sourceHints:e.sourceHints.map(e=>({...e}))})),portability:`portable`};case`inferred`:if(t.owner!==`client`)throw Error(`Inferred auth method "${n.id}" must be client-owned.`);return{...r,method:{...t},mode:`inferred`,fields:[],portability:`local-only`};case`none`:return{...r,mode:`none`,fields:[],portability:`portable`}}}function Dt(e,t){switch(e.mode){case`explicit`:return{...e,compatibleAdapterNames:t};case`inferred`:return{...e,compatibleAdapterNames:t};case`none`:return{...e,compatibleAdapterNames:t}}}function Ot(e,t){return JSON.stringify(t.owner===`provider`?[e,t.owner,t.providerDefinitionId,t.methodId]:[e,t.owner,t.clientId,t.methodId])}function kt(e,t,n=-100){let r=e.on(T.get,async n=>{let r=(await Y(e,t())).get(n.payload.id)??null;n.setResult({provider:r})},{priority:n}),i=e.on(T.list,async n=>{n.setResult({providers:[...(await Y(e,t())).values()]})},{priority:n}),a=e.on(T.listByProtocol,async n=>{let r=[...(await Y(e,t())).values()].filter(e=>e.endpoints!==void 0&&n.payload.protocol in e.endpoints);n.setResult({providers:r})},{priority:n});return()=>{r(),i(),a()}}async function Y(e,t){let n=new Map,r=new Set;for(let e of t){for(let t of e.providerDefinitionIds)r.add(t);for(let t of e.providers)At(n,t.providerPackageName,t.definition)}let i=[...r].filter(e=>!n.has(e));if(i.length>0){let t=await e.request(y.contributions.catalog,{});for(let e of t.providers)i.includes(e.definition.id)&&At(n,e.packageName,e.definition)}return n}function At(e,t,n){let r=l.parse(n);e.has(r.id)||e.set(r.id,{id:r.id,packageName:t,name:r.name,...r.description===void 0?{}:{description:r.description},...r.endpoints===void 0?{}:{endpoints:r.endpoints},...r.defaultModel===void 0?{}:{defaultModel:r.defaultModel},...r.fastModel===void 0?{}:{fastModel:r.fastModel},availableModels:r.availableModels,defaultModelFilterMode:r.defaultModelFilterMode??`show-all`,authMethods:r.authMethods,...r.capabilities===void 0?{}:{capabilities:r.capabilities},enabled:!0,createdAt:0,updatedAt:0})}function jt(e,t,n=-100){let r=e.on(w.get,async n=>{let r=(await X(e,t())).get(n.payload.id)??null;n.setResult({client:r})},{priority:n}),i=e.on(w.list,async n=>{n.setResult({clients:[...(await X(e,t())).values()]})},{priority:n}),a=e.on(w.listByBinaryName,async n=>{let r=[...(await X(e,t())).values()].filter(e=>e.binary?.name===n.payload.binaryName);n.setResult({clients:r})},{priority:n});return()=>{r(),i(),a()}}async function X(e,t){let n=new Set(t.flatMap(e=>e.clients?.map(({id:e})=>e)??[]));if(n.size===0)return new Map;let r=await e.request(y.contributions.catalog,{}),i=new Map;for(let e of r.clients){if(!n.has(e.definition.id))continue;let t=s.parse(e.definition);i.set(t.id,Mt(e.packageName,t))}return i}function Mt(e,t){return{id:t.id,packageName:e,name:t.name,...t.description===void 0?{}:{description:t.description},...t.binary===void 0?{}:{binary:structuredClone(t.binary)},nativeTools:structuredClone(t.nativeTools),defaultApprovalPolicy:t.defaultApprovalPolicy,...t.logSources===void 0?{}:{logSources:structuredClone(t.logSources)},authMethods:structuredClone(t.authMethods),...t.defaultAuth===void 0?{}:{defaultAuth:{...t.defaultAuth}},enabled:!0,createdAt:0,updatedAt:0}}function Nt(e,t){let n=e.providerRefs.filter(e=>e.definitionId===t),r=e.providers.filter(e=>e.definition.id===t),i=n[0],a=r[0];return n.length===1&&r.length===1&&i!==void 0&&a!==void 0?{ref:i,provider:a}:null}function Pt(e,t){return t===void 0||e.clients?.some(e=>e.id===t)===!0}function Ft(e,t){return e?.bindings.some(e=>Rt(e.method,t))===!0}function It(e,t,n,r){return e.trim().length>0&&t.trim().length>0&&(n===void 0||(r?.trim().length??0)>0)}async function Lt(e){if(e.snapshot===null)return{status:`error`,code:`provider-config-not-found`};if(e.adapter===void 0)return{status:`error`,code:`adapter-not-loaded`};if(!e.isBound)return{status:`error`,code:`adapter-not-bound`};let t=e.snapshot.context.definitionId,n=Nt(e.adapter,t);if(n===null)return{status:`error`,code:`provider-incompatible`};let{provider:r}=n,i=r.auth,a=e.snapshot.context.auth.method;if(!Ft(i,a))return{status:`error`,code:`auth-binding-missing`};let o=a.owner===`client`?a.clientId:B(e.adapter.options,e.adapter.clients);if(!Pt(e.adapter,o))return{status:`error`,code:`client-incompatible`};let s=await e.bus.request(y.contributions.catalog,{}),c=o===void 0?[]:s.clients.filter(e=>e.definition.id===o);if(o!==void 0&&c.length!==1)return{status:`error`,code:`client-incompatible`};let l=c[0]?.packageName;if(!It(e.adapter.packageName,r.providerPackageName,o,l))return{status:`error`,code:`runtime-package-metadata-missing`};let u=e.adapter.providers.flatMap(e=>e.definition.id!==t&&e.auth!==void 0?[e.auth]:[]),d=o!==void 0&&l!==void 0?{packageName:l,clientId:o}:void 0;return{status:`resolved`,runtime:{snapshot:e.snapshot,adapterName:e.adapter.name,...o!==void 0&&{adapterClientId:o},...r.protocol!==void 0&&{providerProtocol:r.protocol},adapterProviderAuth:i,compatibleProviderAuths:u,runtimePackages:{adapter:{packageName:e.adapter.packageName},provider:{packageName:r.providerPackageName,definitionId:t},...d!==void 0&&{client:d}}}}}function Rt(e,t){return e.owner!==t.owner||e.methodId!==t.methodId?!1:e.owner===`provider`?t.owner===`provider`&&e.providerDefinitionId===t.providerDefinitionId:t.owner===`client`&&e.clientId===t.clientId}var zt=class extends ee{configStore;registry;providerConfigService;bindingService;contributionProcessor;runtimeSnapshotHandlerPriority;runtimeDefinitionHandlerPriority;resolveOwnerInstanceId;constructor(e){super(e.bus),this.configStore=new Oe({configRepository:e.configRepository,bus:e.bus}),this.registry=new at({bus:e.bus,machineId:e.machineId,...e.resolveOwnerInstanceId!==void 0&&{resolveOwnerInstanceId:e.resolveOwnerInstanceId}}),this.providerConfigService=new st({configStore:this.configStore,bus:e.bus}),this.bindingService=new ct({configStore:this.configStore,bus:e.bus}),this.contributionProcessor=new xt({configStore:this.configStore,registry:this.registry,coordinator:e.coordinator,machineId:e.machineId,platformDefaults:e.platformDefaults,...e.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:e.prepareAuthRuntime}}),this.runtimeSnapshotHandlerPriority=e.runtimeSnapshotHandlerPriority??0,this.runtimeDefinitionHandlerPriority=e.runtimeDefinitionHandlerPriority??-100,this.resolveOwnerInstanceId=e.resolveOwnerInstanceId}async onInit(){await this.configStore.loadSnapshot(),this.configStore.registerListeners(e=>this.addHandlerCleanup(e)),this.registerBusHandlers(),await this.bus.emit(O.ready,{})}registerBusHandlers(){this.addHandlerCleanup(kt(this.bus,()=>this.registry.getLoadedAdapters(),this.runtimeDefinitionHandlerPriority)),this.addHandlerCleanup(jt(this.bus,()=>this.registry.getLoadedAdapters(),this.runtimeDefinitionHandlerPriority)),this.registerReadHandlers(),this.registerMutationHandlers()}registerReadHandlers(){this.registerConfigReadHandlers(),this.registerRuntimeReadHandlers()}registerConfigReadHandlers(){this.registerHandler(O.getAdapterConfig,e=>{e.setResult({config:this.configStore.getAdapterConfig(e.payload.name)})}),this.registerHandler(O.listAdapterConfigs,e=>{e.setResult({configs:this.configStore.listAdapterConfigs()})}),this.registerHandler(O.getProviderConfig,e=>{e.setResult({config:this.configStore.getProviderConfig(e.payload.id)})}),this.registerHandler(O.listProviderConfigs,e=>{e.setResult({configs:this.configStore.listProviderConfigs(e.payload.enabled)})}),this.registerHandler(O.listProviderConfigsByDefinition,e=>{e.setResult({configs:this.configStore.listProviderConfigsByDefinition(e.payload.definitionId)})}),this.registerHandler(O.listBindings,e=>{e.setResult({bindings:this.configStore.listBindings(e.payload.adapterName)})}),this.registerHandler(O.listBindingsByConfig,e=>{e.setResult({bindings:this.configStore.listBindingsByConfig(e.payload.providerConfigId)})}),this.registerHandler(O.getDefaultBinding,e=>{e.setResult({binding:this.configStore.getDefaultBinding(e.payload.adapterName)})}),this.registerHandler(O.findConfigForDefinitionAndAdapter,e=>{e.setResult({config:this.configStore.findConfigForDefinitionAndAdapter(e.payload.definitionId,e.payload.adapterName)})})}registerRuntimeReadHandlers(){this.registerHandler(O.resolveProviderRuntimeSnapshot,async e=>{e.setResult({snapshot:await this.configStore.resolveProviderRuntimeSnapshot(e.payload.providerConfigId)})},{priority:this.runtimeSnapshotHandlerPriority}),this.registerHandler(O.resolveAdapterRuntimeSnapshot,async e=>{let t=this.registry.getLoadedAdapters().find(t=>t.name===e.payload.adapterName);try{let n=await this.configStore.resolveBoundProviderRuntimeSnapshot(e.payload.adapterName,e.payload.providerConfigId);e.setResult(await Lt({bus:this.bus,adapter:t,snapshot:n.snapshot,isBound:n.isBound}))}catch(t){if(t instanceof I&&t.code===`provider-config-disabled`){e.setResult({status:`error`,code:`provider-config-disabled`});return}throw t}},{priority:this.runtimeSnapshotHandlerPriority}),this.registerHandler(O.listAdapters,async e=>{e.setResult({adapters:await this.configStore.buildEffectiveAdapters()})}),this.registerHandler(O.getProviderDefinitionsByAdapter,async e=>{let t=this.registry.getLoadedAdapters().find(t=>t.name===e.payload.adapterName),n=new Map((t?.providers??[]).map(e=>[e.definition.id,e.definition])),r=(t?.providerDefinitionIds??[]).filter(e=>!n.has(e));if(r.length>0){let e=await this.bus.request(y.contributions.catalog,{});for(let t of e.providers)r.includes(t.definition.id)&&n.set(t.definition.id,t.definition)}let i=(t?.providerDefinitionIds??[]).flatMap(e=>{let t=n.get(e);return t===void 0?[]:[l.parse(t)]});e.setResult({definitions:i})}),this.registerHandler(O.listCompatibleAuthOptions,async e=>{e.setResult({options:await St(this.bus,this.registry.getLoadedAdapters(),e.payload.definitionId)})}),this.registerHandler(O.ensureReady,e=>{e.setResult({ready:!0})})}registerMutationHandlers(){this.registerHandler(O.createProviderConfig,async e=>{e.setResult(await this.providerConfigService.createProviderConfig(e.payload))}),this.registerHandler(O.updateProviderConfig,async e=>{e.setResult(await this.providerConfigService.updateProviderConfig(e.payload.id,e.payload.patch))}),this.registerHandler(O.setProviderConfigAuth,async e=>{e.setResult(await this.providerConfigService.setProviderConfigAuth(e.payload.id,e.payload.auth))}),this.registerHandler(O.deleteProviderConfig,async e=>{e.setResult(await this.providerConfigService.deleteProviderConfig(e.payload.id))}),this.registerHandler(O.setDefaultProviderConfig,async e=>{e.setResult(await this.providerConfigService.setDefaultProviderConfig(e.payload.id))}),this.registerHandler(O.setModelFilterMode,async e=>{e.setResult(await this.providerConfigService.setModelFilterMode(e.payload.id,e.payload.modelFilterMode,e.payload.preferredModel))}),this.registerHandler(O.setAdapterConfig,async e=>{e.setResult(await this.configStore.setAdapterConfig(e.payload.name,e.payload.patch))}),this.registerHandler(O.setAdapterEnabled,async e=>{await this.configStore.setAdapterEnabled(e.payload.name,e.payload.enabled),e.setResult({success:!0})}),this.registerHandler(O.bind,async e=>{e.setResult({binding:await this.bindingService.bind(e.payload.adapterName,e.payload.providerConfigId)})}),this.registerHandler(O.unbind,async e=>{await this.bindingService.unbind(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})}),this.registerHandler(O.setDefaultBinding,async e=>{await this.bindingService.setDefaultBinding(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})})}async onDestroy(){let e=await this.registry.shutdownAll();await this.bus.emit(se.teardownCompleted,{ownerInstanceId:this.resolveOwnerInstanceId?.()??null,evidence:e.evidence,...e.detail!==void 0&&{detail:e.detail}}),g(e.evidence)||console.warn(`[AdapterSubsystemService] Adapter instance shutdown reported "${e.evidence}": ${e.detail??`no detail reported.`}`),this.configStore.clear()}getLoadedAdapters(){return this.registry.getLoadedAdapters()}getAdapterInstances(){return this.registry.getAdapterInstances()}resolveLiveAdapterId(e){return this.registry.resolveLiveAdapterId(e)}resolveLiveAdapterIdentity(e){return this.registry.resolveLiveAdapterIdentity(e)}getLiveAdapterIdentities(){return this.registry.getLiveAdapterIdentities()}getSettingsAvailableAdapters(){return this.registry.getSettingsAvailableAdapters()}async processAdapterContributions(e,t,n){await this.contributionProcessor.onPackageActivated(e,t,n)}async stopAdapterContributions(e){await this.contributionProcessor.onPackageStopped(e)}},Z=class extends Error{code;source;constructor(e,t,n){super(`Provider config "${t}" cannot be loaded: ${n}`),this.name=`ProviderConfigDiagnosticError`,this.code=e,this.source=t}};const Q=`.json`;var Bt=class{providerConfigsDir;adaptersDir;constructor(e){this.providerConfigsDir=e.providerConfigsDir,this.adaptersDir=e.adaptersDir}async loadAdapterConfigs(){let e=new Map,t=await this.readJsonFiles(this.adaptersDir,`adapter`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`adapter`,n.filePath);if(!t)continue;let r=b.safeParse(n.jsonData);if(!r.success){this.warnSkippedFile(`adapter`,n.filePath,`invalid-adapter-config`,Vt(r.error));continue}e.set(t,r.data)}return{configs:e}}async loadProviderConfigs(){let e=new Map,t=await this.readJsonFiles(this.providerConfigsDir,`provider config`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`provider config`,n.filePath);if(t)try{e.set(t,this.parseProviderConfig(n.jsonData,t))}catch(e){if(e instanceof Z){this.warnSkippedFile(`provider config`,n.filePath,e.code,e.message);continue}throw e}}return{configs:e}}async writeProviderConfig(e,t){let r=this.assertCanonicalFileStem(e,`provider config id`),i=n.join(this.providerConfigsDir,`${r}${Q}`),a=this.parseProviderConfig(t,r);await this.writeJsonFile(i,a)}async deleteProviderConfig(e){let t=this.assertCanonicalFileStem(e,`provider config id`);try{return await this.unlinkFile(n.join(this.providerConfigsDir,`${t}${Q}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async writeAdapterFile(e,t){let r=this.assertCanonicalFileStem(e,`adapter name`),i=b.parse(t);await this.writeJsonFile(n.join(this.adaptersDir,`${r}${Q}`),i)}async deleteAdapterFile(e){let t=this.assertCanonicalFileStem(e,`adapter name`);try{return await this.unlinkFile(n.join(this.adaptersDir,`${t}${Q}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async readJsonFiles(e,r){try{let i=(await t.readdir(e,{withFileTypes:!0})).filter(e=>e.isFile()&&n.extname(e.name)===Q).sort((e,t)=>e.name.localeCompare(t.name));return(await Promise.all(i.map(async i=>{let a=n.join(e,i.name);try{let e=await t.readFile(a,`utf-8`);return{filePath:a,stem:n.parse(i.name).name,jsonData:JSON.parse(e)}}catch(e){let t,n;return e instanceof SyntaxError?(t=`invalid-json`,n=`file does not contain valid JSON.`):(t=`unreadable`,n=e instanceof Error?e.message:String(e)),this.warnSkippedFile(r,a,t,n),null}}))).filter(e=>e!==null)}catch(e){if(e.code===`ENOENT`)return[];throw e}}warnSkippedFile(e,t,n,r){console.warn(`[FileAdapterConfigRepository] Skipping invalid %s file (%s): %s — %s`,e,n,t,r)}parseProviderConfig(e,t){let n=typeof e==`object`&&e?e:void 0,r=n?.$schema,i=[`credentials`,`isSentinel`].filter(e=>Object.hasOwn(n??{},e));if(r===`makaio/provider-config/v1`||i.length>0)throw new Z(`legacy-provider-config`,t,`${[...r===`makaio/provider-config/v1`?[`schema v1`]:[],...i.length>0?[`legacy fields ${i.join(`, `)}`]:[]].join(` and `)} use retired authentication semantics. Recreate this config with an explicit normalized authentication method.`);if(r!==x)throw new Z(`unsupported-provider-config-version`,t,`expected $schema "${x}". Recreate the config with the current schema.`);let a=ie.safeParse(e);if(!a.success)throw new Z(`invalid-provider-config`,t,Vt(a.error));return a.data}getCanonicalLoadedStem(e,t,n){try{return this.assertCanonicalFileStem(e,`${t} file stem`)}catch(e){let r=e instanceof Error?e.message:String(e);return this.warnSkippedFile(t,n,`invalid-file-name`,r),null}}async writeJsonFile(e,i){let a=n.dirname(e),o=n.join(a,`.${n.basename(e)}.${r()}.tmp`);await t.mkdir(a,{recursive:!0});try{await t.writeFile(o,`${JSON.stringify(i,null,2)}\n`,{encoding:`utf-8`,mode:384}),await this.replaceFile(o,e)}catch(e){throw await this.removeFileIfPresent(o),e}}async replaceFile(e,t){try{await this.renameFile(e,t);return}catch(e){let t=e;if(![`EEXIST`,`EPERM`,`EACCES`].includes(t.code??``))throw e}let n=`${t}.${r()}.bak`,i=!1;try{await this.renameFile(t,n),i=!0}catch(e){if(e.code!==`ENOENT`)throw e}try{await this.renameFile(e,t)}catch(e){throw i&&await this.renameFile(n,t).catch(()=>void 0),e}i&&await this.removeFileIfPresent(n)}async renameFile(e,n){await t.rename(e,n)}async unlinkFile(e){await t.unlink(e)}async removeFileIfPresent(e){try{await t.unlink(e)}catch(t){t.code!==`ENOENT`&&console.warn(`[FileAdapterConfigRepository] Failed to remove temp file: %s`,e,t)}}assertCanonicalFileStem(e,t){let r=e.trim(),i=n.basename(r);if(!r||e!==r||r!==i||!/^[a-z0-9._-]+$/.test(r)||r.includes(`/`)||r.includes(`\\`)||r.toLowerCase().endsWith(`.json`)||r===`.`||r===`..`)throw Error(`Invalid canonical ${t}: ${e}`);return r}};function Vt(e){return e.issues.map(e=>`${e.path.length>0?e.path.join(`.`):`<root>`}: ${e.message}`).join(`; `)}const $=m(D);function Ht(e){return{name:$.name,displayName:`Adapter Subsystem`,version:`0.1.0`,provides:[`adapters`],dependencies:[p(E.name)],critical:!0,create:t=>{let n=t.getService(E);if(n===void 0)throw Error(`Adapter subsystem requires the active session ownership authority`);return new zt({bus:t.bus,configRepository:e.configRepository,coordinator:e.coordinator,machineId:t.machineId,resolveOwnerInstanceId:()=>n.requireOwnershipInstanceId(),platformDefaults:e.platformDefaults,...e.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:e.prepareAuthRuntime},...e.runtimeSnapshotHandlerPriority!==void 0&&{runtimeSnapshotHandlerPriority:e.runtimeSnapshotHandlerPriority},...e.runtimeDefinitionHandlerPriority!==void 0&&{runtimeDefinitionHandlerPriority:e.runtimeDefinitionHandlerPriority}})}}}export{H as AdapterInstanceCloseTimeoutError,zt as AdapterSubsystemService,$ as AdapterSubsystemToken,Bt as FileAdapterConfigRepository,P as ProviderConfigAuthValidationError,Z as ProviderConfigDiagnosticError,I as ProviderRuntimeContextError,W as aggregateAdapterInstanceTeardowns,N as assertProviderConfigAuthDefinitionsEnabled,U as classifyAdapterInstanceClose,J as contributesToAdapterSubsystem,ut as createAdapterSubsystemContributionProcessor,Ht as createAdapterSubsystemPackage,We as ensureAdapterConfigs,Me as extractAdapterIdFromPackageName,lt as orderAfterAdapterSubsystem,Ie as shutdownAdapterInstances,Ne as toAvailableAdapter,F as validateProviderConfigAuth};
@@ -4993,16 +4993,16 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
4993
4993
  adapterId: z.ZodString;
4994
4994
  agentId: z.ZodString;
4995
4995
  oldState: z.ZodEnum<{
4996
- idle: "idle";
4997
4996
  paused: "paused";
4997
+ idle: "idle";
4998
4998
  turn_started: "turn_started";
4999
4999
  step_started: "step_started";
5000
5000
  step_finished: "step_finished";
5001
5001
  turn_finished: "turn_finished";
5002
5002
  }>;
5003
5003
  newState: z.ZodEnum<{
5004
- idle: "idle";
5005
5004
  paused: "paused";
5005
+ idle: "idle";
5006
5006
  turn_started: "turn_started";
5007
5007
  step_started: "step_started";
5008
5008
  step_finished: "step_finished";
@@ -5014,16 +5014,16 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
5014
5014
  adapterId: z.ZodString;
5015
5015
  agentId: z.ZodString;
5016
5016
  oldState: z.ZodEnum<{
5017
- idle: "idle";
5018
5017
  paused: "paused";
5018
+ idle: "idle";
5019
5019
  turn_started: "turn_started";
5020
5020
  step_started: "step_started";
5021
5021
  step_finished: "step_finished";
5022
5022
  turn_finished: "turn_finished";
5023
5023
  }>;
5024
5024
  newState: z.ZodEnum<{
5025
- idle: "idle";
5026
5025
  paused: "paused";
5026
+ idle: "idle";
5027
5027
  turn_started: "turn_started";
5028
5028
  step_started: "step_started";
5029
5029
  step_finished: "step_finished";
@@ -5035,16 +5035,16 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
5035
5035
  adapterId: z.ZodString;
5036
5036
  agentId: z.ZodString;
5037
5037
  oldState: z.ZodEnum<{
5038
- idle: "idle";
5039
5038
  paused: "paused";
5039
+ idle: "idle";
5040
5040
  turn_started: "turn_started";
5041
5041
  step_started: "step_started";
5042
5042
  step_finished: "step_finished";
5043
5043
  turn_finished: "turn_finished";
5044
5044
  }>;
5045
5045
  newState: z.ZodEnum<{
5046
- idle: "idle";
5047
5046
  paused: "paused";
5047
+ idle: "idle";
5048
5048
  turn_started: "turn_started";
5049
5049
  step_started: "step_started";
5050
5050
  step_finished: "step_finished";
@@ -5056,16 +5056,16 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
5056
5056
  adapterId: z.ZodString;
5057
5057
  agentId: z.ZodString;
5058
5058
  oldState: z.ZodEnum<{
5059
- idle: "idle";
5060
5059
  paused: "paused";
5060
+ idle: "idle";
5061
5061
  turn_started: "turn_started";
5062
5062
  step_started: "step_started";
5063
5063
  step_finished: "step_finished";
5064
5064
  turn_finished: "turn_finished";
5065
5065
  }>;
5066
5066
  newState: z.ZodEnum<{
5067
- idle: "idle";
5068
5067
  paused: "paused";
5068
+ idle: "idle";
5069
5069
  turn_started: "turn_started";
5070
5070
  step_started: "step_started";
5071
5071
  step_finished: "step_finished";
@@ -5077,16 +5077,16 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
5077
5077
  adapterId: z.ZodString;
5078
5078
  agentId: z.ZodString;
5079
5079
  oldState: z.ZodEnum<{
5080
- idle: "idle";
5081
5080
  paused: "paused";
5081
+ idle: "idle";
5082
5082
  turn_started: "turn_started";
5083
5083
  step_started: "step_started";
5084
5084
  step_finished: "step_finished";
5085
5085
  turn_finished: "turn_finished";
5086
5086
  }>;
5087
5087
  newState: z.ZodEnum<{
5088
- idle: "idle";
5089
5088
  paused: "paused";
5089
+ idle: "idle";
5090
5090
  turn_started: "turn_started";
5091
5091
  step_started: "step_started";
5092
5092
  step_finished: "step_finished";
@@ -5098,16 +5098,16 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
5098
5098
  adapterId: z.ZodString;
5099
5099
  agentId: z.ZodString;
5100
5100
  oldState: z.ZodEnum<{
5101
- idle: "idle";
5102
5101
  paused: "paused";
5102
+ idle: "idle";
5103
5103
  turn_started: "turn_started";
5104
5104
  step_started: "step_started";
5105
5105
  step_finished: "step_finished";
5106
5106
  turn_finished: "turn_finished";
5107
5107
  }>;
5108
5108
  newState: z.ZodEnum<{
5109
- idle: "idle";
5110
5109
  paused: "paused";
5110
+ idle: "idle";
5111
5111
  turn_started: "turn_started";
5112
5112
  step_started: "step_started";
5113
5113
  step_finished: "step_finished";
@@ -7620,16 +7620,16 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
7620
7620
  adapterId: z.ZodString;
7621
7621
  agentId: z.ZodString;
7622
7622
  oldState: z.ZodEnum<{
7623
- idle: "idle";
7624
7623
  paused: "paused";
7624
+ idle: "idle";
7625
7625
  turn_started: "turn_started";
7626
7626
  step_started: "step_started";
7627
7627
  step_finished: "step_finished";
7628
7628
  turn_finished: "turn_finished";
7629
7629
  }>;
7630
7630
  newState: z.ZodEnum<{
7631
- idle: "idle";
7632
7631
  paused: "paused";
7632
+ idle: "idle";
7633
7633
  turn_started: "turn_started";
7634
7634
  step_started: "step_started";
7635
7635
  step_finished: "step_finished";
@@ -7641,16 +7641,16 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
7641
7641
  adapterId: z.ZodString;
7642
7642
  agentId: z.ZodString;
7643
7643
  oldState: z.ZodEnum<{
7644
- idle: "idle";
7645
7644
  paused: "paused";
7645
+ idle: "idle";
7646
7646
  turn_started: "turn_started";
7647
7647
  step_started: "step_started";
7648
7648
  step_finished: "step_finished";
7649
7649
  turn_finished: "turn_finished";
7650
7650
  }>;
7651
7651
  newState: z.ZodEnum<{
7652
- idle: "idle";
7653
7652
  paused: "paused";
7653
+ idle: "idle";
7654
7654
  turn_started: "turn_started";
7655
7655
  step_started: "step_started";
7656
7656
  step_finished: "step_finished";
@@ -7662,16 +7662,16 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
7662
7662
  adapterId: z.ZodString;
7663
7663
  agentId: z.ZodString;
7664
7664
  oldState: z.ZodEnum<{
7665
- idle: "idle";
7666
7665
  paused: "paused";
7666
+ idle: "idle";
7667
7667
  turn_started: "turn_started";
7668
7668
  step_started: "step_started";
7669
7669
  step_finished: "step_finished";
7670
7670
  turn_finished: "turn_finished";
7671
7671
  }>;
7672
7672
  newState: z.ZodEnum<{
7673
- idle: "idle";
7674
7673
  paused: "paused";
7674
+ idle: "idle";
7675
7675
  turn_started: "turn_started";
7676
7676
  step_started: "step_started";
7677
7677
  step_finished: "step_finished";
@@ -7683,16 +7683,16 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
7683
7683
  adapterId: z.ZodString;
7684
7684
  agentId: z.ZodString;
7685
7685
  oldState: z.ZodEnum<{
7686
- idle: "idle";
7687
7686
  paused: "paused";
7687
+ idle: "idle";
7688
7688
  turn_started: "turn_started";
7689
7689
  step_started: "step_started";
7690
7690
  step_finished: "step_finished";
7691
7691
  turn_finished: "turn_finished";
7692
7692
  }>;
7693
7693
  newState: z.ZodEnum<{
7694
- idle: "idle";
7695
7694
  paused: "paused";
7695
+ idle: "idle";
7696
7696
  turn_started: "turn_started";
7697
7697
  step_started: "step_started";
7698
7698
  step_finished: "step_finished";
@@ -7704,16 +7704,16 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
7704
7704
  adapterId: z.ZodString;
7705
7705
  agentId: z.ZodString;
7706
7706
  oldState: z.ZodEnum<{
7707
- idle: "idle";
7708
7707
  paused: "paused";
7708
+ idle: "idle";
7709
7709
  turn_started: "turn_started";
7710
7710
  step_started: "step_started";
7711
7711
  step_finished: "step_finished";
7712
7712
  turn_finished: "turn_finished";
7713
7713
  }>;
7714
7714
  newState: z.ZodEnum<{
7715
- idle: "idle";
7716
7715
  paused: "paused";
7716
+ idle: "idle";
7717
7717
  turn_started: "turn_started";
7718
7718
  step_started: "step_started";
7719
7719
  step_finished: "step_finished";
@@ -7725,16 +7725,16 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
7725
7725
  adapterId: z.ZodString;
7726
7726
  agentId: z.ZodString;
7727
7727
  oldState: z.ZodEnum<{
7728
- idle: "idle";
7729
7728
  paused: "paused";
7729
+ idle: "idle";
7730
7730
  turn_started: "turn_started";
7731
7731
  step_started: "step_started";
7732
7732
  step_finished: "step_finished";
7733
7733
  turn_finished: "turn_finished";
7734
7734
  }>;
7735
7735
  newState: z.ZodEnum<{
7736
- idle: "idle";
7737
7736
  paused: "paused";
7737
+ idle: "idle";
7738
7738
  turn_started: "turn_started";
7739
7739
  step_started: "step_started";
7740
7740
  step_finished: "step_finished";
@@ -1,4 +1,4 @@
1
- import { $ as bindProviderAuth, B as PreparedAdapterAuthRuntime, G as AdapterAuthError, H as SuppliedAdapterAuthRuntime, J as BoundProviderAuthContext, K as AdapterAuthErrorReason, L as AdapterAuthLeaseHandle, Q as ResolvedConnectorAuthDelivery, R as AdapterAuthRuntimePreparer, U as applySuppliedAdapterAuthRuntime, V as ResolvedAdapterRuntimeConfig, W as prepareAdapterAuthRuntime, X as ResolvedAdapterAuth, Y as ResolveAuthCredentialRefs, Z as ResolvedAuthCredentialValues, _ as BaseAgentConnectorConfig, et as getOptionalAuthCredentialFields, q as BindProviderAuthOptions, tt as resolveBoundProviderAuth, z as BoundAdapterRuntimeConfig } from "../../types-CpEoQapk.mjs";
1
+ import { $ as bindProviderAuth, B as PreparedAdapterAuthRuntime, G as AdapterAuthError, H as SuppliedAdapterAuthRuntime, J as BoundProviderAuthContext, K as AdapterAuthErrorReason, L as AdapterAuthLeaseHandle, Q as ResolvedConnectorAuthDelivery, R as AdapterAuthRuntimePreparer, U as applySuppliedAdapterAuthRuntime, V as ResolvedAdapterRuntimeConfig, W as prepareAdapterAuthRuntime, X as ResolvedAdapterAuth, Y as ResolveAuthCredentialRefs, Z as ResolvedAuthCredentialValues, _ as BaseAgentConnectorConfig, et as getOptionalAuthCredentialFields, q as BindProviderAuthOptions, tt as resolveBoundProviderAuth, z as BoundAdapterRuntimeConfig } from "../../types-BrsmFcWl.mjs";
2
2
  import { z } from "zod";
3
3
  import { TimeoutConfig, TrackedTimeoutConfig } from "@makaio/framework/utils";
4
4
  import { AIModelSchema, AdapterProviderAuth, ProtocolId, ProviderContext, ResolvedProviderAuth } from "@makaio/framework/contracts";