@makaio/framework 1.0.0-dev-1788955549564 → 1.0.0-dev-1788966380232

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 (515) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/{2020-Bl3Yx3In.mjs → 2020-CpDjcHDh.mjs} +1 -1
  3. package/dist/{account-identity-B0NsOILM.mjs → account-identity-D00LLclm.mjs} +1 -1
  4. package/dist/{adapter-DYE_oWjj.mjs → adapter-D92pfm_b.mjs} +1 -1
  5. package/dist/{adapter-auth-runtime-BnPqQChk.mjs → adapter-auth-runtime-46Y9WKcB.mjs} +1 -1
  6. package/dist/adapter-subsystem/index.d.mts +1 -1
  7. package/dist/adapter-subsystem/index.mjs +1 -1
  8. package/dist/adapters/claude/index.d.mts +2 -2
  9. package/dist/adapters/claude/testing.mjs +1 -1
  10. package/dist/adapters/config/index.d.mts +2 -2
  11. package/dist/adapters/config/index.mjs +1 -1
  12. package/dist/adapters/index.d.mts +3 -3
  13. package/dist/adapters/index.mjs +6 -6
  14. package/dist/adapters/node.d.mts +1 -1
  15. package/dist/adapters/node.mjs +2 -2
  16. package/dist/adapters/stream-session/index.d.mts +1 -1
  17. package/dist/adapters/stream-session/index.mjs +1 -1
  18. package/dist/artifact-_pN73_7c.mjs +1 -0
  19. package/dist/{attempt-record-codec-6jpayBMY.mjs → attempt-record-codec-D2Gb_epJ.mjs} +1 -1
  20. package/dist/{auth-CeH3w2fi.mjs → auth-CB4an9bh.mjs} +1 -1
  21. package/dist/authority-state-bootstrap-DgoHPc9J.mjs +1 -0
  22. package/dist/{automation-trigger-CZfH94Fr.mjs → automation-trigger-xNDX0Am_.mjs} +1 -1
  23. package/dist/bootstrap-start-client-rW55mDI-.mjs +1 -0
  24. package/dist/bus/index.mjs +1 -1
  25. package/dist/{caller-owned-adapter-stub-B-Sq7ZvF.mjs → caller-owned-adapter-stub-oM1G1KvC.mjs} +1 -1
  26. package/dist/{canonical-model-oFNty7hj.mjs → canonical-model-D7Cg0l2R.mjs} +1 -1
  27. package/dist/{capabilities-BhJ3wzI8.mjs → capabilities-D2ggcMem.mjs} +1 -1
  28. package/dist/{capability-service-23Ot2J9A.d.mts → capability-service-Cpkonrc0.d.mts} +1 -1
  29. package/dist/{client-DJMzCHRm.mjs → client-CpUVfDxa.mjs} +1 -1
  30. package/dist/clients/index.d.mts +2 -2
  31. package/dist/clients/index.mjs +1 -1
  32. package/dist/clients/managed-install.d.mts +1 -1
  33. package/dist/clients/managed-install.mjs +1 -1
  34. package/dist/code-execution/worker-entry.d.mts +1 -1
  35. package/dist/code-execution/worker-entry.mjs +1 -1
  36. package/dist/{code-execution-B9wr0b972.mjs → code-execution-ByLSAlEg2.mjs} +1 -1
  37. package/dist/{code-execution-BMmUATcc.mjs → code-execution-CMqsHnGg.mjs} +1 -1
  38. package/dist/{code-execution-DRCzkGzO.mjs → code-execution-xn9-x3VO.mjs} +1 -1
  39. package/dist/common-CylczUIW.mjs +1 -0
  40. package/dist/{compression-nZhMDRTA.mjs → compression-Civ-rf-O.mjs} +1 -1
  41. package/dist/{config-namespace-MjFuIPyL.mjs → config-namespace-CQnsvr77.mjs} +1 -1
  42. package/dist/contracts/adapter/index.d.mts +2 -2
  43. package/dist/contracts/adapter/index.mjs +1 -1
  44. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  45. package/dist/contracts/artifact/index.d.mts +3 -3
  46. package/dist/contracts/artifact/index.mjs +1 -1
  47. package/dist/contracts/auth/index.d.mts +2 -2
  48. package/dist/contracts/auth/index.mjs +1 -1
  49. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  50. package/dist/contracts/automation-trigger/index.mjs +1 -1
  51. package/dist/contracts/canonical-model/index.d.mts +1 -1
  52. package/dist/contracts/canonical-model/index.mjs +1 -1
  53. package/dist/contracts/capabilities/index.d.mts +1 -1
  54. package/dist/contracts/capabilities/index.mjs +1 -1
  55. package/dist/contracts/client/index.d.mts +2 -2
  56. package/dist/contracts/client/index.mjs +1 -1
  57. package/dist/contracts/code-execution/index.d.mts +1 -1
  58. package/dist/contracts/code-execution/index.mjs +1 -1
  59. package/dist/contracts/common/index.d.mts +2 -2
  60. package/dist/contracts/common/index.mjs +1 -1
  61. package/dist/contracts/config/index.d.mts +1 -1
  62. package/dist/contracts/config/index.mjs +1 -1
  63. package/dist/contracts/extension/index.d.mts +5 -5
  64. package/dist/contracts/extension/index.mjs +1 -1
  65. package/dist/contracts/facet/index.d.mts +1 -1
  66. package/dist/contracts/facet/index.mjs +1 -1
  67. package/dist/contracts/harness/index.d.mts +1 -1
  68. package/dist/contracts/harness/index.mjs +1 -1
  69. package/dist/contracts/host/index.d.mts +1 -1
  70. package/dist/contracts/host/index.mjs +1 -1
  71. package/dist/contracts/index.d.mts +73 -73
  72. package/dist/contracts/index.mjs +1 -1
  73. package/dist/contracts/materialization/index.d.mts +2 -2
  74. package/dist/contracts/materialization/index.mjs +1 -1
  75. package/dist/contracts/model-registry/index.d.mts +1 -1
  76. package/dist/contracts/model-registry/index.mjs +1 -1
  77. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  78. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  79. package/dist/contracts/platform/index.d.mts +1 -1
  80. package/dist/contracts/platform/index.mjs +1 -1
  81. package/dist/contracts/provider/index.d.mts +2 -2
  82. package/dist/contracts/provider/index.mjs +1 -1
  83. package/dist/contracts/reaction/index.d.mts +1 -1
  84. package/dist/contracts/reaction/index.mjs +1 -1
  85. package/dist/contracts/session/index.d.mts +2 -2
  86. package/dist/contracts/session/index.mjs +1 -1
  87. package/dist/contracts/shared/index.d.mts +2 -2
  88. package/dist/contracts/shared/index.mjs +1 -1
  89. package/dist/contracts/skill/index.d.mts +1 -1
  90. package/dist/contracts/skill/index.mjs +1 -1
  91. package/dist/contracts/telemetry/index.d.mts +1 -1
  92. package/dist/contracts/telemetry/index.mjs +1 -1
  93. package/dist/contracts/timeout/index.d.mts +1 -1
  94. package/dist/contracts/timeout/index.mjs +1 -1
  95. package/dist/contracts/toast/index.mjs +1 -1
  96. package/dist/contracts/variant/index.d.mts +1 -1
  97. package/dist/contracts/variant/index.mjs +1 -1
  98. package/dist/contracts/worker/index.d.mts +2 -2
  99. package/dist/contracts/worker/index.mjs +1 -1
  100. package/dist/contracts/workflow/index.d.mts +2 -2
  101. package/dist/contracts/workflow/index.mjs +1 -1
  102. package/dist/{contribution-B4t0OXKs.d.mts → contribution-BfEEQ8YZ.d.mts} +2 -2
  103. package/dist/{definition-Bs5hzhsT.d.mts → definition-6d5JBi55.d.mts} +1 -1
  104. package/dist/{definition-YGj42UeO.mjs → definition-Dqw0YJdi.mjs} +1 -1
  105. package/dist/{detached-extension-handle-CgJiXaqv.mjs → detached-extension-handle-BJnk3WEh.mjs} +1 -1
  106. package/dist/{dist-CfANkKSb.mjs → dist-DeI9zYMP.mjs} +1 -1
  107. package/dist/evidence/git-file/index.d.mts +54 -0
  108. package/dist/evidence/git-file/index.mjs +4 -0
  109. package/dist/{execution-attempt-owner-recovery-CdH04iwP.mjs → execution-attempt-owner-recovery-D4APLAvt.mjs} +1 -1
  110. package/dist/{execution-attempt-repository-CJVlPFMM.d.mts → execution-attempt-repository--RVils5-.d.mts} +273 -189
  111. package/dist/execution-attempt-repository-CWbgCTwA.mjs +1 -0
  112. package/dist/{execution-target-B9jZgDQz.mjs → execution-target-_oVNW6Zm.mjs} +1 -1
  113. package/dist/{extension-B51JzHJu.mjs → extension-CAi7bbyv.mjs} +1 -1
  114. package/dist/{extension-C1CwxkCN.mjs → extension-CrghVa93.mjs} +1 -1
  115. package/dist/{filesystem-service-yB8KhUGz.mjs → filesystem-service-hdz3oYti.mjs} +1 -1
  116. package/dist/{framework-packages-25GUGzJ-.mjs → framework-packages-BOPhhtK7.mjs} +1 -1
  117. package/dist/git/index.mjs +1 -1
  118. package/dist/{globby-z2SR0jRo.mjs → globby-Begk3aIP.mjs} +1 -1
  119. package/dist/{handlers-CBbFzDHc.mjs → handlers-YPTyZDhF.mjs} +1 -1
  120. package/dist/{harness-GNtHsoh4.mjs → harness-Ds1I4smU.mjs} +1 -1
  121. package/dist/{hook-responses-chgDiS8D.d.mts → hook-responses-CpEfxEmG.d.mts} +1 -1
  122. package/dist/hooks/index.d.mts +1 -1
  123. package/dist/hooks/index.mjs +1 -1
  124. package/dist/{index-BtPZcp4M2.d.mts → index-09eal6WI2.d.mts} +11 -11
  125. package/dist/{index-GNRWZONO.d.mts → index-6kg8YFYt.d.mts} +1 -1
  126. package/dist/{index-B6aoVzdA.d.mts → index-B3G-Hzwn.d.mts} +1 -1
  127. package/dist/{index-SDXlgq07.d.mts → index-B7wjmaev.d.mts} +24 -14
  128. package/dist/{index-DzeUtJtE.d.mts → index-BKwYE1Qk.d.mts} +5 -5
  129. package/dist/{index-CKjFFP6W2.d.mts → index-BM-FPWjs2.d.mts} +1 -1
  130. package/dist/{index-Bak5iKWv2.d.mts → index-BT5qcsEf2.d.mts} +24 -15
  131. package/dist/{index-BjELPYLF2.d.mts → index-BfzuauBt2.d.mts} +1 -1
  132. package/dist/{index-D2sbGoGS.d.mts → index-Bj2JCo9V.d.mts} +2 -2
  133. package/dist/{index-OXuby-ee.d.mts → index-BkQlL0Pl.d.mts} +13 -13
  134. package/dist/{index-CuPq_ap8.d.mts → index-BlHq_Ksb.d.mts} +2 -2
  135. package/dist/{index-D3RZEEE3.d.mts → index-Bn6sN1op.d.mts} +2 -2
  136. package/dist/{index-ConotXyG.d.mts → index-Bnm0QvJ4.d.mts} +15 -15
  137. package/dist/{index-Bxs-oIo4.d.mts → index-BpsurXEW.d.mts} +1 -1
  138. package/dist/{index-C9J8wBLV.d.mts → index-BqR2xDu6.d.mts} +655 -111
  139. package/dist/{index-DX_2kGSg.d.mts → index-Bxq_zO2E.d.mts} +4 -4
  140. package/dist/{index-CcgI6r0K.d.mts → index-C742b1FV.d.mts} +2 -2
  141. package/dist/{index-B6Kq1BtL.d.mts → index-C8oBOTl_.d.mts} +1 -1
  142. package/dist/{index-CuLDybz3.d.mts → index-CDhbUjUH.d.mts} +2 -2
  143. package/dist/{index-CDeN0mdC.d.mts → index-CWeWBh-_.d.mts} +1 -1
  144. package/dist/{index-SIP-fI28.d.mts → index-D4XNkbM4.d.mts} +1 -1
  145. package/dist/{index-C6eJrtTA.d.mts → index-D7IZQNhD.d.mts} +2 -2
  146. package/dist/{index-CU_HMaeC.d.mts → index-DCfYa3cF.d.mts} +39 -1
  147. package/dist/{index-VbqrC9qf.d.mts → index-DO633_D-.d.mts} +40 -40
  148. package/dist/{index-CVx7li6B2.d.mts → index-DU9Y9tes2.d.mts} +12 -12
  149. package/dist/{index-99Gz8ezO.d.mts → index-DY_0TRvM.d.mts} +3 -3
  150. package/dist/{index-DfJNJYPV.d.mts → index-DzlGAEws.d.mts} +4 -4
  151. package/dist/{index-DOkenapA.d.mts → index-LjLUr3Dm.d.mts} +10 -10
  152. package/dist/{index-CwJaE0fT.d.mts → index-MtDz_goH.d.mts} +125 -77
  153. package/dist/{index-CyB6POkH.d.mts → index-nJvYTAbD.d.mts} +1 -1
  154. package/dist/{index-BrelUXBT.d.mts → index-ud9i9pue.d.mts} +16 -16
  155. package/dist/{index-OUtnmQ8t2.d.mts → index-v9TbeVee2.d.mts} +5 -5
  156. package/dist/kernel/cli/index.d.mts +2 -2
  157. package/dist/kernel/cli/index.mjs +1 -1
  158. package/dist/kernel/cli/register.d.mts +1 -1
  159. package/dist/kernel/cli/register.mjs +1 -1
  160. package/dist/kernel/cli/schemas.mjs +1 -1
  161. package/dist/kernel/extension/index.d.mts +1 -1
  162. package/dist/kernel/extension/index.mjs +1 -1
  163. package/dist/kernel/index.d.mts +5 -5
  164. package/dist/kernel/index.mjs +1 -1
  165. package/dist/kernel/namespace/index.d.mts +1 -1
  166. package/dist/kernel/namespace/index.mjs +1 -1
  167. package/dist/kernel/observability/index.d.mts +1 -1
  168. package/dist/kernel/observability/index.mjs +1 -1
  169. package/dist/kernel/providers/index.d.mts +1 -1
  170. package/dist/kernel/providers/index.mjs +1 -1
  171. package/dist/kernel/window/index.d.mts +1 -1
  172. package/dist/kernel/window/index.mjs +1 -1
  173. package/dist/{lib-0MqNtDuH.mjs → lib-BmXBuE-w.mjs} +1 -1
  174. package/dist/{lib-dlyJT26K.mjs → lib-R-c_q77C.mjs} +1 -1
  175. package/dist/{load-extensions-DM1PgW4a.d.mts → load-extensions-Bu10B5B1.d.mts} +1 -1
  176. package/dist/{load-extensions-BHTj3d_P.mjs → load-extensions-s4YmICgn.mjs} +1 -1
  177. package/dist/{materialization-BQuh_gaE.mjs → materialization-BwC7pVg2.mjs} +1 -1
  178. package/dist/mcp-http-server/index.d.mts +1 -1
  179. package/dist/mcp-http-server/index.mjs +1 -1
  180. package/dist/model-Cn1IFEP8.mjs +1 -0
  181. package/dist/{namespace-c5XPzbf3.d.mts → namespace-BYsKOw-g.d.mts} +2 -2
  182. package/dist/{namespace-ZAIFBrIy.mjs → namespace-CnRcpgJ8.mjs} +1 -1
  183. package/dist/namespace-DFc1nkal.mjs +1 -0
  184. package/dist/{namespace-Cb0XKb4v.d.mts → namespace-KTRWfIPy.d.mts} +2 -2
  185. package/dist/{namespace-DiTFR4Zt.d.mts → namespace-wuGMWlyz.d.mts} +2 -2
  186. package/dist/{native-session-supervisor-BlGzmZrH.mjs → native-session-supervisor-B0rziwHI.mjs} +1 -1
  187. package/dist/node/bus-server/index.d.mts +1 -1
  188. package/dist/node/bus-server/index.mjs +1 -1
  189. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  190. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  191. package/dist/{orchestrator-shared-5vhs4wvU.mjs → orchestrator-shared-CmS8iU9_.mjs} +1 -1
  192. package/dist/{orchestrator-shared-BRNZ6it3.d.mts → orchestrator-shared-Cwc6JKkV.d.mts} +1 -1
  193. package/dist/{ownership-memory-handler-BCu1EjFO.mjs → ownership-memory-handler-DMirNILL.mjs} +1 -1
  194. package/dist/package-B-xpYKe8.mjs +7 -0
  195. package/dist/{package-x2wRhcUt.d.mts → package-Bl0mcGb8.d.mts} +13 -3
  196. package/dist/{package-BiZ6ehWk.mjs → package-Co36_pRw.mjs} +1 -1
  197. package/dist/{package-BUSXHPOT.mjs → package-D2zvQO7X.mjs} +1 -1
  198. package/dist/package.json +1 -1
  199. package/dist/{packages-Dhgmy_LJ.mjs → packages-COqPg5TI.mjs} +1 -1
  200. package/dist/{packages-BSVxszLf.d.mts → packages-DTz_1dCa.d.mts} +1 -1
  201. package/dist/{profile-DBDvy9uc.mjs → profile-C9RV7ao-.mjs} +1 -1
  202. package/dist/{provider-context-CSb0qX1c.mjs → provider-context-BPITm0cn.mjs} +1 -1
  203. package/dist/{provider-context-CTOrOW54.mjs → provider-context-CyGvwXPz.mjs} +1 -1
  204. package/dist/providers/index.d.mts +1 -1
  205. package/dist/{reaction-6e4v007b.mjs → reaction-aQJGWUWl.mjs} +1 -1
  206. package/dist/repo-context-Dy6eE9cg.mjs +1 -0
  207. package/dist/{resolved-ONt3rOMh.mjs → resolved-M6PyrgFr.mjs} +1 -1
  208. package/dist/rules/index.d.mts +1 -1
  209. package/dist/rules/index.mjs +1 -1
  210. package/dist/rules/schemas.d.mts +1 -1
  211. package/dist/runtime-bun/index.mjs +1 -1
  212. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  213. package/dist/runtime-node/code-execution/index.mjs +1 -1
  214. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  215. package/dist/runtime-node/extension-validation.d.mts +1 -1
  216. package/dist/runtime-node/extension-validation.mjs +1 -1
  217. package/dist/runtime-node/index.d.mts +6 -6
  218. package/dist/runtime-node/index.mjs +4 -4
  219. package/dist/runtime-node/makaio-config.d.mts +1 -1
  220. package/dist/runtime-node/makaio-config.mjs +1 -1
  221. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  222. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  223. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  224. package/dist/{schema-B8jinlbH.mjs → schema-DrHrto2J.mjs} +1 -1
  225. package/dist/{schemas-BFwNBMIj.d.mts → schemas-BYyT43gX.d.mts} +4 -4
  226. package/dist/{schemas-BIU9Org_.mjs → schemas-CQKfd2Xd.mjs} +1 -1
  227. package/dist/{schemas-Di_kpQ0C.d.mts → schemas-CvUe_yff.d.mts} +13 -4
  228. package/dist/{schemas-BZabEyEV.d.mts → schemas-D2HmGmCt.d.mts} +1 -1
  229. package/dist/schemas-DRho446W.mjs +1 -0
  230. package/dist/{schemas-I9dZtAkj.d.mts → schemas-DwqibWUL.d.mts} +2 -2
  231. package/dist/{schemas-abY5VbS4.mjs → schemas-DyZNwquY.mjs} +1 -1
  232. package/dist/{selection-7SkHsmWs.mjs → selection-BDs7K53w.mjs} +1 -1
  233. package/dist/{server-lifecycle-hNz8U-QJ.mjs → server-lifecycle-C5Vl58sN.mjs} +1 -1
  234. package/dist/services/adapter-runtime/index.d.mts +3 -3
  235. package/dist/services/adapter-runtime/index.mjs +1 -1
  236. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  237. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  238. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  239. package/dist/services/adapter-subsystem/index.mjs +1 -1
  240. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  241. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  242. package/dist/services/agent-runtime/index.d.mts +2 -2
  243. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  244. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  245. package/dist/services/automation-trigger/index.d.mts +1 -1
  246. package/dist/services/automation-trigger/index.mjs +1 -1
  247. package/dist/services/capability/index.d.mts +2 -2
  248. package/dist/services/capability/index.mjs +1 -1
  249. package/dist/services/code-execution/index.d.mts +1 -1
  250. package/dist/services/code-execution/index.mjs +1 -1
  251. package/dist/services/codebase/index.d.mts +2 -2
  252. package/dist/services/codebase/namespace.d.mts +1 -1
  253. package/dist/services/codebase/schemas.d.mts +1 -1
  254. package/dist/services/compression/index.d.mts +2 -2
  255. package/dist/services/compression/namespace.d.mts +1 -1
  256. package/dist/services/compression/schemas.d.mts +1 -1
  257. package/dist/services/context-rules/index.d.mts +4 -4
  258. package/dist/services/context-rules/index.mjs +1 -1
  259. package/dist/services/execution-target/index.d.mts +3 -3
  260. package/dist/services/execution-target/index.mjs +1 -1
  261. package/dist/services/execution-target/namespace.d.mts +1 -1
  262. package/dist/services/execution-target/namespace.mjs +1 -1
  263. package/dist/services/execution-target/schemas.d.mts +1 -1
  264. package/dist/services/execution-target/schemas.mjs +1 -1
  265. package/dist/services/filesystem/index.d.mts +1 -1
  266. package/dist/services/filesystem/index.mjs +1 -1
  267. package/dist/services/filesystem/namespace.d.mts +6 -6
  268. package/dist/services/filesystem/schemas.d.mts +3 -3
  269. package/dist/services/git/namespace.d.mts +2 -2
  270. package/dist/services/git/namespace.mjs +1 -1
  271. package/dist/services/git/schemas.d.mts +1 -1
  272. package/dist/services/git/schemas.mjs +1 -1
  273. package/dist/services/harness/index.d.mts +4 -4
  274. package/dist/services/harness/index.mjs +1 -1
  275. package/dist/services/index.d.mts +49 -49
  276. package/dist/services/index.mjs +1 -1
  277. package/dist/services/log-import/browser.d.mts +2 -2
  278. package/dist/services/log-import/index.d.mts +3 -3
  279. package/dist/services/log-import/index.mjs +2 -2
  280. package/dist/services/log-import/log-import.d.mts +1 -1
  281. package/dist/services/log-import/log-import.mjs +1 -1
  282. package/dist/services/log-import/namespace.mjs +1 -1
  283. package/dist/services/log-import/schemas.mjs +1 -1
  284. package/dist/services/materialization/index.d.mts +1 -1
  285. package/dist/services/materialization/index.mjs +1 -1
  286. package/dist/services/model-registry/index.d.mts +1 -1
  287. package/dist/services/model-registry/index.mjs +1 -1
  288. package/dist/services/preferences/index.d.mts +2 -2
  289. package/dist/services/preferences/schemas.d.mts +1 -1
  290. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  291. package/dist/services/provider-context/index.d.mts +1 -1
  292. package/dist/services/provider-context/index.mjs +1 -1
  293. package/dist/services/provider-runtime/index.mjs +1 -1
  294. package/dist/services/session/handlers/index.d.mts +1 -1
  295. package/dist/services/session/handlers/index.mjs +1 -1
  296. package/dist/services/session/index.d.mts +9 -9
  297. package/dist/services/session/index.mjs +1 -1
  298. package/dist/services/session/messages/namespace.d.mts +1 -1
  299. package/dist/services/session/messages/namespace.mjs +1 -1
  300. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  301. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  302. package/dist/services/session/session-events/namespace.d.mts +1 -1
  303. package/dist/services/session/session-events/namespace.mjs +1 -1
  304. package/dist/services/session/storage/namespace.d.mts +1 -1
  305. package/dist/services/session/storage/schema.d.mts +1 -1
  306. package/dist/services/session/testing/index.mjs +2 -2
  307. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  308. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  309. package/dist/services/session/turns/namespace.d.mts +1 -1
  310. package/dist/services/session/turns/namespace.mjs +1 -1
  311. package/dist/services/session-editor/index.d.mts +1 -1
  312. package/dist/services/session-editor/index.mjs +1 -1
  313. package/dist/services/settings/index.d.mts +3 -3
  314. package/dist/services/settings/index.mjs +1 -1
  315. package/dist/services/settings/namespace.d.mts +4 -4
  316. package/dist/services/settings/namespace.mjs +1 -1
  317. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  318. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  319. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  320. package/dist/services/settings/storage/index.d.mts +3 -3
  321. package/dist/services/settings/storage/index.mjs +1 -1
  322. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  323. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  324. package/dist/services/subagent/index.d.mts +1 -1
  325. package/dist/services/subagent/index.mjs +1 -1
  326. package/dist/services/subagent-template/index.d.mts +2 -2
  327. package/dist/services/subagent-template/namespace.d.mts +1 -1
  328. package/dist/services/subagent-template/schemas.d.mts +1 -1
  329. package/dist/services/tool-approval/index.d.mts +1 -1
  330. package/dist/services/tool-approval/index.mjs +1 -1
  331. package/dist/services/tools/index.d.mts +1 -1
  332. package/dist/services/tools/index.mjs +1 -1
  333. package/dist/services/tray-menu/index.d.mts +3 -3
  334. package/dist/services/tray-menu/index.mjs +1 -1
  335. package/dist/services/tray-menu/namespace.d.mts +1 -1
  336. package/dist/services/tray-menu/schemas.d.mts +1 -1
  337. package/dist/services/turn/index.d.mts +1 -1
  338. package/dist/services/turn/namespace.d.mts +1 -1
  339. package/dist/services/workflow-transitions/index.d.mts +1 -1
  340. package/dist/services/workflow-transitions/index.mjs +1 -1
  341. package/dist/{session-A-h_Dwcs.mjs → session-9C42TPQq.mjs} +1 -1
  342. package/dist/{session-BDFNAcuY.mjs → session-Cn8z1hxD.mjs} +6 -6
  343. package/dist/{session-lineage-BzlpfLgC.d.mts → session-lineage-CEyJWg_J.d.mts} +1 -1
  344. package/dist/{shared-BZf2zoxL.mjs → shared-DqvfJVYk.mjs} +1 -1
  345. package/dist/{skill-1gU2q1KT.mjs → skill-BmRp8GhW.mjs} +1 -1
  346. package/dist/{src-Dlpw-Gh5.mjs → src-CmLn6zYj.mjs} +1 -1
  347. package/dist/storage/drizzle/client.d.mts +1 -1
  348. package/dist/storage/drizzle/client.mjs +1 -1
  349. package/dist/storage/drizzle/index.d.mts +2 -2
  350. package/dist/storage/drizzle/index.mjs +1 -1
  351. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  352. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  353. package/dist/storage/handlers/index.d.mts +1 -1
  354. package/dist/storage/handlers/index.mjs +1 -1
  355. package/dist/testing/index.d.mts +1 -1
  356. package/dist/{tool-approval-service-rpV94znP.mjs → tool-approval-service-DchkAdAr.mjs} +1 -1
  357. package/dist/tools/index.d.mts +1 -1
  358. package/dist/{tools-oQPsY7v2.mjs → tools-r50UBPJ9.mjs} +1 -1
  359. package/dist/{transition-BeWq5nKg.d.mts → transition-CgsrmsfE.d.mts} +2 -2
  360. package/dist/{types-FNVbwd7z2.d.mts → types-Bnc-pdB12.d.mts} +1 -1
  361. package/dist/{types-D4N56a4O.d.mts → types-Dswhi1L9.d.mts} +1 -1
  362. package/dist/{types-CIEJ91wm.d.mts → types-ZvPhKp3j.d.mts} +8 -8
  363. package/dist/ui-kernel/index.d.mts +2 -2
  364. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  365. package/dist/{version-3xWJDCeF.mjs → version-sDSWOMn_.mjs} +1 -1
  366. package/dist/{view-builder-BwGugMWz.d.mts → view-builder-D54kvyf7.d.mts} +10 -10
  367. package/dist/{visibility-C5sLzqyS.mjs → visibility-syKffo3e.mjs} +1 -1
  368. package/dist/{worker-qgJToDTN.mjs → worker-DRQGyWAS.mjs} +1 -1
  369. package/dist/{worker-Csadr_du.mjs → worker-DzbPk2YI.mjs} +1 -1
  370. package/dist/{workflow-Cb2Pj1h3.mjs → workflow-D-yrAZW8.mjs} +1 -1
  371. package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
  372. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  373. package/dist/workflow-engine/index.d.mts +62 -62
  374. package/dist/workflow-engine/index.mjs +1 -1
  375. package/dist/workflow-engine/package.d.mts +1 -1
  376. package/dist/workflow-engine/package.mjs +1 -1
  377. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  378. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  379. package/dist/workflow-engine/testing/conformance.mjs +2 -2
  380. package/dist/workflow-engine/testing/index.d.mts +3 -1
  381. package/dist/workflow-engine/testing/index.mjs +1 -1
  382. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  383. package/dist/workflow-engine/testing/sqlite.mjs +66 -61
  384. package/dist/workflow-engine/workflow-orchestrator.d.mts +1 -1
  385. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  386. package/dist/{workflow-transitions-BI7PbrXv.mjs → workflow-transitions-D5RvMSnf.mjs} +1 -1
  387. package/dist/workflow-worker-CrnDwpkP.mjs +2 -0
  388. package/package.json +5 -1
  389. package/dist/artifact-nArLAotB.mjs +0 -1
  390. package/dist/authority-state-bootstrap-DnwkMieA.mjs +0 -1
  391. package/dist/bootstrap-start-client-Bdv-_2Q9.mjs +0 -1
  392. package/dist/execution-attempt-repository-DXyh1hgz.mjs +0 -1
  393. package/dist/model-B6t_-_sp.mjs +0 -1
  394. package/dist/namespace-D4zmxaC4.mjs +0 -1
  395. package/dist/package-DKfzsJVl.mjs +0 -7
  396. package/dist/schemas-FiFC_DI6.mjs +0 -1
  397. package/dist/workflow-worker-Db7EBUgh.mjs +0 -2
  398. /package/dist/{adapter-binding-BU7STlfd.d.mts → adapter-binding-DhANVB-O.d.mts} +0 -0
  399. /package/dist/{ajv-Dtk5hCZS.mjs → ajv-IlnfOGAj.mjs} +0 -0
  400. /package/dist/{attach-error-B-vXQFLQ.mjs → attach-error-DOlUtquX.mjs} +0 -0
  401. /package/dist/{attempt-fixtures-C-jQE_7B.mjs → attempt-fixtures-CMx-2OlG.mjs} +0 -0
  402. /package/dist/{base-orchestrator-DXiejwQ3.d.mts → base-orchestrator-tAgnJAKu.d.mts} +0 -0
  403. /package/dist/{capability-Bw4tsDQu.mjs → capability-BQHyskJB.mjs} +0 -0
  404. /package/dist/{client-BwFqO0cG.d.mts → client-At2zn3yg.d.mts} +0 -0
  405. /package/dist/{client-binary-version-verifier-DHBAzg3-.mjs → client-binary-version-verifier-DLziUQhw.mjs} +0 -0
  406. /package/dist/{client-binary-version-verifier-DySlUy9m.d.mts → client-binary-version-verifier-EOj8xXqm.d.mts} +0 -0
  407. /package/dist/{clients-namespace-Dh0SNZcQ.d.mts → clients-namespace-CVRwXq8f.d.mts} +0 -0
  408. /package/dist/{config-namespace-CZqPIAWt.d.mts → config-namespace-D7GbrasR.d.mts} +0 -0
  409. /package/dist/{create-static-mount-GSdckRQx.mjs → create-static-mount-BIH26VH8.mjs} +0 -0
  410. /package/dist/{cross-spawn-Bx_VEdpd.mjs → cross-spawn-Bi05YtQQ.mjs} +0 -0
  411. /package/dist/{cursor-storage-Co4itf44.mjs → cursor-storage-88xtgVAd.mjs} +0 -0
  412. /package/dist/{definition-D3HjoK-4.d.mts → definition-VK1rERAp.d.mts} +0 -0
  413. /package/dist/{definitions-CYZTuMdL.mjs → definitions-2T95Q-y6.mjs} +0 -0
  414. /package/dist/{descriptor-to-package-CZLujoiv.mjs → descriptor-to-package-GVZk9ZGT.mjs} +0 -0
  415. /package/dist/{drizzle-me-95ICP.mjs → drizzle-BrlzkYoe.mjs} +0 -0
  416. /package/dist/{esm-DILYVXmW.mjs → esm-B3t30-13.mjs} +0 -0
  417. /package/dist/{event-DmQPb5MB.mjs → event-DFI0F1Ws.mjs} +0 -0
  418. /package/dist/{extension-context-Cx8CetW3.d.mts → extension-context-Cpf_n5FH.d.mts} +0 -0
  419. /package/dist/{extension-discovery-CZkaPQBo.d.mts → extension-discovery-B0ZL076T.d.mts} +0 -0
  420. /package/dist/{extension-namespace-twXNwE4R.mjs → extension-namespace-CWfV3IiR.mjs} +0 -0
  421. /package/dist/{extension-package-provenance-BzvG6rDO.mjs → extension-package-provenance-Dr7JXjLS.mjs} +0 -0
  422. /package/dist/{facet-Cly0VpTI.mjs → facet-6tnSbjXc.mjs} +0 -0
  423. /package/dist/{filesystem-service-UYYyRL2y.d.mts → filesystem-service-BWoNtujU.d.mts} +0 -0
  424. /package/dist/{handler-BYQPNm8O.mjs → handler-CFT7_osu.mjs} +0 -0
  425. /package/dist/{host-CiHn8Yog.mjs → host-D7v3YlDG.mjs} +0 -0
  426. /package/dist/{identity-BULrIHmo.mjs → identity-CxMRRAXx.mjs} +0 -0
  427. /package/dist/{index-B5kqAW7h.d.mts → index-8a41yDOl.d.mts} +0 -0
  428. /package/dist/{index-Dmwnhnio2.d.mts → index-BBkJsViX2.d.mts} +0 -0
  429. /package/dist/{index-DNp9DP6W.d.mts → index-BL1F1xYB.d.mts} +0 -0
  430. /package/dist/{index-BCKhrNLC.d.mts → index-BTHdi23O.d.mts} +0 -0
  431. /package/dist/{index-BU8uFswE.d.mts → index-BcPO9w0j.d.mts} +0 -0
  432. /package/dist/{index-DcG3r0VL.d.mts → index-Bk0Xjk-B.d.mts} +0 -0
  433. /package/dist/{index-DGlSbpgS2.d.mts → index-Bn1JTbn_2.d.mts} +0 -0
  434. /package/dist/{index-CYUhTE552.d.mts → index-C75h1xHF2.d.mts} +0 -0
  435. /package/dist/{index-DB4Xggtt.d.mts → index-CDA33y5A.d.mts} +0 -0
  436. /package/dist/{index-B9-1l1oh.d.mts → index-CSJOBx3H.d.mts} +0 -0
  437. /package/dist/{index-BAL1FiaJ.d.mts → index-CVh7ZP2I.d.mts} +0 -0
  438. /package/dist/{index-6wmqw_ng.d.mts → index-Ccaqmi0J.d.mts} +0 -0
  439. /package/dist/{index-zvoiT54b.d.mts → index-CjazerMN.d.mts} +0 -0
  440. /package/dist/{index-C_R6ifn9.d.mts → index-DXSVC0bM.d.mts} +0 -0
  441. /package/dist/{index-D3_QOfke.d.mts → index-Du-eXjEN.d.mts} +0 -0
  442. /package/dist/{index-DbYjMWlj.d.mts → index-DwKPj8jD.d.mts} +0 -0
  443. /package/dist/{index-LsZNB_gb.d.mts → index-DwY1Mt9a.d.mts} +0 -0
  444. /package/dist/{index-C-6g2xzN.d.mts → index-DzHc6hsJ.d.mts} +0 -0
  445. /package/dist/{index-DQbcfjIb2.d.mts → index-krTCFThl2.d.mts} +0 -0
  446. /package/dist/{json-value-DyMQrwGz.d.mts → json-value-BKUDMT7k.d.mts} +0 -0
  447. /package/dist/{jsonl-transport-Dfv3RLzi.mjs → jsonl-transport-3yp3clGp.mjs} +0 -0
  448. /package/dist/{lib-BdfAJKDj.mjs → lib-DF6sgNx_.mjs} +0 -0
  449. /package/dist/{model-registry-B7ThN_s3.mjs → model-registry-BTjKBCCw.mjs} +0 -0
  450. /package/dist/{model-registry-DlUErRRt.mjs → model-registry-CAqJYbXg.mjs} +0 -0
  451. /package/dist/{modes-CyG4sgs_.mjs → modes-Bo9Vv5c9.mjs} +0 -0
  452. /package/dist/{namespace-ChjzkJIl.mjs → namespace-0TfAY2J7.mjs} +0 -0
  453. /package/dist/{namespace-JqvomFSV.d.mts → namespace-B1sjokHd.d.mts} +0 -0
  454. /package/dist/{namespace-De25c2ds.d.mts → namespace-B3MnuAqp.d.mts} +0 -0
  455. /package/dist/{namespace-BFlSY040.mjs → namespace-BCSJz417.mjs} +0 -0
  456. /package/dist/{namespace-DAbT1F_n.d.mts → namespace-BHb_9sh4.d.mts} +0 -0
  457. /package/dist/{namespace-BQ7eiQwr.d.mts → namespace-BNNFD-ul.d.mts} +0 -0
  458. /package/dist/{namespace-69c5HXtL.d.mts → namespace-BgaVgd00.d.mts} +0 -0
  459. /package/dist/{namespace-CBf5xG_A.d.mts → namespace-BiEV44Mk.d.mts} +0 -0
  460. /package/dist/{namespace-B8kUQpwo.mjs → namespace-CDoyzyV4.mjs} +0 -0
  461. /package/dist/{namespace-B7fMkHmy.d.mts → namespace-CjmNxtr1.d.mts} +0 -0
  462. /package/dist/{namespace-BoOLmi67.d.mts → namespace-Cy62a3YP.d.mts} +0 -0
  463. /package/dist/{namespace-CIF_1OWi.d.mts → namespace-Czr38fiF.d.mts} +0 -0
  464. /package/dist/{namespace-C9d0aoYT.mjs → namespace-DORNUF0_.mjs} +0 -0
  465. /package/dist/{namespace-QXCaZK3I.mjs → namespace-DX3QsYpv.mjs} +0 -0
  466. /package/dist/{namespace-ZN49zpqw.mjs → namespace-Dyxpur8_.mjs} +0 -0
  467. /package/dist/{namespace-CUXZS_Ia.d.mts → namespace-btfJrUf6.d.mts} +0 -0
  468. /package/dist/{namespace-DAW4OY3-.d.mts → namespace-fEBskugJ.d.mts} +0 -0
  469. /package/dist/{out-Cn6vBxlH.mjs → out-og8659Ny.mjs} +0 -0
  470. /package/dist/{ownership-recovery-guard-Ce9-C5Sa.mjs → ownership-recovery-guard-CYA5CsiO.mjs} +0 -0
  471. /package/dist/{package-D4eLGGv4.mjs → package-BecmlOXC.mjs} +0 -0
  472. /package/dist/{platform-C-fDsuEl.mjs → platform-BdLHWgVc.mjs} +0 -0
  473. /package/dist/{providers-DVlsnJaY.mjs → providers-DGTA-lki.mjs} +0 -0
  474. /package/dist/{providers-namespace-DcPil5uz.d.mts → providers-namespace-Bming6U8.d.mts} +0 -0
  475. /package/dist/{quick-lru-CVryNCTx.mjs → quick-lru-bVGGo5bq.mjs} +0 -0
  476. /package/dist/{registry-Q9gCZtxz.mjs → registry-Cu3eD3UY.mjs} +0 -0
  477. /package/dist/{runtime-inputs-CMjGjK7W.d.mts → runtime-inputs-DeOea-ab.d.mts} +0 -0
  478. /package/dist/{schema-DIgKUfuF.d.mts → schema-DFCBjTB7.d.mts} +0 -0
  479. /package/dist/{schema-introspection-CSnLZJpC.mjs → schema-introspection-BsWP1vGC.mjs} +0 -0
  480. /package/dist/{schema-DIHGEQx3.mjs → schema-mXXJcaQT.mjs} +0 -0
  481. /package/dist/{schemas-BKnJj2i-.mjs → schemas-7fHmNUQc.mjs} +0 -0
  482. /package/dist/{schemas-BFgsIiSb.mjs → schemas-BE-gfjGI.mjs} +0 -0
  483. /package/dist/{schemas-CM3Ejp-n.d.mts → schemas-BLy33xay.d.mts} +0 -0
  484. /package/dist/{schemas-Ge_bamoP.d.mts → schemas-BkCqhK3X.d.mts} +0 -0
  485. /package/dist/{schemas-NwKrrrPF.d.mts → schemas-Cz7H2f7S.d.mts} +0 -0
  486. /package/dist/{schemas-DYeS-mtz.d.mts → schemas-DGKWi7mk.d.mts} +0 -0
  487. /package/dist/{schemas-Vv0GtBaZ.d.mts → schemas-DTBWnWjN.d.mts} +0 -0
  488. /package/dist/{schemas-COnD70WD.d.mts → schemas-DYIVJDlx.d.mts} +0 -0
  489. /package/dist/{schemas-qbaSxHDL.d.mts → schemas-DqWwz4eR.d.mts} +0 -0
  490. /package/dist/{schemas-DTyZjKQf2.d.mts → schemas-GyKYcV-Z2.d.mts} +0 -0
  491. /package/dist/{schemas-CnFVygzI.mjs → schemas-HffXbw8C.mjs} +0 -0
  492. /package/dist/{schemas-CbhvgFQs.mjs → schemas-MIYusvwn.mjs} +0 -0
  493. /package/dist/{schemas-BapfTRqp.mjs → schemas-NYUz8K9Q.mjs} +0 -0
  494. /package/dist/{semver-D_D2mA48.mjs → semver-_h8-BJ8k.mjs} +0 -0
  495. /package/dist/{server-lifecycle-BPAN-b0i.d.mts → server-lifecycle-_m_x1_TC.d.mts} +0 -0
  496. /package/dist/{shared-schemas-kUho6Kmw.mjs → shared-schemas-CaL1iEk6.mjs} +0 -0
  497. /package/dist/{src-Du_285FN.mjs → src-DdaPoQOD.mjs} +0 -0
  498. /package/dist/{storage-namespace-Dtz2G1if.mjs → storage-namespace-DBuKMBth.mjs} +0 -0
  499. /package/dist/{storage-namespace-definition-BJCbqVWz.mjs → storage-namespace-definition-4UYuij1r.mjs} +0 -0
  500. /package/dist/{storage-namespace-definition-D6soSjKE.d.mts → storage-namespace-definition-CsaZPU3n.d.mts} +0 -0
  501. /package/dist/{storage-namespace-C9oFExfb.d.mts → storage-namespace-zRXWqAfO.d.mts} +0 -0
  502. /package/dist/{supports-color-BNmyqLq0.mjs → supports-color-DG_rcVqJ.mjs} +0 -0
  503. /package/dist/{telemetry-CUkZrhW6.mjs → telemetry-BLYrkonr.mjs} +0 -0
  504. /package/dist/{timeout-DeBYTGBR.mjs → timeout-d0dzIY3V.mjs} +0 -0
  505. /package/dist/{tray-menu-service-TWrmvXSo.mjs → tray-menu-service-BGwXKJYr.mjs} +0 -0
  506. /package/dist/{types-D9GJ7FyQ.mjs → types-Bh2fQoxM.mjs} +0 -0
  507. /package/dist/{types-BOsf2SVm.d.mts → types-CccTiXH2.d.mts} +0 -0
  508. /package/dist/{types-DZvkUmHS.d.mts → types-DXGVwrQn.d.mts} +0 -0
  509. /package/dist/{types-BZnJ_4e2.d.mts → types-DjxvRcX6.d.mts} +0 -0
  510. /package/dist/{types-CWgYlxjU.d.mts → types-nor1SQLZ.d.mts} +0 -0
  511. /package/dist/{ui-config-9hlZAJOS.mjs → ui-config-CsH94fwa.mjs} +0 -0
  512. /package/dist/{variant-73kFgYBK.mjs → variant-BZ9UcJBi.mjs} +0 -0
  513. /package/dist/{window-registry-Bvjvpwhn.d.mts → window-registry-DQ7udUzI.d.mts} +0 -0
  514. /package/dist/{window-registry-CzAwaPKL.mjs → window-registry-DQkv5wM9.mjs} +0 -0
  515. /package/dist/{zod-json-schema-B1mZz7S4.mjs → zod-json-schema-DGWHUOK0.mjs} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 1,
3
- "fingerprint": "ecf2648ab498db5c09483784330b41490aa80651363d779c886549c877ccf641",
4
- "builtAt": "2026-09-09T12:06:45.419Z",
3
+ "fingerprint": "335e794b12671f3e4d7b17a76d3305c5ce06bc867b4627091e5e7957592d85dd",
4
+ "builtAt": "2026-09-09T15:07:28.097Z",
5
5
  "declarations": true,
6
6
  "declarationBackend": "tsc"
7
7
  }
@@ -1 +1 @@
1
- import{t as e}from"./chunk-DTipWd-i.mjs";import{_ as t,a as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,s as m,u as h,v as g}from"./ajv-Dtk5hCZS.mjs";var _=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicAnchor=void 0;let t=g(),n=o(),r=a(),i=h(),s={keyword:`$dynamicAnchor`,schemaType:`string`,code:e=>c(e,e.schema)};function c(e,r){let{gen:i,it:a}=e;a.schemaEnv.root.dynamicAnchors[r]=!0;let o=(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(r)}`,s=a.errSchemaPath===`#`?a.validateName:l(e);i.if((0,t._)`!${o}`,()=>i.assign(o,s))}e.dynamicAnchor=c;function l(e){let{schemaEnv:t,schema:n,self:a}=e.it,{root:o,baseId:s,localRefs:c,meta:l}=t.root,{schemaId:u}=a.opts,d=new r.SchemaEnv({schema:n,schemaId:u,root:o,baseId:s,localRefs:c,meta:l});return r.compileSchema.call(a,d),(0,i.getValidate)(e,d)}e.default=s})),v=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicRef=void 0;let t=g(),n=o(),r=h(),i={keyword:`$dynamicRef`,schemaType:`string`,code:e=>a(e,e.schema)};function a(e,i){let{gen:a,keyword:o,it:s}=e;if(i[0]!==`#`)throw Error(`"${o}" only supports hash fragment reference`);let c=i.slice(1);if(s.allErrors)l();else{let t=a.let(`valid`,!1);l(t),e.ok(t)}function l(e){if(s.schemaEnv.root.dynamicAnchors[c]){let r=a.let(`_v`,(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(c)}`);a.if(r,u(r,e),u(s.validateName,e))}else u(s.validateName,e)()}function u(t,n){return n?()=>a.block(()=>{(0,r.callRef)(e,t),a.let(n,!0)}):()=>(0,r.callRef)(e,t)}}e.dynamicRef=a,e.default=i})),y=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let n=_(),r=t();e.default={keyword:`$recursiveAnchor`,schemaType:`boolean`,code(e){e.schema?(0,n.dynamicAnchor)(e,``):(0,r.checkStrictMode)(e.it,`$recursiveAnchor: false is ignored`)}}})),b=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=v();e.default={keyword:`$recursiveRef`,schemaType:`string`,code:e=>(0,t.dynamicRef)(e,e.schema)}})),x=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=_(),n=v(),r=y(),i=b();e.default=[t.default,n.default,r.default,i.default]})),S=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=m();e.default={keyword:`dependentRequired`,type:`object`,schemaType:`object`,error:t.error,code:e=>(0,t.validatePropertyDeps)(e)}})),C=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=m();e.default={keyword:`dependentSchemas`,type:`object`,schemaType:`object`,code:e=>(0,t.validateSchemaDeps)(e)}})),w=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let n=t();e.default={keyword:[`maxContains`,`minContains`],type:`array`,schemaType:`number`,code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,n.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}}})),T=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=S(),n=C(),r=w();e.default=[t.default,n.default,r.default]})),E=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let n=g(),r=t(),i=o();e.default={keyword:`unevaluatedProperties`,type:`object`,schemaType:[`boolean`,`object`],trackErrors:!0,error:{message:`must NOT have unevaluated properties`,params:({params:e})=>(0,n._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},code(e){let{gen:t,schema:a,data:o,errsCount:s,it:c}=e;if(!s)throw Error(`ajv implementation error`);let{allErrors:l,props:u}=c;u instanceof n.Name?t.if((0,n._)`${u} !== true`,()=>t.forIn(`key`,o,e=>t.if(f(u,e),()=>d(e)))):u!==!0&&t.forIn(`key`,o,e=>u===void 0?d(e):t.if(p(u,e),()=>d(e))),c.props=!0,e.ok((0,n._)`${s} === ${i.default.errors}`);function d(i){if(a===!1){e.setParams({unevaluatedProperty:i}),e.error(),l||t.break();return}if(!(0,r.alwaysValidSchema)(c,a)){let a=t.name(`valid`);e.subschema({keyword:`unevaluatedProperties`,dataProp:i,dataPropType:r.Type.Str},a),l||t.if((0,n.not)(a),()=>t.break())}}function f(e,t){return(0,n._)`!${e} || !${e}[${t}]`}function p(e,t){let r=[];for(let i in e)e[i]===!0&&r.push((0,n._)`${t} !== ${i}`);return(0,n.and)(...r)}}}})),D=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let n=g(),r=t();e.default={keyword:`unevaluatedItems`,type:`array`,schemaType:[`boolean`,`object`],error:{message:({params:{len:e}})=>(0,n.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,n._)`{limit: ${e}}`},code(e){let{gen:t,schema:i,data:a,it:o}=e,s=o.items||0;if(s===!0)return;let c=t.const(`len`,(0,n._)`${a}.length`);if(i===!1)e.setParams({len:s}),e.fail((0,n._)`${c} > ${s}`);else if(typeof i==`object`&&!(0,r.alwaysValidSchema)(o,i)){let r=t.var(`valid`,(0,n._)`${c} <= ${s}`);t.if((0,n.not)(r),()=>l(r,s)),e.ok(r)}o.items=!0;function l(i,a){t.forRange(`i`,a,c,a=>{e.subschema({keyword:`unevaluatedItems`,dataProp:a,dataPropType:r.Type.Num},i),o.allErrors||t.if((0,n.not)(i),()=>t.break())})}}}})),O=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=E(),n=D();e.default=[t.default,n.default]})),k=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=l(),i=r(),a=f(),o=x(),s=T(),u=O(),d=n(),p=c();e.default=[o.default,t.default,i.default,(0,a.default)(!0),d.default,p.metadataVocabulary,p.contentVocabulary,s.default,u.default]})),A=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/schema`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/unevaluated`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format-annotation`},{$ref:`meta/content`}],type:[`object`,`boolean`],$comment:`This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.`,properties:{definitions:{$comment:`"definitions" has been replaced by "$defs".`,type:`object`,additionalProperties:{$dynamicRef:`#meta`},deprecated:!0,default:{}},dependencies:{$comment:`"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.`,type:`object`,additionalProperties:{anyOf:[{$dynamicRef:`#meta`},{$ref:`meta/validation#/$defs/stringArray`}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:`"$recursiveAnchor" has been replaced by "$dynamicAnchor".`,$ref:`meta/core#/$defs/anchorString`,deprecated:!0},$recursiveRef:{$comment:`"$recursiveRef" has been replaced by "$dynamicRef".`,$ref:`meta/core#/$defs/uriReferenceString`,deprecated:!0}}}})),j=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:`meta`,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{prefixItems:{$ref:`#/$defs/schemaArray`},items:{$dynamicRef:`#meta`},contains:{$dynamicRef:`#meta`},additionalProperties:{$dynamicRef:`#meta`},properties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},patternProperties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},propertyNames:{$dynamicRef:`#meta`},if:{$dynamicRef:`#meta`},then:{$dynamicRef:`#meta`},else:{$dynamicRef:`#meta`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$dynamicRef:`#meta`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$dynamicRef:`#meta`}}}}})),M=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/unevaluated`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:`meta`,title:`Unevaluated applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{unevaluatedItems:{$dynamicRef:`#meta`},unevaluatedProperties:{$dynamicRef:`#meta`}}}})),N=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/content`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentEncoding:{type:`string`},contentMediaType:{type:`string`},contentSchema:{$dynamicRef:`#meta`}}}})),P=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/core`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:`meta`,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{$ref:`#/$defs/uriReferenceString`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{$ref:`#/$defs/uriString`},$ref:{$ref:`#/$defs/uriReferenceString`},$anchor:{$ref:`#/$defs/anchorString`},$dynamicRef:{$ref:`#/$defs/uriReferenceString`},$dynamicAnchor:{$ref:`#/$defs/anchorString`},$vocabulary:{type:`object`,propertyNames:{$ref:`#/$defs/uriString`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$dynamicRef:`#meta`}}},$defs:{anchorString:{type:`string`,pattern:`^[A-Za-z_][-A-Za-z0-9._]*$`},uriString:{type:`string`,format:`uri`},uriReferenceString:{type:`string`,format:`uri-reference`}}}})),F=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/format-annotation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:`meta`,title:`Format vocabulary meta-schema for annotation results`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),I=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:`meta`,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),L=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:`meta`,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:`array`,items:!0},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),R=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=A(),n=j(),r=M(),i=N(),a=P(),o=F(),s=I(),c=L(),l=[`/properties`];function u(e){return[t,n,r,i,a,u(this,o),s,u(this,c)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function u(t,n){return e?t.$dataMetaSchema(n,l):n}}e.default=u})),z=e(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2020=void 0;let n=i(),r=k(),a=d(),o=R(),c=`https://json-schema.org/draft/2020-12/schema`;var l=class extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),r.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(a.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(o.default.call(this,e),this.refs[`http://json-schema.org/schema`]=c)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(c)?c:void 0)}};e.Ajv2020=l,t.exports=e=l,t.exports.Ajv2020=l,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=l;var f=s();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return f.KeywordCxt}});var m=g();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return m._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return m.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return m.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return m.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return m.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return m.CodeGen}});var h=u();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return h.default}});var _=p();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return _.default}})}));export{x as i,O as n,T as r,z as t};
1
+ import{t as e}from"./chunk-DTipWd-i.mjs";import{_ as t,a as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,s as m,u as h,v as g}from"./ajv-IlnfOGAj.mjs";var _=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicAnchor=void 0;let t=g(),n=o(),r=a(),i=h(),s={keyword:`$dynamicAnchor`,schemaType:`string`,code:e=>c(e,e.schema)};function c(e,r){let{gen:i,it:a}=e;a.schemaEnv.root.dynamicAnchors[r]=!0;let o=(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(r)}`,s=a.errSchemaPath===`#`?a.validateName:l(e);i.if((0,t._)`!${o}`,()=>i.assign(o,s))}e.dynamicAnchor=c;function l(e){let{schemaEnv:t,schema:n,self:a}=e.it,{root:o,baseId:s,localRefs:c,meta:l}=t.root,{schemaId:u}=a.opts,d=new r.SchemaEnv({schema:n,schemaId:u,root:o,baseId:s,localRefs:c,meta:l});return r.compileSchema.call(a,d),(0,i.getValidate)(e,d)}e.default=s})),v=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicRef=void 0;let t=g(),n=o(),r=h(),i={keyword:`$dynamicRef`,schemaType:`string`,code:e=>a(e,e.schema)};function a(e,i){let{gen:a,keyword:o,it:s}=e;if(i[0]!==`#`)throw Error(`"${o}" only supports hash fragment reference`);let c=i.slice(1);if(s.allErrors)l();else{let t=a.let(`valid`,!1);l(t),e.ok(t)}function l(e){if(s.schemaEnv.root.dynamicAnchors[c]){let r=a.let(`_v`,(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(c)}`);a.if(r,u(r,e),u(s.validateName,e))}else u(s.validateName,e)()}function u(t,n){return n?()=>a.block(()=>{(0,r.callRef)(e,t),a.let(n,!0)}):()=>(0,r.callRef)(e,t)}}e.dynamicRef=a,e.default=i})),y=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let n=_(),r=t();e.default={keyword:`$recursiveAnchor`,schemaType:`boolean`,code(e){e.schema?(0,n.dynamicAnchor)(e,``):(0,r.checkStrictMode)(e.it,`$recursiveAnchor: false is ignored`)}}})),b=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=v();e.default={keyword:`$recursiveRef`,schemaType:`string`,code:e=>(0,t.dynamicRef)(e,e.schema)}})),x=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=_(),n=v(),r=y(),i=b();e.default=[t.default,n.default,r.default,i.default]})),S=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=m();e.default={keyword:`dependentRequired`,type:`object`,schemaType:`object`,error:t.error,code:e=>(0,t.validatePropertyDeps)(e)}})),C=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=m();e.default={keyword:`dependentSchemas`,type:`object`,schemaType:`object`,code:e=>(0,t.validateSchemaDeps)(e)}})),w=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let n=t();e.default={keyword:[`maxContains`,`minContains`],type:`array`,schemaType:`number`,code({keyword:e,parentSchema:t,it:r}){t.contains===void 0&&(0,n.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}}})),T=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=S(),n=C(),r=w();e.default=[t.default,n.default,r.default]})),E=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let n=g(),r=t(),i=o();e.default={keyword:`unevaluatedProperties`,type:`object`,schemaType:[`boolean`,`object`],trackErrors:!0,error:{message:`must NOT have unevaluated properties`,params:({params:e})=>(0,n._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},code(e){let{gen:t,schema:a,data:o,errsCount:s,it:c}=e;if(!s)throw Error(`ajv implementation error`);let{allErrors:l,props:u}=c;u instanceof n.Name?t.if((0,n._)`${u} !== true`,()=>t.forIn(`key`,o,e=>t.if(f(u,e),()=>d(e)))):u!==!0&&t.forIn(`key`,o,e=>u===void 0?d(e):t.if(p(u,e),()=>d(e))),c.props=!0,e.ok((0,n._)`${s} === ${i.default.errors}`);function d(i){if(a===!1){e.setParams({unevaluatedProperty:i}),e.error(),l||t.break();return}if(!(0,r.alwaysValidSchema)(c,a)){let a=t.name(`valid`);e.subschema({keyword:`unevaluatedProperties`,dataProp:i,dataPropType:r.Type.Str},a),l||t.if((0,n.not)(a),()=>t.break())}}function f(e,t){return(0,n._)`!${e} || !${e}[${t}]`}function p(e,t){let r=[];for(let i in e)e[i]===!0&&r.push((0,n._)`${t} !== ${i}`);return(0,n.and)(...r)}}}})),D=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let n=g(),r=t();e.default={keyword:`unevaluatedItems`,type:`array`,schemaType:[`boolean`,`object`],error:{message:({params:{len:e}})=>(0,n.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,n._)`{limit: ${e}}`},code(e){let{gen:t,schema:i,data:a,it:o}=e,s=o.items||0;if(s===!0)return;let c=t.const(`len`,(0,n._)`${a}.length`);if(i===!1)e.setParams({len:s}),e.fail((0,n._)`${c} > ${s}`);else if(typeof i==`object`&&!(0,r.alwaysValidSchema)(o,i)){let r=t.var(`valid`,(0,n._)`${c} <= ${s}`);t.if((0,n.not)(r),()=>l(r,s)),e.ok(r)}o.items=!0;function l(i,a){t.forRange(`i`,a,c,a=>{e.subschema({keyword:`unevaluatedItems`,dataProp:a,dataPropType:r.Type.Num},i),o.allErrors||t.if((0,n.not)(i),()=>t.break())})}}}})),O=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=E(),n=D();e.default=[t.default,n.default]})),k=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=l(),i=r(),a=f(),o=x(),s=T(),u=O(),d=n(),p=c();e.default=[o.default,t.default,i.default,(0,a.default)(!0),d.default,p.metadataVocabulary,p.contentVocabulary,s.default,u.default]})),A=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/schema`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/unevaluated`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format-annotation`},{$ref:`meta/content`}],type:[`object`,`boolean`],$comment:`This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.`,properties:{definitions:{$comment:`"definitions" has been replaced by "$defs".`,type:`object`,additionalProperties:{$dynamicRef:`#meta`},deprecated:!0,default:{}},dependencies:{$comment:`"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.`,type:`object`,additionalProperties:{anyOf:[{$dynamicRef:`#meta`},{$ref:`meta/validation#/$defs/stringArray`}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:`"$recursiveAnchor" has been replaced by "$dynamicAnchor".`,$ref:`meta/core#/$defs/anchorString`,deprecated:!0},$recursiveRef:{$comment:`"$recursiveRef" has been replaced by "$dynamicRef".`,$ref:`meta/core#/$defs/uriReferenceString`,deprecated:!0}}}})),j=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:`meta`,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{prefixItems:{$ref:`#/$defs/schemaArray`},items:{$dynamicRef:`#meta`},contains:{$dynamicRef:`#meta`},additionalProperties:{$dynamicRef:`#meta`},properties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},patternProperties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},propertyNames:{$dynamicRef:`#meta`},if:{$dynamicRef:`#meta`},then:{$dynamicRef:`#meta`},else:{$dynamicRef:`#meta`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$dynamicRef:`#meta`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$dynamicRef:`#meta`}}}}})),M=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/unevaluated`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:`meta`,title:`Unevaluated applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{unevaluatedItems:{$dynamicRef:`#meta`},unevaluatedProperties:{$dynamicRef:`#meta`}}}})),N=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/content`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentEncoding:{type:`string`},contentMediaType:{type:`string`},contentSchema:{$dynamicRef:`#meta`}}}})),P=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/core`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:`meta`,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{$ref:`#/$defs/uriReferenceString`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{$ref:`#/$defs/uriString`},$ref:{$ref:`#/$defs/uriReferenceString`},$anchor:{$ref:`#/$defs/anchorString`},$dynamicRef:{$ref:`#/$defs/uriReferenceString`},$dynamicAnchor:{$ref:`#/$defs/anchorString`},$vocabulary:{type:`object`,propertyNames:{$ref:`#/$defs/uriString`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$dynamicRef:`#meta`}}},$defs:{anchorString:{type:`string`,pattern:`^[A-Za-z_][-A-Za-z0-9._]*$`},uriString:{type:`string`,format:`uri`},uriReferenceString:{type:`string`,format:`uri-reference`}}}})),F=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/format-annotation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:`meta`,title:`Format vocabulary meta-schema for annotation results`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),I=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:`meta`,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),L=e(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:`meta`,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:`array`,items:!0},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),R=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=A(),n=j(),r=M(),i=N(),a=P(),o=F(),s=I(),c=L(),l=[`/properties`];function u(e){return[t,n,r,i,a,u(this,o),s,u(this,c)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function u(t,n){return e?t.$dataMetaSchema(n,l):n}}e.default=u})),z=e(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2020=void 0;let n=i(),r=k(),a=d(),o=R(),c=`https://json-schema.org/draft/2020-12/schema`;var l=class extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),r.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(a.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(o.default.call(this,e),this.refs[`http://json-schema.org/schema`]=c)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(c)?c:void 0)}};e.Ajv2020=l,t.exports=e=l,t.exports.Ajv2020=l,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=l;var f=s();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return f.KeywordCxt}});var m=g();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return m._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return m.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return m.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return m.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return m.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return m.CodeGen}});var h=u();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return h.default}});var _=p();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return _.default}})}));export{x as i,O as n,T as r,z as t};
@@ -1 +1 @@
1
- import{n as e}from"./json-value-DM-EjTC1.mjs";import"./shared-BZf2zoxL.mjs";import{g as t,h as n,m as r}from"./profile-DBDvy9uc.mjs";import{n as i}from"./version-3xWJDCeF.mjs";import{z as a}from"zod";const o=a.enum([`strong`,`alias`]),s=a.object({scheme:t,value:t,strength:o}),c=a.object({key:t,label:a.string(),usedPercentage:a.number().finite().min(0).max(100),resetsAt:n.optional()}),l=a.object({windows:a.array(c)}),u=a.record(a.string(),a.unknown()).optional(),d=a.object({clientId:t,found:a.boolean(),binaryPath:r.optional(),version:a.string().optional(),warningMessage:a.string().optional()}),f=a.object({clientId:t,binaryName:t,supportedVersions:i.optional()}),p=a.object({clientAccountId:t,clientId:t,observedAt:n,source:t,displayLabel:a.string().optional(),usage:l,metadata:u}),m=a.discriminatedUnion(`kind`,[a.object({kind:a.literal(`session`),sessionId:t}),a.object({kind:a.literal(`adapter-session`),adapterSessionId:t}),a.object({kind:a.literal(`both`),sessionId:t,adapterSessionId:t})]),h=a.object({clientId:a.string(),source:a.string(),kind:a.string(),observedAt:n,payload:e}),g={request:a.object({clientId:t,observedAt:n.optional(),displayLabel:a.string().optional(),identifiers:a.array(s).min(1),metadata:u}),response:a.object({clientAccountId:t,displayLabel:a.string().optional()})},_={request:h.extend({locator:m}),response:a.object({handled:a.boolean(),sessionId:t.nullable(),clientAccountId:t.nullable(),changed:a.boolean()})},v={request:a.object({clientId:t,observedAt:n,source:t,account:a.object({displayLabel:a.string().optional(),identifiers:a.array(s).min(1)}),usage:l,metadata:u}),response:a.object({clientAccountId:t,snapshot:p})};export{u as a,_ as c,p as d,c as f,h as i,m as l,g as n,d as o,l as p,o as r,f as s,s as t,v as u};
1
+ import{n as e}from"./json-value-DM-EjTC1.mjs";import"./shared-DqvfJVYk.mjs";import{g as t,h as n,m as r}from"./profile-C9RV7ao-.mjs";import{n as i}from"./version-sDSWOMn_.mjs";import{z as a}from"zod";const o=a.enum([`strong`,`alias`]),s=a.object({scheme:t,value:t,strength:o}),c=a.object({key:t,label:a.string(),usedPercentage:a.number().finite().min(0).max(100),resetsAt:n.optional()}),l=a.object({windows:a.array(c)}),u=a.record(a.string(),a.unknown()).optional(),d=a.object({clientId:t,found:a.boolean(),binaryPath:r.optional(),version:a.string().optional(),warningMessage:a.string().optional()}),f=a.object({clientId:t,binaryName:t,supportedVersions:i.optional()}),p=a.object({clientAccountId:t,clientId:t,observedAt:n,source:t,displayLabel:a.string().optional(),usage:l,metadata:u}),m=a.discriminatedUnion(`kind`,[a.object({kind:a.literal(`session`),sessionId:t}),a.object({kind:a.literal(`adapter-session`),adapterSessionId:t}),a.object({kind:a.literal(`both`),sessionId:t,adapterSessionId:t})]),h=a.object({clientId:a.string(),source:a.string(),kind:a.string(),observedAt:n,payload:e}),g={request:a.object({clientId:t,observedAt:n.optional(),displayLabel:a.string().optional(),identifiers:a.array(s).min(1),metadata:u}),response:a.object({clientAccountId:t,displayLabel:a.string().optional()})},_={request:h.extend({locator:m}),response:a.object({handled:a.boolean(),sessionId:t.nullable(),clientAccountId:t.nullable(),changed:a.boolean()})},v={request:a.object({clientId:t,observedAt:n,source:t,account:a.object({displayLabel:a.string().optional(),identifiers:a.array(s).min(1)}),usage:l,metadata:u}),response:a.object({clientAccountId:t,snapshot:p})};export{u as a,_ as c,p as d,c as f,h as i,m as l,g as n,d as o,l as p,o as r,f as s,s as t,v as u};
@@ -1 +1 @@
1
- import{D as e,E as t,T as n,c as r,d as i,f as a,g as o,h as s,k as c,l,m as u,o as d,p as f,s as p,t as m,u as h,v as g,wn as _,y as v}from"./schemas-BIU9Org_.mjs";import"./compression-nZhMDRTA.mjs";import"./provider-context-CSb0qX1c.mjs";import"./contracts/adapter/schemas/session-lineage.mjs";import{createBusNamespace as y}from"@makaio/framework/core";const b={getCapabilities:_,startAgent:c,infer:e,listAgents:t,getAgent:n,stopAgent:v,rehydrateAgent:g,acknowledgeCallerSettlement:o,getConfigSchema:s,"agent.created":u,"session.created":f,"session.discovered":m,"session.usage":a,"session.closed":i,log:h,error:l,initialized:r,deinitialized:p,quota:d},x=y(`adapter`,b),S=x.subjects;export{S as n,b as r,x as t};
1
+ import{D as e,E as t,T as n,c as r,d as i,f as a,g as o,h as s,k as c,l,m as u,o as d,p as f,s as p,t as m,u as h,v as g,wn as _,y as v}from"./schemas-CQKfd2Xd.mjs";import"./compression-Civ-rf-O.mjs";import"./provider-context-BPITm0cn.mjs";import"./contracts/adapter/schemas/session-lineage.mjs";import{createBusNamespace as y}from"@makaio/framework/core";const b={getCapabilities:_,startAgent:c,infer:e,listAgents:t,getAgent:n,stopAgent:v,rehydrateAgent:g,acknowledgeCallerSettlement:o,getConfigSchema:s,"agent.created":u,"session.created":f,"session.discovered":m,"session.usage":a,"session.closed":i,log:h,error:l,initialized:r,deinitialized:p,quota:d},x=y(`adapter`,b),S=x.subjects;export{S as n,b as r,x as t};
@@ -1 +1 @@
1
- import{AuthenticationError as e}from"@makaio/framework/core";import{createBusInstance as t,openChannel as n}from"@makaio/framework/bus";import{AdapterProviderAuthSchema as r,CredentialSubjects as i,ResolvedProviderAuthSchema as a,assertAdapterAuthBindingMatchesMethod as o}from"@makaio/framework/contracts";import{ClientSubjects as s}from"@makaio/framework/contracts/client";import{resolveClientBinary as c}from"@makaio/framework/clients";function l(e,t={}){let n={};if(e)for(let[t,r]of Object.entries(e))r!==void 0&&(n[t]=r);delete n.NODE_OPTIONS,delete n.CLAUDECODE;for(let e of t.omitEnvVars??[])delete n[e];return n}var u=class extends e{reason;constructor(e,t){super(t),this.reason=e,this.name=`AdapterAuthError`}};function d(e){return e.auth.mode===`explicit`?e.auth.definition.fields.filter(e=>!e.required).map(e=>e.id):[]}function f(e){if(Array.isArray(e)){for(let t of e)f(t);return Object.freeze(e)}if(e&&typeof e==`object`){for(let t of Object.values(e))f(t);return Object.freeze(e)}return e}function p(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}function m(e,t){return e.bindings.filter(e=>p(e.method,t))}function h(e,t){let n=m(e,t);if(n.length===0)throw new u(`binding-missing`,`No adapter authentication binding matches the selected method.`);if(n.length>1)throw new u(`binding-ambiguous`,`Multiple adapter authentication bindings match the selected method.`);return n[0]}function g(e,t){let n=new Set;for(let e of t){for(let t of e.scrubEnvVars)n.add(t);for(let t of e.bindings)for(let e of t.deliveries)if(e.kind===`process-env`)for(let t of Object.values(e.fields))n.add(t)}if(e.mode===`explicit`)for(let t of Object.values(e.credentialRefs))t.startsWith(`env:`)&&n.add(t.slice(4));return[...n]}function _(e){let t=a.safeParse(e.auth);if(!t.success)throw Error(`Resolved provider authentication is invalid.`);if(m(e.adapterProviderAuth,t.data.method).length>1)throw new u(`binding-ambiguous`,`Multiple adapter authentication bindings match the selected method.`);let n=r.safeParse(e.adapterProviderAuth);if(!n.success)throw Error(`Selected adapter authentication declaration is invalid.`);let i=[n.data];for(let t of e.compatibleProviderAuths??[]){let e=r.safeParse(t);if(!e.success)throw Error(`Compatible adapter authentication declaration is invalid.`);i.push(e.data)}let s=h(n.data,t.data.method);return o(s,t.data.definition),f({auth:t.data,binding:s,scrubEnvVars:g(t.data,i)})}async function v(e,t){let n=await y(e.auth,t),r=[],i=[];for(let t of e.binding.deliveries){if(t.kind===`process-env`){r.push(...b(n,t.fields));continue}if(t.kind!==`connector`)continue;let e=Object.fromEntries(b(n,t.fields)),a={...t.constants,...e};i.push({target:t.target,values:a})}return f({processEnv:Object.fromEntries(r),connectorDeliveries:i,configInheritance:e.auth.mode===`inferred`?`auth-only`:`empty`})}async function y(e,t){if(e.mode!==`explicit`)return Object.freeze({});let n;try{n=await t(e.credentialRefs)}catch(e){throw e instanceof u?e:new u(`credential-resolution-failed`,`Failed to resolve adapter authentication credentials.`)}if(typeof n!=`object`||!n)throw Error(`Credential resolver returned invalid authentication values.`);let r;try{r=Object.entries(n)}catch{throw Error(`Credential resolver returned invalid authentication values.`)}let i=new Set(Object.keys(e.credentialRefs)),a=new Map;for(let[e,t]of r){if(!i.has(e)||typeof t!=`string`)throw Error(`Credential resolver returned values outside the selected authentication fields.`);a.set(e,t)}let o=[];for(let t of e.definition.fields){let e=a.get(t.id);if(typeof e==`string`&&e.length>0)o.push([t.id,e]);else if(t.required)throw new u(`credential-missing`,`Required authentication field "${t.id}" could not be resolved.`)}return Object.freeze(Object.fromEntries(o))}function b(e,t){let n=[];for(let[r,i]of Object.entries(t)){if(!Object.hasOwn(e,r))continue;let t=e[r];typeof t==`string`&&n.push([i,t])}return n}var x=class extends Error{code;constructor(e){super(e===`credential-unavailable`?`A selected credential is unavailable.`:`Credential resolution failed.`),this.code=e,this.name=`ConnectorCredentialResolutionError`}};async function S(e,r,a={}){let o=Object.entries(r);if(o.length===0)return{};let s={},c=new Set(a.optionalFields),l=e.getContext(),{token:u}=await t({context:l}).request(i.getChannelToken,{}),d=await n(l,`credentials`,{token:u,transports:[]});try{let e=await Promise.all(o.map(async([e,t])=>{try{let n=await d.request(i.resolve,{ref:t});if(n.value===null){if(c.has(e))return;throw new x(`credential-unavailable`)}return[e,n.value]}catch(e){throw e instanceof x?e:new x(`credential-request-failed`)}}));for(let[t,n]of e.filter(e=>e!==void 0))s[t]=n}finally{d.close()}return s}async function C(e){let{globalBus:t,clientId:n,baseEnv:r={},sessionEnv:i={},binaryEnv:a={},scrubEnvVars:o=[],leaseEnv:s={},selectedAuthEnv:u={}}=e,d;if(n!==void 0){if(t===void 0)throw Error(`Client binary resolution requires the adapter runtime global bus.`);d=await c(t,n)}let f={...r,...i,...d?.env??{},...a},p={...f,...s},m=Object.keys(s),h=l(f,{omitEnvVars:[...new Set([...o,...m])]}),g={...l(p,{omitEnvVars:o}),...u};return Object.freeze(h),Object.freeze(g),{resolvedBinary:d,connectorEnv:g,contextEnv:h}}var w=class{bus;clientId;leaseId;releasePromise;constructor(e,t,n){this.bus=e,this.clientId=t,this.leaseId=n}release(){return this.releasePromise??=this.destroy(),this.releasePromise}async destroy(){if(!(await this.bus.request(s.sessionConfig.destroy,{clientId:this.clientId,leaseId:this.leaseId})).success)throw Error(`Client config lease release was unsuccessful.`)}};async function T(e){let t=e.boundProviderAuth;if(t===void 0){let t=Object.freeze({...e.env??{}});return{config:{...e,env:Object.freeze({...t}),contextEnv:t}}}let n=D(e.globalBus);O(t,e.clientId);let r=await v(t,async e=>{try{return await S(n,e,{optionalFields:d(t)})}catch(e){throw e instanceof x&&e.code===`credential-unavailable`?new u(`credential-missing`,`A required authentication credential is unavailable.`):e}}),i=await k(n,e,r);try{A(t,i);let a=await C({globalBus:n,clientId:e.clientId,baseEnv:e.env,scrubEnvVars:t.scrubEnvVars,leaseEnv:i?.env,selectedAuthEnv:r.processEnv}),{boundProviderAuth:o,...s}=e;return{config:{...s,env:a.connectorEnv,contextEnv:a.contextEnv,adapterAuth:r,...a.resolvedBinary!==void 0&&{clientExecution:a.resolvedBinary}},...i!==void 0&&{lease:i.handle}}}catch(e){throw await j(i?.handle,e,`Adapter auth preparation and lease rollback both failed.`),e}}async function E(e,t){let n=M(t.selectorValidatedAuth),r=await C({baseEnv:e.env,sessionEnv:t.sessionEnv,binaryEnv:t.binaryEnv,leaseEnv:t.leaseEnv,scrubEnvVars:t.scrubEnvVars,selectedAuthEnv:n.processEnv}),{boundProviderAuth:i,...a}=e;return{...a,env:r.connectorEnv,contextEnv:r.contextEnv,adapterAuth:n}}function D(e){if(e===void 0)throw new u(`runtime-bus-missing`,`Normalized adapter authentication requires a global bus.`);return e}function O(e,t){let n=e.auth.method;if(n.owner===`client`&&n.clientId!==t)throw new u(`client-mismatch`,`Selected authentication client does not match the adapter runtime client.`)}async function k(e,t,n){if(t.clientId===void 0)return;let r=crypto.randomUUID(),i=await e.request(s.sessionConfig.create,{clientId:t.clientId,leaseId:r,...t.sessionId!==void 0&&{ownerSessionId:t.sessionId},...t.clientProfileName!==void 0&&{profileName:t.clientProfileName},projectDir:t.cwd,configInheritance:n.configInheritance});return{handle:new w(e,t.clientId,r),env:Object.freeze({...i.env}),authMaterialized:i.authMaterialized}}function A(e,t){if(e.auth.mode===`inferred`&&t?.authMaterialized!==!0)throw new u(`native-auth-unavailable`,`Selected native client authentication could not be materialized.`)}async function j(e,t,n){if(e!==void 0)try{await e.release()}catch(e){throw AggregateError([t,e],n,{cause:t})}}function M(e){let t=e.connectorDeliveries.map(e=>Object.freeze({target:e.target,values:Object.freeze({...e.values})}));return Object.freeze({processEnv:Object.freeze({...e.processEnv}),connectorDeliveries:Object.freeze(t),configInheritance:e.configInheritance})}export{S as a,d as c,x as i,v as l,T as n,u as o,C as r,_ as s,E as t,l as u};
1
+ import{AuthenticationError as e}from"@makaio/framework/core";import{AdapterProviderAuthSchema as t,CredentialSubjects as n,ResolvedProviderAuthSchema as r,assertAdapterAuthBindingMatchesMethod as i}from"@makaio/framework/contracts";import{createBusInstance as a,openChannel as o}from"@makaio/framework/bus";import{ClientSubjects as s}from"@makaio/framework/contracts/client";import{resolveClientBinary as c}from"@makaio/framework/clients";function l(e,t={}){let n={};if(e)for(let[t,r]of Object.entries(e))r!==void 0&&(n[t]=r);delete n.NODE_OPTIONS,delete n.CLAUDECODE;for(let e of t.omitEnvVars??[])delete n[e];return n}var u=class extends e{reason;constructor(e,t){super(t),this.reason=e,this.name=`AdapterAuthError`}};function d(e){return e.auth.mode===`explicit`?e.auth.definition.fields.filter(e=>!e.required).map(e=>e.id):[]}function f(e){if(Array.isArray(e)){for(let t of e)f(t);return Object.freeze(e)}if(e&&typeof e==`object`){for(let t of Object.values(e))f(t);return Object.freeze(e)}return e}function p(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}function m(e,t){return e.bindings.filter(e=>p(e.method,t))}function h(e,t){let n=m(e,t);if(n.length===0)throw new u(`binding-missing`,`No adapter authentication binding matches the selected method.`);if(n.length>1)throw new u(`binding-ambiguous`,`Multiple adapter authentication bindings match the selected method.`);return n[0]}function g(e,t){let n=new Set;for(let e of t){for(let t of e.scrubEnvVars)n.add(t);for(let t of e.bindings)for(let e of t.deliveries)if(e.kind===`process-env`)for(let t of Object.values(e.fields))n.add(t)}if(e.mode===`explicit`)for(let t of Object.values(e.credentialRefs))t.startsWith(`env:`)&&n.add(t.slice(4));return[...n]}function _(e){let n=r.safeParse(e.auth);if(!n.success)throw Error(`Resolved provider authentication is invalid.`);if(m(e.adapterProviderAuth,n.data.method).length>1)throw new u(`binding-ambiguous`,`Multiple adapter authentication bindings match the selected method.`);let a=t.safeParse(e.adapterProviderAuth);if(!a.success)throw Error(`Selected adapter authentication declaration is invalid.`);let o=[a.data];for(let n of e.compatibleProviderAuths??[]){let e=t.safeParse(n);if(!e.success)throw Error(`Compatible adapter authentication declaration is invalid.`);o.push(e.data)}let s=h(a.data,n.data.method);return i(s,n.data.definition),f({auth:n.data,binding:s,scrubEnvVars:g(n.data,o)})}async function v(e,t){let n=await y(e.auth,t),r=[],i=[];for(let t of e.binding.deliveries){if(t.kind===`process-env`){r.push(...b(n,t.fields));continue}if(t.kind!==`connector`)continue;let e=Object.fromEntries(b(n,t.fields)),a={...t.constants,...e};i.push({target:t.target,values:a})}return f({processEnv:Object.fromEntries(r),connectorDeliveries:i,configInheritance:e.auth.mode===`inferred`?`auth-only`:`empty`})}async function y(e,t){if(e.mode!==`explicit`)return Object.freeze({});let n;try{n=await t(e.credentialRefs)}catch(e){throw e instanceof u?e:new u(`credential-resolution-failed`,`Failed to resolve adapter authentication credentials.`)}if(typeof n!=`object`||!n)throw Error(`Credential resolver returned invalid authentication values.`);let r;try{r=Object.entries(n)}catch{throw Error(`Credential resolver returned invalid authentication values.`)}let i=new Set(Object.keys(e.credentialRefs)),a=new Map;for(let[e,t]of r){if(!i.has(e)||typeof t!=`string`)throw Error(`Credential resolver returned values outside the selected authentication fields.`);a.set(e,t)}let o=[];for(let t of e.definition.fields){let e=a.get(t.id);if(typeof e==`string`&&e.length>0)o.push([t.id,e]);else if(t.required)throw new u(`credential-missing`,`Required authentication field "${t.id}" could not be resolved.`)}return Object.freeze(Object.fromEntries(o))}function b(e,t){let n=[];for(let[r,i]of Object.entries(t)){if(!Object.hasOwn(e,r))continue;let t=e[r];typeof t==`string`&&n.push([i,t])}return n}var x=class extends Error{code;constructor(e){super(e===`credential-unavailable`?`A selected credential is unavailable.`:`Credential resolution failed.`),this.code=e,this.name=`ConnectorCredentialResolutionError`}};async function S(e,t,r={}){let i=Object.entries(t);if(i.length===0)return{};let s={},c=new Set(r.optionalFields),l=e.getContext(),{token:u}=await a({context:l}).request(n.getChannelToken,{}),d=await o(l,`credentials`,{token:u,transports:[]});try{let e=await Promise.all(i.map(async([e,t])=>{try{let r=await d.request(n.resolve,{ref:t});if(r.value===null){if(c.has(e))return;throw new x(`credential-unavailable`)}return[e,r.value]}catch(e){throw e instanceof x?e:new x(`credential-request-failed`)}}));for(let[t,n]of e.filter(e=>e!==void 0))s[t]=n}finally{d.close()}return s}async function C(e){let{globalBus:t,clientId:n,baseEnv:r={},sessionEnv:i={},binaryEnv:a={},scrubEnvVars:o=[],leaseEnv:s={},selectedAuthEnv:u={}}=e,d;if(n!==void 0){if(t===void 0)throw Error(`Client binary resolution requires the adapter runtime global bus.`);d=await c(t,n)}let f={...r,...i,...d?.env??{},...a},p={...f,...s},m=Object.keys(s),h=l(f,{omitEnvVars:[...new Set([...o,...m])]}),g={...l(p,{omitEnvVars:o}),...u};return Object.freeze(h),Object.freeze(g),{resolvedBinary:d,connectorEnv:g,contextEnv:h}}var w=class{bus;clientId;leaseId;releasePromise;constructor(e,t,n){this.bus=e,this.clientId=t,this.leaseId=n}release(){return this.releasePromise??=this.destroy(),this.releasePromise}async destroy(){if(!(await this.bus.request(s.sessionConfig.destroy,{clientId:this.clientId,leaseId:this.leaseId})).success)throw Error(`Client config lease release was unsuccessful.`)}};async function T(e){let t=e.boundProviderAuth;if(t===void 0){let t=Object.freeze({...e.env??{}});return{config:{...e,env:Object.freeze({...t}),contextEnv:t}}}let n=D(e.globalBus);O(t,e.clientId);let r=await v(t,async e=>{try{return await S(n,e,{optionalFields:d(t)})}catch(e){throw e instanceof x&&e.code===`credential-unavailable`?new u(`credential-missing`,`A required authentication credential is unavailable.`):e}}),i=await k(n,e,r);try{A(t,i);let a=await C({globalBus:n,clientId:e.clientId,baseEnv:e.env,scrubEnvVars:t.scrubEnvVars,leaseEnv:i?.env,selectedAuthEnv:r.processEnv}),{boundProviderAuth:o,...s}=e;return{config:{...s,env:a.connectorEnv,contextEnv:a.contextEnv,adapterAuth:r,...a.resolvedBinary!==void 0&&{clientExecution:a.resolvedBinary}},...i!==void 0&&{lease:i.handle}}}catch(e){throw await j(i?.handle,e,`Adapter auth preparation and lease rollback both failed.`),e}}async function E(e,t){let n=M(t.selectorValidatedAuth),r=await C({baseEnv:e.env,sessionEnv:t.sessionEnv,binaryEnv:t.binaryEnv,leaseEnv:t.leaseEnv,scrubEnvVars:t.scrubEnvVars,selectedAuthEnv:n.processEnv}),{boundProviderAuth:i,...a}=e;return{...a,env:r.connectorEnv,contextEnv:r.contextEnv,adapterAuth:n}}function D(e){if(e===void 0)throw new u(`runtime-bus-missing`,`Normalized adapter authentication requires a global bus.`);return e}function O(e,t){let n=e.auth.method;if(n.owner===`client`&&n.clientId!==t)throw new u(`client-mismatch`,`Selected authentication client does not match the adapter runtime client.`)}async function k(e,t,n){if(t.clientId===void 0)return;let r=crypto.randomUUID(),i=await e.request(s.sessionConfig.create,{clientId:t.clientId,leaseId:r,...t.sessionId!==void 0&&{ownerSessionId:t.sessionId},...t.clientProfileName!==void 0&&{profileName:t.clientProfileName},projectDir:t.cwd,configInheritance:n.configInheritance});return{handle:new w(e,t.clientId,r),env:Object.freeze({...i.env}),authMaterialized:i.authMaterialized}}function A(e,t){if(e.auth.mode===`inferred`&&t?.authMaterialized!==!0)throw new u(`native-auth-unavailable`,`Selected native client authentication could not be materialized.`)}async function j(e,t,n){if(e!==void 0)try{await e.release()}catch(e){throw AggregateError([t,e],n,{cause:t})}}function M(e){let t=e.connectorDeliveries.map(e=>Object.freeze({target:e.target,values:Object.freeze({...e.values})}));return Object.freeze({processEnv:Object.freeze({...e.processEnv}),connectorDeliveries:Object.freeze(t),configInheritance:e.configInheritance})}export{S as a,d as c,x as i,v as l,T as n,u as o,C as r,_ as s,E as t,l as u};
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
- import { IMakaioBus } from "@makaio/framework/bus";
3
2
  import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
4
3
  import { AdapterClientRef, AdapterProviderDefinitionContract, AdapterProviderRef, ConnectorTeardownResult, MakaioNodeExtension, ProtocolId, ResolvedProviderContext } from "@makaio/framework/contracts";
4
+ import { IMakaioBus } from "@makaio/framework/bus";
5
5
  import { ContributionProcessor, ExtensionCoordinator, KernelMakaioExtension } from "@makaio/framework/kernel";
6
6
  import { BaseService } from "@makaio/framework/service-base";
7
7
  import { ClientAuthMethodDefinition, ProviderAuthMethodDefinition, ProviderConfigAuth } from "@makaio/framework/contracts/auth";
@@ -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{MakaioBus as i}from"@makaio/framework/bus";import{AdapterProviderAuthSchema as a,AdapterSubjects as o,CapabilitySubjects as s,ClientDefinitionSchema as c,CredentialSubjects as l,ProviderDefinitionSchema as u,ResolvedProviderContextSchema as d,aggregateTeardownResults as f,assertAdapterAuthBindingMatchesMethod as p,dep as m,extensionToken as h,isUniversalRange as g,teardownWasObserved as _,versionSatisfies as v}from"@makaio/framework/contracts";import{ExtensionSubjects as y}from"@makaio/framework/kernel";import{BaseService as ee}from"@makaio/framework/service-base";import{ProviderConfigAuthSchema as b,assertAdapterAuthBindingMatchesMethod as te}from"@makaio/framework/contracts/auth";import{ADAPTER_FILE_SCHEMA_VERSION as ne,AdapterFileSchema as x,PROVIDER_CONFIG_SCHEMA_VERSION as S,ProviderConfigFileSchema as re,resolveCanonicalProviderConfigName as ie,slugifyProviderConfigName as C}from"@makaio/framework/contracts/config";import{resolveModelVisibility as ae}from"@makaio/framework/contracts/provider";import{AdapterRuntimeSubjects as oe,buildDeterministicAdapterId as w}from"@makaio/framework/services/adapter-runtime";import{ClientSubjects as se}from"@makaio/framework/contracts/client";import{ClientStorageSubjects as T,ProviderStorageSubjects as E}from"@makaio/framework/services/settings/storage";import{SessionToken as D}from"@makaio/framework/services";import{ADAPTER_SUBSYSTEM_PACKAGE_NAME as O,AdapterSubsystemSubjects as k}from"@makaio/framework/services/adapter-subsystem";import{ModelRegistryProviderNotFoundError as ce,ModelRegistrySubjects as le}from"@makaio/framework/services/model-registry";function ue(e){return e?{...e}:void 0}function de(e){return e?{...e}:void 0}function fe(e){return e?structuredClone(e):void 0}function pe(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 me(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 he(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 ge(e,t,n){let r=pe(t,n);if(r.length===0)return;let i=[];try{for(let t of r)i.push(t),await me(e,t)}catch(t){try{await _e(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 _e(e,t){let n=[];for(let r of[...t].reverse())try{await he(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 A(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:ve(t),...t.managedBy?{managedBy:{...t.managedBy}}:{}}}function ve(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 j(e,t){return(t??[]).map(t=>({adapterName:e,providerConfigId:t.providerConfigId,isDefault:t.isDefault??!1}))}function ye(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 be(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 xe(e){let t=new Map,n=new Map,r=new Map;for(let[i,a]of e.providerConfigs){let e=A(i,a);t.set(i,e),n.set(C(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=j(n,r.bindings),c=ye(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 M(e,t){let n=e.get(t);return n!==void 0&&(n.enabled??!0)}function Se(e,t){return e.some(e=>M(t,e.providerConfigId))}function N(e,t){let n=e.find(e=>M(t,e.providerConfigId));return{bindings:e.map(e=>({...e,isDefault:e.providerConfigId===n?.providerConfigId})),...n?{promoted:{...n,isDefault:!0}}:{}}}function Ce(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})=>M(n,e))?.id??null;for(let{id:e,config:t}of r)n.set(e,{...t,isDefault:i!==null&&e===i});return i}function P(e){if(!e.provider.enabled)throw new F(`provider-definition-disabled`,`Provider definition is disabled for auth selection: ${e.provider.id}`);if(e.client!==void 0&&!e.client.enabled)throw new F(`client-definition-disabled`,`Client definition is disabled for auth selection: ${e.client.id}`)}var F=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`ProviderConfigAuthValidationError`}};async function I(e,t,n,r){let i=r??(await e.request(E.get,{id:t})).provider;if(!i||i.id!==t)throw new F(`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 F(`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(T.get,{id:n.method.clientId}),!o)throw new F(`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 F(`auth-method-not-found`,`Authentication method "${n.method.methodId}" is not declared by ${n.method.owner} "${e}".`)}if(a.mode!==n.mode)throw new F(`auth-mode-mismatch`,`Authentication method "${a.id}" declares mode "${a.mode}", not "${n.mode}".`);return a.mode===`explicit`&&n.mode===`explicit`&&we(a,n),{method:a,provider:i,...o?{client:o}:{}}}function we(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 F(`auth-credential-fields-mismatch`,`Authentication method "${e.id}" has ${a.join(` and `)}.`)}var L=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`ProviderRuntimeContextError`}};async function R(e,t,n){if(n.enabled===!1)throw new L(`provider-config-disabled`,`ProviderConfig '${t}' is disabled and cannot be used for adapter startup.`);let r=await I(e,n.definitionId,n.auth);P(r);let i=Te(n.auth,r.method),a={...r.provider.endpoints??{},...n.endpointOverrides??{}};return{context:d.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 Te(e,t){switch(e.mode){case`explicit`:if(t.mode!==`explicit`)throw z(e.mode,t.mode);return{mode:e.mode,method:{...e.method},definition:structuredClone(t),credentialRefs:{...e.credentialRefs}};case`inferred`:if(t.mode!==`inferred`)throw z(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 z(e.mode,t.mode);return{mode:e.mode,method:{...e.method},definition:{...t}}}}function z(e,t){return new F(`auth-mode-mismatch`,`Validated authentication mode changed during context assembly: selected "${e}", declared "${t}".`)}var Ee=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}},De=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 Ee;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(s.register,t,{filter:{capabilityId:`log-import`}})),e(this.bus.on(s.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 ge(this.configRepository,this.snapshot,e),this.replaceSnapshot(e)}applyDerivedState(){let e=xe(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=C(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:ne,...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:fe(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??be(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(s.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 R(this.bus,e,t);return{config:A(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&&j(e,i?.bindings).some(e=>e.providerConfigId===t);if(!r)return{snapshot:null,isBound:!1};let{context:o,definition:s}=await R(this.bus,t,r);return{isBound:a,snapshot:{config:A(t,r),context:o,definition:s}}}removeBindingsForConfig(e,t,n){let r=new Map,i=[],a=[];for(let[o,s]of t){let t=j(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=N(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 Ce(e,t,n)}};const B=process.env.MAKAIO_SKIP_CLIENT_VERSION_CHECK===`1`;function Oe(e){if(!(e===void 0||e.length===0))return e.map(e=>({...e}))}function ke(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 V(e,t){return e.clientId!==void 0&&t?.some(t=>t.id===e.clientId)?e.clientId:t?.[0]?.id}async function H(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}"`);Ae(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(g(t.binaryVersion))return;let n=await r.requestOptional(se.resolveBinary,{clientId:t.id});if(!n.handled){if(B){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(B){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(!v(i,t.binaryVersion)){let n=`Adapter "${e}" client "${t.id}" binary version ${i}`;if(B){console.warn(`[SKIP_VERSION_CHECK] ${n} does not satisfy ${t.binaryVersion} — check bypassed`);return}throw Error(`${n} does not satisfy ${t.binaryVersion}`)}}))}function Ae(e,t,n){if(!v(e,t))throw Error(`${n} does not satisfy ${t}`)}var U=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 W(e,t,n,r){return t instanceof U?{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 G(e){return{...f(e),results:e}}function je(e){let t=e.split(`/`).pop()?.replace(/^ai-adapters-/,``)?.trim();return t&&t.length>0?t:e}function Me(e){let t=V(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 Ne(e,t,n=5e3){let r=Be(t),i,a,o;if(r!==void 0){let t=await Pe(r,n);t.kind===`settled`?a=t.reported:t.kind===`failed`?i=t.error:(i=new U(e,n),o=t.pendingCloseCompletion.then(t=>W(e,void 0,!0,t),t=>W(e,t,!0,void 0)))}let s=W(e,i,r!==void 0,a);return o===void 0?{report:s}:{report:s,pendingCompletion:o}}async function Pe(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 Fe(e){let t=await Promise.all([...e].map(([e,t])=>Ie(e,t)));return e.clear(),G(t)}async function Ie(e,t){let{report:n}=await Ne(e,t);return n.evidence===`unknown`&&console.error(`[adapter-runtime] Error shutting down adapter ${e}:`,n.detail),n}async function K(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 Le(e,t,n,r,i,a){let s=a;await e.emit(o.initialized,{adapterId:n,adapterName:t.name,machineId:r,ownerInstanceId:i,capabilities:[...s.capabilities??[]],...s.nativeTools===void 0?{}:{nativeTools:[...s.nativeTools]}})}async function Re(e,t){let{config:n}=await e.request(k.getAdapterConfig,{name:t});return n?.enabled??!1}function ze(e,t){return e.options.adapterId??w(t,e.name)}function Be(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 Ve(e,t){let{bus:n,machineId:r,adapterInstances:i,platformDefaults:a,onRollback:o,isCurrentAdapter:s}=t;if(!await Re(n,e.name)){console.info(`Skipping disabled adapter: ${e.name}`);return}if(!s(e))return;let c=ze(e,r),l=t.resolveOwnerInstanceId(),u=V(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 K(e,c,l,d,o,!1);return}if(d.adapterId!==c)throw await K(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 K(e,c,l,d,o,!1),t}try{await Le(n,e,c,r,l,d)}catch(t){throw await K(e,c,l,d,o,!0),t}console.info(`Initialized adapter: ${e.name} (${e.packageName})`)}async function He(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 Ve(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 Ue(e,t){await t.request(k.ensureReady,{});let n=await Promise.all(e.map(async e=>({adapter:e,config:(await t.request(k.getAdapterConfig,{name:e.name})).config})));await Promise.all(n.filter(({config:e})=>!e).map(({adapter:e})=>t.request(k.setAdapterConfig,{name:e.name,patch:{displayName:e.displayName,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:V(e.options,e.clients),protocol:e.protocol,providerDefinitionIds:[...e.providerDefinitionIds],enabled:!1}})))}function We(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 Ge(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 Ke(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 q(e,t,n,r,i){let a=e.get(t);a?.state!==`retiring`||a.instance!==n||a.flight!==r||(_(i.evidence)?e.delete(t):e.set(t,{state:`retiring`,instance:n,ownerInstanceId:a.ownerInstanceId,report:i}))}function qe(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||!_(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 Je(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 Ye(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 Xe(e,t,n,r,i){let a=Ye(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=>{_(e.evidence)&&n()&&r()===void 0&&i()}),!0):!1}async function Ze(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 J(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 Qe(e,m,h,p))return;let g=new Map;await He(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 Qe(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&&!_(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||!_(t.evidence)?!0:(r.started=!0,r.cancellationCompletion=r.completion,await J({...e,fromDeferredActivation:!0}),!0)}return qe(u,n.flight,a,o,()=>c.get(a.name)===a,()=>l.has(t),(t,n)=>J({...e,adapter:t,platformDefaults:n,fromDeferredActivation:!0}),e=>console.error(`[AdapterRuntimeRegistry] Error activating deferred adapter "${a.name}":`,e)),!0}async function $e(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&&!_(u.report.evidence)){if(u.pendingCompletion!==void 0){let e=a.get(l);qe(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)=>J({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 et(e,t){try{await e.emit(o.deinitialized,t)}catch(e){console.warn(`[AdapterRuntimeRegistry] Failed to publish deinitialization for "${t.adapterName}":`,e)}}function tt(e,t,n=()=>void 0){let r=!1;return{async publishFallback(){r||await et(e,t)},dispose:e.on(o.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 nt(e,t,n,r){let i=tt(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 rt(e,t,n,r){return r?nt(e,t,n,()=>void 0):n()}var it=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 ze(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(Me)}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&&Je(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 Xe(this.deferredActivations,t,()=>this.loadedAdapters.get(e)===t,()=>this.adapterEntries.get(n),()=>{this.loadedAdapters.delete(e),Ke(this.packageAdapters,t.packageName,e)}))return;let r=await this.retireAdapterEntry(n,t.name);r===void 0||_(r.report.evidence)?this.loadedAdapters.delete(e):r.pendingCompletion!==void 0&&r.pendingCompletion.then(r=>{_(r.evidence)&&Ge(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(k.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 J({dependencies:this.createAdmissionDependencies(),adapter:e,platformDefaults:t,fromDeferredActivation:n})}async restartAdapterInstance(e,t){await $e({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 Ze(this.deferredActivations);let e=G(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 rt(this.bus,We(this.adapterEntries,this.machineId,e,t),()=>Ne(e,r.instance),r.state===`live`&&n);return c(),u.pendingCompletion===void 0?(q(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=>{q(this.adapterEntries,e,r.instance,l,t),o(t)},()=>{q(this.adapterEntries,e,r.instance,l,u.report),o(u.report)}),{report:u.report,pendingCompletion:l.completion})}};function at(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 ot=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async createProviderConfig(e){let t=await this.getProviderDefinitionOrThrow(e.definitionId),n=b.parse(e.auth),r=e.enabled??!0,i=await I(this.bus,e.definitionId,n,t);r&&P(i);let a=this.resolveProviderConfigNameFromDefinition(e.definitionId,t.name,e.name),o=C(a),s=ue(e.endpointOverrides),c=de(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:S,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(k.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(k.providerConfig.updated,r),n&&await this.bus.emit(k.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)&&P(await I(this.bus,r.definitionId,r.auth));let o=at(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:ue(n.endpointOverrides),modelVisibility:n.modelVisibility===void 0?r.modelVisibility:de(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=b.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 I(this.bus,r.definitionId,n);(r.enabled??!0)&&P(i),t.providerConfigs.set(e,{...r,auth:structuredClone(n)})},()=>this.configStore.requireProviderConfig(e,`auth update`));return await this.bus.emit(k.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(k.providerConfig.updated,s),i&&await this.bus.emit(k.providerConfig.defaultChanged,{definitionId:r,configId:a}),{deleted:!1}):{deleted:!1};await this.cleanupDeletedProviderCredentials(e);for(let e of o.deletedBindings)await this.bus.emit(k.binding.deleted,e);for(let e of o.defaultChangedBindings)await this.bus.emit(k.binding.defaultChanged,e);return await this.bus.emit(k.providerConfig.deleted,{id:e}),i&&await this.bus.emit(k.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(k.providerConfig.updated,n),await this.bus.emit(k.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(k.providerConfig.updated,r),{config:r}}async cleanupDeletedProviderCredentials(e){try{await this.bus.requestOptional(l.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=ie({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(E.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(E.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=ae(e,`allowlist`,t.modelVisibility);if(n===`enabled`||n===`visible`)return}return i[0]}},st=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=j(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)&&!Se(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(k.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=j(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=N(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(k.binding.deleted,{adapterName:e,providerConfigId:t}),n&&await this.bus.emit(k.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=j(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(!M(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(k.binding.defaultChanged,{adapterName:e,providerConfigId:t})}};function Y(e){return!!e.adapters?.length||!!e.providers?.length}function ct(e){return e.map(e=>{if(!Y(e))return e;let t=e.dependencies??[];return t.some(e=>e.name===O)?e:{...e,dependencies:[...t,m(O)]}})}function lt(e){return{filter:Y,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 ut(e){return e.map(e=>({...e}))}function dt(e){if(e instanceof ce)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:dt(t.cause)}async function ft(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:pt(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 pt(e,t,n,r){let i=a.parse(e),o=new Set(i.scrubEnvVars);ht(t.authMethods??[],o);for(let e of n)ht(e.authMethods,o);for(let e of i.bindings)p(e,mt(e.method,t,n,r));return a.parse({bindings:i.bindings,scrubEnvVars:[...o]})}function mt(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 ht(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 gt(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(le.getProviderModels,{providerId:i});t=a.handled?a.data.models:n.definition.availableModels??[],r.set(i,t)}return{...n,definition:{...n.definition,availableModels:ut(t)}}}catch(e){return dt(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:ut(n.definition.availableModels??[])}}}}))}async function _t(e,t,n,r){let i=await ft(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 gt(t,e.name,i,n)}function vt(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 yt(e,t,n){let r=vt(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 bt=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:Y,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=i){let r=this.coordinator.getLoadedProviderDefinitionIds(),a=await this.activateAdapterContribution(e,t,n,new Map,void 0,void 0,r);await this.publishActivatedAdapters([a])}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 _t(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 H(e.name,e.clients,r,t)}async buildLoadedAdapter(e,t,n=i,r=new Map,a,o){let s=t.definition,c=t.manifest,l=s.name,u=o??(await n.request(y.contributions.catalog,{})).clients;await H(l,c.clients,u,n,{checkBinaryVersions:!1});let d=ke(c.clients,u),f=await gt(n,l,await ft(n,s.providers,l,{...s.providerConfigSchema!==void 0&&{adapterConfigSchema:s.providerConfigSchema},...d!==void 0&&{clientDefinitions:d},...a!==void 0&&{providerDefinitionCache:a}}),r);return{name:l,displayName:s.displayName??c.displayName,description:s.description,packageName:e,factory:s.createAdapter,options:{adapterId:w(this.machineId,l),...this.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:this.prepareAuthRuntime}},adapterConfigSchema:s.adapterConfigSchema,providerDefinitionIds:s.providers.map(e=>e.definitionId),providerRefs:[...s.providers],providers:f,providerConfigSchema:s.providerConfigSchema,helpLinks:s.helpLinks,instructions:s.instructions,defaultPresetId:s.defaultPresetId,clients:Oe(c.clients),...d!==void 0&&{clientDefinitions:d},protocol:yt(l,s.protocol,c.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:V(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 xt(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 Ct(e,a,t,o.method,i);te(o,s);let c=Dt(n,o.method),l=Tt(n,o.method,s),u=r.get(c);if(u){if(!St(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}])=>Et(e,[...t].sort((e,t)=>e.localeCompare(t))))}function St(t,n){return e(t,n)}async function Ct(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=wt(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 wt(e,t){let{client:n}=await e.request(T.get,{id:t});if(!n)throw Error(`Authentication binding references missing client definition "${t}".`);return n}function Tt(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 Et(e,t){switch(e.mode){case`explicit`:return{...e,compatibleAdapterNames:t};case`inferred`:return{...e,compatibleAdapterNames:t};case`none`:return{...e,compatibleAdapterNames:t}}}function Dt(e,t){return JSON.stringify(t.owner===`provider`?[e,t.owner,t.providerDefinitionId,t.methodId]:[e,t.owner,t.clientId,t.methodId])}function Ot(e,t,n=-100){let r=e.on(E.get,async n=>{let r=(await X(e,t())).get(n.payload.id)??null;n.setResult({provider:r})},{priority:n}),i=e.on(E.list,async n=>{n.setResult({providers:[...(await X(e,t())).values()]})},{priority:n}),a=e.on(E.listByProtocol,async n=>{let r=[...(await X(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 X(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)kt(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)&&kt(n,e.packageName,e.definition)}return n}function kt(e,t,n){let r=u.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 At(e,t,n=-100){let r=e.on(T.get,async n=>{let r=(await Z(e,t())).get(n.payload.id)??null;n.setResult({client:r})},{priority:n}),i=e.on(T.list,async n=>{n.setResult({clients:[...(await Z(e,t())).values()]})},{priority:n}),a=e.on(T.listByBinaryName,async n=>{let r=[...(await Z(e,t())).values()].filter(e=>e.binary?.name===n.payload.binaryName);n.setResult({clients:r})},{priority:n});return()=>{r(),i(),a()}}async function Z(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=c.parse(e.definition);i.set(t.id,jt(e.packageName,t))}return i}function jt(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 Mt(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 Nt(e,t){return t===void 0||e.clients?.some(e=>e.id===t)===!0}function Pt(e,t){return e?.bindings.some(e=>Lt(e.method,t))===!0}function Ft(e,t,n,r){return e.trim().length>0&&t.trim().length>0&&(n===void 0||(r?.trim().length??0)>0)}async function It(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=Mt(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(!Pt(i,a))return{status:`error`,code:`auth-binding-missing`};let o=a.owner===`client`?a.clientId:V(e.adapter.options,e.adapter.clients);if(!Nt(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(!Ft(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 Lt(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 Rt=class extends ee{configStore;registry;providerConfigService;bindingService;contributionProcessor;runtimeSnapshotHandlerPriority;runtimeDefinitionHandlerPriority;resolveOwnerInstanceId;constructor(e){super(e.bus),this.configStore=new De({configRepository:e.configRepository,bus:e.bus}),this.registry=new it({bus:e.bus,machineId:e.machineId,...e.resolveOwnerInstanceId!==void 0&&{resolveOwnerInstanceId:e.resolveOwnerInstanceId}}),this.providerConfigService=new ot({configStore:this.configStore,bus:e.bus}),this.bindingService=new st({configStore:this.configStore,bus:e.bus}),this.contributionProcessor=new bt({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(k.ready,{})}registerBusHandlers(){this.addCleanup(Ot(this.bus,()=>this.registry.getLoadedAdapters(),this.runtimeDefinitionHandlerPriority)),this.addCleanup(At(this.bus,()=>this.registry.getLoadedAdapters(),this.runtimeDefinitionHandlerPriority)),this.registerReadHandlers(),this.registerMutationHandlers()}registerReadHandlers(){this.registerConfigReadHandlers(),this.registerRuntimeReadHandlers()}registerConfigReadHandlers(){this.registerHandler(k.getAdapterConfig,e=>{e.setResult({config:this.configStore.getAdapterConfig(e.payload.name)})}),this.registerHandler(k.listAdapterConfigs,e=>{e.setResult({configs:this.configStore.listAdapterConfigs()})}),this.registerHandler(k.getProviderConfig,e=>{e.setResult({config:this.configStore.getProviderConfig(e.payload.id)})}),this.registerHandler(k.listProviderConfigs,e=>{e.setResult({configs:this.configStore.listProviderConfigs(e.payload.enabled)})}),this.registerHandler(k.listProviderConfigsByDefinition,e=>{e.setResult({configs:this.configStore.listProviderConfigsByDefinition(e.payload.definitionId)})}),this.registerHandler(k.listBindings,e=>{e.setResult({bindings:this.configStore.listBindings(e.payload.adapterName)})}),this.registerHandler(k.listBindingsByConfig,e=>{e.setResult({bindings:this.configStore.listBindingsByConfig(e.payload.providerConfigId)})}),this.registerHandler(k.getDefaultBinding,e=>{e.setResult({binding:this.configStore.getDefaultBinding(e.payload.adapterName)})}),this.registerHandler(k.findConfigForDefinitionAndAdapter,e=>{e.setResult({config:this.configStore.findConfigForDefinitionAndAdapter(e.payload.definitionId,e.payload.adapterName)})})}registerRuntimeReadHandlers(){this.registerHandler(k.resolveProviderRuntimeSnapshot,async e=>{e.setResult({snapshot:await this.configStore.resolveProviderRuntimeSnapshot(e.payload.providerConfigId)})},{priority:this.runtimeSnapshotHandlerPriority}),this.registerHandler(k.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 It({bus:this.bus,adapter:t,snapshot:n.snapshot,isBound:n.isBound}))}catch(t){if(t instanceof L&&t.code===`provider-config-disabled`){e.setResult({status:`error`,code:`provider-config-disabled`});return}throw t}},{priority:this.runtimeSnapshotHandlerPriority}),this.registerHandler(k.listAdapters,async e=>{e.setResult({adapters:await this.configStore.buildEffectiveAdapters()})}),this.registerHandler(k.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?[]:[u.parse(t)]});e.setResult({definitions:i})}),this.registerHandler(k.listCompatibleAuthOptions,async e=>{e.setResult({options:await xt(this.bus,this.registry.getLoadedAdapters(),e.payload.definitionId)})}),this.registerHandler(k.ensureReady,e=>{e.setResult({ready:!0})})}registerMutationHandlers(){this.registerHandler(k.createProviderConfig,async e=>{e.setResult(await this.providerConfigService.createProviderConfig(e.payload))}),this.registerHandler(k.updateProviderConfig,async e=>{e.setResult(await this.providerConfigService.updateProviderConfig(e.payload.id,e.payload.patch))}),this.registerHandler(k.setProviderConfigAuth,async e=>{e.setResult(await this.providerConfigService.setProviderConfigAuth(e.payload.id,e.payload.auth))}),this.registerHandler(k.deleteProviderConfig,async e=>{e.setResult(await this.providerConfigService.deleteProviderConfig(e.payload.id))}),this.registerHandler(k.setDefaultProviderConfig,async e=>{e.setResult(await this.providerConfigService.setDefaultProviderConfig(e.payload.id))}),this.registerHandler(k.setModelFilterMode,async e=>{e.setResult(await this.providerConfigService.setModelFilterMode(e.payload.id,e.payload.modelFilterMode,e.payload.preferredModel))}),this.registerHandler(k.setAdapterConfig,async e=>{e.setResult(await this.configStore.setAdapterConfig(e.payload.name,e.payload.patch))}),this.registerHandler(k.setAdapterEnabled,async e=>{await this.configStore.setAdapterEnabled(e.payload.name,e.payload.enabled),e.setResult({success:!0})}),this.registerHandler(k.bind,async e=>{e.setResult({binding:await this.bindingService.bind(e.payload.adapterName,e.payload.providerConfigId)})}),this.registerHandler(k.unbind,async e=>{await this.bindingService.unbind(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})}),this.registerHandler(k.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(oe.teardownCompleted,{ownerInstanceId:this.resolveOwnerInstanceId?.()??null,evidence:e.evidence,...e.detail!==void 0&&{detail:e.detail}}),_(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)}},Q=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 $=`.json`;var zt=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=x.safeParse(n.jsonData);if(!r.success){this.warnInvalidFile(`adapter`,n.filePath);continue}e.set(t,r.data)}return{configs:e}}async loadProviderConfigs(){let e=new Map,t=await this.readJsonFiles(this.providerConfigsDir,`provider config`,`reject`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`provider config`,n.filePath);t&&e.set(t,this.parseProviderConfig(n.jsonData,t))}return{configs:e}}async writeProviderConfig(e,t){let r=this.assertCanonicalFileStem(e,`provider config id`),i=n.join(this.providerConfigsDir,`${r}${$}`),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}${$}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async writeAdapterFile(e,t){let r=this.assertCanonicalFileStem(e,`adapter name`),i=x.parse(t);await this.writeJsonFile(n.join(this.adaptersDir,`${r}${$}`),i)}async deleteAdapterFile(e){let t=this.assertCanonicalFileStem(e,`adapter name`);try{return await this.unlinkFile(n.join(this.adaptersDir,`${t}${$}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async readJsonFiles(e,r,i=`skip`){try{let a=(await t.readdir(e,{withFileTypes:!0})).filter(e=>e.isFile()&&n.extname(e.name)===$).sort((e,t)=>e.name.localeCompare(t.name));return(await Promise.all(a.map(async a=>{let o=n.join(e,a.name);try{let e=await t.readFile(o,`utf-8`);return{filePath:o,stem:n.parse(a.name).name,jsonData:JSON.parse(e)}}catch(e){if(e instanceof SyntaxError){if(i===`reject`)throw new Q(`invalid-provider-config`,Bt(a.name),`file does not contain valid JSON.`);return this.warnInvalidFile(r,o),null}if(e instanceof Error&&e.code===`ENOENT`)return this.warnInvalidFile(r,o),null;throw e}}))).filter(e=>e!==null)}catch(e){if(e.code===`ENOENT`)return[];throw e}}warnInvalidFile(e,t){console.warn(`[FileAdapterConfigRepository] Skipping invalid %s file: %s`,e,t)}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 Q(`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!==S)throw new Q(`unsupported-provider-config-version`,t,`expected $schema "${S}". Recreate the config with the current schema.`);let a=re.safeParse(e);if(!a.success)throw new Q(`invalid-provider-config`,t,a.error.issues.map(e=>`${e.path.length>0?e.path.join(`.`):`<root>`}: ${e.message}`).join(`; `));return a.data}getCanonicalLoadedStem(e,t,n){try{return this.assertCanonicalFileStem(e,`${t} file stem`)}catch{return this.warnInvalidFile(t,n),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 Bt(e){return n.basename(e).replace(/[^A-Za-z0-9._-]/g,`_`)||`provider-config.json`}const Vt=h(O);function Ht(e){return{name:Vt.name,displayName:`Adapter Subsystem`,version:`0.1.0`,provides:[`adapters`],dependencies:[m(D.name)],critical:!0,create:t=>{let n=t.getService(D);if(n===void 0)throw Error(`Adapter subsystem requires the active session ownership authority`);return new Rt({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{U as AdapterInstanceCloseTimeoutError,Rt as AdapterSubsystemService,Vt as AdapterSubsystemToken,zt as FileAdapterConfigRepository,F as ProviderConfigAuthValidationError,Q as ProviderConfigDiagnosticError,L as ProviderRuntimeContextError,G as aggregateAdapterInstanceTeardowns,P as assertProviderConfigAuthDefinitionsEnabled,W as classifyAdapterInstanceClose,Y as contributesToAdapterSubsystem,lt as createAdapterSubsystemContributionProcessor,Ht as createAdapterSubsystemPackage,Ue as ensureAdapterConfigs,je as extractAdapterIdFromPackageName,ct as orderAfterAdapterSubsystem,Fe as shutdownAdapterInstances,Me as toAvailableAdapter,I 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.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.warnInvalidFile(`adapter`,n.filePath);continue}e.set(t,r.data)}return{configs:e}}async loadProviderConfigs(){let e=new Map,t=await this.readJsonFiles(this.providerConfigsDir,`provider config`,`reject`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`provider config`,n.filePath);t&&e.set(t,this.parseProviderConfig(n.jsonData,t))}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,i=`skip`){try{let a=(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(a.map(async a=>{let o=n.join(e,a.name);try{let e=await t.readFile(o,`utf-8`);return{filePath:o,stem:n.parse(a.name).name,jsonData:JSON.parse(e)}}catch(e){if(e instanceof SyntaxError){if(i===`reject`)throw new Z(`invalid-provider-config`,Vt(a.name),`file does not contain valid JSON.`);return this.warnInvalidFile(r,o),null}if(e instanceof Error&&e.code===`ENOENT`)return this.warnInvalidFile(r,o),null;throw e}}))).filter(e=>e!==null)}catch(e){if(e.code===`ENOENT`)return[];throw e}}warnInvalidFile(e,t){console.warn(`[FileAdapterConfigRepository] Skipping invalid %s file: %s`,e,t)}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,a.error.issues.map(e=>`${e.path.length>0?e.path.join(`.`):`<root>`}: ${e.message}`).join(`; `));return a.data}getCanonicalLoadedStem(e,t,n){try{return this.assertCanonicalFileStem(e,`${t} file stem`)}catch{return this.warnInvalidFile(t,n),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 n.basename(e).replace(/[^A-Za-z0-9._-]/g,`_`)||`provider-config.json`}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,10 +1,10 @@
1
1
  import { z } from "zod";
2
2
  import * as _$_makaio_core0 from "@makaio/framework/core";
3
3
  import { NamespaceRegistrationOptions } from "@makaio/framework/core";
4
- import * as _$_makaio_bus_core0 from "@makaio/framework/bus";
5
- import { IMakaioBus, ScopedBusFor } from "@makaio/framework/bus";
6
4
  import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
7
5
  import { AgentToolApproveRequest, AgentToolApproveResponse, MakaioNodeExtension, ReasoningLevelMap } from "@makaio/framework/contracts";
6
+ import * as _$_makaio_bus_core0 from "@makaio/framework/bus";
7
+ import { IMakaioBus, ScopedBusFor } from "@makaio/framework/bus";
8
8
  import { ClientAccountIdentifier } from "@makaio/framework/contracts/client";
9
9
  import * as _$_makaio_ai_adapters_core0 from "@makaio/framework/adapters";
10
10
  import { AIAgent, AIAgentConnector, BaseConnectorTurn, MergeScopedToolApprovalOptions, MessageHandle, NormalizedMessageInput, PauseResult, ScopedToolApprovalRequest, ToolApprovalContext, ToolApprovalContext as ToolApprovalContext$1 } from "@makaio/framework/adapters";
@@ -1 +1 @@
1
- import{MakaioBus as e,createChannelEndpoint as t}from"@makaio/framework/bus";import{CredentialSubjects as n}from"@makaio/framework/contracts";function r(r){let i=[],a=`test-credential-token-${crypto.randomUUID()}`;i.push(e.on(n.getChannelToken,e=>{e.setResult({token:a})}));let o=t(e.getContext(),`credentials`,e=>{e.on(n.resolve,e=>{e.setResult({value:r})})},{token:a});return i.push(()=>o.close()),()=>{for(let e of i)e()}}export{r as setupFixedCredentialBus};
1
+ import{CredentialSubjects as e}from"@makaio/framework/contracts";import{MakaioBus as t,createChannelEndpoint as n}from"@makaio/framework/bus";function r(r){let i=[],a=`test-credential-token-${crypto.randomUUID()}`;i.push(t.on(e.getChannelToken,e=>{e.setResult({token:a})}));let o=n(t.getContext(),`credentials`,t=>{t.on(e.resolve,e=>{e.setResult({value:r})})},{token:a});return i.push(()=>o.close()),()=>{for(let e of i)e()}}export{r as setupFixedCredentialBus};
@@ -1,8 +1,8 @@
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-D4N56a4O.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-Dswhi1L9.mjs";
2
2
  import { z } from "zod";
3
3
  import { TimeoutConfig, TrackedTimeoutConfig } from "@makaio/framework/utils";
4
- import { IMakaioBus, MakaioBusContext } from "@makaio/framework/bus";
5
4
  import { AIModelSchema, AdapterProviderAuth, ProtocolId, ProviderContext, ResolvedProviderAuth } from "@makaio/framework/contracts";
5
+ import { IMakaioBus, MakaioBusContext } from "@makaio/framework/bus";
6
6
  import { BaseAdapterConfigSchema, CredentialRef, ProviderConfigSchema, ProviderDefaultsSchema } from "@makaio/framework/contracts/config";
7
7
  import { ClientExecutionContext } from "@makaio/framework/contracts/client";
8
8
  import { ProviderRecord } from "@makaio/framework/services/settings/storage";
@@ -1 +1 @@
1
- import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"../../adapter-auth-runtime-BnPqQChk.mjs";import{z as l}from"zod";import u from"node:fs/promises";import{resolveTimeouts as d}from"@makaio/framework/utils";import{AIModelSchema as f,AuthFieldIdSchema as p}from"@makaio/framework/contracts";import{BaseAdapterConfigSchema as m,ProviderConfigSchema as h,ProviderDefaultsSchema as g}from"@makaio/framework/contracts/config";import{AdapterSubsystemSubjects as _}from"@makaio/framework/services/adapter-subsystem";async function v(e,t={}){if(e.startsWith(`env:`)){let n=e.slice(4);if(!n)throw Error(`Credential reference is missing environment variable name`);return(t.readEnv??(e=>process.env[e]))(n)||null}if(e.startsWith(`file:`)){let n=e.slice(5);if(!n)throw Error(`Credential reference is missing file path`);return(await(t.readFile??(async e=>await u.readFile(e,`utf-8`)))(n)).trim()||null}if(e.startsWith(`keychain:`)){let[n,...r]=e.slice(9).split(`:`);if(!n||r.length===0)throw Error(`Credential reference is missing keychain service or account`);if(!t.resolveKeychain)throw Error(`Keychain credential resolution is not configured`);return t.resolveKeychain(n,r.join(`:`))}return e||null}function y(e,t){let n=e.find(e=>e.id===t);if(!n)throw Error(`Provider definition not found: '${t}'`);if(!b(n))throw Error(`Provider definition '${t}' is missing a defaultModel`);return n}function b(e){return typeof e.defaultModel==`string`&&e.defaultModel.length>0}const x=l.record(l.string(),l.unknown());function S(e){return{getDefaults:()=>e().adapterDefaults,getConfig:t=>C(e,t)}}async function C(e,t){let{adapterName:n,adapterDefaults:r,adapterDefinition:i}=e(),a=T(t),o=t.providerContext.state===`resolved`&&t.providerProtocol!==void 0?t.providerContext.endpointOverrides?.[t.providerProtocol]??null:null,s=d([{layer:`adapter`,source:n,config:i.defaultTimeouts},{layer:`runtime`,source:`config.ts`,config:t.runtimeTimeouts}]),c={...r.providerConfig,...t.providerConfig,baseUrl:o??t.providerConfig?.baseUrl??r.providerConfig?.baseUrl},l=w(t.model??r.model,n,t.agentId),{providerConfig:u,adapterProviderAuth:f,compatibleProviderAuths:p,providerContextRequired:m,...h}=t;return{...r,...h,adapterName:t.adapterName,model:l,cwd:t.cwd??r.cwd??process.cwd(),timeouts:s,providerConfig:c,...a!==void 0&&{boundProviderAuth:a}}}function w(e,t,n){if(e!==void 0&&e.length>0)return e;throw Error(`No model resolved for adapter "${t}" (agentId: ${n}). Provide a model explicitly or configure adapterDefaults.model.`)}function T(e){if(e.providerContext.state===`unresolved`){if(e.providerContextRequired===!0)throw new a(`provider-context-unresolved`,`This adapter requires a resolved provider authentication context.`);return}if(e.adapterProviderAuth===void 0)throw new a(`binding-missing`,`The selected provider has no adapter authentication declaration.`);let t=s({auth:e.providerContext.auth,adapterProviderAuth:e.adapterProviderAuth,compatibleProviderAuths:e.compatibleProviderAuths});if(t.auth.method.owner===`client`&&t.auth.method.clientId!==e.clientId)throw new a(`client-mismatch`,`Selected authentication client does not match the adapter runtime client.`);return t}var E=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`ProviderResolutionError`}};async function D(e,t,n){let{snapshot:r}=await e.request(_.resolveProviderRuntimeSnapshot,{providerConfigId:t});if(!r)throw new E(`provider-config-not-found`,`ProviderConfig '${t}' not found`);let i=r.context.endpointOverrides?.[n]??r.definition.endpoints?.[n]??null;return{config:r.config,definition:r.definition,baseUrl:i,auth:r.context.auth}}var O=class extends Error{code;constructor(e){super(`Authenticated provider endpoint resolution failed (${e}).`),this.code=e,this.name=`ProviderEndpointAuthError`}};async function k(t,r,i,a){let{baseUrl:o,auth:s}=await D(t,r,i);if(!o)throw Error(`Could not resolve baseUrl for ProviderConfig '${r}' with protocol '${i}'. Ensure the provider definition or config override declares an endpoint for this protocol.`);if(s.mode!==`explicit`)throw new O(`fetch-auth-unsupported`);let c=p.safeParse(a.credentialFieldId);if(a.kind!==`api-key`||!c.success)throw new O(`fetch-auth-unsupported`);let l=s.definition.fields.find(({id:e})=>e===c.data);if(l===void 0)throw new O(`fetch-auth-unsupported`);let u=s.credentialRefs[l.id];if(u===void 0)throw new O(`fetch-auth-missing`);let d;try{d=(await e(t,{apiKey:u})).apiKey}catch(e){throw e instanceof n&&e.code===`credential-unavailable`?new O(`fetch-auth-missing`):new O(`fetch-auth-resolution-failed`)}if(d===void 0||d.trim()===``)throw new O(`fetch-auth-missing`);return{baseUrl:o,apiKey:d}}var A=class extends Error{code;constructor(e){super(`Adapter runtime snapshot resolution failed (${e}).`),this.code=e,this.name=`AdapterRuntimeSnapshotError`}};async function j(e,t){let n=await e.request(_.resolveAdapterRuntimeSnapshot,t);if(n.status===`error`)throw new A(n.code);let r=n.runtime;if(r.adapterName!==t.adapterName||r.snapshot.context.providerConfigId!==t.providerConfigId)throw new A(`snapshot-identity-mismatch`);let i=s({auth:r.snapshot.context.auth,adapterProviderAuth:r.adapterProviderAuth,compatibleProviderAuths:r.compatibleProviderAuths});if(i.auth.method.owner===`client`&&i.auth.method.clientId!==r.adapterClientId)throw new A(`client-incompatible`);return{...r,boundProviderAuth:i}}export{f as AIModelSchema,a as AdapterAuthError,A as AdapterRuntimeSnapshotError,m as BaseAdapterConfigSchema,x as BaseProviderConfigSchema,n as ConnectorCredentialResolutionError,h as ProviderConfigSchema,g as ProviderDefaultsSchema,O as ProviderEndpointAuthError,E as ProviderResolutionError,c as applySuppliedAdapterAuthRuntime,s as bindProviderAuth,S as createAdapterConfigFactory,y as getDefinitionOrThrow,t as getOptionalAuthCredentialFields,i as prepareAdapterAuthRuntime,j as resolveAdapterRuntimeSnapshot,r as resolveBoundProviderAuth,e as resolveConnectorCredentials,v as resolveCredentialRef,k as resolveProviderEndpoint,D as resolveProviderResolution,o as resolveSessionEnvironment};
1
+ import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"../../adapter-auth-runtime-46Y9WKcB.mjs";import{z as l}from"zod";import u from"node:fs/promises";import{resolveTimeouts as d}from"@makaio/framework/utils";import{AIModelSchema as f,AuthFieldIdSchema as p}from"@makaio/framework/contracts";import{BaseAdapterConfigSchema as m,ProviderConfigSchema as h,ProviderDefaultsSchema as g}from"@makaio/framework/contracts/config";import{AdapterSubsystemSubjects as _}from"@makaio/framework/services/adapter-subsystem";async function v(e,t={}){if(e.startsWith(`env:`)){let n=e.slice(4);if(!n)throw Error(`Credential reference is missing environment variable name`);return(t.readEnv??(e=>process.env[e]))(n)||null}if(e.startsWith(`file:`)){let n=e.slice(5);if(!n)throw Error(`Credential reference is missing file path`);return(await(t.readFile??(async e=>await u.readFile(e,`utf-8`)))(n)).trim()||null}if(e.startsWith(`keychain:`)){let[n,...r]=e.slice(9).split(`:`);if(!n||r.length===0)throw Error(`Credential reference is missing keychain service or account`);if(!t.resolveKeychain)throw Error(`Keychain credential resolution is not configured`);return t.resolveKeychain(n,r.join(`:`))}return e||null}function y(e,t){let n=e.find(e=>e.id===t);if(!n)throw Error(`Provider definition not found: '${t}'`);if(!b(n))throw Error(`Provider definition '${t}' is missing a defaultModel`);return n}function b(e){return typeof e.defaultModel==`string`&&e.defaultModel.length>0}const x=l.record(l.string(),l.unknown());function S(e){return{getDefaults:()=>e().adapterDefaults,getConfig:t=>C(e,t)}}async function C(e,t){let{adapterName:n,adapterDefaults:r,adapterDefinition:i}=e(),a=T(t),o=t.providerContext.state===`resolved`&&t.providerProtocol!==void 0?t.providerContext.endpointOverrides?.[t.providerProtocol]??null:null,s=d([{layer:`adapter`,source:n,config:i.defaultTimeouts},{layer:`runtime`,source:`config.ts`,config:t.runtimeTimeouts}]),c={...r.providerConfig,...t.providerConfig,baseUrl:o??t.providerConfig?.baseUrl??r.providerConfig?.baseUrl},l=w(t.model??r.model,n,t.agentId),{providerConfig:u,adapterProviderAuth:f,compatibleProviderAuths:p,providerContextRequired:m,...h}=t;return{...r,...h,adapterName:t.adapterName,model:l,cwd:t.cwd??r.cwd??process.cwd(),timeouts:s,providerConfig:c,...a!==void 0&&{boundProviderAuth:a}}}function w(e,t,n){if(e!==void 0&&e.length>0)return e;throw Error(`No model resolved for adapter "${t}" (agentId: ${n}). Provide a model explicitly or configure adapterDefaults.model.`)}function T(e){if(e.providerContext.state===`unresolved`){if(e.providerContextRequired===!0)throw new a(`provider-context-unresolved`,`This adapter requires a resolved provider authentication context.`);return}if(e.adapterProviderAuth===void 0)throw new a(`binding-missing`,`The selected provider has no adapter authentication declaration.`);let t=s({auth:e.providerContext.auth,adapterProviderAuth:e.adapterProviderAuth,compatibleProviderAuths:e.compatibleProviderAuths});if(t.auth.method.owner===`client`&&t.auth.method.clientId!==e.clientId)throw new a(`client-mismatch`,`Selected authentication client does not match the adapter runtime client.`);return t}var E=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`ProviderResolutionError`}};async function D(e,t,n){let{snapshot:r}=await e.request(_.resolveProviderRuntimeSnapshot,{providerConfigId:t});if(!r)throw new E(`provider-config-not-found`,`ProviderConfig '${t}' not found`);let i=r.context.endpointOverrides?.[n]??r.definition.endpoints?.[n]??null;return{config:r.config,definition:r.definition,baseUrl:i,auth:r.context.auth}}var O=class extends Error{code;constructor(e){super(`Authenticated provider endpoint resolution failed (${e}).`),this.code=e,this.name=`ProviderEndpointAuthError`}};async function k(t,r,i,a){let{baseUrl:o,auth:s}=await D(t,r,i);if(!o)throw Error(`Could not resolve baseUrl for ProviderConfig '${r}' with protocol '${i}'. Ensure the provider definition or config override declares an endpoint for this protocol.`);if(s.mode!==`explicit`)throw new O(`fetch-auth-unsupported`);let c=p.safeParse(a.credentialFieldId);if(a.kind!==`api-key`||!c.success)throw new O(`fetch-auth-unsupported`);let l=s.definition.fields.find(({id:e})=>e===c.data);if(l===void 0)throw new O(`fetch-auth-unsupported`);let u=s.credentialRefs[l.id];if(u===void 0)throw new O(`fetch-auth-missing`);let d;try{d=(await e(t,{apiKey:u})).apiKey}catch(e){throw e instanceof n&&e.code===`credential-unavailable`?new O(`fetch-auth-missing`):new O(`fetch-auth-resolution-failed`)}if(d===void 0||d.trim()===``)throw new O(`fetch-auth-missing`);return{baseUrl:o,apiKey:d}}var A=class extends Error{code;constructor(e){super(`Adapter runtime snapshot resolution failed (${e}).`),this.code=e,this.name=`AdapterRuntimeSnapshotError`}};async function j(e,t){let n=await e.request(_.resolveAdapterRuntimeSnapshot,t);if(n.status===`error`)throw new A(n.code);let r=n.runtime;if(r.adapterName!==t.adapterName||r.snapshot.context.providerConfigId!==t.providerConfigId)throw new A(`snapshot-identity-mismatch`);let i=s({auth:r.snapshot.context.auth,adapterProviderAuth:r.adapterProviderAuth,compatibleProviderAuths:r.compatibleProviderAuths});if(i.auth.method.owner===`client`&&i.auth.method.clientId!==r.adapterClientId)throw new A(`client-incompatible`);return{...r,boundProviderAuth:i}}export{f as AIModelSchema,a as AdapterAuthError,A as AdapterRuntimeSnapshotError,m as BaseAdapterConfigSchema,x as BaseProviderConfigSchema,n as ConnectorCredentialResolutionError,h as ProviderConfigSchema,g as ProviderDefaultsSchema,O as ProviderEndpointAuthError,E as ProviderResolutionError,c as applySuppliedAdapterAuthRuntime,s as bindProviderAuth,S as createAdapterConfigFactory,y as getDefinitionOrThrow,t as getOptionalAuthCredentialFields,i as prepareAdapterAuthRuntime,j as resolveAdapterRuntimeSnapshot,r as resolveBoundProviderAuth,e as resolveConnectorCredentials,v as resolveCredentialRef,k as resolveProviderEndpoint,D as resolveProviderResolution,o as resolveSessionEnvironment};