@1mcp/agent 0.36.0 → 0.38.0

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 (902) hide show
  1. package/build/admin/assets/{admin-OAuthServicesWorkspace-BCGj2hP4.js → admin-OAuthServicesWorkspace-CzXIIHM0.js} +1 -1
  2. package/build/admin/assets/admin-console-Mv3xmdoU.js +3 -0
  3. package/build/admin/assets/admin-vendor-62eL-qdH.js +1 -0
  4. package/build/admin/assets/admin-vendor-BbMrl7MK.js +3 -0
  5. package/build/admin/assets/admin-vendor-DpjVwd81.js +62 -0
  6. package/build/admin/index.html +4 -1
  7. package/build/application/services/healthService.d.ts +6 -6
  8. package/build/application/services/healthService.d.ts.map +1 -1
  9. package/build/application/services/healthService.js +1 -1
  10. package/build/application/services/healthService.js.map +1 -1
  11. package/build/application/services/tokenEstimationService.d.ts +1 -1
  12. package/build/application/services/tokenEstimationService.d.ts.map +1 -1
  13. package/build/application/services/tokenEstimationService.js.map +1 -1
  14. package/build/auth/oauthAuthorizationFlow.d.ts +13 -11
  15. package/build/auth/oauthAuthorizationFlow.d.ts.map +1 -1
  16. package/build/auth/oauthAuthorizationFlow.js +4 -17
  17. package/build/auth/oauthAuthorizationFlow.js.map +1 -1
  18. package/build/auth/sdkOAuthClientProvider.d.ts +2 -97
  19. package/build/auth/sdkOAuthClientProvider.d.ts.map +1 -1
  20. package/build/auth/sdkOAuthClientProvider.js +1 -242
  21. package/build/auth/sdkOAuthClientProvider.js.map +1 -1
  22. package/build/auth/sdkOAuthServerProvider.d.ts +1 -68
  23. package/build/auth/sdkOAuthServerProvider.d.ts.map +1 -1
  24. package/build/auth/sdkOAuthServerProvider.js +1 -482
  25. package/build/auth/sdkOAuthServerProvider.js.map +1 -1
  26. package/build/auth/sessionTypes.d.ts +1 -1
  27. package/build/auth/sessionTypes.d.ts.map +1 -1
  28. package/build/auth/sessionTypes.js.map +1 -1
  29. package/build/auth/storage/authCodeRepository.js +2 -2
  30. package/build/auth/storage/authCodeRepository.js.map +1 -1
  31. package/build/auth/storage/authRequestRepository.js +2 -2
  32. package/build/auth/storage/authRequestRepository.js.map +1 -1
  33. package/build/auth/storage/clientDataRepository.d.ts +1 -1
  34. package/build/auth/storage/clientDataRepository.d.ts.map +1 -1
  35. package/build/auth/storage/clientDataRepository.js.map +1 -1
  36. package/build/auth/storage/fileStorageService.d.ts +41 -0
  37. package/build/auth/storage/fileStorageService.d.ts.map +1 -1
  38. package/build/auth/storage/fileStorageService.js +231 -44
  39. package/build/auth/storage/fileStorageService.js.map +1 -1
  40. package/build/auth/storage/oauthStorageService.d.ts +5 -0
  41. package/build/auth/storage/oauthStorageService.d.ts.map +1 -1
  42. package/build/auth/storage/oauthStorageService.js +6 -0
  43. package/build/auth/storage/oauthStorageService.js.map +1 -1
  44. package/build/commands/inspect/inspect.d.ts +1 -1
  45. package/build/commands/inspect/inspect.d.ts.map +1 -1
  46. package/build/commands/inspect/inspect.js +6 -9
  47. package/build/commands/inspect/inspect.js.map +1 -1
  48. package/build/commands/inspect/inspectUtils.d.ts +1 -1
  49. package/build/commands/inspect/inspectUtils.d.ts.map +1 -1
  50. package/build/commands/inspect/inspectUtils.js +4 -13
  51. package/build/commands/inspect/inspectUtils.js.map +1 -1
  52. package/build/commands/mcp/install.d.ts +47 -3
  53. package/build/commands/mcp/install.d.ts.map +1 -1
  54. package/build/commands/mcp/install.js +22 -14
  55. package/build/commands/mcp/install.js.map +1 -1
  56. package/build/commands/registry/options.d.ts +3 -0
  57. package/build/commands/registry/options.d.ts.map +1 -1
  58. package/build/commands/registry/options.js +27 -0
  59. package/build/commands/registry/options.js.map +1 -1
  60. package/build/commands/registry/search.d.ts.map +1 -1
  61. package/build/commands/registry/search.js +2 -10
  62. package/build/commands/registry/search.js.map +1 -1
  63. package/build/commands/registry/show.d.ts.map +1 -1
  64. package/build/commands/registry/show.js +2 -10
  65. package/build/commands/registry/show.js.map +1 -1
  66. package/build/commands/registry/status.d.ts.map +1 -1
  67. package/build/commands/registry/status.js +2 -10
  68. package/build/commands/registry/status.js.map +1 -1
  69. package/build/commands/registry/versions.d.ts.map +1 -1
  70. package/build/commands/registry/versions.js +2 -10
  71. package/build/commands/registry/versions.js.map +1 -1
  72. package/build/commands/run/run.d.ts +1 -1
  73. package/build/commands/run/run.d.ts.map +1 -1
  74. package/build/commands/run/run.js +5 -5
  75. package/build/commands/run/run.js.map +1 -1
  76. package/build/commands/run/runUtils.d.ts +1 -1
  77. package/build/commands/run/runUtils.d.ts.map +1 -1
  78. package/build/commands/run/runUtils.js.map +1 -1
  79. package/build/commands/serve/asyncLoadingOptions.d.ts +16 -0
  80. package/build/commands/serve/asyncLoadingOptions.d.ts.map +1 -1
  81. package/build/commands/serve/asyncLoadingOptions.js +29 -0
  82. package/build/commands/serve/asyncLoadingOptions.js.map +1 -1
  83. package/build/commands/serve/index.d.ts +24 -0
  84. package/build/commands/serve/index.d.ts.map +1 -1
  85. package/build/commands/serve/index.js +24 -0
  86. package/build/commands/serve/index.js.map +1 -1
  87. package/build/commands/serve/serve.d.ts +1 -83
  88. package/build/commands/serve/serve.d.ts.map +1 -1
  89. package/build/commands/serve/serve.js +1 -507
  90. package/build/commands/serve/serve.js.map +1 -1
  91. package/build/commands/serve/serveBackground.d.ts +2 -1
  92. package/build/commands/serve/serveBackground.d.ts.map +1 -1
  93. package/build/commands/serve/serveBackground.js +6 -0
  94. package/build/commands/serve/serveBackground.js.map +1 -1
  95. package/build/commands/shared/authProfileStore.d.ts.map +1 -1
  96. package/build/commands/shared/authProfileStore.js +54 -10
  97. package/build/commands/shared/authProfileStore.js.map +1 -1
  98. package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
  99. package/build/commands/shared/clientSurfaceAttachment.js +16 -4
  100. package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
  101. package/build/commands/shared/connectionHelper.d.ts +4 -4
  102. package/build/commands/shared/connectionHelper.d.ts.map +1 -1
  103. package/build/commands/shared/connectionHelper.js +9 -26
  104. package/build/commands/shared/connectionHelper.js.map +1 -1
  105. package/build/commands/shared/inspectApiSchemas.d.ts +8 -8
  106. package/build/commands/shared/serveClient.d.ts +1 -69
  107. package/build/commands/shared/serveClient.d.ts.map +1 -1
  108. package/build/commands/shared/serveClient.js +1 -234
  109. package/build/commands/shared/serveClient.js.map +1 -1
  110. package/build/commands/wait/wait.js +1 -1
  111. package/build/commands/wait/wait.js.map +1 -1
  112. package/build/config/configManager.d.ts.map +1 -1
  113. package/build/config/configManager.js +19 -6
  114. package/build/config/configManager.js.map +1 -1
  115. package/build/config/configuredServerTargets.d.ts +1 -0
  116. package/build/config/configuredServerTargets.d.ts.map +1 -1
  117. package/build/config/configuredServerTargets.js +6 -0
  118. package/build/config/configuredServerTargets.js.map +1 -1
  119. package/build/config/envProcessor.d.ts.map +1 -1
  120. package/build/config/envProcessor.js +26 -1
  121. package/build/config/envProcessor.js.map +1 -1
  122. package/build/constants/auth.d.ts +7 -0
  123. package/build/constants/auth.d.ts.map +1 -1
  124. package/build/constants/auth.js +6 -1
  125. package/build/constants/auth.js.map +1 -1
  126. package/build/constants/mcp.d.ts +2 -2
  127. package/build/constants/mcp.d.ts.map +1 -1
  128. package/build/constants/mcp.js +1 -1
  129. package/build/core/capabilities/capabilityAggregator.d.ts +18 -88
  130. package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
  131. package/build/core/capabilities/capabilityAggregator.js +75 -269
  132. package/build/core/capabilities/capabilityAggregator.js.map +1 -1
  133. package/build/core/capabilities/capabilityCatalog.d.ts +3 -4
  134. package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
  135. package/build/core/capabilities/capabilityCatalog.js +46 -16
  136. package/build/core/capabilities/capabilityCatalog.js.map +1 -1
  137. package/build/core/capabilities/capabilityManager.d.ts +9 -32
  138. package/build/core/capabilities/capabilityManager.d.ts.map +1 -1
  139. package/build/core/capabilities/capabilityManager.js +5 -4
  140. package/build/core/capabilities/capabilityManager.js.map +1 -1
  141. package/build/core/capabilities/capabilityNotificationFacts.js +1 -1
  142. package/build/core/capabilities/capabilityNotificationFacts.js.map +1 -1
  143. package/build/core/capabilities/capabilityPagination.d.ts +2 -0
  144. package/build/core/capabilities/capabilityPagination.d.ts.map +1 -1
  145. package/build/core/capabilities/capabilityPagination.js +59 -32
  146. package/build/core/capabilities/capabilityPagination.js.map +1 -1
  147. package/build/core/capabilities/catalogGeneration.d.ts +47 -0
  148. package/build/core/capabilities/catalogGeneration.d.ts.map +1 -0
  149. package/build/core/capabilities/catalogGeneration.js +145 -0
  150. package/build/core/capabilities/catalogGeneration.js.map +1 -0
  151. package/build/core/capabilities/configuredToolSnapshot.d.ts +1 -1
  152. package/build/core/capabilities/configuredToolSnapshot.d.ts.map +1 -1
  153. package/build/core/capabilities/configuredToolSnapshot.js.map +1 -1
  154. package/build/core/capabilities/internal/discoveryTools.d.ts +1 -7
  155. package/build/core/capabilities/internal/discoveryTools.d.ts.map +1 -1
  156. package/build/core/capabilities/internal/discoveryTools.js +6 -0
  157. package/build/core/capabilities/internal/discoveryTools.js.map +1 -1
  158. package/build/core/capabilities/internal/installationTools.d.ts +1 -7
  159. package/build/core/capabilities/internal/installationTools.d.ts.map +1 -1
  160. package/build/core/capabilities/internal/installationTools.js +6 -0
  161. package/build/core/capabilities/internal/installationTools.js.map +1 -1
  162. package/build/core/capabilities/internal/lazyTools.d.ts +1 -1
  163. package/build/core/capabilities/internal/lazyTools.d.ts.map +1 -1
  164. package/build/core/capabilities/internal/lazyTools.js.map +1 -1
  165. package/build/core/capabilities/internal/managementTools.d.ts +1 -7
  166. package/build/core/capabilities/internal/managementTools.d.ts.map +1 -1
  167. package/build/core/capabilities/internal/managementTools.js +6 -0
  168. package/build/core/capabilities/internal/managementTools.js.map +1 -1
  169. package/build/core/capabilities/internalCapabilitiesProvider.d.ts +1 -1
  170. package/build/core/capabilities/internalCapabilitiesProvider.d.ts.map +1 -1
  171. package/build/core/capabilities/internalCapabilitiesProvider.js.map +1 -1
  172. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
  173. package/build/core/capabilities/lazyLoadingOrchestrator.js +19 -78
  174. package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
  175. package/build/core/capabilities/metaToolProvider.d.ts +1 -1
  176. package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
  177. package/build/core/capabilities/metaToolProvider.js.map +1 -1
  178. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts +48 -0
  179. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts.map +1 -0
  180. package/build/core/capabilities/runtimeCapabilityCatalog.js +409 -0
  181. package/build/core/capabilities/runtimeCapabilityCatalog.js.map +1 -0
  182. package/build/core/capabilities/schemaCache.d.ts +1 -1
  183. package/build/core/capabilities/schemaCache.d.ts.map +1 -1
  184. package/build/core/capabilities/schemaCache.js.map +1 -1
  185. package/build/core/capabilities/schemas/metaToolSchemas.d.ts +3 -3
  186. package/build/core/capabilities/toolRegistry.d.ts +11 -1
  187. package/build/core/capabilities/toolRegistry.d.ts.map +1 -1
  188. package/build/core/capabilities/toolRegistry.js +51 -32
  189. package/build/core/capabilities/toolRegistry.js.map +1 -1
  190. package/build/core/client/clientFactory.d.ts +1 -6
  191. package/build/core/client/clientFactory.d.ts.map +1 -1
  192. package/build/core/client/clientFactory.js +1 -35
  193. package/build/core/client/clientFactory.js.map +1 -1
  194. package/build/core/client/clientManager.d.ts +1 -89
  195. package/build/core/client/clientManager.d.ts.map +1 -1
  196. package/build/core/client/clientManager.js +1 -728
  197. package/build/core/client/clientManager.js.map +1 -1
  198. package/build/core/client/connectedClient.d.ts +1 -6
  199. package/build/core/client/connectedClient.d.ts.map +1 -1
  200. package/build/core/client/connectionHandler.d.ts +1 -8
  201. package/build/core/client/connectionHandler.d.ts.map +1 -1
  202. package/build/core/client/connectionHandler.js +1 -96
  203. package/build/core/client/connectionHandler.js.map +1 -1
  204. package/build/core/client/legacyAdapterRequest.d.ts +6 -0
  205. package/build/core/client/legacyAdapterRequest.d.ts.map +1 -0
  206. package/build/core/client/legacyAdapterRequest.js +55 -0
  207. package/build/core/client/legacyAdapterRequest.js.map +1 -0
  208. package/build/core/client/oauthFlowHandler.d.ts +1 -9
  209. package/build/core/client/oauthFlowHandler.d.ts.map +1 -1
  210. package/build/core/client/oauthFlowHandler.js +1 -80
  211. package/build/core/client/oauthFlowHandler.js.map +1 -1
  212. package/build/core/client/postAuthOAuthRecovery.d.ts +2 -2
  213. package/build/core/client/postAuthOAuthRecovery.d.ts.map +1 -1
  214. package/build/core/client/postAuthOAuthRecovery.js +4 -16
  215. package/build/core/client/postAuthOAuthRecovery.js.map +1 -1
  216. package/build/core/client/recreateHttpTransportOptions.d.ts +1 -13
  217. package/build/core/client/recreateHttpTransportOptions.d.ts.map +1 -1
  218. package/build/core/client/renderableOutboundConnection.d.ts +5 -0
  219. package/build/core/client/renderableOutboundConnection.d.ts.map +1 -0
  220. package/build/core/client/renderableOutboundConnection.js +38 -0
  221. package/build/core/client/renderableOutboundConnection.js.map +1 -0
  222. package/build/core/client/transportRecreationState.d.ts +1 -10
  223. package/build/core/client/transportRecreationState.d.ts.map +1 -1
  224. package/build/core/client/transportRecreator.d.ts +1 -13
  225. package/build/core/client/transportRecreator.d.ts.map +1 -1
  226. package/build/core/client/transportRecreator.js +1 -51
  227. package/build/core/client/transportRecreator.js.map +1 -1
  228. package/build/core/client/types.d.ts +1 -6
  229. package/build/core/client/types.d.ts.map +1 -1
  230. package/build/core/client/types.js +1 -10
  231. package/build/core/client/types.js.map +1 -1
  232. package/build/core/configChangeHandler.d.ts.map +1 -1
  233. package/build/core/configChangeHandler.js +2 -5
  234. package/build/core/configChangeHandler.js.map +1 -1
  235. package/build/core/context/templateContextTrust.d.ts.map +1 -1
  236. package/build/core/context/templateContextTrust.js +22 -4
  237. package/build/core/context/templateContextTrust.js.map +1 -1
  238. package/build/core/filtering/clientFiltering.d.ts +1 -1
  239. package/build/core/filtering/clientFiltering.d.ts.map +1 -1
  240. package/build/core/filtering/clientFiltering.js +3 -3
  241. package/build/core/filtering/clientFiltering.js.map +1 -1
  242. package/build/core/filtering/filteringService.d.ts +1 -1
  243. package/build/core/filtering/filteringService.d.ts.map +1 -1
  244. package/build/core/filtering/filteringService.js +3 -3
  245. package/build/core/filtering/filteringService.js.map +1 -1
  246. package/build/core/loading/backendLoadingPolicy.d.ts +11 -0
  247. package/build/core/loading/backendLoadingPolicy.d.ts.map +1 -0
  248. package/build/core/loading/backendLoadingPolicy.js +10 -0
  249. package/build/core/loading/backendLoadingPolicy.js.map +1 -0
  250. package/build/core/loading/mcpLoadingManager.d.ts +12 -25
  251. package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
  252. package/build/core/loading/mcpLoadingManager.js +116 -70
  253. package/build/core/loading/mcpLoadingManager.js.map +1 -1
  254. package/build/core/notifications/notificationManager.d.ts +3 -2
  255. package/build/core/notifications/notificationManager.d.ts.map +1 -1
  256. package/build/core/notifications/notificationManager.js +13 -11
  257. package/build/core/notifications/notificationManager.js.map +1 -1
  258. package/build/core/protocol/notificationHandlers.d.ts +1 -13
  259. package/build/core/protocol/notificationHandlers.d.ts.map +1 -1
  260. package/build/core/protocol/notificationHandlers.js +1 -123
  261. package/build/core/protocol/notificationHandlers.js.map +1 -1
  262. package/build/core/protocol/promptRequestHandlers.d.ts +1 -3
  263. package/build/core/protocol/promptRequestHandlers.d.ts.map +1 -1
  264. package/build/core/protocol/promptRequestHandlers.js +1 -72
  265. package/build/core/protocol/promptRequestHandlers.js.map +1 -1
  266. package/build/core/protocol/requestHandlerUtils.d.ts.map +1 -1
  267. package/build/core/protocol/requestHandlerUtils.js +5 -24
  268. package/build/core/protocol/requestHandlerUtils.js.map +1 -1
  269. package/build/core/protocol/requestHandlers.d.ts +1 -12
  270. package/build/core/protocol/requestHandlers.d.ts.map +1 -1
  271. package/build/core/protocol/requestHandlers.js +1 -92
  272. package/build/core/protocol/requestHandlers.js.map +1 -1
  273. package/build/core/protocol/resourceRequestHandlers.d.ts +1 -2
  274. package/build/core/protocol/resourceRequestHandlers.d.ts.map +1 -1
  275. package/build/core/protocol/resourceRequestHandlers.js +1 -95
  276. package/build/core/protocol/resourceRequestHandlers.js.map +1 -1
  277. package/build/core/protocol/toolRequestHandlers.d.ts +1 -3
  278. package/build/core/protocol/toolRequestHandlers.d.ts.map +1 -1
  279. package/build/core/protocol/toolRequestHandlers.js +1 -187
  280. package/build/core/protocol/toolRequestHandlers.js.map +1 -1
  281. package/build/core/server/agentConfig.d.ts +26 -0
  282. package/build/core/server/agentConfig.d.ts.map +1 -1
  283. package/build/core/server/agentConfig.js +11 -0
  284. package/build/core/server/agentConfig.js.map +1 -1
  285. package/build/core/server/clientInstanceFactory.d.ts +1 -13
  286. package/build/core/server/clientInstanceFactory.d.ts.map +1 -1
  287. package/build/core/server/clientInstanceFactory.js +1 -48
  288. package/build/core/server/clientInstanceFactory.js.map +1 -1
  289. package/build/core/server/clientInstancePool.d.ts +1 -117
  290. package/build/core/server/clientInstancePool.d.ts.map +1 -1
  291. package/build/core/server/clientInstancePool.js +1 -599
  292. package/build/core/server/clientInstancePool.js.map +1 -1
  293. package/build/core/server/clientInstancePoolTypes.d.ts +1 -59
  294. package/build/core/server/clientInstancePoolTypes.d.ts.map +1 -1
  295. package/build/core/server/clientInstancePoolTypes.js +1 -9
  296. package/build/core/server/clientInstancePoolTypes.js.map +1 -1
  297. package/build/core/server/connectionManager.d.ts +1 -79
  298. package/build/core/server/connectionManager.d.ts.map +1 -1
  299. package/build/core/server/connectionManager.js +1 -262
  300. package/build/core/server/connectionManager.js.map +1 -1
  301. package/build/core/server/disabledTools.d.ts +7 -1
  302. package/build/core/server/disabledTools.d.ts.map +1 -1
  303. package/build/core/server/disabledTools.js +13 -0
  304. package/build/core/server/disabledTools.js.map +1 -1
  305. package/build/core/server/mcpServerLifecycleManager.d.ts +1 -58
  306. package/build/core/server/mcpServerLifecycleManager.d.ts.map +1 -1
  307. package/build/core/server/mcpServerLifecycleManager.js +1 -271
  308. package/build/core/server/mcpServerLifecycleManager.js.map +1 -1
  309. package/build/core/server/requestContextPreparation.d.ts +1 -38
  310. package/build/core/server/requestContextPreparation.d.ts.map +1 -1
  311. package/build/core/server/requestContextPreparation.js +1 -48
  312. package/build/core/server/requestContextPreparation.js.map +1 -1
  313. package/build/core/server/serverManager.d.ts +1 -130
  314. package/build/core/server/serverManager.d.ts.map +1 -1
  315. package/build/core/server/serverManager.js +1 -456
  316. package/build/core/server/serverManager.js.map +1 -1
  317. package/build/core/server/templateServerCleanup.d.ts +1 -22
  318. package/build/core/server/templateServerCleanup.d.ts.map +1 -1
  319. package/build/core/server/templateServerCleanup.js +1 -160
  320. package/build/core/server/templateServerCleanup.js.map +1 -1
  321. package/build/core/server/templateServerManager.d.ts +1 -141
  322. package/build/core/server/templateServerManager.d.ts.map +1 -1
  323. package/build/core/server/templateServerManager.js +1 -548
  324. package/build/core/server/templateServerManager.js.map +1 -1
  325. package/build/core/server/toolDescriptionOverrides.d.ts +5 -1
  326. package/build/core/server/toolDescriptionOverrides.d.ts.map +1 -1
  327. package/build/core/server/toolDescriptionOverrides.js +6 -0
  328. package/build/core/server/toolDescriptionOverrides.js.map +1 -1
  329. package/build/core/tools/handlers/serverManagementHandler.d.ts +29 -21
  330. package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
  331. package/build/core/tools/handlers/serverManagementHandler.js +1 -1
  332. package/build/core/tools/handlers/serverManagementHandler.js.map +1 -1
  333. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +2 -1
  334. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
  335. package/build/core/tools/internal/adapters/management/types.d.ts +17 -7
  336. package/build/core/tools/internal/adapters/management/types.d.ts.map +1 -1
  337. package/build/core/tools/internal/managementHandlers.d.ts.map +1 -1
  338. package/build/core/tools/internal/managementHandlers.js +11 -2
  339. package/build/core/tools/internal/managementHandlers.js.map +1 -1
  340. package/build/core/tools/internal/schemas/discovery.d.ts +5 -5
  341. package/build/core/tools/internal/schemas/index.d.ts +15 -15
  342. package/build/core/tools/internal/schemas/installation.d.ts +2 -2
  343. package/build/core/tools/internal/schemas/management.d.ts +8 -8
  344. package/build/core/types/client.d.ts +30 -17
  345. package/build/core/types/client.d.ts.map +1 -1
  346. package/build/core/types/client.js.map +1 -1
  347. package/build/core/types/server.d.ts +16 -9
  348. package/build/core/types/server.d.ts.map +1 -1
  349. package/build/core/types/server.js.map +1 -1
  350. package/build/core/types/transport.d.ts +100 -21
  351. package/build/core/types/transport.d.ts.map +1 -1
  352. package/build/core/types/transport.js +76 -0
  353. package/build/core/types/transport.js.map +1 -1
  354. package/build/core/validation/CustomJsonSchemaValidator.d.ts +1 -62
  355. package/build/core/validation/CustomJsonSchemaValidator.d.ts.map +1 -1
  356. package/build/core/validation/CustomJsonSchemaValidator.js +1 -309
  357. package/build/core/validation/CustomJsonSchemaValidator.js.map +1 -1
  358. package/build/domains/admin/adminConfiguredServerService.d.ts +146 -2
  359. package/build/domains/admin/adminConfiguredServerService.d.ts.map +1 -1
  360. package/build/domains/admin/adminConfiguredServerService.js +733 -81
  361. package/build/domains/admin/adminConfiguredServerService.js.map +1 -1
  362. package/build/domains/admin/adminDomain.d.ts +5 -0
  363. package/build/domains/admin/adminDomain.d.ts.map +1 -1
  364. package/build/domains/admin/adminDomain.js +11 -0
  365. package/build/domains/admin/adminDomain.js.map +1 -1
  366. package/build/domains/admin/adminInstructionPreviewRuntime.d.ts.map +1 -1
  367. package/build/domains/admin/adminInstructionPreviewRuntime.js +2 -9
  368. package/build/domains/admin/adminInstructionPreviewRuntime.js.map +1 -1
  369. package/build/domains/admin/adminOperationService.d.ts +1 -0
  370. package/build/domains/admin/adminOperationService.d.ts.map +1 -1
  371. package/build/domains/admin/adminOperationService.js +6 -2
  372. package/build/domains/admin/adminOperationService.js.map +1 -1
  373. package/build/domains/admin/configuredToolInventory.d.ts.map +1 -1
  374. package/build/domains/admin/configuredToolInventory.js.map +1 -1
  375. package/build/domains/admin/runtimeConfiguredToolInspectionService.d.ts.map +1 -1
  376. package/build/domains/admin/runtimeConfiguredToolInspectionService.js +6 -12
  377. package/build/domains/admin/runtimeConfiguredToolInspectionService.js.map +1 -1
  378. package/build/domains/admin/runtimeServerManagerBackendRestartService.js +1 -1
  379. package/build/domains/admin/runtimeServerManagerBackendRestartService.js.map +1 -1
  380. package/build/domains/admin/templateServerDefinitionAnalyzer.d.ts +26 -0
  381. package/build/domains/admin/templateServerDefinitionAnalyzer.d.ts.map +1 -0
  382. package/build/domains/admin/templateServerDefinitionAnalyzer.js +148 -0
  383. package/build/domains/admin/templateServerDefinitionAnalyzer.js.map +1 -0
  384. package/build/domains/config-change/configChange.d.ts +1 -1
  385. package/build/domains/config-change/configChange.d.ts.map +1 -1
  386. package/build/domains/config-change/configChange.js +168 -49
  387. package/build/domains/config-change/configChange.js.map +1 -1
  388. package/build/domains/config-change/types.d.ts +16 -2
  389. package/build/domains/config-change/types.d.ts.map +1 -1
  390. package/build/domains/registry/mcpRegistryClient.d.ts +3 -3
  391. package/build/domains/registry/mcpRegistryClient.d.ts.map +1 -1
  392. package/build/domains/registry/mcpRegistryClient.js +8 -7
  393. package/build/domains/registry/mcpRegistryClient.js.map +1 -1
  394. package/build/gateway/adapters/index.d.ts +3 -0
  395. package/build/gateway/adapters/index.d.ts.map +1 -0
  396. package/build/gateway/adapters/index.js +3 -0
  397. package/build/gateway/adapters/index.js.map +1 -0
  398. package/build/gateway/adapters/legacy/index.d.ts +3 -0
  399. package/build/gateway/adapters/legacy/index.d.ts.map +1 -0
  400. package/build/gateway/adapters/legacy/index.js +3 -0
  401. package/build/gateway/adapters/legacy/index.js.map +1 -0
  402. package/build/gateway/adapters/legacy/legacyEraPin.d.ts +3 -0
  403. package/build/gateway/adapters/legacy/legacyEraPin.d.ts.map +1 -0
  404. package/build/gateway/adapters/legacy/legacyEraPin.js +12 -0
  405. package/build/gateway/adapters/legacy/legacyEraPin.js.map +1 -0
  406. package/build/gateway/adapters/legacy/legacyInboundEraAdapter.d.ts +19 -0
  407. package/build/gateway/adapters/legacy/legacyInboundEraAdapter.d.ts.map +1 -0
  408. package/build/gateway/adapters/legacy/legacyInboundEraAdapter.js +86 -0
  409. package/build/gateway/adapters/legacy/legacyInboundEraAdapter.js.map +1 -0
  410. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.d.ts +19 -0
  411. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.d.ts.map +1 -0
  412. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.js +76 -0
  413. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.js.map +1 -0
  414. package/build/gateway/adapters/modern/index.d.ts +3 -0
  415. package/build/gateway/adapters/modern/index.d.ts.map +1 -0
  416. package/build/gateway/adapters/modern/index.js +3 -0
  417. package/build/gateway/adapters/modern/index.js.map +1 -0
  418. package/build/gateway/adapters/modern/modernInboundEraAdapter.d.ts +32 -0
  419. package/build/gateway/adapters/modern/modernInboundEraAdapter.d.ts.map +1 -0
  420. package/build/gateway/adapters/modern/modernInboundEraAdapter.js +150 -0
  421. package/build/gateway/adapters/modern/modernInboundEraAdapter.js.map +1 -0
  422. package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts +24 -0
  423. package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts.map +1 -0
  424. package/build/gateway/adapters/modern/modernOutboundEraAdapter.js +75 -0
  425. package/build/gateway/adapters/modern/modernOutboundEraAdapter.js.map +1 -0
  426. package/build/gateway/adapters/modern/modernPin.d.ts +9 -0
  427. package/build/gateway/adapters/modern/modernPin.d.ts.map +1 -0
  428. package/build/gateway/adapters/modern/modernPin.js +14 -0
  429. package/build/gateway/adapters/modern/modernPin.js.map +1 -0
  430. package/build/gateway/contracts/effectiveRequestAuthority.d.ts +12 -0
  431. package/build/gateway/contracts/effectiveRequestAuthority.d.ts.map +1 -0
  432. package/build/gateway/contracts/effectiveRequestAuthority.js +30 -0
  433. package/build/gateway/contracts/effectiveRequestAuthority.js.map +1 -0
  434. package/build/gateway/contracts/gatewayFailure.d.ts +25 -0
  435. package/build/gateway/contracts/gatewayFailure.d.ts.map +1 -0
  436. package/build/gateway/contracts/gatewayFailure.js +72 -0
  437. package/build/gateway/contracts/gatewayFailure.js.map +1 -0
  438. package/build/gateway/contracts/gatewayRequest.d.ts +32 -0
  439. package/build/gateway/contracts/gatewayRequest.d.ts.map +1 -0
  440. package/build/gateway/contracts/gatewayRequest.js +50 -0
  441. package/build/gateway/contracts/gatewayRequest.js.map +1 -0
  442. package/build/gateway/contracts/immutableJson.d.ts +6 -0
  443. package/build/gateway/contracts/immutableJson.d.ts.map +1 -0
  444. package/build/gateway/contracts/immutableJson.js +14 -0
  445. package/build/gateway/contracts/immutableJson.js.map +1 -0
  446. package/build/gateway/contracts/index.d.ts +6 -0
  447. package/build/gateway/contracts/index.d.ts.map +1 -0
  448. package/build/gateway/contracts/index.js +6 -0
  449. package/build/gateway/contracts/index.js.map +1 -0
  450. package/build/gateway/contracts/protocolEra.d.ts +22 -0
  451. package/build/gateway/contracts/protocolEra.d.ts.map +1 -0
  452. package/build/gateway/contracts/protocolEra.js +68 -0
  453. package/build/gateway/contracts/protocolEra.js.map +1 -0
  454. package/build/gateway/core/gatewayDispatcher.d.ts +15 -0
  455. package/build/gateway/core/gatewayDispatcher.d.ts.map +1 -0
  456. package/build/gateway/core/gatewayDispatcher.js +77 -0
  457. package/build/gateway/core/gatewayDispatcher.js.map +1 -0
  458. package/build/gateway/core/gatewaySession.d.ts +13 -0
  459. package/build/gateway/core/gatewaySession.d.ts.map +1 -0
  460. package/build/gateway/core/gatewaySession.js +61 -0
  461. package/build/gateway/core/gatewaySession.js.map +1 -0
  462. package/build/gateway/core/index.d.ts +3 -0
  463. package/build/gateway/core/index.d.ts.map +1 -0
  464. package/build/gateway/core/index.js +3 -0
  465. package/build/gateway/core/index.js.map +1 -0
  466. package/build/gateway/index.d.ts +5 -0
  467. package/build/gateway/index.d.ts.map +1 -0
  468. package/build/gateway/index.js +5 -0
  469. package/build/gateway/index.js.map +1 -0
  470. package/build/gateway/ports/inboundEraAdapter.d.ts +27 -0
  471. package/build/gateway/ports/inboundEraAdapter.d.ts.map +1 -0
  472. package/build/gateway/ports/inboundEraAdapter.js +2 -0
  473. package/build/gateway/ports/inboundEraAdapter.js.map +1 -0
  474. package/build/gateway/ports/index.d.ts +3 -0
  475. package/build/gateway/ports/index.d.ts.map +1 -0
  476. package/build/gateway/ports/index.js +3 -0
  477. package/build/gateway/ports/index.js.map +1 -0
  478. package/build/gateway/ports/outboundEraAdapter.d.ts +16 -0
  479. package/build/gateway/ports/outboundEraAdapter.d.ts.map +1 -0
  480. package/build/gateway/ports/outboundEraAdapter.js +2 -0
  481. package/build/gateway/ports/outboundEraAdapter.js.map +1 -0
  482. package/build/logger/mcpLoggingEnhancer.d.ts +1 -5
  483. package/build/logger/mcpLoggingEnhancer.d.ts.map +1 -1
  484. package/build/logger/mcpLoggingEnhancer.js +1 -192
  485. package/build/logger/mcpLoggingEnhancer.js.map +1 -1
  486. package/build/logger/secureLogger.d.ts.map +1 -1
  487. package/build/logger/secureLogger.js +160 -23
  488. package/build/logger/secureLogger.js.map +1 -1
  489. package/build/sdk/contracts/index.d.ts +5 -0
  490. package/build/sdk/contracts/index.d.ts.map +1 -0
  491. package/build/sdk/contracts/index.js +5 -0
  492. package/build/sdk/contracts/index.js.map +1 -0
  493. package/build/sdk/contracts/jsonValue.d.ts +21 -0
  494. package/build/sdk/contracts/jsonValue.d.ts.map +1 -0
  495. package/build/sdk/contracts/jsonValue.js +127 -0
  496. package/build/sdk/contracts/jsonValue.js.map +1 -0
  497. package/build/sdk/contracts/legacySdkAdapter.d.ts +73 -0
  498. package/build/sdk/contracts/legacySdkAdapter.d.ts.map +1 -0
  499. package/build/sdk/contracts/legacySdkAdapter.js +7 -0
  500. package/build/sdk/contracts/legacySdkAdapter.js.map +1 -0
  501. package/build/sdk/contracts/oneMcpProtocolError.d.ts +18 -0
  502. package/build/sdk/contracts/oneMcpProtocolError.d.ts.map +1 -0
  503. package/build/sdk/contracts/oneMcpProtocolError.js +39 -0
  504. package/build/sdk/contracts/oneMcpProtocolError.js.map +1 -0
  505. package/build/sdk/contracts/protocol.d.ts +240 -0
  506. package/build/sdk/contracts/protocol.d.ts.map +1 -0
  507. package/build/sdk/contracts/protocol.js +187 -0
  508. package/build/sdk/contracts/protocol.js.map +1 -0
  509. package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts +98 -0
  510. package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts.map +1 -0
  511. package/build/sdk/legacy/auth/sdkOAuthClientProvider.js +243 -0
  512. package/build/sdk/legacy/auth/sdkOAuthClientProvider.js.map +1 -0
  513. package/build/sdk/legacy/auth/sdkOAuthServerProvider.d.ts +69 -0
  514. package/build/sdk/legacy/auth/sdkOAuthServerProvider.d.ts.map +1 -0
  515. package/build/sdk/legacy/auth/sdkOAuthServerProvider.js +519 -0
  516. package/build/sdk/legacy/auth/sdkOAuthServerProvider.js.map +1 -0
  517. package/build/sdk/legacy/client/auth.d.ts +2 -0
  518. package/build/sdk/legacy/client/auth.d.ts.map +1 -0
  519. package/build/sdk/legacy/client/auth.js +2 -0
  520. package/build/sdk/legacy/client/auth.js.map +1 -0
  521. package/build/sdk/legacy/client/index.d.ts +2 -0
  522. package/build/sdk/legacy/client/index.d.ts.map +1 -0
  523. package/build/sdk/legacy/client/index.js +2 -0
  524. package/build/sdk/legacy/client/index.js.map +1 -0
  525. package/build/sdk/legacy/client/runtime/clientFactory.d.ts +10 -0
  526. package/build/sdk/legacy/client/runtime/clientFactory.d.ts.map +1 -0
  527. package/build/sdk/legacy/client/runtime/clientFactory.js +56 -0
  528. package/build/sdk/legacy/client/runtime/clientFactory.js.map +1 -0
  529. package/build/sdk/legacy/client/runtime/clientManager.d.ts +94 -0
  530. package/build/sdk/legacy/client/runtime/clientManager.d.ts.map +1 -0
  531. package/build/sdk/legacy/client/runtime/clientManager.js +834 -0
  532. package/build/sdk/legacy/client/runtime/clientManager.js.map +1 -0
  533. package/build/sdk/legacy/client/runtime/connectedClient.d.ts +7 -0
  534. package/build/sdk/legacy/client/runtime/connectedClient.d.ts.map +1 -0
  535. package/build/sdk/legacy/client/runtime/connectedClient.js +2 -0
  536. package/build/sdk/legacy/client/runtime/connectedClient.js.map +1 -0
  537. package/build/sdk/legacy/client/runtime/connectionHandler.d.ts +10 -0
  538. package/build/sdk/legacy/client/runtime/connectionHandler.d.ts.map +1 -0
  539. package/build/sdk/legacy/client/runtime/connectionHandler.js +139 -0
  540. package/build/sdk/legacy/client/runtime/connectionHandler.js.map +1 -0
  541. package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.d.ts +14 -0
  542. package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.d.ts.map +1 -0
  543. package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.js +66 -0
  544. package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.js.map +1 -0
  545. package/build/sdk/legacy/client/runtime/legacyOutboundConnection.d.ts +50 -0
  546. package/build/sdk/legacy/client/runtime/legacyOutboundConnection.d.ts.map +1 -0
  547. package/build/sdk/legacy/client/runtime/legacyOutboundConnection.js +93 -0
  548. package/build/sdk/legacy/client/runtime/legacyOutboundConnection.js.map +1 -0
  549. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts +37 -0
  550. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts.map +1 -0
  551. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js +240 -0
  552. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js.map +1 -0
  553. package/build/sdk/legacy/client/runtime/legacyTransport.d.ts +32 -0
  554. package/build/sdk/legacy/client/runtime/legacyTransport.d.ts.map +1 -0
  555. package/build/sdk/legacy/client/runtime/legacyTransport.js +2 -0
  556. package/build/sdk/legacy/client/runtime/legacyTransport.js.map +1 -0
  557. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts +40 -0
  558. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts.map +1 -0
  559. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js +238 -0
  560. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js.map +1 -0
  561. package/build/sdk/legacy/client/runtime/oauthFlowHandler.d.ts +12 -0
  562. package/build/sdk/legacy/client/runtime/oauthFlowHandler.d.ts.map +1 -0
  563. package/build/sdk/legacy/client/runtime/oauthFlowHandler.js +93 -0
  564. package/build/sdk/legacy/client/runtime/oauthFlowHandler.js.map +1 -0
  565. package/build/sdk/legacy/client/runtime/outboundRequestParams.d.ts +4 -0
  566. package/build/sdk/legacy/client/runtime/outboundRequestParams.d.ts.map +1 -0
  567. package/build/sdk/legacy/client/runtime/outboundRequestParams.js +8 -0
  568. package/build/sdk/legacy/client/runtime/outboundRequestParams.js.map +1 -0
  569. package/build/sdk/legacy/client/runtime/recreateHttpTransportOptions.d.ts +12 -0
  570. package/build/sdk/legacy/client/runtime/recreateHttpTransportOptions.d.ts.map +1 -0
  571. package/build/sdk/legacy/client/runtime/recreateHttpTransportOptions.js +2 -0
  572. package/build/sdk/legacy/client/runtime/recreateHttpTransportOptions.js.map +1 -0
  573. package/build/sdk/legacy/client/runtime/sdkClient.d.ts +5 -0
  574. package/build/sdk/legacy/client/runtime/sdkClient.d.ts.map +1 -0
  575. package/build/sdk/legacy/client/runtime/sdkClient.js +5 -0
  576. package/build/sdk/legacy/client/runtime/sdkClient.js.map +1 -0
  577. package/build/sdk/legacy/client/runtime/serveClient.d.ts +70 -0
  578. package/build/sdk/legacy/client/runtime/serveClient.d.ts.map +1 -0
  579. package/build/sdk/legacy/client/runtime/serveClient.js +235 -0
  580. package/build/sdk/legacy/client/runtime/serveClient.js.map +1 -0
  581. package/build/sdk/legacy/client/runtime/transportRecreationState.d.ts +14 -0
  582. package/build/sdk/legacy/client/runtime/transportRecreationState.d.ts.map +1 -0
  583. package/build/sdk/legacy/client/runtime/transportRecreationState.js +2 -0
  584. package/build/sdk/legacy/client/runtime/transportRecreationState.js.map +1 -0
  585. package/build/sdk/legacy/client/runtime/transportRecreator.d.ts +14 -0
  586. package/build/sdk/legacy/client/runtime/transportRecreator.d.ts.map +1 -0
  587. package/build/sdk/legacy/client/runtime/transportRecreator.js +89 -0
  588. package/build/sdk/legacy/client/runtime/transportRecreator.js.map +1 -0
  589. package/build/sdk/legacy/client/runtime/types.d.ts +9 -0
  590. package/build/sdk/legacy/client/runtime/types.d.ts.map +1 -0
  591. package/build/sdk/legacy/client/runtime/types.js +13 -0
  592. package/build/sdk/legacy/client/runtime/types.js.map +1 -0
  593. package/build/sdk/legacy/client/sse.d.ts +2 -0
  594. package/build/sdk/legacy/client/sse.d.ts.map +1 -0
  595. package/build/sdk/legacy/client/sse.js +2 -0
  596. package/build/sdk/legacy/client/sse.js.map +1 -0
  597. package/build/sdk/legacy/client/stdio.d.ts +2 -0
  598. package/build/sdk/legacy/client/stdio.d.ts.map +1 -0
  599. package/build/sdk/legacy/client/stdio.js +2 -0
  600. package/build/sdk/legacy/client/stdio.js.map +1 -0
  601. package/build/sdk/legacy/client/streamableHttp.d.ts +2 -0
  602. package/build/sdk/legacy/client/streamableHttp.d.ts.map +1 -0
  603. package/build/sdk/legacy/client/streamableHttp.js +2 -0
  604. package/build/sdk/legacy/client/streamableHttp.js.map +1 -0
  605. package/build/sdk/legacy/commands/serve.d.ts +90 -0
  606. package/build/sdk/legacy/commands/serve.d.ts.map +1 -0
  607. package/build/sdk/legacy/commands/serve.js +561 -0
  608. package/build/sdk/legacy/commands/serve.js.map +1 -0
  609. package/build/sdk/legacy/server/auth/clients.d.ts +2 -0
  610. package/build/sdk/legacy/server/auth/clients.d.ts.map +1 -0
  611. package/build/sdk/legacy/server/auth/clients.js +2 -0
  612. package/build/sdk/legacy/server/auth/clients.js.map +1 -0
  613. package/build/sdk/legacy/server/auth/errors.d.ts +2 -0
  614. package/build/sdk/legacy/server/auth/errors.d.ts.map +1 -0
  615. package/build/sdk/legacy/server/auth/errors.js +2 -0
  616. package/build/sdk/legacy/server/auth/errors.js.map +1 -0
  617. package/build/sdk/legacy/server/auth/middleware/bearerAuth.d.ts +2 -0
  618. package/build/sdk/legacy/server/auth/middleware/bearerAuth.d.ts.map +1 -0
  619. package/build/sdk/legacy/server/auth/middleware/bearerAuth.js +2 -0
  620. package/build/sdk/legacy/server/auth/middleware/bearerAuth.js.map +1 -0
  621. package/build/sdk/legacy/server/auth/provider.d.ts +2 -0
  622. package/build/sdk/legacy/server/auth/provider.d.ts.map +1 -0
  623. package/build/sdk/legacy/server/auth/provider.js +2 -0
  624. package/build/sdk/legacy/server/auth/provider.js.map +1 -0
  625. package/build/sdk/legacy/server/auth/router.d.ts +2 -0
  626. package/build/sdk/legacy/server/auth/router.d.ts.map +1 -0
  627. package/build/sdk/legacy/server/auth/router.js +2 -0
  628. package/build/sdk/legacy/server/auth/router.js.map +1 -0
  629. package/build/sdk/legacy/server/auth/types.d.ts +2 -0
  630. package/build/sdk/legacy/server/auth/types.d.ts.map +1 -0
  631. package/build/sdk/legacy/server/auth/types.js +2 -0
  632. package/build/sdk/legacy/server/auth/types.js.map +1 -0
  633. package/build/sdk/legacy/server/index.d.ts +2 -0
  634. package/build/sdk/legacy/server/index.d.ts.map +1 -0
  635. package/build/sdk/legacy/server/index.js +2 -0
  636. package/build/sdk/legacy/server/index.js.map +1 -0
  637. package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts +15 -0
  638. package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts.map +1 -0
  639. package/build/sdk/legacy/server/protocol/notificationHandlers.js +146 -0
  640. package/build/sdk/legacy/server/protocol/notificationHandlers.js.map +1 -0
  641. package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts +5 -0
  642. package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts.map +1 -0
  643. package/build/sdk/legacy/server/protocol/promptRequestHandlers.js +50 -0
  644. package/build/sdk/legacy/server/protocol/promptRequestHandlers.js.map +1 -0
  645. package/build/sdk/legacy/server/protocol/requestHandlers.d.ts +14 -0
  646. package/build/sdk/legacy/server/protocol/requestHandlers.d.ts.map +1 -0
  647. package/build/sdk/legacy/server/protocol/requestHandlers.js +96 -0
  648. package/build/sdk/legacy/server/protocol/requestHandlers.js.map +1 -0
  649. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts +4 -0
  650. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts.map +1 -0
  651. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js +62 -0
  652. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js.map +1 -0
  653. package/build/sdk/legacy/server/protocol/toolRequestHandlers.d.ts +5 -0
  654. package/build/sdk/legacy/server/protocol/toolRequestHandlers.d.ts.map +1 -0
  655. package/build/sdk/legacy/server/protocol/toolRequestHandlers.js +87 -0
  656. package/build/sdk/legacy/server/protocol/toolRequestHandlers.js.map +1 -0
  657. package/build/sdk/legacy/server/runtime/clientInstanceFactory.d.ts +14 -0
  658. package/build/sdk/legacy/server/runtime/clientInstanceFactory.d.ts.map +1 -0
  659. package/build/sdk/legacy/server/runtime/clientInstanceFactory.js +49 -0
  660. package/build/sdk/legacy/server/runtime/clientInstanceFactory.js.map +1 -0
  661. package/build/sdk/legacy/server/runtime/clientInstancePool.d.ts +116 -0
  662. package/build/sdk/legacy/server/runtime/clientInstancePool.d.ts.map +1 -0
  663. package/build/sdk/legacy/server/runtime/clientInstancePool.js +600 -0
  664. package/build/sdk/legacy/server/runtime/clientInstancePool.js.map +1 -0
  665. package/build/sdk/legacy/server/runtime/clientInstancePoolTypes.d.ts +67 -0
  666. package/build/sdk/legacy/server/runtime/clientInstancePoolTypes.d.ts.map +1 -0
  667. package/build/sdk/legacy/server/runtime/clientInstancePoolTypes.js +15 -0
  668. package/build/sdk/legacy/server/runtime/clientInstancePoolTypes.js.map +1 -0
  669. package/build/sdk/legacy/server/runtime/connectionManager.d.ts +82 -0
  670. package/build/sdk/legacy/server/runtime/connectionManager.d.ts.map +1 -0
  671. package/build/sdk/legacy/server/runtime/connectionManager.js +298 -0
  672. package/build/sdk/legacy/server/runtime/connectionManager.js.map +1 -0
  673. package/build/sdk/legacy/server/runtime/legacyInboundConnection.d.ts +17 -0
  674. package/build/sdk/legacy/server/runtime/legacyInboundConnection.d.ts.map +1 -0
  675. package/build/sdk/legacy/server/runtime/legacyInboundConnection.js +22 -0
  676. package/build/sdk/legacy/server/runtime/legacyInboundConnection.js.map +1 -0
  677. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.d.ts +18 -0
  678. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.d.ts.map +1 -0
  679. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.js +82 -0
  680. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.js.map +1 -0
  681. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.d.ts +6 -0
  682. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.d.ts.map +1 -0
  683. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.js +193 -0
  684. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.js.map +1 -0
  685. package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.d.ts +60 -0
  686. package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.d.ts.map +1 -0
  687. package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.js +274 -0
  688. package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.js.map +1 -0
  689. package/build/sdk/legacy/server/runtime/requestContextPreparation.d.ts +39 -0
  690. package/build/sdk/legacy/server/runtime/requestContextPreparation.d.ts.map +1 -0
  691. package/build/sdk/legacy/server/runtime/requestContextPreparation.js +50 -0
  692. package/build/sdk/legacy/server/runtime/requestContextPreparation.js.map +1 -0
  693. package/build/sdk/legacy/server/runtime/serverManager.d.ts +132 -0
  694. package/build/sdk/legacy/server/runtime/serverManager.d.ts.map +1 -0
  695. package/build/sdk/legacy/server/runtime/serverManager.js +462 -0
  696. package/build/sdk/legacy/server/runtime/serverManager.js.map +1 -0
  697. package/build/sdk/legacy/server/runtime/templateServerCleanup.d.ts +23 -0
  698. package/build/sdk/legacy/server/runtime/templateServerCleanup.d.ts.map +1 -0
  699. package/build/sdk/legacy/server/runtime/templateServerCleanup.js +161 -0
  700. package/build/sdk/legacy/server/runtime/templateServerCleanup.js.map +1 -0
  701. package/build/sdk/legacy/server/runtime/templateServerManager.d.ts +155 -0
  702. package/build/sdk/legacy/server/runtime/templateServerManager.d.ts.map +1 -0
  703. package/build/sdk/legacy/server/runtime/templateServerManager.js +606 -0
  704. package/build/sdk/legacy/server/runtime/templateServerManager.js.map +1 -0
  705. package/build/sdk/legacy/server/sse.d.ts +2 -0
  706. package/build/sdk/legacy/server/sse.d.ts.map +1 -0
  707. package/build/sdk/legacy/server/sse.js +2 -0
  708. package/build/sdk/legacy/server/sse.js.map +1 -0
  709. package/build/sdk/legacy/server/stdio.d.ts +2 -0
  710. package/build/sdk/legacy/server/stdio.d.ts.map +1 -0
  711. package/build/sdk/legacy/server/stdio.js +2 -0
  712. package/build/sdk/legacy/server/stdio.js.map +1 -0
  713. package/build/sdk/legacy/server/streamableHttp.d.ts +2 -0
  714. package/build/sdk/legacy/server/streamableHttp.d.ts.map +1 -0
  715. package/build/sdk/legacy/server/streamableHttp.js +2 -0
  716. package/build/sdk/legacy/server/streamableHttp.js.map +1 -0
  717. package/build/sdk/legacy/shared/auth.d.ts +2 -0
  718. package/build/sdk/legacy/shared/auth.d.ts.map +1 -0
  719. package/build/sdk/legacy/shared/auth.js +2 -0
  720. package/build/sdk/legacy/shared/auth.js.map +1 -0
  721. package/build/sdk/legacy/shared/capabilityListCapture.d.ts +4 -0
  722. package/build/sdk/legacy/shared/capabilityListCapture.d.ts.map +1 -0
  723. package/build/sdk/legacy/shared/capabilityListCapture.js +30 -0
  724. package/build/sdk/legacy/shared/capabilityListCapture.js.map +1 -0
  725. package/build/sdk/legacy/shared/protocol.d.ts +2 -0
  726. package/build/sdk/legacy/shared/protocol.d.ts.map +1 -0
  727. package/build/sdk/legacy/shared/protocol.js +2 -0
  728. package/build/sdk/legacy/shared/protocol.js.map +1 -0
  729. package/build/sdk/legacy/shared/resourceTemplateRouting.d.ts +12 -0
  730. package/build/sdk/legacy/shared/resourceTemplateRouting.d.ts.map +1 -0
  731. package/build/sdk/legacy/shared/resourceTemplateRouting.js +66 -0
  732. package/build/sdk/legacy/shared/resourceTemplateRouting.js.map +1 -0
  733. package/build/sdk/legacy/shared/transport.d.ts +2 -0
  734. package/build/sdk/legacy/shared/transport.d.ts.map +1 -0
  735. package/build/sdk/legacy/shared/transport.js +2 -0
  736. package/build/sdk/legacy/shared/transport.js.map +1 -0
  737. package/build/sdk/legacy/transport/http/loggingSseTransport.d.ts +13 -0
  738. package/build/sdk/legacy/transport/http/loggingSseTransport.d.ts.map +1 -0
  739. package/build/sdk/legacy/transport/http/loggingSseTransport.js +43 -0
  740. package/build/sdk/legacy/transport/http/loggingSseTransport.js.map +1 -0
  741. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts +91 -0
  742. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -0
  743. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js +240 -0
  744. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -0
  745. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts +14 -0
  746. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts.map +1 -0
  747. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js +50 -0
  748. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js.map +1 -0
  749. package/build/sdk/legacy/transport/http/restorableStreamableTransport.d.ts +58 -0
  750. package/build/sdk/legacy/transport/http/restorableStreamableTransport.d.ts.map +1 -0
  751. package/build/sdk/legacy/transport/http/restorableStreamableTransport.js +59 -0
  752. package/build/sdk/legacy/transport/http/restorableStreamableTransport.js.map +1 -0
  753. package/build/sdk/legacy/transport/http/routes/sseRoutes.d.ts +5 -0
  754. package/build/sdk/legacy/transport/http/routes/sseRoutes.d.ts.map +1 -0
  755. package/build/sdk/legacy/transport/http/routes/sseRoutes.js +105 -0
  756. package/build/sdk/legacy/transport/http/routes/sseRoutes.js.map +1 -0
  757. package/build/sdk/legacy/transport/http/server.d.ts +90 -0
  758. package/build/sdk/legacy/transport/http/server.d.ts.map +1 -0
  759. package/build/sdk/legacy/transport/http/server.js +487 -0
  760. package/build/sdk/legacy/transport/http/server.js.map +1 -0
  761. package/build/sdk/legacy/transport/http/streamableSessionLifecycle.d.ts +92 -0
  762. package/build/sdk/legacy/transport/http/streamableSessionLifecycle.d.ts.map +1 -0
  763. package/build/sdk/legacy/transport/http/streamableSessionLifecycle.js +372 -0
  764. package/build/sdk/legacy/transport/http/streamableSessionLifecycle.js.map +1 -0
  765. package/build/sdk/legacy/transport/restartableStdioTransport.d.ts +90 -0
  766. package/build/sdk/legacy/transport/restartableStdioTransport.d.ts.map +1 -0
  767. package/build/sdk/legacy/transport/restartableStdioTransport.js +192 -0
  768. package/build/sdk/legacy/transport/restartableStdioTransport.js.map +1 -0
  769. package/build/sdk/legacy/transport/stdioProxyTransport.d.ts +92 -0
  770. package/build/sdk/legacy/transport/stdioProxyTransport.d.ts.map +1 -0
  771. package/build/sdk/legacy/transport/stdioProxyTransport.js +388 -0
  772. package/build/sdk/legacy/transport/stdioProxyTransport.js.map +1 -0
  773. package/build/sdk/legacy/transport/transportFactory.d.ts +25 -0
  774. package/build/sdk/legacy/transport/transportFactory.d.ts.map +1 -0
  775. package/build/sdk/legacy/transport/transportFactory.js +404 -0
  776. package/build/sdk/legacy/transport/transportFactory.js.map +1 -0
  777. package/build/sdk/legacy/types.d.ts +2 -0
  778. package/build/sdk/legacy/types.d.ts.map +1 -0
  779. package/build/sdk/legacy/types.js +3 -0
  780. package/build/sdk/legacy/types.js.map +1 -0
  781. package/build/sdk/legacy/validation/CustomJsonSchemaValidator.d.ts +57 -0
  782. package/build/sdk/legacy/validation/CustomJsonSchemaValidator.d.ts.map +1 -0
  783. package/build/sdk/legacy/validation/CustomJsonSchemaValidator.js +316 -0
  784. package/build/sdk/legacy/validation/CustomJsonSchemaValidator.js.map +1 -0
  785. package/build/sdk/legacy/validation.d.ts +2 -0
  786. package/build/sdk/legacy/validation.d.ts.map +1 -0
  787. package/build/sdk/legacy/validation.js +2 -0
  788. package/build/sdk/legacy/validation.js.map +1 -0
  789. package/build/server.d.ts +2 -1
  790. package/build/server.d.ts.map +1 -1
  791. package/build/server.js +19 -9
  792. package/build/server.js.map +1 -1
  793. package/build/transport/http/loggingSseTransport.d.ts +1 -12
  794. package/build/transport/http/loggingSseTransport.d.ts.map +1 -1
  795. package/build/transport/http/loggingSseTransport.js +1 -42
  796. package/build/transport/http/loggingSseTransport.js.map +1 -1
  797. package/build/transport/http/middlewares/errorHandler.d.ts.map +1 -1
  798. package/build/transport/http/middlewares/errorHandler.js +18 -1
  799. package/build/transport/http/middlewares/errorHandler.js.map +1 -1
  800. package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts +2 -90
  801. package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
  802. package/build/transport/http/middlewares/scopeAuthMiddleware.js +2 -239
  803. package/build/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
  804. package/build/transport/http/middlewares/securityMiddleware.d.ts +6 -0
  805. package/build/transport/http/middlewares/securityMiddleware.d.ts.map +1 -1
  806. package/build/transport/http/middlewares/securityMiddleware.js +35 -29
  807. package/build/transport/http/middlewares/securityMiddleware.js.map +1 -1
  808. package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -1
  809. package/build/transport/http/middlewares/tagsExtractor.js +1 -1
  810. package/build/transport/http/middlewares/tagsExtractor.js.map +1 -1
  811. package/build/transport/http/restorableStreamableTransport.d.ts +2 -57
  812. package/build/transport/http/restorableStreamableTransport.d.ts.map +1 -1
  813. package/build/transport/http/restorableStreamableTransport.js +1 -58
  814. package/build/transport/http/restorableStreamableTransport.js.map +1 -1
  815. package/build/transport/http/routes/adminRoutes.d.ts +17 -1
  816. package/build/transport/http/routes/adminRoutes.d.ts.map +1 -1
  817. package/build/transport/http/routes/adminRoutes.js +283 -17
  818. package/build/transport/http/routes/adminRoutes.js.map +1 -1
  819. package/build/transport/http/routes/apiRoutes.d.ts +5 -1
  820. package/build/transport/http/routes/apiRoutes.d.ts.map +1 -1
  821. package/build/transport/http/routes/apiRoutes.js +15 -3
  822. package/build/transport/http/routes/apiRoutes.js.map +1 -1
  823. package/build/transport/http/routes/healthRoutes.d.ts +6 -1
  824. package/build/transport/http/routes/healthRoutes.d.ts.map +1 -1
  825. package/build/transport/http/routes/healthRoutes.js +7 -3
  826. package/build/transport/http/routes/healthRoutes.js.map +1 -1
  827. package/build/transport/http/routes/inspectHelpers.d.ts +1 -1
  828. package/build/transport/http/routes/inspectHelpers.d.ts.map +1 -1
  829. package/build/transport/http/routes/inspectHelpers.js +9 -5
  830. package/build/transport/http/routes/inspectHelpers.js.map +1 -1
  831. package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -1
  832. package/build/transport/http/routes/inspectRoutes.js +39 -25
  833. package/build/transport/http/routes/inspectRoutes.js.map +1 -1
  834. package/build/transport/http/routes/instructionsRoutes.d.ts.map +1 -1
  835. package/build/transport/http/routes/instructionsRoutes.js +2 -9
  836. package/build/transport/http/routes/instructionsRoutes.js.map +1 -1
  837. package/build/transport/http/routes/modernHttpRoutes.d.ts +29 -0
  838. package/build/transport/http/routes/modernHttpRoutes.d.ts.map +1 -0
  839. package/build/transport/http/routes/modernHttpRoutes.js +241 -0
  840. package/build/transport/http/routes/modernHttpRoutes.js.map +1 -0
  841. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
  842. package/build/transport/http/routes/oauthRoutes.js +8 -4
  843. package/build/transport/http/routes/oauthRoutes.js.map +1 -1
  844. package/build/transport/http/routes/sseRoutes.d.ts +1 -4
  845. package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
  846. package/build/transport/http/routes/sseRoutes.js +1 -109
  847. package/build/transport/http/routes/sseRoutes.js.map +1 -1
  848. package/build/transport/http/routes/toolRoutes.d.ts.map +1 -1
  849. package/build/transport/http/routes/toolRoutes.js +21 -10
  850. package/build/transport/http/routes/toolRoutes.js.map +1 -1
  851. package/build/transport/http/server.d.ts +1 -84
  852. package/build/transport/http/server.d.ts.map +1 -1
  853. package/build/transport/http/server.js +1 -431
  854. package/build/transport/http/server.js.map +1 -1
  855. package/build/transport/http/storage/streamableSessionRepository.d.ts +1 -0
  856. package/build/transport/http/storage/streamableSessionRepository.d.ts.map +1 -1
  857. package/build/transport/http/storage/streamableSessionRepository.js +6 -3
  858. package/build/transport/http/storage/streamableSessionRepository.js.map +1 -1
  859. package/build/transport/http/streamableSessionLifecycle.d.ts +1 -91
  860. package/build/transport/http/streamableSessionLifecycle.d.ts.map +1 -1
  861. package/build/transport/http/streamableSessionLifecycle.js +1 -376
  862. package/build/transport/http/streamableSessionLifecycle.js.map +1 -1
  863. package/build/transport/http/utils/httpErrorHandler.js +1 -1
  864. package/build/transport/http/utils/httpErrorHandler.js.map +1 -1
  865. package/build/transport/http/utils/templateContextAuthority.d.ts.map +1 -1
  866. package/build/transport/http/utils/templateContextAuthority.js +19 -6
  867. package/build/transport/http/utils/templateContextAuthority.js.map +1 -1
  868. package/build/transport/restartableStdioTransport.d.ts +1 -89
  869. package/build/transport/restartableStdioTransport.d.ts.map +1 -1
  870. package/build/transport/restartableStdioTransport.js +1 -191
  871. package/build/transport/restartableStdioTransport.js.map +1 -1
  872. package/build/transport/stdioProxyTransport.d.ts +1 -82
  873. package/build/transport/stdioProxyTransport.d.ts.map +1 -1
  874. package/build/transport/stdioProxyTransport.js +1 -278
  875. package/build/transport/stdioProxyTransport.js.map +1 -1
  876. package/build/transport/transportFactory.d.ts +1 -23
  877. package/build/transport/transportFactory.d.ts.map +1 -1
  878. package/build/transport/transportFactory.js +1 -379
  879. package/build/transport/transportFactory.js.map +1 -1
  880. package/build/transport/transportFactory.testSetup.js +13 -0
  881. package/build/transport/transportFactory.testSetup.js.map +1 -1
  882. package/build/utils/client/clientInfoExtractor.d.ts +1 -1
  883. package/build/utils/client/clientInfoExtractor.d.ts.map +1 -1
  884. package/build/utils/client/clientInfoExtractor.js.map +1 -1
  885. package/build/utils/core/errorHandling.d.ts.map +1 -1
  886. package/build/utils/core/errorHandling.js +1 -1
  887. package/build/utils/core/errorHandling.js.map +1 -1
  888. package/build/utils/core/errorTypes.js +1 -1
  889. package/build/utils/core/errorTypes.js.map +1 -1
  890. package/build/utils/core/operationExecution.d.ts.map +1 -1
  891. package/build/utils/core/operationExecution.js +1 -1
  892. package/build/utils/core/operationExecution.js.map +1 -1
  893. package/build/utils/crypto.d.ts +5 -1
  894. package/build/utils/crypto.d.ts.map +1 -1
  895. package/build/utils/crypto.js +8 -3
  896. package/build/utils/crypto.js.map +1 -1
  897. package/build/utils/filePermissions.d.ts +65 -0
  898. package/build/utils/filePermissions.d.ts.map +1 -0
  899. package/build/utils/filePermissions.js +212 -0
  900. package/build/utils/filePermissions.js.map +1 -0
  901. package/package.json +18 -5
  902. package/build/admin/assets/admin-console-xbgqUjbT.js +0 -3
@@ -1,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/admin-AboutRuntimeWorkspace-DH2QC2nJ.js","assets/admin-mantine-xwbfu5Gd.js","assets/admin-rolldown-runtime-Bh1tDfsg.js","assets/admin-react-BSaWeqgv.js","assets/admin-console-DmRyrCWD.css","assets/admin-BackendLogsWorkspace-BKavXT9B.js","assets/admin-icons-CYGTDZA5.js","assets/admin-InstructionTemplatesWorkspace-CvG4EPdZ.js","assets/admin-OAuthServicesWorkspace-BCGj2hP4.js","assets/admin-PresetAuthoringWorkspace-BboJVBFl.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./admin-rolldown-runtime-Bh1tDfsg.js";import{A as t,D as n,E as r,F as i,I as a,L as o,N as s,O as c,P as l,S as u,T as d,_ as f,a as p,b as m,c as h,d as g,f as _,g as v,h as y,j as b,k as x,l as S,m as C,n as w,o as T,p as E,r as D,s as O,t as k,u as A,v as j,w as M,x as N,y as P}from"./admin-mantine-xwbfu5Gd.js";import{i as ee,n as F,r as I,t as te}from"./admin-react-BSaWeqgv.js";import{C as L,E as R,M as z,N as B,O as V,S as H,_ as U,a as ne,b as re,c as W,d as G,h as K,i as ie,j as ae,k as oe,l as se,m as ce,n as le,o as ue,p as de,r as fe,s as pe,t as me,u as he,v as ge,w as _e,x as ve,y as ye}from"./admin-icons-CYGTDZA5.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var be=te(),q=class extends Error{status;body;failure;constructor(e,t,n,r){super(n),this.status=e,this.body=t,this.name=`AdminApiError`,this.failure=r??xe(this)}};function xe(e){let t=Me(e),n=Ne(e.body),r=n?`${Pe(e,t)} Request ID: ${n}`:Pe(e,t);return e.status===401?{kind:`unauthenticated`,adminStatus:je(e.body),code:t,message:r,requestId:n,status:401}:e.status===404&&t===`configured_server_not_found`?{kind:`configuredServerNotFound`,code:t,message:r,requestId:n,status:404}:{kind:`rejected`,code:t,message:r,requestId:n,status:e.status}}function Se(e={}){let t=Oe(e.fetch??fetch),n=e.idempotencyKey??Ie,r=e.eventSource??(e=>new EventSource(e));return{login(e){return t(`/admin/api/session/login`,{method:`POST`,body:JSON.stringify(e)})},getSession(){return t(`/admin/api/session`)},logout(e){return t(`/admin/api/session/logout`,{method:`POST`,headers:{"X-CSRF-Token":e}})},getStatus(){return t(`/admin/api/status`)},getBackendLogSnapshot(e){let n=e?`?sourceId=${encodeURIComponent(e)}`:``;return t(`/admin/api/logs/snapshot${n}`)},openBackendLogStream(e){let t=t=>{try{return JSON.parse(t.data)}catch{e.onError();return}},n=r(`/admin/api/logs/stream`);return n.addEventListener(`snapshot`,n=>{let r=t(n);r&&e.onSnapshot(r)}),n.addEventListener(`gap`,n=>{let r=t(n);r&&e.onGap(r)}),n.addEventListener(`entry`,n=>{let r=t(n);r&&e.onEntry(r)}),n.addEventListener(`sources`,n=>{let r=t(n);r&&e.onSources(r)}),n.addEventListener(`source`,n=>{let r=t(n);r&&e.onSourceUpdate(r)}),n.onopen=()=>e.onOpen(),n.onerror=()=>e.onError(),()=>n.close()},async authorizeOAuthService(e){return(await t(`/admin/api/oauth/${encodeURIComponent(e.serviceId)}/authorize`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken,"Idempotency-Key":n({action:`oauth-authorize`,targetName:e.serviceId})},body:`{}`})).result},async restartOAuthService(e){return(await t(`/admin/api/oauth/${encodeURIComponent(e.serviceId)}/restart`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken,"Idempotency-Key":n({action:`oauth-restart`,targetName:e.serviceId})},body:`{}`})).result},async listPresets(){return(await t(`/admin/api/presets`)).result},async getPreset(e){return(await t(`/admin/api/presets/${encodeURIComponent(e)}`)).result},async previewPreset(e){return(await t(`/admin/api/presets/preview`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken},body:JSON.stringify({draft:e.draft,sourceName:e.sourceName})})).result},mutatePreset(e){let n=e.action===`create`?`/admin/api/presets`:`/admin/api/presets/${encodeURIComponent(e.sourceName??``)}/${e.action===`duplicate`?`duplicate`:`update`}`;return t(n,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken,"Idempotency-Key":De(e.action,e.draft.name)},body:JSON.stringify({draft:e.draft,revision:e.revision,previewFingerprint:e.previewFingerprint,confirmationFacts:e.confirmations})})},async previewPresetDelete(e){return(await t(`/admin/api/presets/${encodeURIComponent(e.name)}/delete-preview`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken},body:JSON.stringify({revision:e.revision})})).result},deletePreset(e){return t(`/admin/api/presets/${encodeURIComponent(e.name)}`,{method:`DELETE`,headers:{"X-CSRF-Token":e.csrfToken,"Idempotency-Key":De(`delete`,e.name)},body:JSON.stringify({revision:e.revision,previewFingerprint:e.previewFingerprint,confirmationFacts:{previewConfirmed:e.previewFingerprint,presetNameConfirmed:e.name}})})},async getConfiguredServerCatalog(){let e=await t(`/admin/api/configured-servers`);return{servers:e.servers??[],configFingerprint:e.configFingerprint??``}},async listConfiguredServers(){return(await t(`/admin/api/configured-servers`)).servers??[]},getConfiguredServerCreateContract(){return t(`/admin/api/configured-servers/create-contract`)},previewConfiguredServerCreate(e){return t(`/admin/api/configured-servers/create-preview`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken},body:JSON.stringify({draft:e.draft,...e.connectivityCheck?{connectivityCheck:e.connectivityCheck}:{}})})},createConfiguredServer(e){return t(`/admin/api/configured-servers`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken,"Idempotency-Key":e.idempotencyKey},body:JSON.stringify({draft:e.draft,previewFingerprint:e.previewFingerprint,confirmationFacts:e.confirmationFacts})})},getConfiguredServerDetail(e,n){let r=n?`?model=${encodeURIComponent(n)}`:``;return t(`${Ce(e)}${r}`)},refreshConfiguredToolInventory(e){return t(`${Ce(e.target)}/tool-inventory/refresh`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken},body:JSON.stringify(e.model?{model:e.model}:{})})},async listInstructionTemplates(){return(await t(`/admin/api/instruction-templates`)).result},async getInstructionTemplate(e){return(await t(J(e))).result},saveInstructionTemplate(e){let n=e.action===`create`?`/admin/api/instruction-templates`:`${J(e.draft.identity)}/update`;return t(n,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken,"Idempotency-Key":e.idempotencyKey},body:JSON.stringify({...e.action===`create`?{identity:e.draft.identity}:{},variants:e.draft.variants,...e.expectedConfigFingerprint?{expectedConfigFingerprint:e.expectedConfigFingerprint}:{}})})},cloneInstructionTemplate(e){return t(`${J(e.sourceIdentity)}/clone`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken,"Idempotency-Key":e.idempotencyKey},body:JSON.stringify({identity:e.identity,expectedConfigFingerprint:e.expectedConfigFingerprint})})},async validateInstructionTemplate(e){return(await t(`${J(e.identity)}/validate`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken},body:JSON.stringify({expectedConfigFingerprint:e.expectedConfigFingerprint})})).result},async previewInstructionTemplate(e){return(await t(`${J(e.identity)}/preview`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken},body:JSON.stringify({surface:e.surface,selection:e.selection,...e.requestContext?{requestContext:e.requestContext}:{}})})).result},activateInstructionTemplate(e){return t(`${J(e.identity)}/activate`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken,"Idempotency-Key":e.idempotencyKey},body:JSON.stringify({expectedConfigFingerprint:e.expectedConfigFingerprint,previewFingerprint:e.previewFingerprint})})},importLegacyInstructionTemplate(e){return t(`/admin/api/instruction-templates/import-legacy`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken,"Idempotency-Key":e.idempotencyKey},body:JSON.stringify({identity:e.identity,expectedConfigFingerprint:e.expectedConfigFingerprint})})},async previewInstructionTemplateDelete(e){return(await t(`${J(e.identity)}/delete-preview`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken},body:JSON.stringify({expectedConfigFingerprint:e.expectedConfigFingerprint})})).result},deleteInstructionTemplate(e){return t(J(e.identity),{method:`DELETE`,headers:{"X-CSRF-Token":e.csrfToken,"Idempotency-Key":e.idempotencyKey},body:JSON.stringify({expectedConfigFingerprint:e.expectedConfigFingerprint,previewFingerprint:e.previewFingerprint})})},previewConfiguredServerEdit(e){return t(`${Ce(e.target)}/preview`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken},body:JSON.stringify({edit:e.edit,...e.connectivityCheck?{connectivityCheck:e.connectivityCheck}:{},...e.model?{model:e.model}:{}})})},applyConfiguredServerEdit(e){return t(`${Ce(e.target)}/apply`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken,"Idempotency-Key":e.idempotencyKey},body:JSON.stringify({edit:e.edit,previewFingerprint:e.previewFingerprint,confirmationFacts:e.confirmationFacts,...e.model?{model:e.model}:{}})})},setConfiguredServerEnabled(e){let r=e.enabled?`enable`:`disable`;return t(`/admin/api/configured-servers/${encodeURIComponent(e.name)}/${r}`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken,"Idempotency-Key":n({action:r,targetName:e.name})},body:`{}`})}}}function J(e){return`/admin/api/instruction-templates/${encodeURIComponent(e)}`}function Ce(e){return typeof e==`string`?`/admin/api/configured-servers/${encodeURIComponent(e)}`:`/admin/api/configured-servers/${e.source}/${encodeURIComponent(e.id)}`}function we(e){return`admin-console-server-apply-${Le(e)}-${Date.now()}-${crypto.getRandomValues(new Uint32Array(2)).join(`-`)}`}function Te(e){return`admin-console-server-create-${Le(e)}-${Date.now()}-${crypto.getRandomValues(new Uint32Array(2)).join(`-`)}`}function Ee(e,t){return`admin-console-instruction-template-${Le(e)}-${Le(t)}-${Date.now()}-${crypto.getRandomValues(new Uint32Array(2)).join(`-`)}`}function De(e,t){return`admin-console-preset-${e}-${Le(t)}-${Date.now()}-${crypto.getRandomValues(new Uint32Array(2)).join(`-`)}`}function Oe(e){return async function(t,n={}){let r={"Content-Type":`application/json`,"X-Admin-UI-Build-Version":`0.36.0`,"X-Admin-UI-Protocol-Version":`1`,...n.headers??{}},i;try{i=await e(t,{...n,headers:r})}catch{let e=`The Admin Console could not reach the runtime. Check that the runtime is still available, then refresh.`;throw new q(0,{},e,{kind:`unavailable`,message:e})}let a=await ke(i);if(!i.ok)throw new q(i.status,a,Ae(a,i.statusText));return a}}async function ke(e){try{return await e.json()}catch{return{}}}function Ae(e,t){if(e&&typeof e==`object`){let t=e;if(typeof t.error==`string`)return t.error;if(typeof t.code==`string`)return t.code;let n=t.error;if(n&&typeof n.code==`string`)return n.code}return t||`Admin API request failed`}function je(e){return e&&typeof e==`object`&&e.adminStatus===`setupRequired`?`setupRequired`:`loginRequired`}function Me(e){if(e.body&&typeof e.body==`object`){let t=e.body;if(typeof t.error==`string`)return t.error;if(typeof t.code==`string`)return t.code;if(t.error&&typeof t.error==`object`){let e=t.error;if(typeof e.code==`string`)return e.code}}return e.message}function Ne(e){if(!e||typeof e!=`object`)return null;let t=e;if(typeof t.requestId==`string`)return t.requestId;if(t.error&&typeof t.error==`object`){let e=t.error;if(typeof e.requestId==`string`)return e.requestId}return null}function Pe(e,t){switch(t){case`invalid_credentials`:return`Check the admin username and password, then try again.`;case`csrf_required`:return`Refresh the page to renew the admin session, then retry the action.`;case`admin_login_rate_limited`:return`Too many failed login attempts. Wait before trying again.`;case`idempotency_conflict`:return`This action was already retried with different inputs. Refresh the console and try again.`;case`idempotency_key_required`:return`Refresh the console and retry the action with a new request.`;case`admin_configured_servers_unavailable`:return`Configured-server operations are not available on this runtime.`;case`backend_oauth_service_not_found`:return`The OAuth service is no longer available. Refresh the OAuth status and try again.`;case`backend_oauth_runtime_unavailable`:return`Backend OAuth operations are not available on this runtime.`;case`backend_oauth_authorization_start_failed`:return`The runtime could not start backend OAuth authorization. Refresh the OAuth status and try again.`;case`mutation_failed`:return`The runtime could not apply the server change. Refresh the console and inspect the current state.`;case`configured_server_stale_preview`:return`The server changed after this preview. Preview the edit again before applying.`;case`configured_server_destination_conflict`:return`The requested server name is already in use. Choose another target name and preview again.`;case`configured_server_connectivity_blocked`:return`Connectivity validation did not pass. Fix the connection settings and rerun connectivity before applying.`;case`configured_server_edit_invalid`:return`The server edit is invalid. Review the field errors and preview again.`;case`configured_server_edit_unchanged`:return`The preview no longer contains a change. Refresh the server detail before editing again.`;case`configured_server_not_found`:return`The configured server no longer exists. Return to the inventory and refresh it.`;case`configured_server_reload_failed`:return`The configuration was written, but the runtime reload failed. Inspect runtime health before continuing.`;case`configured_server_apply_failed`:return`The server edit could not be written. Refresh the detail and inspect runtime health before retrying.`;case`operation_in_progress`:return`Another admin operation is still running. Wait for it to finish, then refresh the console.`;case`operation_state_unknown`:return`The runtime could not confirm the operation result. Refresh the console and inspect the current state before retrying.`;case`admin_operation_journal_unavailable`:return`The runtime cannot record admin operations right now. Check runtime health before retrying.`;case`runtime_scope_mismatch`:return`The runtime identity changed. Stop using this session and verify the selected runtime before retrying.`;case`mutation_confirmation_required`:return`This operation needs an explicit confirmation flow that is not available in the console yet.`;default:if(e.status===401)return`The admin session is no longer valid. Log in again.`;if(e.status===403)return`The admin session cannot perform this action. Refresh the page and try again.`;if(e.status===429)return`The runtime is rate limiting this request. Wait before trying again.`;if(t.startsWith(`configured_server_`)){let t=Fe(e.body);if(t)return t}return`The Admin Console request failed. Refresh the console and try again.`}}function Fe(e){if(!e||typeof e!=`object`)return null;let t=e.message;return typeof t==`string`&&t.trim().length>0?t.trim():null}function Ie(e){let t=crypto.getRandomValues(new Uint32Array(2)).join(`-`);return`admin-console-${e.action}-${Le(e.targetName)}-${Date.now()}-${t}`}function Le(e){return encodeURIComponent(e).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}var Y=e(ee(),1);function Re(e,t,n){let r=t.trim().toLowerCase();return e.filter(e=>{let t=!r||e.id.toLowerCase().includes(r)||We(e).some(e=>e.toLowerCase().includes(r))||Ue(e).toLowerCase().includes(r)||He(e.transport).toLowerCase().includes(r),i=n===`all`||n===`enabled`&&e.enabled||n===`disabled`&&!e.enabled;return t&&i})}function ze(e){return e.filter(e=>e.enabled).length}function Be(e){return e.filter(e=>!e.enabled).length}function Ve(e){return!!e.requiresOAuth&&(e.status!==`connected`||!!e.lastError)}function He(e){return typeof e.command==`string`?e.command:typeof e.url==`string`?e.url:typeof e.type==`string`?e.type:`configured`}function Ue(e){return e.transportSummary?.label??He(e.transport)}function We(e){return Array.isArray(e.tags)?e.tags:[]}function Ge(e){return e.mutationAvailability?.available??!0}function Ke(e,t){return e.actionState?.[t]??{available:!0,label:t===`enable`?`Enable ${e.id}`:`Disable ${e.id}`}}function qe(e){let t=e.connectivityCheck;return t.status===`skipped`?Ye(t.reason):t.status===`failed`?t.message:t.checkedAt?`Checked at ${t.checkedAt}`:void 0}function Je(e){return e.status===`passed`?`Bounded dry-run connectivity check passed.`:e.status===`failed`?`Connectivity check failed. Apply remains blocked until the check passes or a later override path is available.`:`Connectivity check was skipped for this preview.`}function Ye(e){switch(e){case`connection_critical_fields_unchanged`:return`Connection-critical fields are unchanged. Rerun connectivity if you want an explicit check.`;case`target_disabled`:return`Target is disabled, so automatic connectivity was skipped.`;case`validation_failed`:return`Validation failed before a connectivity check could run.`;case`local_stdio_transport`:return`Local stdio transport does not use remote connectivity checks.`;case`checker_unavailable`:return`Connectivity checker is unavailable on this runtime.`;case`endpoint_changed_with_preserved_secrets`:return`Endpoint changed while secrets stayed preserved. Supply replacements or rerun after updating secrets.`;default:return e}}function Xe(e){switch(e){case`rename`:return`violet`;case`connection_critical`:return`red`;case`secret`:return`grape`;case`template_risk`:return`orange`;case`tool_visibility`:return`yellow`;case`tool_metadata`:return`blue`;default:return`gray`}}function Ze(e){switch(e){case`rename`:return`rename`;case`connection_critical`:return`connection critical`;case`secret`:return`secret`;case`template_risk`:return`template risk`;case`tool_visibility`:return`tool visibility`;case`tool_metadata`:return`tool metadata`;default:return e}}function Qe(e){return e.secretInputs.length===0?`No secret inputs`:`${e.secretInputs.length} redacted`}function $e(e){return e?.runtimeVersion??`unknown`}function et(e){return e?.externalUrl??`not reported`}function tt(e){return e.view===`setupRequired`?`Setup required`:e.view}function nt(e){return e.view===`setupRequired`?`yellow`:e.view===`console`?`teal`:`gray`}function rt(e){return e.replace(/([A-Z])/g,` $1`).toLowerCase()}var X=I();function Z({label:e,value:t,meta:r,description:i,copyLabel:a,copyValue:o,onCopyText:s,wrapValue:c=!1}){let l=o??t;return(0,X.jsxs)(n,{className:`detail-row`,justify:`space-between`,wrap:`nowrap`,children:[(0,X.jsxs)(`div`,{className:`detail-row-main`,children:[(0,X.jsx)(d,{fw:700,children:e}),(0,X.jsx)(d,{className:c?`detail-row-value-wrap`:`truncate`,size:`sm`,children:t}),r?(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:r}):null,i?(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:i}):null]}),a&&l!==`-`?(0,X.jsx)(m,{"aria-label":`Copy ${rt(a)}`,size:`compact-xs`,variant:`subtle`,leftSection:(0,X.jsx)(V,{size:14}),onClick:()=>void s?.(a,l),children:`Copy`}):null]})}function Q({title:e,utility:t,icon:r,children:i}){return(0,X.jsx)(b,{component:`section`,className:`operations-panel`,withBorder:!0,children:(0,X.jsxs)(O,{gap:`sm`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`center`,children:[(0,X.jsxs)(n,{gap:`xs`,children:[r,(0,X.jsx)(k,{order:3,children:e})]}),(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:t})]}),i]})})}function it({message:e}){return(0,X.jsx)(d,{c:`dimmed`,children:e})}function at(e){let t=(0,Y.useRef)(e),n=(0,Y.useRef)(0),r=(0,Y.useRef)(0),i=(0,Y.useRef)(0),a=(0,Y.useRef)(!1),o=(0,Y.useRef)();return t.current=e,{loadRequestRef:n,previewRequestRef:r,applyRequestRef:i,applyInteractionRef:a,applyAttemptRef:o,invalidatePreview:(0,Y.useCallback)(()=>{r.current+=1,o.current=void 0},[]),invalidateApply:(0,Y.useCallback)(()=>{i.current+=1,o.current=void 0},[]),reset:(0,Y.useCallback)(()=>{n.current+=1,r.current+=1,i.current+=1,a.current=!1,o.current=void 0,t.current()},[])}}function ot(e,t,n,r,i,a=[]){let o={},s={};for(let r of e)for(let e of r.fields){if(e.control===`secret`||!e.editable||e.control===`readonly`||!lt(e,i))continue;let r=$(e.fieldPath),a=ht(e,t[r]);if(_t(a)===_t(ht(e,n[r])))continue;let c=e.fieldPath[0];c===`id`?o.id=String(a??``):c===`enabled`?o.enabled=!!a:c===`tags`?o.tags=ut(a):c===`transport`&&e.fieldPath.length>1?gt(s,e.fieldPath.slice(1),a):c&&gt(o,e.fieldPath,a)}let c=Object.values(r).filter(t=>{let n=e.flatMap(e=>e.fields).find(e=>$(e.fieldPath)===$(t.fieldPath));return!n||lt(n,i)}).filter(e=>e.action!==`preserve`).map(e=>({fieldPath:e.fieldPath,action:e.action,...e.action===`replace`?{replacement:{kind:e.replacementKind,value:e.replacementValue}}:{}}));return{...o,...Object.keys(s).length>0?{transport:s}:{},...c.length>0?{secrets:c}:{},...a.length>0?{clearTransportOverrides:a}:{}}}function $(e){return e.join(`\0`)}function st(e){return ht(e,e.value)}function ct(e,t){let n=e[$([`transport`,`type`])]??t;return n===`stdio`||n===`http`||n===`sse`||n===`streamableHttp`?n:void 0}function lt(e,t){return!t||!e.applicableTransportTypes||e.applicableTransportTypes.includes(t)}function ut(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function dt(e){return e.split(/\r?\n/u).map(e=>e.trim()).filter(Boolean)}function ft(e){return!e||typeof e!=`object`||Array.isArray(e)?{}:{...e}}function pt(e){return Array.isArray(e)?e.join(`, `):e&&typeof e==`object`?Object.keys(e).length>0?Object.keys(e).join(`, `):`-`:String(e??`-`)}function mt(e){if(e==null)return`-`;if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return String(e);if(Array.isArray(e))return e.map(mt).join(`, `);if(typeof e!=`object`)return`-`;let t=e;return t.secret===!0||t.value===`[REDACTED]`?`[REDACTED]`:t.kind===`inlineSecret`?`inline secret: [REDACTED]`:typeof t.kind==`string`&&typeof t.value==`string`?`${yt(t.kind)}: ${t.value}`:Object.entries(t).map(([e,t])=>`${e}: ${vt(e)?`[REDACTED]`:mt(t)}`).join(`; `)}function ht(e,t){return e.control===`switch`?!!t:e.control===`tag-list`||e.control===`string-list`?ut(t):e.control===`record`?ft(t):e.control===`number`?typeof t==`number`?t:void 0:e.control===`text`||e.control===`select`?String(t??``):t}function gt(e,t,n){let r=e;for(let e of t.slice(0,-1)){let t=r[e];(!t||typeof t!=`object`||Array.isArray(t))&&(r[e]={}),r=r[e]}let i=t.at(-1);i&&(r[i]=n)}function _t(e){return JSON.stringify(e)}function vt(e){return/authorization|password|secret|token/iu.test(e)}function yt(e){return e.replace(/([A-Z])/g,` $1`).toLowerCase()}function bt(){return{status:`idle`}}function xt(e,t){switch(t.type){case`closed`:return{status:`idle`};case`contractLoadStarted`:return{status:`loading`};case`contractLoaded`:{let e={};for(let n of t.contract.createContract.fieldGroups.flatMap(e=>e.fields))e[$(n.fieldPath)]=st(n);let n=$([`transport`,`type`]);return[`stdio`,`http`,`sse`].includes(String(e[n]??``))||(e[n]=`stdio`),{status:`editing`,contract:t.contract,fieldDraft:e,secrets:[],dirty:!1,previewBusy:!1,applyBusy:!1}}case`contractFailed`:return{status:`failed`,message:t.message};case`fieldChanged`:return e.status!==`editing`||e.applyBusy?e:Ct(e,{fieldDraft:{...e.fieldDraft,[$(t.fieldPath)]:t.value}});case`secretAdded`:return e.status!==`editing`||e.applyBusy?e:Ct(e,{secrets:[...e.secrets,t.secret]});case`secretChanged`:return e.status!==`editing`||e.applyBusy?e:Ct(e,{secrets:e.secrets.map(e=>e.id===t.secret.id?t.secret:e)});case`secretRemoved`:return e.status!==`editing`||e.applyBusy?e:Ct(e,{secrets:e.secrets.filter(e=>e.id!==t.id)});case`previewStarted`:return e.status===`editing`?{...e,previewBusy:!0,previewError:void 0}:e;case`previewSucceeded`:return e.status===`editing`?{...e,preview:t.preview,previewBusy:!1,previewError:void 0}:e;case`previewFailed`:return e.status===`editing`?{...e,previewBusy:!1,previewError:t.message}:e;case`applyStarted`:return e.status===`editing`?{...e,applyBusy:!0,applyError:void 0}:e;case`applyFailed`:return e.status===`editing`?{...e,applyBusy:!1,applyError:t.message,preview:t.clearPreview?void 0:e.preview}:e;case`applySucceeded`:return{status:`committed`,serverId:t.response.result.targetName,result:t.response.result,warning:t.response.result.configChange.reload.status===`failed`?t.response.result.configChange.reload.error??`Runtime reload failed after configuration was written.`:void 0}}}function St(e){if(e.status!==`editing`)return null;let t=e.fieldDraft[$([`transport`,`type`])];if(t!==`stdio`&&t!==`http`&&t!==`sse`)return null;let n={type:t};for(let r of e.contract.createContract.fieldGroups.flatMap(e=>e.fields)){if(r.fieldPath[0]!==`transport`||r.fieldPath.length!==2||!lt(r,t))continue;let i=r.fieldPath[1];if(i===`type`)continue;let a=e.fieldDraft[$(r.fieldPath)];r.control===`string-list`?n[i]=ut(a):r.control===`record`?n[i]=ft(a):a!==``&&a!==void 0&&(n[i]=a)}let r=t===`stdio`?`env`:`headers`,i=e.secrets.filter(e=>e.container===r&&e.key.trim()&&e.replacementValue.trim()).map(e=>({fieldPath:[e.container,e.key.trim()],action:`replace`,replacement:{kind:e.replacementKind,value:e.replacementValue}}));return{name:String(e.fieldDraft[$([`name`])]??``),enabled:!!e.fieldDraft[$([`enabled`])],tags:ut(e.fieldDraft[$([`tags`])]),transport:n,...i.length>0?{secrets:i}:{}}}function Ct(e,t){return{...e,...t,dirty:!0,preview:void 0,previewBusy:!1,previewError:void 0,applyError:void 0}}function wt({api:e,session:t,browser:n,onUnauthenticated:r,onCreated:i,onOpenCreated:a,onPathCommitted:o}){let[s,c]=(0,Y.useReducer)(xt,void 0,bt),l=(0,Y.useRef)(s),u=(0,Y.useRef)(e),d=(0,Y.useRef)(t),f=(0,Y.useRef)(r);u.current=e,d.current=t,f.current=r;let p=(0,Y.useCallback)(e=>{let t=xt(l.current,e);l.current=t,c(e)},[]),{loadRequestRef:m,previewRequestRef:h,applyRequestRef:g,applyInteractionRef:_,applyAttemptRef:v,invalidatePreview:y,reset:b}=at(()=>p({type:`closed`})),x=(0,Y.useCallback)(e=>!(e instanceof q)||e.failure.kind!==`unauthenticated`?!1:(b(),f.current(e.failure.adminStatus),!0),[b]),S=(0,Y.useCallback)(async()=>{let e=d.current;if(!e)return;let t=m.current+1;m.current=t;let n=e.csrfToken;p({type:`contractLoadStarted`});try{let e=await u.current.getConfiguredServerCreateContract();if(t!==m.current||d.current?.csrfToken!==n)return;p({type:`contractLoaded`,contract:e})}catch(e){if(t!==m.current||d.current?.csrfToken!==n)return;x(e)||p({type:`contractFailed`,message:Ot(e)})}},[p,x]),C=(0,Y.useCallback)(async()=>{let e=l.current;e.status===`editing`&&e.dirty&&!await Et(n)||(b(),n.push(`/admin/servers/new`),o?.(`/admin/servers/new`),await S())},[n,S,o,b]),w=(0,Y.useCallback)(async(e=`/admin/servers`)=>{let t=l.current;return t.status===`editing`&&t.dirty&&!await Et(n)?!1:(b(),n.push(e),o?.(e),!0)},[n,o,b]),T=(0,Y.useCallback)(async e=>{await w(`/admin/servers`)&&await a?.(e)},[w,a]),E=(0,Y.useCallback)((e,t)=>{y(),p({type:`fieldChanged`,fieldPath:e,value:t})},[p,y]),D=(0,Y.useCallback)(e=>{y(),p({type:`secretAdded`,secret:e})},[p,y]),O=(0,Y.useCallback)(e=>{y(),p({type:`secretChanged`,secret:e})},[p,y]),k=(0,Y.useCallback)(e=>{y(),p({type:`secretRemoved`,id:e})},[p,y]),A=(0,Y.useCallback)(async(e=`auto`)=>{let t=d.current,n=l.current,r=St(n);if(!t||n.status!==`editing`||!r)return;let i=h.current+1;h.current=i;let a=t.csrfToken;p({type:`previewStarted`});try{let t=await u.current.previewConfiguredServerCreate({draft:r,csrfToken:a,connectivityCheck:e});if(i!==h.current||d.current?.csrfToken!==a)return;v.current?.previewFingerprint!==t.preview.previewFingerprint&&(v.current=void 0),p({type:`previewSucceeded`,preview:t.preview})}catch(e){if(i!==h.current||d.current?.csrfToken!==a)return;x(e)||p({type:`previewFailed`,message:`Preview failed: ${Ot(e)}`})}},[p,x]),j=(0,Y.useCallback)(async()=>{if(_.current)return;let e=d.current,t=l.current,r=St(t);if(!(!e||t.status!==`editing`||!t.preview||!r)&&Tt(t).eligible){_.current=!0;try{let o=t.preview,s=o.connectivityCheck.status===`failed`;if(!await n.confirm({title:s?`Create ${r.name} despite failed connectivity?`:`Create configured server ${r.name}?`,message:s?`The bounded connectivity check failed. Creating this target may leave it unavailable.`:`This writes a new static target and reloads the Runtime Scope.`,confirmLabel:s?`Create despite failure`:`Create server`,tone:s?`danger`:void 0,details:[{label:`Target`,value:r.name},{label:`Transport`,value:r.transport.type},{label:`Connectivity`,value:o.connectivityCheck.status},{label:`Existing target`,value:`Must remain absent`}]}))return;let c=v.current?.previewFingerprint===o.previewFingerprint?v.current:{previewFingerprint:o.previewFingerprint,idempotencyKey:Te(r.name)};v.current=c;let l=g.current+1;g.current=l;let f=e.csrfToken;p({type:`applyStarted`});try{let e=await u.current.createConfiguredServer({draft:r,csrfToken:f,idempotencyKey:c.idempotencyKey,previewFingerprint:o.previewFingerprint,confirmationFacts:{previewConfirmed:o.previewFingerprint,targetNameConfirmed:r.name,connectionCriticalConfirmed:!0,...o.diff.some(e=>e.riskFlags.includes(`secret`))?{secretChangeConfirmed:!0}:{},...s?{connectivityFailureOverrideConfirmed:!0}:{}}});if(l!==g.current||d.current?.csrfToken!==f)return;v.current=void 0,p({type:`applySucceeded`,response:e}),await i?.(),await a?.(e.result.targetName),e.result.configChange.reload.status!==`failed`&&p({type:`closed`})}catch(e){if(l!==g.current||d.current?.csrfToken!==f)return;if(!x(e)){let t=Dt(e);t&&(v.current=void 0),p({type:`applyFailed`,message:`Create failed: ${Ot(e)}`,clearPreview:t})}}}finally{_.current=!1}}},[n,p,x,i,a]);return(0,Y.useEffect)(()=>{if(!t){b();return}n.pathname()===`/admin/servers/new`&&S()},[n,S,b,t?.csrfToken]),(0,Y.useEffect)(()=>n.subscribePopState(()=>{(async()=>{let e=n.pathname(),t=l.current;if(t.status===`editing`&&t.dirty){if(n.replace(`/admin/servers/new`),!await Et(n)){o?.(`/admin/servers/new`);return}n.replace(e)}b(),o?.(e)})()}),[n,o,b]),{state:s,open:C,close:w,editExisting:T,changeField:E,addSecret:D,changeSecret:O,removeSecret:k,preview:A,apply:j}}function Tt(e){if(e.status!==`editing`||!e.preview)return{eligible:!1,reason:`Preview this server first.`};if(!e.contract.createContract.capabilities.apply.supported)return{eligible:!1,reason:`Creation is unavailable.`};if(e.preview.validation.status!==`valid`)return{eligible:!1,reason:`Resolve validation issues.`};if(!e.preview.configChange.changed||e.preview.diff.length===0)return{eligible:!1,reason:`The preview contains no changes.`};let t=St(e);if(!t)return{eligible:!1,reason:`Complete the server configuration.`};let n=e.preview.diff.some(e=>e.riskFlags.includes(`connection_critical`));return t.enabled&&t.transport.type!==`stdio`&&n&&e.preview.connectivityCheck.status!==`passed`&&e.preview.connectivityCheck.status!==`failed`&&!(e.preview.connectivityCheck.status===`skipped`&&e.preview.connectivityCheck.reason===`checker_unavailable`)?{eligible:!1,reason:`A connectivity check must run before creation.`}:{eligible:!0}}function Et(e){return e.confirm({title:`Discard custom server?`,message:`The configured-server draft, preview, and secret replacements will be lost.`,confirmLabel:`Discard draft`,tone:`danger`})}function Dt(e){return e instanceof q&&e.failure.kind===`rejected`&&e.failure.code===`configured_server_stale_preview`}function Ot(e){if(e instanceof q)return e.failure.message;throw e}function kt(e){return e===`identity`?`Rename or enable this target before previewing.`:e===`secrets`?`Choose preserve, replace, or clear without revealing current values.`:e===`transport`?`Change how the runtime connects to this server.`:`Edit normalized fields owned by the Admin Domain.`}function At({field:e,value:t,onChange:n}){return!e.editable||e.control===`readonly`?(0,X.jsx)(Z,{label:e.label,value:pt(t)}):e.control===`switch`?(0,X.jsx)(T,{label:e.label,checked:!!t,onChange:e=>n(e.currentTarget.checked)}):e.control===`tag-list`?(0,X.jsx)(D,{label:e.label,value:ut(t),onChange:n}):e.control===`select`?(0,X.jsx)(y,{label:e.label,value:String(t??``),data:e.options??[],onChange:e=>n(e.currentTarget.value)}):e.control===`number`?(0,X.jsx)(C,{label:e.label,value:typeof t==`number`?t:``,onChange:e=>n(e===``?void 0:e)}):e.control===`string-list`?(0,X.jsx)(j,{label:e.label,value:ut(t).join(`
3
- `),autosize:!0,minRows:2,onChange:e=>n(dt(e.currentTarget.value))}):e.control===`record`?(0,X.jsx)(jt,{label:e.label,value:ft(t),onChange:n}):(0,X.jsx)(w,{label:e.label,value:String(t??``),onChange:e=>n(e.currentTarget.value)})}function jt({label:e,value:t,onChange:r}){let[i,a]=(0,Y.useState)(``),[o,s]=(0,Y.useState)(``);function c(e,n){r({...t,[e]:n})}function l(e){let n={...t};delete n[e],r(n)}function u(){let e=i.trim();e&&(r({...t,[e]:o}),a(``),s(``))}return(0,X.jsxs)(O,{className:`record-editor`,gap:`xs`,children:[(0,X.jsx)(d,{fw:700,children:e}),Object.entries(t).map(([t,r])=>(0,X.jsxs)(n,{gap:`xs`,align:`flex-end`,wrap:`nowrap`,children:[(0,X.jsx)(w,{className:`record-editor-value`,label:`${e} ${t}`,value:String(r??``),onChange:e=>c(t,e.currentTarget.value)}),(0,X.jsx)(m,{"aria-label":`Remove ${e} ${t}`,size:`compact-xs`,variant:`subtle`,color:`red`,onClick:()=>l(t),children:`Remove`})]},t)),(0,X.jsxs)(n,{gap:`xs`,align:`flex-end`,children:[(0,X.jsx)(w,{label:`New ${e} key`,value:i,onChange:e=>a(e.currentTarget.value)}),(0,X.jsx)(w,{label:`New ${e} value`,value:o,onChange:e=>s(e.currentTarget.value)}),(0,X.jsx)(m,{variant:`default`,onClick:u,children:`Add entry`})]})]})}function Mt({field:e,draft:t,onChange:i}){let a=t??{fieldPath:e.fieldPath,action:`preserve`,replacementKind:e.secret?.environmentReference.supported===!1?`inlineSecret`:`environmentReference`,replacementValue:``},o=e.secret?.allowedActions??[`preserve`,`replace`,`clear`],s=e.secret?.environmentReference.supported??!0,c=e.secret?.environmentReference.recommended??s,l=e.secret?.inlineReplacement.supported??!1;return(0,X.jsx)(b,{className:`secret-editor`,withBorder:!0,children:(0,X.jsxs)(O,{gap:`xs`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{fw:700,children:e.label}),(0,X.jsx)(d,{size:`xs`,c:`dimmed`,children:e.secret?.environmentReference.guidance??`Store only an environment variable name or substitution expression when possible.`})]}),(0,X.jsxs)(n,{gap:4,children:[(0,X.jsx)(u,{variant:`light`,children:`redacted`}),c?(0,X.jsx)(u,{color:`teal`,variant:`light`,children:`env reference recommended`}):null]})]}),(0,X.jsx)(_.Group,{value:a.action,onChange:e=>i({...a,action:e}),children:(0,X.jsx)(n,{gap:`sm`,children:o.map(t=>(0,X.jsx)(_,{value:t,label:Nt(t,e.label)},t))})}),a.action===`replace`?(0,X.jsxs)(O,{gap:`xs`,children:[(0,X.jsx)(r,{color:`teal`,variant:`light`,children:`Recommended: keep secret material outside 1MCP config by writing only an environment variable name or substitution expression.`}),(0,X.jsx)(_.Group,{label:`Replacement source`,value:a.replacementKind,onChange:e=>i({...a,replacementKind:e}),children:(0,X.jsx)(n,{gap:`sm`,children:(0,X.jsx)(_,{disabled:!s,value:`environmentReference`,label:`Environment variable (recommended)`})})}),a.replacementKind===`environmentReference`?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(w,{label:`Environment variable for ${e.label}`,description:"Example: GITHUB_TOKEN or ${GITHUB_TOKEN}",value:a.replacementValue,onChange:e=>i({...a,replacementValue:e.currentTarget.value})}),l?(0,X.jsx)(m,{size:`compact-sm`,variant:`subtle`,color:`yellow`,onClick:()=>i({...a,replacementKind:`inlineSecret`,replacementValue:``}),children:`Use advanced inline secret instead`}):null]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(r,{color:`yellow`,role:`alert`,children:`Advanced path: inline replacement stores secret material in configuration. Prefer an environment reference unless the deployment cannot provide one.`}),(0,X.jsx)(E,{label:`Inline secret for ${e.label}`,value:a.replacementValue,onChange:e=>i({...a,replacementValue:e.currentTarget.value})}),s?(0,X.jsx)(m,{size:`compact-sm`,variant:`subtle`,onClick:()=>i({...a,replacementKind:`environmentReference`,replacementValue:``}),children:`Use environment variable instead`}):null]}),(0,X.jsx)(d,{size:`xs`,c:`dimmed`,children:a.replacementKind===`environmentReference`?e.secret?.environmentReference.guidance:e.secret?.inlineReplacement.guidance})]}):null]})})}function Nt(e,t){return e===`preserve`?`Preserve existing ${t}`:e===`replace`?`Replace ${t}`:`Clear saved ${t}`}function Pt({preview:e}){let t=e.connectivityCheck,i=e.validation.status===`valid`?`teal`:`red`,a=t.status===`passed`?`teal`:t.status===`failed`?`red`:`yellow`;return(0,X.jsx)(b,{className:`preview-result`,withBorder:!0,children:(0,X.jsxs)(O,{gap:`sm`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{fw:800,children:`Preview result`}),(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:`Domain facts only. No config has been written.`})]}),(0,X.jsx)(P,{className:`preview-fingerprint`,children:e.previewFingerprint})]}),(0,X.jsx)(r,{color:`blue`,variant:`light`,children:`Preview only - no config has been written.`}),(0,X.jsxs)(h,{cols:{base:1,sm:2},spacing:`xs`,children:[(0,X.jsx)(Z,{label:`Target`,value:e.targetName,meta:`Proposed: ${e.proposedTargetName??e.targetName}`}),(0,X.jsx)(Z,{label:`Validation`,value:e.validation.status,meta:e.validation.errors.length>0?`${e.validation.errors.length} field issue${e.validation.errors.length===1?``:`s`}`:`Ready to apply after confirmation`}),(0,X.jsx)(Z,{label:`Config change`,value:e.configChange.status,meta:`${e.configChange.operation} / ${e.configChange.changed?`changed`:`unchanged`}`}),`expectedReload`in e?(0,X.jsx)(Z,{label:`Expected reload`,value:`Checked after creation`,meta:`The runtime reports the reload outcome after configuration is written.`}):(0,X.jsx)(Z,{label:`Reload`,value:e.configChange.reload.status,meta:e.configChange.reload.error}),(0,X.jsx)(Z,{label:`Backup`,value:e.configChange.backup.created?`created`:`not created`,meta:e.configChange.backup.path}),(0,X.jsx)(b,{className:`connectivity-card connectivity-${t.status}`,withBorder:!0,children:(0,X.jsxs)(O,{gap:4,children:[(0,X.jsxs)(n,{justify:`space-between`,gap:`xs`,children:[(0,X.jsx)(d,{fw:700,children:`Connectivity`}),(0,X.jsx)(u,{color:a,variant:`light`,children:t.status})]}),(0,X.jsx)(d,{size:`sm`,children:Je(t)}),qe(e)?(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:qe(e)}):null]})})]}),e.toolSelection?(0,X.jsxs)(O,{gap:`xs`,children:[(0,X.jsxs)(n,{gap:`xs`,children:[(0,X.jsx)(d,{fw:800,children:`Tool impact`}),(0,X.jsx)(u,{variant:`outline`,children:e.toolSelection.model})]}),(0,X.jsxs)(h,{cols:{base:1,sm:3},spacing:`xs`,children:[(0,X.jsx)(Z,{label:`Selection`,value:`${e.toolSelection.counts.enabled} enabled / ${e.toolSelection.counts.disabled} disabled`,meta:`${e.toolSelection.counts.unresolved} unresolved`}),(0,X.jsx)(Z,{label:`Approximate tokens`,value:`${e.toolSelection.approximateTokens.before} to ${e.toolSelection.approximateTokens.after}`,meta:`Savings: ${e.toolSelection.approximateTokens.savings}`}),(0,X.jsx)(Z,{label:`Runtime effect`,value:e.toolSelection.effect===`immediate`?`Immediate`:`Deferred`,meta:`${e.toolSelection.changedTools.length} changed tools`})]}),e.toolSelection.requiresZeroEnabledConfirmation?(0,X.jsx)(r,{color:`red`,role:`alert`,children:`Applying this preview disables every currently observed tool.`}):null]}):null,e.configChange.warnings?.map(e=>(0,X.jsx)(Z,{label:`Warning`,value:e},`warning:${e}`)),e.configChange.retentionCleanup.warnings.map(e=>(0,X.jsx)(Z,{label:`Retention warning`,value:e},`retention:${e}`)),e.validation.errors.length>0?(0,X.jsxs)(O,{gap:`xs`,children:[(0,X.jsxs)(n,{gap:`xs`,children:[(0,X.jsx)(d,{fw:800,children:`Validation issues`}),(0,X.jsx)(u,{color:i,variant:`light`,children:e.validation.errors.length})]}),e.validation.errors.map(e=>(0,X.jsx)(Z,{label:e.fieldPath.join(`.`)||`form`,value:e.code,meta:e.message},`${$(e.fieldPath)}:${e.code}`))]}):null,e.diff.length>0?(0,X.jsxs)(O,{gap:`xs`,children:[(0,X.jsxs)(n,{gap:`xs`,children:[(0,X.jsx)(d,{fw:800,children:`Redacted diff`}),(0,X.jsxs)(u,{variant:`outline`,children:[e.diff.length,` change`,e.diff.length===1?``:`s`]})]}),e.diff.map(e=>(0,X.jsx)(b,{className:`preview-diff-entry`,withBorder:!0,children:(0,X.jsxs)(O,{gap:6,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,gap:`xs`,children:[(0,X.jsx)(d,{fw:700,children:e.fieldPath.join(`.`)}),(0,X.jsxs)(n,{gap:4,children:[e.secretAction?(0,X.jsxs)(u,{color:`grape`,variant:`light`,children:[`secret: `,e.secretAction]}):null,e.riskFlags.map(e=>(0,X.jsx)(u,{color:Xe(e),variant:`light`,children:Ze(e)},e))]})]}),(0,X.jsxs)(d,{size:`sm`,children:[(0,X.jsxs)(d,{span:!0,c:`dimmed`,children:[`from`,` `]}),mt(e.oldValue),(0,X.jsxs)(d,{span:!0,c:`dimmed`,children:[` `,`to`,` `]}),mt(e.newValue)]})]})},$(e.fieldPath)))]}):(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:`No field-level changes were reported by preview.`})]})})}function Ft({model:e}){let{state:t}=e,i=(0,Y.useRef)(null),a=t.status===`editing`&&!!t.preview?.validation.errors.some(e=>!It(e.fieldPath));if((0,Y.useEffect)(()=>{a&&i.current&&(i.current.open=!0)},[a]),t.status===`idle`)return null;if(t.status===`loading`)return(0,X.jsx)(Q,{title:`Configure custom server`,utility:`loading`,icon:(0,X.jsx)(he,{size:17}),children:(0,X.jsx)(it,{message:`Loading creation controls.`})});if(t.status===`failed`)return(0,X.jsx)(Q,{title:`Configure custom server`,utility:`unavailable`,icon:(0,X.jsx)(he,{size:17}),children:(0,X.jsxs)(O,{gap:`sm`,children:[(0,X.jsx)(r,{color:`red`,role:`alert`,children:t.message}),(0,X.jsxs)(n,{children:[(0,X.jsx)(m,{onClick:()=>void e.open(),children:`Retry loading`}),(0,X.jsx)(m,{variant:`default`,onClick:()=>void e.close(),children:`Back to servers`})]})]})});if(t.status===`committed`)return(0,X.jsx)(Q,{title:`Configured server created`,utility:t.serverId,icon:(0,X.jsx)(W,{size:17}),children:(0,X.jsxs)(O,{gap:`sm`,children:[(0,X.jsxs)(r,{color:`teal`,role:`status`,children:[`Created `,t.serverId,`.`]}),t.warning?(0,X.jsx)(r,{color:`yellow`,children:t.warning}):null,(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:`Refreshing the inventory and opening the created target.`}),(0,X.jsx)(m,{onClick:()=>void e.close(`/admin/servers/${encodeURIComponent(t.serverId)}`),children:`Open server detail`})]})});let o=t.fieldDraft[$([`transport`,`type`])],s=o===`http`||o===`sse`?o:`stdio`,c=t.contract.createContract.fieldGroups.map(e=>({...e,fields:e.fields.filter(e=>lt(e,s))})).filter(e=>e.fields.length>0),l=c.map(e=>({...e,fields:e.fields.filter(e=>It(e.fieldPath))})).filter(e=>e.fields.length>0),f=c.flatMap(e=>e.fields).filter(e=>!It(e.fieldPath)),p=Tt(t),h=t.preview?.configChange.target.source===`mcpServers`&&t.preview.validation.errors.some(e=>[`configured_server_name_conflict`,`configured_server_destination_conflict`].includes(e.code));return(0,X.jsx)(Q,{title:`Configure custom server`,utility:`new static target`,icon:(0,X.jsx)(K,{size:17}),children:(0,X.jsxs)(O,{gap:`sm`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{className:`eyebrow`,size:`xs`,children:`Configured Server Target`}),(0,X.jsx)(k,{order:2,children:`New custom server`}),(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:`Configure -> Preview -> Confirm creation`})]}),(0,X.jsx)(m,{variant:`default`,onClick:()=>void e.close(),children:`Back`})]}),s===`sse`?(0,X.jsx)(r,{color:`yellow`,title:`Legacy transport`,children:`SSE is deprecated. Use HTTP for new remote servers when the endpoint supports it.`}):null,l.map(r=>(0,X.jsx)(b,{className:`edit-section`,withBorder:!0,children:(0,X.jsxs)(O,{gap:`xs`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{fw:800,children:r.label}),(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:kt(r.id)})]}),(0,X.jsxs)(u,{variant:`outline`,children:[r.fields.length,` fields`]})]}),r.fields.map(n=>Lt(n,t.fieldDraft,e.changeField))]})},r.id)),(0,X.jsxs)(`details`,{ref:i,className:`advanced-settings`,children:[(0,X.jsx)(`summary`,{children:`Advanced settings`}),(0,X.jsxs)(O,{gap:`sm`,mt:`sm`,children:[f.length>0?(0,X.jsx)(b,{className:`edit-section`,withBorder:!0,children:(0,X.jsxs)(O,{gap:`xs`,children:[(0,X.jsx)(d,{fw:800,children:`Optional transport settings`}),(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:`Timeouts use milliseconds. Prefer Connection Timeout and Request Timeout over Deprecated Timeout.`}),f.map(n=>Lt(n,t.fieldDraft,e.changeField))]})}):null,(0,X.jsx)(Rt,{transport:s,secrets:t.secrets,inlineSupported:!!t.contract.createContract.secretPolicy.inlineReplacement&&t.contract.createContract.secretPolicy.allowedActions.includes(`replace`),onAdd:e.addSecret,onChange:e.changeSecret,onRemove:e.removeSecret})]})]}),(0,X.jsxs)(n,{className:`draft-action-bar`,justify:`space-between`,gap:`sm`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(u,{color:t.dirty?`yellow`:`gray`,variant:t.dirty?`light`:`outline`,children:t.dirty?`Unpreviewed draft`:`Complete the server details`}),(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:`Preview validates the new target without writing configuration.`})]}),(0,X.jsxs)(n,{gap:`xs`,children:[(0,X.jsx)(m,{loading:t.previewBusy,disabled:!t.dirty||t.previewBusy||t.applyBusy,onClick:()=>void e.preview(`auto`),children:`Preview server`}),t.preview?(0,X.jsx)(m,{variant:`default`,disabled:t.applyBusy,onClick:()=>void e.preview(`manual`),children:`Rerun connectivity`}):null]})]}),t.previewError?(0,X.jsx)(r,{color:`red`,role:`alert`,children:t.previewError}):null,t.applyError?(0,X.jsx)(r,{color:`red`,role:`alert`,children:t.applyError}):null,t.preview?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(n,{justify:`flex-end`,align:`center`,children:[h?(0,X.jsx)(m,{leftSection:(0,X.jsx)(U,{size:16}),variant:`default`,onClick:()=>void e.editExisting(t.preview?.targetName??``),children:`Edit existing server`}):null,p.eligible?null:(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:p.reason}),(0,X.jsx)(m,{leftSection:(0,X.jsx)(W,{size:16}),loading:t.applyBusy,disabled:!p.eligible||t.applyBusy,onClick:()=>void e.apply(),children:`Create server`})]}),(0,X.jsx)(Pt,{preview:t.preview})]}):null]})})}function It(e){return e[0]===`secrets`?!1:e[0]!==`transport`||[`type`,`command`,`args`,`url`].includes(e[1]??``)}function Lt(e,t,n){let r=$(e.fieldPath);return(0,X.jsx)(At,{field:[`timeout`,`connectionTimeout`,`requestTimeout`].includes(e.fieldPath[1]??``)?{...e,label:`${e.label} (ms)`}:e,value:t[r],onChange:t=>n(e.fieldPath,t)},r)}function Rt({transport:e,secrets:t,inlineSupported:i,onAdd:a,onChange:o,onRemove:s}){let c=e===`stdio`?`env`:`headers`,l=t.filter(e=>e.container===c),u=c===`env`?`Environment secrets`:`Header secrets`;return(0,X.jsx)(b,{className:`edit-section`,withBorder:!0,children:(0,X.jsxs)(O,{gap:`xs`,children:[(0,X.jsxs)(n,{justify:`space-between`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{fw:800,children:u}),(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:`Environment Secret Reference is recommended. Only the reference is stored in configuration.`})]}),(0,X.jsx)(m,{size:`compact-sm`,variant:`default`,leftSection:(0,X.jsx)(K,{size:14}),onClick:()=>a({id:Bt(),container:c,key:``,replacementKind:`environmentReference`,replacementValue:``}),children:`Add secret`})]}),l.length===0?(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:`No secret inputs configured.`}):l.map(e=>(0,X.jsx)(b,{className:`secret-editor`,withBorder:!0,children:(0,X.jsxs)(O,{gap:`xs`,children:[(0,X.jsxs)(n,{align:`flex-end`,wrap:`nowrap`,children:[(0,X.jsx)(w,{label:c===`env`?`Environment variable`:`Header name`,value:e.key,onChange:t=>o({...e,key:t.currentTarget.value})}),(0,X.jsx)(y,{label:`Secret source`,value:e.replacementKind,data:[{value:`environmentReference`,label:`Environment Secret Reference`},...i?[{value:`inlineSecret`,label:`Advanced inline secret`}]:[]],onChange:t=>o({...e,replacementKind:t.currentTarget.value,replacementValue:``})}),(0,X.jsx)(m,{"aria-label":`Remove ${e.key||`secret`} input`,variant:`subtle`,color:`red`,onClick:()=>s(e.id),children:(0,X.jsx)(fe,{size:16})})]}),e.replacementKind===`environmentReference`?(0,X.jsx)(w,{label:`Environment reference for ${e.key||u}`,placeholder:"MY_SECRET or ${MY_SECRET}",value:e.replacementValue,onChange:t=>o({...e,replacementValue:t.currentTarget.value})}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(r,{color:`yellow`,children:`Advanced path: inline replacement stores secret material in configuration. Prefer an Environment Secret Reference.`}),(0,X.jsx)(E,{label:`Inline secret for ${e.key||u}`,value:e.replacementValue,onChange:t=>o({...e,replacementValue:t.currentTarget.value})})]})]})},e.id))]})})}var zt=0;function Bt(){return zt+=1,`create-secret-${zt}`}function Vt(){return{status:`list`}}function Ht(e){if(e.status!==`loaded`)return{};let t=ct(e.fieldDraft,e.detail.server.transport.type),n=ot(e.detail.editContract.fieldGroups,e.fieldDraft,e.initialFieldDraft,e.secretDraft,t,e.clearedTransportOverrides),r=e.instructionOverride,i=e.initialInstructionOverride;return(r.mode!==i.mode||r.mode===`replace`&&r.value!==i.value)&&(n.instructionOverride=r.mode===`upstream`?{action:`remove`}:{action:`set`,value:r.mode===`suppress`?``:r.value}),JSON.stringify(e.toolDraft)!==JSON.stringify(e.initialToolDraft)&&(n.disabledTools=Object.entries(e.toolDraft).filter(([,e])=>!e.enabled).map(([e])=>e).sort((e,t)=>e.localeCompare(t)),n.toolDescriptionOverrides=Object.fromEntries(Object.entries(e.toolDraft).map(([e,t])=>[e,t.descriptionOverride.trim()]).filter(([,e])=>e.length>0).sort(([e],[t])=>e.localeCompare(t)))),n}function Ut(e,t){switch(t.type){case`closed`:return Vt();case`detailLoadStarted`:return{status:`loading`,serverId:t.serverId};case`detailLoaded`:return Wt(t.serverId,t.detail);case`detailMissing`:return{status:`missing`,serverId:t.serverId};case`detailFailed`:return{status:`failed`,serverId:t.serverId,message:t.message};case`fieldChanged`:return e.status!==`loaded`||e.applyBusy||e.detail.server.source===`mcpTemplates`?e:Gt(e,{fieldDraft:{...e.fieldDraft,[$(t.fieldPath)]:t.value},clearedTransportOverrides:t.fieldPath[0]===`transport`&&t.fieldPath[1]?e.clearedTransportOverrides.filter(e=>e!==t.fieldPath[1]):e.clearedTransportOverrides});case`secretChanged`:return e.status!==`loaded`||e.applyBusy||e.detail.server.source===`mcpTemplates`?e:Gt(e,{secretDraft:{...e.secretDraft,[$(t.fieldPath)]:t.value}});case`transportOverrideChanged`:return e.status!==`loaded`||e.applyBusy||e.detail.server.source===`mcpTemplates`?e:Gt(e,{clearedTransportOverrides:t.clear?Array.from(new Set([...e.clearedTransportOverrides,t.key])):e.clearedTransportOverrides.filter(e=>e!==t.key)});case`instructionOverrideChanged`:return e.status!==`loaded`||e.applyBusy?e:Gt(e,{instructionOverride:{mode:t.mode,value:t.mode===`replace`?t.value??e.instructionOverride.value:e.instructionOverride.value}});case`toolChanged`:{if(e.status!==`loaded`||e.applyBusy)return e;let n=e.toolDraft[t.name];return n?Gt(e,{toolDraft:{...e.toolDraft,[t.name]:{enabled:t.enabled??n.enabled,descriptionOverride:t.descriptionOverride??n.descriptionOverride}}}):e}case`toolsBulkChanged`:return e.status!==`loaded`||e.applyBusy?e:Gt(e,{toolDraft:Object.fromEntries(Object.entries(e.toolDraft).map(([e,n])=>[e,t.names.includes(e)?{...n,enabled:t.enabled}:n]))});case`toolInventoryRequestStarted`:return e.status!==`loaded`||e.applyBusy||e.toolInventoryBusy?e:{...e,toolInventoryBusy:!0,toolInventoryError:void 0,...t.clearPreview?{preview:void 0,previewBusy:!1,previewError:void 0,applyError:void 0}:{}};case`toolInventoryReceived`:{if(e.status!==`loaded`)return e;let n={...e.toolDraft},r={...e.initialToolDraft};for(let e of t.inventory.rows)n[e.name]??={enabled:e.enabled,descriptionOverride:e.descriptionOverride??``},r[e.name]??={enabled:e.enabled,descriptionOverride:e.descriptionOverride??``};let i=e.detail.toolInventory?.generation!==t.inventory.generation,a={...e,detail:{...e.detail,toolInventory:t.inventory},toolDraft:n,initialToolDraft:r,toolModel:t.inventory.model,toolInventoryBusy:!1,toolInventoryError:void 0,...t.clearPreview===`always`||i?{preview:void 0,previewBusy:!1,previewError:void 0,applyError:void 0}:{}};return{...a,dirty:Object.keys(Ht(a)).length>0}}case`toolInventoryRequestFailed`:return e.status===`loaded`?{...e,toolInventoryBusy:!1,toolInventoryError:t.message}:e;case`previewStarted`:return e.status===`loaded`?{...e,previewBusy:!0,previewError:void 0}:e;case`previewSucceeded`:return e.status===`loaded`?{...e,preview:t.preview,previewBusy:!1,previewError:void 0}:e;case`previewFailed`:return e.status===`loaded`?{...e,previewBusy:!1,previewError:t.message}:e;case`applyStarted`:return e.status===`loaded`?{...e,applyBusy:!0,applyError:void 0,applySuccess:void 0}:e;case`applyCommitted`:return e.status===`loaded`?{status:`committed`,serverId:t.serverId,success:`Changes applied to ${t.result.targetName}.`,warning:qt(t.result)}:e;case`applySucceeded`:return{...Wt(t.serverId,t.detail),applySuccess:`Changes applied to ${t.result.targetName}.`,applyWarning:qt(t.result)};case`applyFailed`:return e.status===`loaded`?{...e,preview:t.clearPreview?void 0:e.preview,applyBusy:!1,applyError:t.message}:e;case`applyRefreshFailed`:return e.status===`committed`?{...e,status:`committedRefreshFailed`,message:t.message}:e}}function Wt(e,t){let n={},r={};for(let e of t.editContract.fieldGroups)for(let t of e.fields){let e=$(t.fieldPath);t.control===`secret`?r[e]={fieldPath:t.fieldPath,action:t.secret?.defaultAction??`preserve`,replacementKind:t.secret?.environmentReference.supported===!1?`inlineSecret`:`environmentReference`,replacementValue:``}:n[e]=st(t)}let i=Object.fromEntries((t.toolInventory?.rows??[]).map(e=>[e.name,{enabled:e.enabled,descriptionOverride:e.descriptionOverride??``}]));return{status:`loaded`,serverId:e,detail:t,fieldDraft:n,initialFieldDraft:n,secretDraft:r,clearedTransportOverrides:[],instructionOverride:Kt(t.server.instructionOverride),initialInstructionOverride:Kt(t.server.instructionOverride),toolDraft:i,initialToolDraft:i,toolModel:t.toolInventory?.model??`gpt-4o`,toolInventoryBusy:!1,dirty:!1,previewBusy:!1,applyBusy:!1}}function Gt(e,t){let n={...e,...t,preview:void 0,previewBusy:!1,previewError:void 0,applyError:void 0,applyWarning:void 0,applySuccess:void 0};return{...n,dirty:Object.keys(Ht(n)).length>0}}function Kt(e){return e?.state===`replace`?{mode:`replace`,value:e.value}:e?.state===`suppress`?{mode:`suppress`,value:``}:{mode:`upstream`,value:``}}function qt(e){if(e.configChange.reload.status===`failed`)return e.configChange.reload.error?`Configuration was written, but runtime reload failed: ${e.configChange.reload.error}`:`Configuration was written, but runtime reload failed. Inspect runtime health before continuing.`}function Jt({api:e,session:t,browser:n,onUnauthenticated:r,onApplied:i,onPathCommitted:a}){let[o,s]=(0,Y.useReducer)(Ut,void 0,Vt),c=(0,Y.useRef)(o),l=(0,Y.useRef)(t),u=(0,Y.useRef)(e),d=(0,Y.useRef)(r),f=(0,Y.useRef)(0),p=(0,Y.useRef)(!1),m=(0,Y.useRef)();c.current=o,l.current=t,u.current=e,d.current=r;let{loadRequestRef:h,previewRequestRef:g,applyRequestRef:_,applyInteractionRef:v,applyAttemptRef:y,invalidatePreview:b,invalidateApply:x,reset:S}=at(()=>s({type:`closed`})),C=(0,Y.useCallback)(()=>{f.current+=1,p.current=!1,m.current=void 0},[]),w=(0,Y.useCallback)(()=>{C(),S()},[C,S]),T=(0,Y.useCallback)(e=>!(e instanceof q)||e.failure.kind!==`unauthenticated`?!1:(w(),d.current(e.failure.adminStatus),!0),[w]),E=(0,Y.useCallback)(async(e,t)=>{let n=l.current;if(!n||p.current)return;p.current=!0;let r=n.csrfToken,i=f.current+1;f.current=i,s({type:`toolInventoryRequestStarted`,clearPreview:!1});try{let n=await u.current.refreshConfiguredToolInventory({target:e,csrfToken:r,model:t});if(i!==f.current||l.current?.csrfToken!==r)return;let a=c.current;if(a.status!==`loaded`||!Zt(a,e))return;a.detail.toolInventory?.generation!==n.toolInventory.generation&&b(),s({type:`toolInventoryReceived`,inventory:n.toolInventory,clearPreview:`generationChanged`})}catch(e){if(i!==f.current||l.current?.csrfToken!==r)return;T(e)||s({type:`toolInventoryRequestFailed`,message:`Tool refresh failed: ${en(e)}`})}finally{i===f.current&&(p.current=!1)}},[T,b]),D=(0,Y.useCallback)(async e=>{let t=typeof e==`string`?e:e.id,n=l.current;if(!n)return;x(),C();let r=n.csrfToken,i=h.current+1;h.current=i,b(),s({type:`detailLoadStarted`,serverId:t});try{let n=await u.current.getConfiguredServerDetail(e);if(i!==h.current||l.current?.csrfToken!==r)return;m.current=n.toolInventory?.freshness===`unavailable`?{target:n.server.target,model:n.toolInventory.model}:void 0,s({type:`detailLoaded`,serverId:t,detail:n})}catch(e){if(i!==h.current||l.current?.csrfToken!==r||T(e))return;if(e instanceof q&&e.failure.kind===`configuredServerNotFound`){s({type:`detailMissing`,serverId:t});return}s({type:`detailFailed`,serverId:t,message:`Server detail failed: ${en(e)}`})}},[T,x,b,C]),O=(0,Y.useCallback)(async e=>{let t=c.current;t.status===`loaded`&&!Zt(t,e)&&t.dirty&&!await $t(n)||(n.push(tn(e)),await D(e))},[n,D]),k=(0,Y.useCallback)(async(e=`/admin`)=>{let t=c.current;return t.status===`loaded`&&t.dirty&&!await $t(n)?!1:(n.push(e),w(),!0)},[n,w]),A=(0,Y.useCallback)((e,t)=>{b(),s({type:`fieldChanged`,fieldPath:e,value:t})},[b]),j=(0,Y.useCallback)((e,t)=>{b(),s({type:`secretChanged`,fieldPath:e,value:t})},[b]),M=(0,Y.useCallback)((e,t)=>{b(),s({type:`transportOverrideChanged`,key:e,clear:t})},[b]),N=(0,Y.useCallback)((e,t)=>{b(),s({type:`instructionOverrideChanged`,mode:e,value:t})},[b]),P=(0,Y.useCallback)((e,t)=>{b(),s({type:`toolChanged`,name:e,...t})},[b]),ee=(0,Y.useCallback)((e,t)=>{b(),s({type:`toolsBulkChanged`,names:e,enabled:t})},[b]),F=(0,Y.useCallback)(async e=>{let t=c.current;if(t.status!==`loaded`||t.applyBusy||t.toolInventoryBusy||p.current||v.current||e===t.toolModel)return;let n=l.current;if(!n)return;let r=n.csrfToken;p.current=!0;let i=f.current+1;f.current=i,b(),s({type:`toolInventoryRequestStarted`,clearPreview:!0});try{let n=await u.current.getConfiguredServerDetail(Xt(t),e);if(i!==f.current||l.current?.csrfToken!==r||c.current.status!==`loaded`||!Zt(c.current,Xt(t)))return;n.toolInventory?s({type:`toolInventoryReceived`,inventory:n.toolInventory,clearPreview:`always`}):s({type:`toolInventoryRequestFailed`,message:`Token estimate failed: inventory unavailable.`})}catch(e){if(i!==f.current||l.current?.csrfToken!==r)return;T(e)||s({type:`toolInventoryRequestFailed`,message:`Token estimate failed: ${en(e)}`})}finally{i===f.current&&(p.current=!1)}},[T,b]),I=(0,Y.useCallback)(()=>{let e=c.current;if(!(e.status!==`loaded`||e.applyBusy||e.toolInventoryBusy||v.current))return E(Xt(e),e.toolModel)},[E]);(0,Y.useEffect)(()=>{if(o.status!==`loaded`)return;let e=m.current;!e||!Zt(o,e.target)||(m.current=void 0,E(e.target,e.model))},[E,o]);let te=(0,Y.useCallback)(async(e=`auto`)=>{let t=l.current,n=c.current;if(!t||n.status!==`loaded`||n.toolInventoryBusy||p.current)return;let r=t.csrfToken,i=n.serverId,a=g.current+1;g.current=a,s({type:`previewStarted`});try{let t=await u.current.previewConfiguredServerEdit({target:Xt(n),csrfToken:r,connectivityCheck:e,...n.detail.toolInventory?{model:n.toolModel}:{},edit:Ht(n)});if(a!==g.current||l.current?.csrfToken!==r)return;let o=c.current;if(o.status!==`loaded`||o.serverId!==i)return;y.current?.previewFingerprint!==t.preview.previewFingerprint&&(y.current=void 0),s({type:`previewSucceeded`,preview:t.preview})}catch(e){if(a!==g.current||l.current?.csrfToken!==r)return;T(e)||s({type:`previewFailed`,message:`Preview failed: ${en(e)}`})}},[T]),L=(0,Y.useCallback)(async()=>{if(v.current)return;let e=l.current,t=c.current;if(!(!e||t.status!==`loaded`||!t.preview||t.toolInventoryBusy||p.current)&&Yt(t).eligible){v.current=!0;try{let r=t.preview,a=Array.from(new Set(r.diff.flatMap(e=>e.riskFlags))),o=r.connectivityCheck.status===`failed`,d=r.toolSelection?.requiresZeroEnabledConfirmation===!0;if(!await n.confirm({title:d?`Disable all observed tools for ${r.proposedTargetName}?`:o?`Apply despite failed connectivity to ${r.proposedTargetName}?`:`Apply changes to ${r.proposedTargetName}?`,message:d?`No currently observed tools will remain enabled. Newly discovered tools will still be enabled by default.`:o?`The bounded connectivity check failed. Applying may make this configured server unavailable.`:`This writes the validated configuration and reloads the Runtime Scope.`,confirmLabel:d?`Disable all tools`:o?`Apply despite failure`:`Apply changes`,tone:d||o?`danger`:void 0,details:[{label:`Current target`,value:r.targetName},{label:`Final target`,value:r.proposedTargetName},{label:`Changes`,value:String(r.diff.length)},{label:`Risk flags`,value:a.join(`, `)||`none`},{label:`Connectivity`,value:r.connectivityCheck.status},{label:`Backup`,value:`Created before the config write`}]}))return;let f=c.current;if(f.status!==`loaded`||f.toolInventoryBusy||p.current||f.preview?.previewFingerprint!==r.previewFingerprint)return;let m=e.csrfToken,h=t.serverId,g=_.current+1;_.current=g;let v=y.current?.previewFingerprint===r.previewFingerprint?y.current:{previewFingerprint:r.previewFingerprint,idempotencyKey:we(h)};y.current=v,s({type:`applyStarted`});let b;try{b=await u.current.applyConfiguredServerEdit({target:Xt(t),csrfToken:m,idempotencyKey:v.idempotencyKey,edit:Ht(t),previewFingerprint:r.previewFingerprint,...t.detail.toolInventory?{model:t.toolModel}:{},confirmationFacts:{previewConfirmed:r.previewFingerprint,...r.proposedTargetName===r.targetName?{}:{targetNameConfirmed:r.proposedTargetName},...a.includes(`connection_critical`)?{connectionCriticalConfirmed:!0}:{},...a.includes(`secret`)?{secretChangeConfirmed:!0}:{},...o?{connectivityFailureOverrideConfirmed:!0}:{},...r.toolSelection?.requiresZeroEnabledConfirmation?{zeroEnabledToolsConfirmed:!0}:{}}})}catch(e){if(g!==_.current||l.current?.csrfToken!==m)return;if(!T(e)){let t=Qt(e);t&&(y.current=void 0),s({type:`applyFailed`,message:`Apply failed: ${en(e)}`,clearPreview:t})}return}if(g!==_.current||l.current?.csrfToken!==m)return;y.current=void 0;let x=b.result.targetName;x!==h&&n.replace(tn(x)),s({type:`applyCommitted`,serverId:x,result:b.result});try{await i?.()}catch{}try{let e=await u.current.getConfiguredServerDetail(t.detail.server.source===`mcpTemplates`?{source:`mcpTemplates`,id:x}:{source:`mcpServers`,id:x});if(g!==_.current||l.current?.csrfToken!==m)return;s({type:`applySucceeded`,serverId:x,detail:e,result:b.result})}catch(e){if(g!==_.current||l.current?.csrfToken!==m)return;T(e)||s({type:`applyRefreshFailed`,message:`Changes were applied, but server detail could not be refreshed: ${en(e)}`})}}finally{v.current=!1}}},[n,T,i]);return(0,Y.useEffect)(()=>{if(!t){w();return}let e=nn(n.pathname());e?D(e):w()},[n,D,w,t?.csrfToken]),(0,Y.useEffect)(()=>n.subscribePopState(()=>{(async()=>{let e=c.current,t=n.pathname(),r=nn(t);if(e.status===`loaded`&&!Zt(e,r)&&e.dirty){if(n.replace(tn(e.detail.server.target)),!await $t(n))return;n.replace(t)}r?D(r):w(),a?.(t)})()}),[n,D,a,w]),{state:o,open:O,close:k,changeField:A,changeSecret:j,changeTransportOverride:M,changeInstructionOverride:N,changeTool:P,changeVisibleTools:ee,changeToolModel:F,refreshToolInventory:I,preview:te,apply:L}}function Yt(e){if(e.status!==`loaded`||!e.preview)return{eligible:!1,reason:`Preview changes first.`};if(e.toolInventoryBusy)return{eligible:!1,reason:`Wait for the tool inventory refresh to finish.`};if(!e.detail.editContract.capabilities.apply.supported)return{eligible:!1,reason:`This runtime does not support applying server edits.`};if(e.preview.validation.status!==`valid`)return{eligible:!1,reason:`Resolve validation issues.`};if(!e.preview.configChange.changed||e.preview.diff.length===0)return{eligible:!1,reason:`The preview contains no changes.`};if(e.detail.server.source===`mcpTemplates`&&e.preview.diff.some(e=>e.fieldPath.join(`.`)!==`instructionOverride`))return{eligible:!1,reason:`Template targets only support instruction overrides.`};let t=e.preview.diff.some(e=>e.riskFlags.includes(`connection_critical`)),n=ct(e.fieldDraft,e.detail.server.transport.type);return(Ht(e).enabled??e.detail.server.enabled)&&n!==`stdio`&&t&&e.preview.connectivityCheck.status!==`passed`&&e.preview.connectivityCheck.status!==`failed`?{eligible:!1,reason:`A connectivity check must run before applying these changes.`}:{eligible:!0}}function Xt(e){return{source:e.detail.server.source,id:e.serverId}}function Zt(e,t){if(!t)return!1;let n=typeof t==`string`?`mcpServers`:t.source,r=typeof t==`string`?t:t.id;return e.serverId===r&&e.detail.server.source===n}function Qt(e){return e instanceof q&&e.failure.kind===`rejected`&&e.failure.code===`configured_server_stale_preview`}function $t(e){return e.confirm({title:`Discard unsaved changes?`,message:`Your configured-server draft and preview will be lost.`,confirmLabel:`Discard changes`,tone:`danger`})}function en(e){if(e instanceof q)return e.failure.message;throw e}function tn(e){return typeof e==`string`?`/admin/servers/${encodeURIComponent(e)}`:e.source===`mcpServers`?`/admin/servers/${encodeURIComponent(e.id)}`:`/admin/servers/${e.source}/${encodeURIComponent(e.id)}`}function nn(e){if(!e.startsWith(`/admin/servers/`))return null;let t=e.slice(15).split(`#`,1)[0];if(!t)return null;let n;try{n=decodeURIComponent(t)}catch{n=t}if(n===`new`)return null;let[r,...i]=n.split(`/`);return(r===`mcpServers`||r===`mcpTemplates`)&&i.length>0?{source:r,id:i.join(`/`)}:n}function rn({inventory:e,draft:t,disabled:r,refreshBusy:i,refreshError:a,onToolChange:o,onBulkChange:s,onModelChange:l,onRefresh:f}){let[p,h]=(0,Y.useState)(``),[_,v]=(0,Y.useState)(`all`),y=(0,Y.useMemo)(()=>{let n=p.trim().toLowerCase();return e.rows.filter(e=>{let r=t[e.name]??{enabled:e.enabled,descriptionOverride:e.descriptionOverride??``},i=!n||e.name.toLowerCase().includes(n)||e.effectiveDescription?.toLowerCase().includes(n)||e.upstreamDescription?.toLowerCase().includes(n),a=_===`all`||_===`enabled`&&r.enabled||_===`disabled`&&!r.enabled||_===`unresolved`&&e.unresolved;return i&&a})},[t,_,e.rows,p]),b=y.map(e=>e.name),x=(0,Y.useMemo)(()=>Array.from(new Set([`gpt-4o`,`gpt-4o-mini`,`gpt-3.5-turbo`,e.model].filter(Boolean))),[e.model]),C=(0,Y.useMemo)(()=>{let n=0,r=0;for(let i of e.rows)t[i.name]?.enabled??i.enabled?r+=i.approximateTokens:n+=1;return{disabled:n,enabledTokens:r}},[t,e.rows]),E=on(e,a),D=an(e),k=!!a||e.inspection?.retryable===!0;return(0,X.jsxs)(O,{className:`configured-tool-table`,gap:`sm`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-end`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{fw:800,children:`Configured Tool Selection`}),(0,X.jsxs)(d,{c:`dimmed`,size:`xs`,children:[e.counts.observed,` observed, `,C.disabled,` disabled, `,e.counts.unresolved,` `,`unresolved`]}),E?(0,X.jsxs)(`div`,{role:a||e.inspection?.status===`failed`?`alert`:`status`,"aria-live":a||e.inspection?.status===`failed`?void 0:`polite`,children:[(0,X.jsx)(d,{c:a||e.inspection?.status===`failed`?`red`:`yellow`,size:`xs`,children:E}),D.length>0?(0,X.jsx)(O,{component:`ul`,gap:2,m:0,pl:`md`,children:D.map(e=>(0,X.jsxs)(d,{component:`li`,c:`red`,size:`xs`,style:{overflowWrap:`anywhere`},children:[e.instanceId,`: `,e.error]},`${e.instanceId}:${e.error}`))}):null]}):null]}),(0,X.jsxs)(n,{align:`flex-end`,gap:`xs`,children:[(0,X.jsx)(m,{variant:`default`,leftSection:(0,X.jsx)(ce,{size:15}),loading:i,disabled:r||i,onClick:()=>void f(),children:k?`Retry`:`Refresh`}),(0,X.jsx)(S,{label:`Estimate model`,"aria-label":`Token estimate model`,value:e.model,data:x,allowDeselect:!1,disabled:r||i,onChange:e=>{e&&l(e)}})]})]}),(0,X.jsxs)(n,{align:`flex-end`,grow:!0,children:[(0,X.jsx)(w,{label:`Search tools`,leftSection:(0,X.jsx)(G,{size:15}),value:p,onChange:e=>h(e.currentTarget.value)}),(0,X.jsx)(A,{"aria-label":`Tool status filter`,value:_,onChange:e=>v(e),data:[{label:`All`,value:`all`},{label:`Enabled`,value:`enabled`},{label:`Disabled`,value:`disabled`},{label:`Unresolved`,value:`unresolved`}]})]}),(0,X.jsxs)(n,{justify:`space-between`,children:[(0,X.jsxs)(d,{c:`dimmed`,size:`xs`,children:[y.length,` visible tools, approximately `,C.enabledTokens,` enabled tokens`]}),(0,X.jsxs)(n,{gap:`xs`,children:[(0,X.jsxs)(m,{size:`compact-xs`,variant:`default`,disabled:r||b.length===0,onClick:()=>s(b,!0),children:[`Enable visible (`,b.length,`)`]}),(0,X.jsxs)(m,{size:`compact-xs`,variant:`default`,disabled:r||b.length===0,onClick:()=>s(b,!1),children:[`Disable visible (`,b.length,`)`]})]})]}),(0,X.jsx)(`div`,{className:`configured-tool-rows`,children:y.map(e=>{let i=t[e.name]??{enabled:e.enabled,descriptionOverride:e.descriptionOverride??``};return(0,X.jsxs)(`div`,{className:`configured-tool-row`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,wrap:`nowrap`,children:[(0,X.jsxs)(`div`,{className:`configured-tool-identity`,children:[(0,X.jsxs)(n,{gap:`xs`,children:[(0,X.jsx)(d,{fw:700,children:e.name}),e.stale?(0,X.jsx)(u,{color:`orange`,children:`last observed`}):null,e.unresolved?(0,X.jsx)(u,{color:`yellow`,children:`unresolved`}):null,e.observedInSomeInstances?(0,X.jsxs)(u,{variant:`outline`,children:[e.observedInstanceCount,`/`,e.activeInstanceCount,` instances`]}):null,(0,X.jsxs)(u,{variant:`outline`,children:[`~`,e.approximateTokens,` tokens`]})]}),(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:e.effectiveDescription??`No upstream description`}),e.descriptionOverridden&&e.upstreamDescription?(0,X.jsxs)(d,{c:`dimmed`,size:`xs`,children:[`Upstream: `,e.upstreamDescription]}):null]}),(0,X.jsx)(T,{"aria-label":`Enable ${e.name}`,checked:i.enabled,disabled:r,onChange:t=>o(e.name,{enabled:t.currentTarget.checked})})]}),(0,X.jsxs)(n,{mt:`xs`,align:`flex-end`,wrap:`nowrap`,children:[(0,X.jsx)(w,{className:`configured-tool-description-input`,label:`Description override`,placeholder:e.upstreamDescription??`Add a description`,value:i.descriptionOverride,disabled:r,onChange:t=>o(e.name,{descriptionOverride:t.currentTarget.value})}),(0,X.jsx)(g,{label:`Reset to upstream description`,children:(0,X.jsx)(c,{"aria-label":`Reset ${e.name} description`,variant:`default`,disabled:r||!i.descriptionOverride,onClick:()=>o(e.name,{descriptionOverride:``}),children:(0,X.jsx)(de,{size:16})})})]})]},e.name)})}),e.targetEnabled?null:(0,X.jsx)(d,{c:`yellow`,size:`xs`,children:`This target is disabled. Tool changes will take effect when the target is enabled.`}),(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:`Selection uses a denylist. Tools discovered later are enabled unless explicitly disabled.`})]})}function an(e){return(e.inspection?.instances??[]).flatMap(e=>{let t=e.error?.trim();return e.status===`complete`||!t?[]:[{instanceId:e.instanceId,error:t.length>240?`${t.slice(0,237)}...`:t}]}).slice(0,5)}function on(e,t){if(t)return t;let n=e.inspection;if(n?.status===`in_progress`)return`Refreshing live tool inventory from connected instances.`;if(!(n?.status===`complete`&&e.freshness===`live`))switch(n?.reason){case`target_disabled`:return`This target is disabled, so live tool inventory cannot be refreshed.`;case`target_disconnected`:return`This configured server is disconnected. Reconnect it before refreshing live tool inventory.`;case`no_active_instances`:return`This Template Server has no active instances to inspect.`;case`active_instance_unavailable`:return`An active instance became unavailable before its tools could be inspected.`;case`inspection_failed`:return`Live tool inspection failed for one or more active instances.`;case`snapshot_unavailable`:return`No complete live tool snapshot is available yet.`;case`active_instances_changed`:return`The active instance set changed during inspection. Retry to inspect the current instances.`;default:return e.freshness===`unavailable`?`Live inventory is unavailable. Rows may come from the last complete snapshot or stored configuration.`:void 0}}function sn({model:e}){let{state:t}=e,i=(0,Y.useRef)(null),a=t.status===`loaded`&&!!t.preview?.validation.errors.some(e=>t.detail.editContract.fieldGroups.flatMap(e=>e.fields).some(t=>$(t.fieldPath)===$(e.fieldPath)&&!cn(t)));if((0,Y.useEffect)(()=>{a&&i.current&&(i.current.open=!0)},[a]),t.status===`list`)return(0,X.jsx)(Q,{title:`Edit server`,utility:`select a target`,icon:(0,X.jsx)(U,{size:17}),children:(0,X.jsxs)(O,{className:`edit-empty-state`,gap:`xs`,children:[(0,X.jsx)(d,{fw:700,children:`Select Edit server to change target settings.`}),(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:`Edit fields -> Preview change -> Review result`})]})});if(t.status===`loading`)return(0,X.jsx)(Q,{title:`Server detail`,utility:t.serverId,icon:(0,X.jsx)(he,{size:17}),children:(0,X.jsx)(it,{message:`Loading server detail.`})});if(t.status===`committed`||t.status===`committedRefreshFailed`)return(0,X.jsx)(Q,{title:`Server detail`,utility:t.serverId,icon:(0,X.jsx)(he,{size:17}),children:(0,X.jsxs)(O,{gap:`sm`,children:[(0,X.jsx)(r,{color:`teal`,role:`status`,children:t.success}),t.warning?(0,X.jsx)(r,{color:`yellow`,role:`status`,children:t.warning}):null,t.status===`committed`?(0,X.jsx)(it,{message:`Refreshing the committed server detail.`}):(0,X.jsx)(r,{color:`yellow`,role:`status`,children:t.message}),(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:`Editing stays unavailable until the runtime returns a fresh server detail model.`}),(0,X.jsxs)(n,{children:[t.status===`committedRefreshFailed`?(0,X.jsx)(m,{onClick:()=>void e.open(t.serverId),children:`Retry detail`}):null,(0,X.jsx)(m,{variant:`default`,onClick:()=>void e.close(`/admin/servers`),children:`Back to servers`})]})]})});if(t.status===`missing`)return(0,X.jsx)(Q,{title:`Server detail`,utility:t.serverId,icon:(0,X.jsx)(he,{size:17}),children:(0,X.jsxs)(O,{gap:`sm`,children:[(0,X.jsx)(k,{order:3,children:`Server target not found`}),(0,X.jsxs)(d,{c:`dimmed`,children:[t.serverId,` is no longer available. It may have been renamed or removed. Return to the list, refresh, and open the current target ID if a rename succeeded.`]}),(0,X.jsx)(r,{color:`yellow`,variant:`light`,children:`Old detail URLs are not aliases. Use the server list after a rename instead of bookmarking the previous ID.`}),(0,X.jsx)(m,{variant:`default`,onClick:()=>e.close(`/admin/servers`),children:`Back to servers`})]})});if(t.status===`failed`)return(0,X.jsx)(Q,{title:`Server detail`,utility:t.serverId,icon:(0,X.jsx)(he,{size:17}),children:(0,X.jsxs)(O,{gap:`sm`,children:[(0,X.jsx)(r,{color:`red`,role:`alert`,children:t.message}),(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:`Refresh the console or return to the server list, then retry. Preserve any non-secret request ID from the error when asking for support.`}),(0,X.jsx)(m,{variant:`default`,onClick:()=>e.close(`/admin/servers`),children:`Back to servers`})]})});let o=ct(t.fieldDraft,t.detail.server.transport.type),s=(t.detail.server.source===`mcpTemplates`?[]:t.detail.editContract.fieldGroups).map(e=>({...e,fields:e.fields.filter(e=>lt(e,o))})).filter(e=>e.fields.length>0),c=s.map(e=>({...e,fields:e.fields.filter(cn)})).filter(e=>e.fields.length>0),l=s.flatMap(e=>e.fields).filter(e=>!cn(e)),f=Yt(t),p=r=>{let i=r.fieldPath[0]===`transport`?r.fieldPath[1]:r.fieldPath[0],a=!!(i&&t.clearedTransportOverrides.includes(i)),o=[`timeout`,`connectionTimeout`,`requestTimeout`].includes(r.fieldPath[1]??``)?{...r,label:`${r.label} (ms)`}:r;return(0,X.jsxs)(O,{gap:4,children:[r.control===`secret`?(0,X.jsx)(Mt,{field:o,draft:t.secretDraft[$(r.fieldPath)],onChange:t=>e.changeSecret(r.fieldPath,t)}):(0,X.jsx)(At,{field:o,value:t.fieldDraft[$(r.fieldPath)],onChange:t=>e.changeField(r.fieldPath,t)}),r.overrideSupported&&i?(0,X.jsxs)(n,{justify:`space-between`,gap:`xs`,children:[(0,X.jsx)(u,{variant:`outline`,children:a?`will inherit`:r.source===`inherited`?`inherited`:r.source}),r.clearOverrideSupported?(0,X.jsx)(m,{size:`compact-xs`,variant:`subtle`,onClick:()=>e.changeTransportOverride(i,!a),children:a?`Restore override`:`Clear override`}):null]}):null]},$(r.fieldPath))};return(0,X.jsx)(Q,{title:`Edit server`,utility:t.detail.server.enabled?`enabled`:`disabled`,icon:(0,X.jsx)(U,{size:17}),children:(0,X.jsxs)(O,{gap:`sm`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{className:`eyebrow`,size:`xs`,children:`Configured Server Target`}),(0,X.jsxs)(n,{gap:`xs`,align:`center`,children:[(0,X.jsx)(k,{order:2,children:t.detail.server.id}),(0,X.jsx)(u,{color:t.detail.server.enabled?`teal`:`yellow`,variant:`light`,children:t.detail.server.enabled?`enabled`:`disabled`})]}),(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:Ue(t.detail.server)}),(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:`Draft changes stay local until preview.`})]}),(0,X.jsx)(m,{variant:`default`,onClick:()=>e.close(`/admin/servers`),children:`Back`})]}),c.map(e=>(0,X.jsx)(b,{className:`edit-section`,withBorder:!0,children:(0,X.jsxs)(O,{gap:`xs`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{fw:800,children:e.label}),(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:kt(e.id)})]}),(0,X.jsxs)(u,{variant:`outline`,children:[e.fields.length,` fields`]})]}),e.fields.map(p)]})},e.id)),t.detail.toolInventory?(0,X.jsx)(b,{className:`edit-section`,withBorder:!0,children:(0,X.jsx)(rn,{inventory:t.detail.toolInventory,draft:t.toolDraft,disabled:t.applyBusy,refreshBusy:t.toolInventoryBusy,refreshError:t.toolInventoryError,onToolChange:e.changeTool,onBulkChange:e.changeVisibleTools,onModelChange:e.changeToolModel,onRefresh:()=>e.refreshToolInventory?.()})}):null,l.length>0?(0,X.jsxs)(`details`,{ref:i,className:`advanced-settings`,children:[(0,X.jsx)(`summary`,{children:`Advanced settings`}),(0,X.jsxs)(O,{gap:`sm`,mt:`sm`,children:[(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:`Timeouts use milliseconds. Prefer Connection Timeout and Request Timeout over Deprecated Timeout.`}),l.map(p)]})]}):null,(0,X.jsx)(b,{className:`edit-section instruction-override-editor`,withBorder:!0,children:(0,X.jsxs)(O,{gap:`xs`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{fw:800,children:`Server instructions`}),(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:`Choose whether clients receive upstream instructions, an operator replacement, or no instructions.`})]}),(0,X.jsxs)(u,{variant:`outline`,children:[`Effective:`,` `,t.instructionOverride.mode===`replace`?`replacement`:t.instructionOverride.mode]})]}),(0,X.jsx)(A,{fullWidth:!0,"aria-label":`Instruction override outcome`,value:t.instructionOverride.mode,onChange:t=>e.changeInstructionOverride(t),data:[{value:`upstream`,label:`Use upstream`},{value:`replace`,label:`Replace`},{value:`suppress`,label:`Suppress`}]}),t.instructionOverride.mode===`replace`?(0,X.jsx)(j,{label:`Replacement instructions`,minRows:5,value:t.instructionOverride.value,onChange:t=>e.changeInstructionOverride(`replace`,t.currentTarget.value)}):(0,X.jsx)(d,{size:`sm`,className:`instruction-override-readonly`,children:t.instructionOverride.mode===`upstream`?`Upstream state is preserved. Effective instructions are resolved when the server connects.`:`Effective instructions are an intentional empty value.`})]})}),(0,X.jsxs)(n,{className:`draft-action-bar`,justify:`space-between`,gap:`sm`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(u,{color:t.dirty?`yellow`:`gray`,variant:t.dirty?`light`:`outline`,children:t.dirty?`Unsaved changes`:`No changes yet`}),(0,X.jsx)(d,{c:`dimmed`,size:`xs`,children:`Preview validates the draft without writing config. Leaving this page with unsaved changes asks for confirmation.`})]}),(0,X.jsxs)(n,{gap:`xs`,children:[(0,X.jsx)(m,{loading:t.previewBusy,disabled:!t.dirty||t.previewBusy||t.applyBusy||t.toolInventoryBusy,onClick:()=>void e.preview(`auto`),children:`Preview change`}),t.preview?(0,X.jsx)(m,{variant:`default`,loading:t.previewBusy,disabled:t.applyBusy||t.toolInventoryBusy,onClick:()=>void e.preview(`manual`),children:`Rerun connectivity`}):null]})]}),t.previewError?(0,X.jsx)(r,{color:`red`,role:`alert`,children:t.previewError}):null,t.applyError?(0,X.jsx)(r,{color:`red`,role:`alert`,children:t.applyError}):null,t.applyWarning?(0,X.jsx)(r,{color:`yellow`,role:`status`,children:t.applyWarning}):null,t.applySuccess?(0,X.jsx)(r,{color:`teal`,role:`status`,children:t.applySuccess}):null,t.preview?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(n,{justify:`flex-end`,align:`center`,children:[f.eligible?null:(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:f.reason}),(0,X.jsx)(m,{leftSection:(0,X.jsx)(W,{size:16}),loading:t.applyBusy,disabled:!f.eligible||t.applyBusy||t.toolInventoryBusy,onClick:()=>void e.apply(),children:`Apply changes`})]}),(0,X.jsx)(Pt,{preview:t.preview})]}):null]})})}function cn(e){return e.control===`secret`?!1:e.fieldPath[0]!==`transport`||[`type`,`command`,`args`,`url`].includes(e.fieldPath[1]??``)}function ln({state:e,onServerAction:t,onOpenServerDetail:r,onConfigureCustomServer:i}){let[a,s]=(0,Y.useState)(``),[c,l]=(0,Y.useState)(`all`),u=o(`(max-width: 620px)`,!1),f=(0,Y.useMemo)(()=>Re(e.configuredServers,a,c),[c,a,e.configuredServers]),h=e.configuredServers.length===0;return(0,X.jsxs)(Q,{title:`Server inventory`,utility:`${f.length} of ${e.configuredServers.length} targets`,icon:(0,X.jsx)(he,{size:17}),children:[h?null:(0,X.jsxs)(n,{align:`flex-end`,gap:`sm`,className:`server-filter-row`,children:[(0,X.jsx)(w,{className:`server-search`,leftSection:(0,X.jsx)(G,{size:16}),label:`Search servers`,type:`search`,value:a,onChange:e=>s(e.currentTarget.value)}),(0,X.jsx)(A,{"aria-label":`Server status filter`,value:c,onChange:e=>l(e),data:[{label:`All`,value:`all`},{label:`Enabled`,value:`enabled`},{label:`Disabled`,value:`disabled`}]}),(0,X.jsx)(m,{leftSection:(0,X.jsx)(K,{size:16}),onClick:()=>void i?.(),children:`Configure Custom Server`})]}),h?(0,X.jsxs)(O,{gap:`sm`,className:`actionable-empty-state`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{fw:800,children:`No servers configured`}),(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:`Configure a target to start routing MCP capabilities and observing runtime activity.`})]}),(0,X.jsx)(m,{leftSection:(0,X.jsx)(K,{size:16}),onClick:()=>void i?.(),children:`Configure server`})]}):f.length===0?(0,X.jsxs)(O,{gap:`sm`,className:`actionable-empty-state`,children:[(0,X.jsx)(it,{message:`No servers match the current search and status filter.`}),(0,X.jsx)(m,{variant:`default`,onClick:()=>{s(``),l(`all`)},children:`Clear filters`})]}):u?(0,X.jsx)(`div`,{className:`server-mobile-list`,children:f.map(n=>(0,X.jsx)(un,{server:n,mutation:e.serverMutations[n.id],onServerAction:t,onOpenServerDetail:r},`${n.source}:${n.id}`))}):(0,X.jsx)(`div`,{className:`server-table-view`,children:(0,X.jsx)(p.ScrollContainer,{minWidth:720,children:(0,X.jsxs)(p,{className:`admin-table`,verticalSpacing:`xs`,children:[(0,X.jsx)(p.Thead,{children:(0,X.jsxs)(p.Tr,{children:[(0,X.jsx)(p.Th,{children:`Server`}),(0,X.jsx)(p.Th,{children:`Status`}),(0,X.jsx)(p.Th,{children:`Transport`}),(0,X.jsx)(p.Th,{children:`Secrets`}),(0,X.jsx)(p.Th,{children:`Action`})]})}),(0,X.jsx)(p.Tbody,{children:f.map(n=>(0,X.jsx)(dn,{server:n,mutation:e.serverMutations[n.id],onServerAction:t,onOpenServerDetail:r},`${n.source}:${n.id}`))})]})})})]})}function un({server:e,mutation:t,onServerAction:r,onOpenServerDetail:i}){let a=e.enabled?`disable`:`enable`,o=t?.state===`busy`,s=We(e),l=Ke(e,a),f=!Ge(e)||!l.available;return(0,X.jsxs)(`article`,{className:`server-mobile-card${t?` server-action-${t.state}`:``}`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,wrap:`nowrap`,children:[(0,X.jsxs)(`div`,{className:`server-mobile-identity`,children:[(0,X.jsxs)(n,{gap:`xs`,children:[(0,X.jsx)(d,{fw:700,children:e.id}),(0,X.jsx)(u,{size:`xs`,variant:`outline`,children:e.source===`mcpTemplates`?`Template`:`Static`})]}),s.length>0?(0,X.jsx)(d,{size:`xs`,c:`dimmed`,children:s.join(` / `)}):null]}),(0,X.jsx)(u,{color:e.enabled?`teal`:`yellow`,variant:`light`,children:e.enabled?`enabled`:`disabled`})]}),(0,X.jsxs)(`dl`,{className:`server-mobile-facts`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`dt`,{children:`Transport`}),(0,X.jsx)(`dd`,{children:Ue(e)})]}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`dt`,{children:`Secrets`}),(0,X.jsx)(`dd`,{children:Qe(e)})]})]}),t?.message?(0,X.jsx)(d,{size:`xs`,c:t.state===`failed`?`red`:`dimmed`,children:t.message}):null,(0,X.jsxs)(n,{gap:`sm`,justify:`space-between`,wrap:`nowrap`,className:`server-mobile-actions`,children:[(0,X.jsx)(g,{label:`Edit ${e.id}`,children:(0,X.jsx)(c,{"aria-label":`Edit ${e.source===`mcpTemplates`?`template`:`static`} ${e.id} server`,size:`lg`,variant:`default`,onClick:()=>void i?.({source:e.source,id:e.id}),children:(0,X.jsx)(U,{size:16})})}),e.source===`mcpServers`?(0,X.jsx)(fn,{server:e,busy:o,action:a,actionLabel:l.label,disabled:o||f,onChange:()=>void r?.(e.id,a)}):null]})]})}function dn({server:e,mutation:t,onServerAction:r,onOpenServerDetail:i}){let a=e.enabled?`disable`:`enable`,o=t?.state===`busy`,s=We(e),l=Ke(e,a),f=!Ge(e)||!l.available;return(0,X.jsxs)(p.Tr,{className:t?`server-action-${t.state}`:void 0,children:[(0,X.jsxs)(p.Td,{children:[(0,X.jsxs)(n,{gap:`xs`,children:[(0,X.jsx)(d,{fw:700,children:e.id}),(0,X.jsx)(u,{size:`xs`,variant:`outline`,children:e.source===`mcpTemplates`?`Template`:`Static`})]}),s.length>0?(0,X.jsx)(d,{size:`xs`,c:`dimmed`,children:s.join(` / `)}):null,t?.message?(0,X.jsx)(d,{size:`xs`,c:t.state===`failed`?`red`:`dimmed`,children:t.message}):null]}),(0,X.jsx)(p.Td,{children:(0,X.jsx)(u,{color:e.enabled?`teal`:`yellow`,variant:`light`,children:e.enabled?`enabled`:`disabled`})}),(0,X.jsx)(p.Td,{children:Ue(e)}),(0,X.jsx)(p.Td,{children:Qe(e)}),(0,X.jsx)(p.Td,{children:(0,X.jsxs)(n,{gap:`sm`,wrap:`nowrap`,justify:`flex-end`,children:[(0,X.jsx)(g,{label:`Edit ${e.id}`,children:(0,X.jsx)(c,{"aria-label":`Edit ${e.source===`mcpTemplates`?`template`:`static`} ${e.id} server`,size:`lg`,variant:`default`,onClick:()=>void i?.({source:e.source,id:e.id}),children:(0,X.jsx)(U,{size:16})})}),e.source===`mcpServers`?(0,X.jsx)(fn,{server:e,busy:o,action:a,actionLabel:l.label,disabled:o||f,onChange:()=>void r?.(e.id,a)}):null]})})]})}function fn({server:e,busy:t,action:r,actionLabel:i,disabled:a,onChange:o}){return(0,X.jsxs)(n,{gap:7,wrap:`nowrap`,className:`server-state-control`,children:[t?(0,X.jsx)(x,{"aria-label":`Updating ${e.id}`,size:14}):null,(0,X.jsx)(T,{"aria-label":i,checked:e.enabled,color:`teal`,disabled:a,onChange:o,styles:{input:{cursor:`pointer`,zIndex:1}}}),(0,X.jsx)(d,{className:`server-state-label`,size:`xs`,fw:700,children:r===`disable`?`Enabled`:`Disabled`})]})}function pn({facts:e,onCopyText:t}){return(0,X.jsx)(Q,{title:`Recent audit facts`,utility:`redacted`,icon:(0,X.jsx)(le,{size:17}),children:e.length===0?(0,X.jsx)(it,{message:`No recent admin audit facts.`}):(0,X.jsx)(O,{gap:`xs`,children:e.map(e=>(0,X.jsx)(Z,{label:e.operationName,value:e.result,meta:e.target?.id??e.operationId??`-`,description:e.timestamp,copyLabel:e.request?.requestId?`requestId`:void 0,copyValue:e.request?.requestId,onCopyText:t},e.operationId??`${e.operationName}-${e.timestamp}`))})})}function mn({model:e,navigate:t}){let{state:r,configuredServers:i}=e,a=(r.status?.audit.facts??[]).filter(e=>e.result===`failed`).length,o=(r.status?.oauth.services??[]).filter(Ve).length,s=Be(r.configuredServers),[c,l]=(0,Y.useState)(null),u=r.status?.runtime;async function f(){await i.create.open()}async function p(e,t){try{await i.copy(e,t),l(`${rt(e)} copied.`)}catch{l(`Could not copy ${rt(e)}. Select the value manually.`)}}return(0,X.jsxs)(`section`,{"aria-labelledby":`runtime-operations-title`,className:`operations-workspace`,children:[(0,X.jsx)(k,{id:`runtime-operations-title`,order:2,className:`sr-only`,children:`Runtime operations`}),(0,X.jsx)(_n,{title:`Overview`,description:`Runtime summaries for ${r.session?.account.username??`operator`} · updated ${r.lastUpdatedAt??`never`}`}),(0,X.jsxs)(`div`,{className:`runtime-status-strip`,role:`status`,"aria-label":`Runtime status and freshness`,children:[(0,X.jsxs)(n,{gap:`xs`,wrap:`nowrap`,className:`runtime-status-main`,children:[(0,X.jsx)(`span`,{className:`runtime-live-dot`}),(0,X.jsx)(d,{fw:800,size:`sm`,children:`Runtime online`}),(0,X.jsx)(d,{c:`dimmed`,size:`sm`,className:`truncate`,children:u?.externalUrl??`Local runtime`})]}),(0,X.jsxs)(n,{gap:`lg`,wrap:`nowrap`,className:`runtime-status-facts`,children:[(0,X.jsxs)(d,{size:`xs`,c:`dimmed`,children:[`Version `,(0,X.jsx)(`strong`,{children:u?.runtimeVersion??`unavailable`})]}),(0,X.jsxs)(d,{size:`xs`,c:`dimmed`,children:[`Updated `,(0,X.jsx)(`strong`,{children:r.lastUpdatedAt??`never`})]})]})]}),(0,X.jsxs)(h,{cols:{base:2,sm:4},spacing:`sm`,className:`summary-grid`,children:[(0,X.jsx)(yn,{label:`Enabled servers`,value:ze(r.configuredServers),tone:`good`,icon:`01`,href:`/admin/servers`,onNavigate:()=>t(`servers`)}),(0,X.jsx)(yn,{label:`Disabled servers`,value:s,tone:`warn`,icon:`02`,href:`/admin/servers`,onNavigate:()=>t(`servers`)}),(0,X.jsx)(yn,{label:`OAuth attention`,value:o,tone:o>0?`warn`:`good`,icon:`03`,href:`/admin/oauth`,onNavigate:()=>t(`oauth`)}),(0,X.jsx)(yn,{label:`Failed audits`,value:a,tone:a>0?`bad`:`good`,icon:`04`,href:`/admin/audit`,onNavigate:()=>t(`audit`)})]}),(0,X.jsxs)(`div`,{className:`dashboard-grid`,children:[(0,X.jsxs)(`section`,{className:`attention-panel`,"aria-labelledby":`attention-title`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,mb:`sm`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{className:`eyebrow`,size:`xs`,children:`Triage`}),(0,X.jsx)(k,{id:`attention-title`,order:3,children:`Needs attention`})]}),(0,X.jsx)(m,{leftSection:(0,X.jsx)(K,{size:16}),onClick:()=>void f(),children:`Configure server`})]}),(0,X.jsxs)(O,{gap:0,className:`attention-list`,children:[s>0?(0,X.jsx)(vn,{icon:(0,X.jsx)(se,{size:17}),label:`${s} disabled ${s===1?`server`:`servers`}`,detail:`Review availability before enabling a target.`,href:`/admin/servers`,onNavigate:()=>t(`servers`)}):null,o>0?(0,X.jsx)(vn,{icon:(0,X.jsx)(ve,{size:17}),label:`${o} OAuth ${o===1?`service needs`:`services need`} action`,detail:`Authorization or restart is required.`,href:`/admin/oauth`,onNavigate:()=>t(`oauth`)}):null,a>0?(0,X.jsx)(vn,{icon:(0,X.jsx)(le,{size:17}),label:`${a} failed ${a===1?`operation`:`operations`}`,detail:`Inspect recent redacted audit facts.`,href:`/admin/audit`,onNavigate:()=>t(`audit`)}):null,s===0&&o===0&&a===0?(0,X.jsxs)(`div`,{className:`attention-clear`,children:[(0,X.jsx)(oe,{size:18}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{fw:800,children:`No action required`}),(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:`Configured servers and runtime services report a clear state.`})]})]}):null]})]}),(0,X.jsx)(Q,{title:`Runtime identity`,utility:`current target`,icon:(0,X.jsx)(`span`,{className:`runtime-live-dot`}),children:u?(0,X.jsxs)(h,{cols:1,spacing:`sm`,className:`runtime-identity-grid`,children:[(0,X.jsx)(Z,{label:`Version`,value:u.runtimeVersion}),(0,X.jsx)(Z,{label:`External URL`,value:u.externalUrl??`-`,copyLabel:`externalUrl`,onCopyText:p,wrapValue:!0}),(0,X.jsx)(Z,{label:`Runtime scope`,value:u.runtimeScopeId,copyLabel:`runtimeScopeId`,onCopyText:p,wrapValue:!0})]}):(0,X.jsx)(d,{c:`dimmed`,children:`Runtime status has not loaded.`})})]}),(0,X.jsx)(bn,{message:c})]})}function hn({model:e}){let{state:t,configuredServers:n}=e,r=n.create.state.status!==`idle`,i=n.edit.state.status!==`list`;return(0,X.jsxs)(`section`,{"aria-labelledby":`servers-workspace-title`,className:`operations-workspace`,children:[(0,X.jsx)(_n,{title:`Configured servers`,titleId:`servers-workspace-title`,description:`${t.configuredServers.length} configured targets · updated ${t.lastUpdatedAt??`never`}`}),(0,X.jsx)(`div`,{className:`inventory-column server-browse-workspace`,hidden:r||i,children:(0,X.jsx)(ln,{state:t,onServerAction:n.mutate,onOpenServerDetail:n.edit.open,onConfigureCustomServer:n.create.open})}),r||i?(0,X.jsx)(`div`,{className:`server-task-workspace`,children:r?(0,X.jsx)(Ft,{model:n.create}):(0,X.jsx)(sn,{model:n.edit})}):null]})}function gn({model:e}){let{state:t,configuredServers:n}=e,[r,i]=(0,Y.useState)(null);async function a(e,t){try{await n.copy(e,t),i(`${rt(e)} copied.`)}catch{i(`Could not copy ${rt(e)}. Select the value manually.`)}}return(0,X.jsxs)(`section`,{"aria-labelledby":`audit-workspace-title`,className:`operations-workspace`,children:[(0,X.jsx)(_n,{title:`Audit trail`,titleId:`audit-workspace-title`,description:`Recent redacted Admin Operations · updated ${t.lastUpdatedAt??`never`}`}),(0,X.jsx)(pn,{facts:t.status?.audit.facts??[],onCopyText:a}),(0,X.jsx)(bn,{message:r})]})}function _n({title:e,titleId:t,description:r}){return(0,X.jsx)(n,{justify:`space-between`,align:`flex-start`,className:`workspace-heading`,children:(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{className:`eyebrow`,size:`xs`,children:`Operator workspace / live`}),(0,X.jsx)(k,{id:t,order:2,children:e}),(0,X.jsx)(d,{c:`dimmed`,size:`sm`,children:r})]})})}function vn({icon:e,label:t,detail:n,href:r,onNavigate:i}){return(0,X.jsxs)(`a`,{className:`attention-row`,href:r,onClick:e=>{xn(e)&&(e.preventDefault(),i())},children:[(0,X.jsx)(`span`,{className:`attention-icon`,children:e}),(0,X.jsxs)(`span`,{className:`attention-copy`,children:[(0,X.jsx)(d,{component:`span`,fw:800,size:`sm`,children:t}),(0,X.jsx)(d,{component:`span`,c:`dimmed`,size:`xs`,children:n})]}),(0,X.jsx)(B,{size:16})]})}function yn({label:e,value:t,tone:r,icon:i,href:a,onNavigate:o}){return(0,X.jsx)(b,{component:`a`,href:a,className:`summary-counter summary-link summary-${r}`,withBorder:!0,onClick:e=>{xn(e)&&(e.preventDefault(),o())},children:(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,wrap:`nowrap`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{size:`xs`,c:`dimmed`,fw:800,tt:`uppercase`,children:e}),(0,X.jsx)(d,{className:`summary-value`,children:t})]}),(0,X.jsxs)(O,{gap:4,align:`flex-end`,children:[(0,X.jsx)(d,{className:`summary-index`,children:i}),(0,X.jsx)(B,{size:15,"aria-hidden":`true`})]})]})})}function bn({message:e}){return(0,X.jsx)(`div`,{"aria-live":`polite`,children:e?(0,X.jsx)(r,{color:e.startsWith(`Could not`)?`red`:`teal`,mt:`sm`,children:e}):null})}function xn(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}var Sn=`modulepreload`,Cn=function(e){return`/admin/`+e},wn={},Tn=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,new URL(`../../../src/node/plugins/importAnalysisBuild.ts`,import.meta.url)).href}r=o(t.map(t=>{if(t=Cn(t,n),t=s(t),t in wn)return;wn[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Sn,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},En=(0,Y.lazy)(()=>Tn(()=>import(`./admin-AboutRuntimeWorkspace-DH2QC2nJ.js`).then(e=>({default:e.AboutRuntimeWorkspace})),__vite__mapDeps([0,1,2,3,4]))),Dn=(0,Y.lazy)(()=>Tn(()=>import(`./admin-BackendLogsWorkspace-BKavXT9B.js`).then(e=>({default:e.BackendLogsWorkspace})),__vite__mapDeps([5,1,2,3,4,6]))),On=(0,Y.lazy)(()=>Tn(()=>import(`./admin-InstructionTemplatesWorkspace-CvG4EPdZ.js`).then(e=>({default:e.InstructionTemplatesWorkspace})),__vite__mapDeps([7,2,1,3,4,6]))),kn=(0,Y.lazy)(()=>Tn(()=>import(`./admin-OAuthServicesWorkspace-BCGj2hP4.js`).then(e=>({default:e.OAuthServicesWorkspace})),__vite__mapDeps([8,2,1,3,4,6]))),An=(0,Y.lazy)(()=>Tn(()=>import(`./admin-PresetAuthoringWorkspace-BboJVBFl.js`).then(e=>({default:e.PresetAuthoringWorkspace})),__vite__mapDeps([9,2,1,3,4,6])));function jn({session:e}){let{state:t,loginBusy:r,navigation:i}=e,a=i.route,[o,s]=(0,Y.useState)(!1);if(t.view!==`console`)return(0,X.jsxs)(In,{state:t,children:[t.view===`setupRequired`?(0,X.jsx)(Rn,{}):null,t.view===`loading`||t.view===`login`?(0,X.jsx)(zn,{loading:t.view===`loading`||r,onLogin:e.login}):null]});return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`a`,{className:`skip-link`,href:`#admin-main`,children:`Skip to main content`}),(0,X.jsxs)(M,{className:`admin-app-shell`,header:{height:66},navbar:{width:232,breakpoint:`md`,collapsed:{mobile:!o}},padding:0,children:[(0,X.jsx)(M.Header,{"aria-label":`Admin Console`,className:`admin-app-header`,children:(0,X.jsxs)(n,{h:`100%`,px:`lg`,justify:`space-between`,wrap:`nowrap`,className:`command-bar`,children:[(0,X.jsxs)(n,{gap:`sm`,wrap:`nowrap`,children:[(0,X.jsx)(N,{"aria-label":o?`Close operations navigation`:`Open operations navigation`,className:`mobile-navigation-toggle`,color:`var(--admin-ink)`,opened:o,size:`sm`,onClick:()=>s(e=>!e)}),(0,X.jsx)(`div`,{className:`brand-mark`,"aria-hidden":`true`,children:`1`}),(0,X.jsxs)(`div`,{className:`command-brand-copy`,children:[(0,X.jsx)(d,{className:`eyebrow command-eyebrow`,size:`xs`,children:`1MCP control plane`}),(0,X.jsx)(k,{order:1,size:`h4`,children:`Admin Console`})]})]}),(0,X.jsxs)(n,{gap:`xs`,wrap:`nowrap`,className:`global-actions`,children:[(0,X.jsxs)(`div`,{className:`runtime-live`,"aria-label":`Runtime online`,children:[(0,X.jsx)(`span`,{className:`runtime-live-dot`}),(0,X.jsx)(d,{size:`xs`,fw:800,children:`Runtime online`})]}),(0,X.jsx)(u,{className:`global-view-badge`,variant:`light`,color:nt(t),children:tt(t)}),(0,X.jsx)(g,{label:`Refresh runtime data`,children:(0,X.jsx)(c,{"aria-label":`Refresh runtime data`,color:`gray`,size:`lg`,variant:`subtle`,onClick:()=>void e.refresh(),children:(0,X.jsx)(ce,{size:17})})}),(0,X.jsx)(Ln,{}),(0,X.jsxs)(`div`,{className:`operator-identity`,title:t.session?.account.role??`Admin session`,children:[(0,X.jsx)(me,{size:16}),(0,X.jsx)(d,{className:`operator-name`,fw:700,size:`sm`,children:t.session?.account.username??`Operator`})]}),(0,X.jsx)(g,{label:`Log out`,children:(0,X.jsx)(c,{"aria-label":`Log out`,color:`red`,size:`lg`,variant:`subtle`,onClick:()=>void e.logout(),children:(0,X.jsx)(re,{size:17})})})]})]})}),(0,X.jsxs)(M.Navbar,{className:`admin-app-navbar`,"aria-label":`Operations navigation`,children:[(0,X.jsxs)(O,{gap:`lg`,className:`nav-stack`,children:[(0,X.jsxs)(O,{gap:4,children:[(0,X.jsx)(d,{className:`nav-section-label`,children:`Manage`}),(0,X.jsx)(Pn,{icon:(0,X.jsx)(L,{size:17}),label:`Overview`,href:`/admin`,active:a===`dashboard`,onNavigate:()=>l(`dashboard`)}),(0,X.jsx)(Pn,{icon:(0,X.jsx)(z,{size:17}),label:`Server inventory`,href:`/admin/servers`,active:a===`servers`,onNavigate:()=>l(`servers`)}),(0,X.jsx)(Pn,{icon:(0,X.jsx)(pe,{size:17}),label:`Presets`,href:`/admin/presets`,active:a===`presets`,onNavigate:()=>l(`presets`)}),(0,X.jsx)(Pn,{icon:(0,X.jsx)(_e,{size:17}),label:`Instructions`,href:`/admin/instructions`,active:a===`instructions`,onNavigate:()=>l(`instructions`)})]}),(0,X.jsxs)(O,{gap:4,children:[(0,X.jsx)(d,{className:`nav-section-label`,children:`Observe`}),(0,X.jsx)(Pn,{icon:(0,X.jsx)(W,{size:17}),label:`OAuth services`,href:`/admin/oauth`,active:a===`oauth`,onNavigate:()=>l(`oauth`)}),(0,X.jsx)(Pn,{icon:(0,X.jsx)(R,{size:17}),label:`Audit trail`,href:`/admin/audit`,active:a===`audit`,onNavigate:()=>l(`audit`)}),(0,X.jsx)(Pn,{icon:(0,X.jsx)(ue,{size:17}),label:`Backend logs`,href:`/admin/logs`,active:a===`logs`,onNavigate:()=>l(`logs`)})]}),(0,X.jsxs)(O,{gap:4,children:[(0,X.jsx)(d,{className:`nav-section-label`,children:`System`}),(0,X.jsx)(Pn,{icon:(0,X.jsx)(H,{size:17}),label:`About`,href:`/admin/about`,active:a===`about`,onNavigate:()=>l(`about`)})]})]}),(0,X.jsxs)(O,{gap:`xs`,className:`nav-runtime-card`,children:[(0,X.jsx)(d,{className:`nav-section-label`,children:`Runtime target`}),(0,X.jsx)(d,{fw:800,className:`truncate`,children:$e(t.status?.runtime)}),(0,X.jsx)(d,{size:`xs`,c:`dimmed`,className:`truncate`,children:et(t.status?.runtime)}),(0,X.jsx)(d,{size:`xs`,className:`nav-scope truncate`,children:t.status?.runtime.runtimeScopeId??`scope unavailable`})]})]}),(0,X.jsx)(M.Main,{id:`admin-main`,className:`admin-shell-main`,children:(0,X.jsxs)(O,{gap:`md`,className:`admin-console`,children:[(0,X.jsx)(Bn,{state:t}),(0,X.jsx)(Y.Suspense,{fallback:(0,X.jsx)(Mn,{}),children:(0,X.jsx)(Nn,{session:e})})]})})]})]});function l(e){i.navigate(e),s(!1)}}function Mn(){return(0,X.jsx)(b,{className:`operations-panel`,role:`status`,withBorder:!0,children:(0,X.jsx)(d,{c:`dimmed`,children:`Loading workspace...`})})}function Nn({session:e}){let{state:t,navigation:n,configuredServers:r,presets:i}=e,a={state:t,logout:e.logout,refresh:e.refresh,configuredServers:r};switch(n.route){case`servers`:return(0,X.jsx)(hn,{model:a});case`oauth`:return(0,X.jsx)(kn,{model:a,oauth:e.oauth,configureServer:a.configuredServers.create.open});case`audit`:return(0,X.jsx)(gn,{model:a});case`presets`:return(0,X.jsx)(An,{model:{...i,targets:i.targets.length>0?i.targets:t.configuredServers.map(e=>({name:e.id,tags:e.tags,enabled:e.enabled}))},runtimeScopeId:t.status?.runtime.runtimeScopeId});case`instructions`:return(0,X.jsx)(On,{model:e.instructions,runtimeScopeId:t.status?.runtime.runtimeScopeId});case`logs`:return(0,X.jsx)(Dn,{logs:e.logs,configureServer:a.configuredServers.create.open});case`about`:return(0,X.jsx)(En,{state:t});case`dashboard`:return(0,X.jsx)(mn,{model:a,navigate:n.navigate})}}function Pn({icon:e,label:t,href:n,active:r=!1,onNavigate:i}){return(0,X.jsxs)(`a`,{href:n,"aria-current":r?`page`:void 0,className:`nav-item${r?` nav-item-active`:``}`,onClick:e=>{Fn(e)&&(e.preventDefault(),i?.())},children:[e,(0,X.jsx)(d,{size:`sm`,fw:700,children:t})]})}function Fn(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function In({state:e,children:t}){return(0,X.jsxs)(`main`,{className:`admin-auth-shell`,"aria-label":`Admin authentication`,children:[(0,X.jsx)(`div`,{className:`auth-theme-control`,children:(0,X.jsx)(Ln,{})}),(0,X.jsxs)(O,{gap:`md`,className:`admin-auth-card`,children:[(0,X.jsx)(Bn,{state:e}),t]})]})}function Ln(){let{colorScheme:e,setColorScheme:t}=l(),n=[{value:`auto`,label:`System`,icon:(0,X.jsx)(ye,{size:16})},{value:`light`,label:`Light`,icon:(0,X.jsx)(ie,{size:16})},{value:`dark`,label:`Dark`,icon:(0,X.jsx)(ge,{size:16})}];return(0,X.jsxs)(v,{position:`bottom-end`,shadow:`md`,width:170,children:[(0,X.jsx)(v.Target,{children:(0,X.jsx)(c,{"aria-label":`Choose color theme`,color:`gray`,size:`lg`,title:`Color theme`,variant:`subtle`,children:(0,X.jsx)(ne,{size:17})})}),(0,X.jsxs)(v.Dropdown,{children:[(0,X.jsx)(v.Label,{children:`Color theme`}),n.map(n=>(0,X.jsx)(v.Item,{"aria-label":`${n.label} theme${e===n.value?`, selected`:``}`,leftSection:n.icon,rightSection:e===n.value?(0,X.jsx)(ae,{size:14}):null,onClick:()=>t(n.value),children:n.label},n.value))]})]})}function Rn(){return(0,X.jsx)(b,{component:`section`,className:`operations-panel`,"aria-labelledby":`setup-required-title`,withBorder:!0,children:(0,X.jsxs)(O,{gap:`sm`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{className:`eyebrow`,size:`xs`,children:`Runtime gate`}),(0,X.jsx)(k,{id:`setup-required-title`,order:2,children:`Setup required`})]}),(0,X.jsx)(u,{color:`yellow`,variant:`filled`,children:`No Admin Account`})]}),(0,X.jsx)(d,{c:`dimmed`,children:`Run CLI bootstrap from the runtime host, then refresh this page. The browser setup page does not create admin accounts.`}),(0,X.jsx)(P,{block:!0,children:`1mcp admin bootstrap --username operator --password 'use-a-long-random-password'`})]})})}function zn({loading:e,onLogin:t}){let[r,i]=(0,Y.useState)(``),[a,o]=(0,Y.useState)(``),[s,c]=(0,Y.useState)(!1);return(0,X.jsx)(b,{component:`section`,className:`login-panel`,"aria-labelledby":`login-title`,withBorder:!0,children:(0,X.jsx)(`form`,{onSubmit:n=>{n.preventDefault(),e||t?.({username:r,password:a})},children:(0,X.jsxs)(O,{gap:`sm`,children:[(0,X.jsxs)(n,{justify:`space-between`,align:`flex-start`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(d,{className:`eyebrow`,size:`xs`,children:`Admin Session`}),(0,X.jsx)(k,{id:`login-title`,order:2,children:`Operator login`})]}),(0,X.jsx)(u,{variant:`light`,children:e?`Checking session`:`Login required`})]}),(0,X.jsx)(w,{label:`Username`,autoComplete:`username`,disabled:e,value:r,onChange:e=>i(e.currentTarget.value),required:!0}),(0,X.jsx)(E,{label:`Password`,autoComplete:`current-password`,disabled:e,value:a,onChange:e=>o(e.currentTarget.value),visible:s,onVisibilityChange:()=>c(e=>!e),visibilityToggleButtonProps:{"aria-label":s?`Hide password`:`Show password`,"aria-pressed":s,tabIndex:0,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),c(e=>!e))}},required:!0}),(0,X.jsx)(m,{type:`submit`,loading:e,disabled:e,children:e?`Checking`:`Log in`})]})})})}function Bn({state:e}){let t=e.banner??(e.error?{kind:`error`,message:e.error}:null);return t?(0,X.jsx)(r,{color:t.kind===`error`?`red`:`teal`,role:t.kind===`error`?`alert`:`status`,children:t.message}):null}var Vn=e(F(),1),Hn=(0,Y.createContext)(null);function Un({children:e}){let[r,i]=(0,Y.useState)(null),a=(0,Y.useRef)(null),o=(0,Y.useRef)([]),s=(0,Y.useRef)(new WeakSet),c=(0,Y.useRef)(!1),l=(0,Y.useRef)(null),u=(0,Y.useRef)(null),p=(0,Y.useCallback)(e=>new Promise(t=>{let n={...e,resolve:t};if(a.current){o.current.push(n);return}u.current=document.activeElement instanceof HTMLElement?document.activeElement:null,a.current=n,(0,Vn.flushSync)(()=>i(n))}),[]),h=(0,Y.useCallback)(e=>{let t=a.current;if(!t||c.current||s.current.has(t))return;c.current=!0,s.current.add(t),t.resolve(e);let n=o.current.shift()??null;a.current=n,(0,Vn.flushSync)(()=>i(n)),window.setTimeout(()=>{c.current=!1,n?l.current?.focus():u.current?.focus()},0)},[]),g=(0,Y.useMemo)(()=>p,[p]);return(0,Y.useEffect)(()=>{r&&l.current?.focus()},[r]),(0,X.jsxs)(Hn.Provider,{value:g,children:[e,r?(0,X.jsx)(`div`,{className:`confirmation-overlay`,role:`presentation`,children:(0,X.jsx)(t,{active:!0,children:(0,X.jsx)(b,{className:`confirmation-dialog`,withBorder:!0,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`admin-confirmation-title`,"aria-describedby":`admin-confirmation-message`,onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),h(!1))},children:(0,X.jsxs)(O,{gap:`md`,children:[(0,X.jsx)(k,{id:`admin-confirmation-title`,order:3,children:r.title}),(0,X.jsx)(d,{id:`admin-confirmation-message`,children:r.message}),r.details?.length?(0,X.jsx)(f,{spacing:`xs`,size:`sm`,children:r.details.map(e=>(0,X.jsxs)(f.Item,{children:[(0,X.jsxs)(d,{span:!0,fw:700,children:[e.label,`:`,` `]}),(0,X.jsx)(d,{span:!0,children:e.value})]},`${e.label}:${e.value}`))}):null,(0,X.jsxs)(n,{justify:`flex-end`,children:[(0,X.jsx)(m,{ref:l,variant:`default`,onClick:()=>h(!1),children:r.cancelLabel??`Cancel`}),(0,X.jsx)(m,{color:r.tone===`danger`?`red`:void 0,onClick:()=>h(!0),children:r.confirmLabel??`Confirm`})]})]})})})}):null]})}function Wn(){let e=(0,Y.useContext)(Hn);if(!e)throw Error(`useConfirmationDialog must be used within ConfirmationDialogProvider`);return e}var Gn={identity:``,variants:{initialization:``,cli:``}};function Kn({api:e,active:t,csrfToken:n,confirm:r,onUnauthenticated:i}){let[a,o]=(0,Y.useState)([]),[s,c]=(0,Y.useState)(),[l,u]=(0,Y.useState)(!1),[d,f]=(0,Y.useState)(``),[p,m]=(0,Y.useState)(!1),[h,g]=(0,Y.useState)({}),[_,v]=(0,Y.useState)(),[y,b]=(0,Y.useState)(Gn),[x,S]=(0,Y.useState)(`initialize`),[C,w]=(0,Y.useState)({mode:`all`}),[T,E]=(0,Y.useState)(``),[D,O]=(0,Y.useState)(null),[k,A]=(0,Y.useState)(null),[j,M]=(0,Y.useState)(!1),[N,P]=(0,Y.useState)(!1),[ee,F]=(0,Y.useState)(null),[I,te]=(0,Y.useState)(null),L=(0,Y.useRef)(!1),R=(0,Y.useRef)(0),z=(0,Y.useRef)(n),B=(0,Y.useRef)(),V=(0,Y.useCallback)((e,t)=>{if(e instanceof q&&e.failure.kind===`unauthenticated`){L.current=!1,i?.(e.failure.adminStatus);return}F(Jn(e,t))},[i]),H=(0,Y.useMemo)(()=>a.find(e=>e.identity===_),[a,_]),U=H?H.identity!==y.identity||JSON.stringify(H.variants)!==JSON.stringify(y.variants):!!(y.identity||y.variants.initialization||y.variants.cli),ne=(0,Y.useCallback)(()=>{B.current=void 0,O(e=>(e&&M(!0),null)),A(null)},[]),re=(0,Y.useCallback)(async()=>{if(!n)return;let t=R.current,r=n;P(!0),F(null);try{let i=await e.listInstructionTemplates();if(t!==R.current||r!==n)return;o(i.templates),c(i.activeIdentity),u(i.selectionExplicit),f(i.configFingerprint),m(i.legacyImportAvailable),g(i.renderFailures),L.current=!0}catch(e){if(t!==R.current||r!==n)return;V(e,`Instruction templates could not be loaded.`)}finally{t===R.current&&r===n&&P(!1)}},[e,n,V]);(0,Y.useEffect)(()=>{z.current!==n&&(z.current=n,R.current+=1,L.current=!1),!n&&(o([]),v(void 0),b(Gn),O(null),A(null),P(!1))},[n]),(0,Y.useEffect)(()=>{t&&n&&!L.current&&re()},[t,n,re]);let W=(0,Y.useCallback)(e=>{v(e);let t=a.find(t=>t.identity===e);b(t?{identity:t.identity,variants:{...t.variants}}:Gn),O(null),A(null),M(!1),F(null)},[a]),G=(0,Y.useCallback)(async(e,t)=>{if(!n)return!1;let r=B.current?.signature===e?B.current:{signature:e,idempotencyKey:Ee(e,y.identity)};B.current=r,P(!0),F(null);try{let e=await t(r.idempotencyKey);return te(e.result.reload?.status===`failed`?e.result.reload.error?`Configuration was written, but runtime reload failed: ${e.result.reload.error}`:`Configuration was written, but runtime reload failed. Inspect runtime health before continuing.`:null),B.current=void 0,L.current=!1,await re(),!0}catch(e){return V(e,`Instruction template operation failed.`),!1}finally{P(!1)}},[n,y.identity,re,V]);return{items:a,activeIdentity:s,selectionExplicit:l,configFingerprint:d,legacyAvailable:p,renderFailures:h,selectedIdentity:_,draft:y,surface:x,selection:C,requestContext:T,preview:D,activationValidation:k,previewStale:j,dirty:U,busy:N,error:ee,reloadWarning:I,select:W,newDraft:()=>W(void 0),changeIdentity:e=>{b(t=>({...t,identity:e})),ne()},changeVariant:(e,t)=>{let n=e===`initialize`?`initialization`:`cli`;b(e=>({...e,variants:{...e.variants,[n]:t}})),ne()},changeSurface:e=>{S(e),ne()},changeSelection:e=>{w(e),ne()},changeRequestContext:e=>{E(e),ne()},load:re,async saveDraft(){if(!n||!y.identity.trim())return!1;let t=await G(`save:${_?`update`:`create`}:${d}:${JSON.stringify(y)}`,t=>e.saveInstructionTemplate({action:_?`update`:`create`,draft:y,expectedConfigFingerprint:d,csrfToken:n,idempotencyKey:t}));return t&&v(y.identity),t},async previewDraft(){if(!n||!y.identity)return;let t=R.current,r=n;P(!0),F(null);try{let i;T.trim()&&(i=qn(JSON.parse(T)));let a=await e.previewInstructionTemplate({identity:y.identity,surface:x,selection:C,...i?{requestContext:i}:{},csrfToken:n});if(t!==R.current||r!==n)return;O(a),M(!1)}catch(e){if(t!==R.current||r!==n)return;V(e,`Instruction template preview failed.`)}finally{t===R.current&&r===n&&P(!1)}},async validateDraft(){if(!n||!_||U)return;let t=R.current,r=n;P(!0),F(null);try{let i=await e.validateInstructionTemplate({identity:_,expectedConfigFingerprint:d,csrfToken:n});if(t!==R.current||r!==n)return;A(i)}catch(e){if(t!==R.current||r!==n)return;V(e,`Instruction template validation failed.`)}finally{t===R.current&&r===n&&P(!1)}},async activate(){!n||!k||k.identity!==y.identity||await G(`activate:${y.identity}:${k.expectedConfigFingerprint}:${k.previewFingerprint}`,t=>e.activateInstructionTemplate({identity:y.identity,expectedConfigFingerprint:k.expectedConfigFingerprint,previewFingerprint:k.previewFingerprint,csrfToken:n,idempotencyKey:t}))&&(O(null),A(null))},async clone(t){!n||!_||await G(`clone:${_}:${t}:${d}`,r=>e.cloneInstructionTemplate({sourceIdentity:_,identity:t,expectedConfigFingerprint:d,csrfToken:n,idempotencyKey:r}))},async importLegacy(t){n&&await G(`import:${t}:${d}`,r=>e.importLegacyInstructionTemplate({identity:t,expectedConfigFingerprint:d,csrfToken:n,idempotencyKey:r}))},async deleteSelected(){if(!(!n||!_||H?.protected))try{let t=await e.previewInstructionTemplateDelete({identity:_,expectedConfigFingerprint:d,csrfToken:n});if(!t.allowed){F(t.reason===`active_conflict`?`Activate another template before deleting this one.`:`This template cannot be deleted.`);return}if(!await r({title:`Delete ${t.identity}?`,message:`This permanently removes the managed template from the current Runtime Scope.`,confirmLabel:`Delete template`,tone:`danger`,details:[{label:`Template`,value:t.identity},{label:`Reason`,value:t.reason??`Template is inactive and not protected`}]}))return;await G(`delete:${_}:${t.expectedConfigFingerprint}:${t.previewFingerprint}`,r=>e.deleteInstructionTemplate({identity:_,expectedConfigFingerprint:t.expectedConfigFingerprint,previewFingerprint:t.previewFingerprint,csrfToken:n,idempotencyKey:r}))&&W(void 0)}catch(e){V(e,`Instruction template deletion could not be prepared.`)}}}}function qn(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Request context must include project, user, and environment objects.`);let t=e;for(let e of[`project`,`user`,`environment`]){let n=t[e];if(!n||typeof n!=`object`||Array.isArray(n))throw Error(`Request context must include project, user, and environment objects.`)}return t}function Jn(e,t){return e instanceof q?e.failure.message:e instanceof Error?e.message:t}function Yn(){return{view:`loading`,session:null,status:null,configuredServers:[],serverMutations:{},banner:null,error:null,lastUpdatedAt:null}}function Xn(e,t){switch(t.type){case`sessionLoaded`:return{...e,view:`console`,session:t.session,banner:null,error:null};case`sessionUnauthenticated`:return{...Yn(),view:t.adminStatus===`setupRequired`?`setupRequired`:`login`,session:null};case`refreshSucceeded`:return{...e,view:`console`,status:t.status,configuredServers:t.configuredServers,lastUpdatedAt:t.updatedAt,banner:e.banner?.kind===`error`?null:e.banner,error:null};case`refreshFailed`:case`loginFailed`:return{...e,error:t.message,banner:{kind:`error`,message:t.message}};case`logoutSucceeded`:return{...Yn(),view:`login`};case`mutationStarted`:return Zn(e,t.serverId,{state:`busy`,action:t.action});case`mutationSucceeded`:return Zn(e,t.serverId,{state:`succeeded`,action:t.action,message:`Server ${t.action} completed.`});case`mutationFailed`:return Zn(e,t.serverId,{state:`failed`,action:t.action,message:t.message});case`clearBanner`:return{...e,banner:null,error:null}}}function Zn(e,t,n){return{...e,serverMutations:{...e.serverMutations,[t]:n},banner:n.state===`failed`?{kind:`error`,message:n.message??``}:e.banner}}var Qn=5e3,$n=6e4;function er(e){return e===`visible`?Qn:$n}function tr(e){return e.view===`console`&&!!e.session?.csrfToken}var nr=5e3,rr=512*1024,ir={connection:`idle`,sources:[],selectedSourceId:null,entries:[],unread:{},cursors:{},selectionLoading:!1,selectionError:null};function ar(e){let[t,n]=(0,Y.useState)(ir),r=(0,Y.useRef)(t),i=(0,Y.useRef)([]),a=(0,Y.useRef)(e.onUnauthenticated),o=(0,Y.useRef)(0);(0,Y.useEffect)(()=>{r.current=t},[t]),(0,Y.useEffect)(()=>{a.current=e.onUnauthenticated},[e.onUnauthenticated]);let s=(0,Y.useCallback)(e=>{i.current=e.sources,n(t=>{let n=e.sources.some(e=>e.id===t.selectedSourceId)?t.selectedSourceId:e.sources[0]?.id??null;return{connection:`active`,sources:e.sources,selectedSourceId:n,entries:n?fr(e.entries.filter(e=>e.sourceId===n)):[],unread:dr(e,n),cursors:cr(e.entries),selectionLoading:!1,selectionError:null}})},[]),c=(0,Y.useCallback)(async t=>{let r=++o.current;n(e=>({...e,selectedSourceId:t,entries:[],unread:{...e.unread,[t]:0},selectionLoading:!0,selectionError:null}));try{let i=await e.api.getBackendLogSnapshot(t);if(o.current!==r)return;n(e=>{if(e.selectedSourceId!==t)return e;let n=i.entries.filter(e=>e.sourceId===t),r=e.entries.filter(e=>e.sequence>i.sequence);return{...e,entries:fr([...n,...r]),selectionLoading:!1,selectionError:null}})}catch(e){if(o.current!==r)return;if(e instanceof q&&e.failure.kind===`unauthenticated`){a.current();return}n(e=>e.selectedSourceId===t?{...e,selectionLoading:!1,selectionError:`Failed to load retained backend logs. Live entries will continue to appear.`}:e)}},[e.api]);(0,Y.useEffect)(()=>{if(!e.active||!e.authenticated){o.current+=1,i.current=[],n(ir);return}return n(e=>({...e,connection:`loading`})),e.api.openBackendLogStream({onSnapshot:s,onGap:s,onEntry:e=>{i.current.some(t=>t.id===e.sourceId)||(i.current=[...i.current,sr(e)]),n(t=>or(t,e))},onSources:e=>{i.current=e;let t=r.current,a=e.some(e=>e.id===t.selectedSourceId)?t.selectedSourceId:e[0]?.id??null;n(t=>lr(t,e,a)),a&&a!==t.selectedSourceId&&c(a)},onSourceUpdate:e=>{let t=r.current,a=e.removed?i.current.filter(t=>t.id!==e.sourceId):[...i.current.filter(t=>t.id!==e.sourceId),e.source].sort((e,t)=>e.id.localeCompare(t.id));i.current=a;let o=a.some(e=>e.id===t.selectedSourceId)?t.selectedSourceId:a[0]?.id??null;n(e=>lr(e,a,o)),o&&o!==t.selectedSourceId&&c(o)},onOpen:()=>n(e=>({...e,connection:e.sources.length?`active`:`loading`})),onError:()=>n(e=>({...e,connection:`reconnecting`}))})},[s,e.active,e.api,e.authenticated,c]);let l=(0,Y.useCallback)(e=>c(e),[c]);return{...t,select:l}}function or(e,t){let n=e.sources.some(e=>e.id===t.sourceId)?e.sources:[...e.sources,sr(t)];return e.selectedSourceId===null?{...e,connection:`active`,sources:n,selectedSourceId:t.sourceId,entries:[t],unread:{...e.unread,[t.sourceId]:0},cursors:{...e.cursors,[t.sourceId]:t.sequence},selectionLoading:!1,selectionError:null}:t.sourceId===e.selectedSourceId?{...e,connection:`active`,sources:n,entries:fr([...e.entries,t]),cursors:{...e.cursors,[t.sourceId]:t.sequence}}:{...e,connection:`active`,sources:n,unread:{...e.unread,[t.sourceId]:(e.unread[t.sourceId]??0)+1},cursors:{...e.cursors,[t.sourceId]:t.sequence}}}function sr(e){return{id:e.sourceId,canonicalName:e.canonicalName,displayName:e.displayName,kind:e.sourceKind,capture:`managed`,lifecycle:`active`}}function cr(e){let t={};for(let n of e)t[n.sourceId]=n.sequence;return t}function lr(e,t,n){let r=new Set(t.map(e=>e.id)),i=n!==e.selectedSourceId;return{...e,sources:t,selectedSourceId:n,entries:i?[]:e.entries,unread:ur(e.unread,r),cursors:ur(e.cursors,r),selectionLoading:i&&n!==null,selectionError:i?null:e.selectionError}}function ur(e,t){return Object.fromEntries(Object.entries(e).filter(([e])=>t.has(e)))}function dr(e,t){let n={};for(let r of e.entries)r.sourceId!==t&&(n[r.sourceId]=(n[r.sourceId]??0)+1);return n}function fr(e){let t=0,n=[];for(let r=e.length-1;r>=0&&n.length<nr;r--){let i=e[r];if(t+=i.content.length,t>rr&&n.length>0)break;n.push(i)}return n.reverse()}var pr={access_denied:`OAuth authorization was denied.`,missing_code:`The OAuth provider callback did not include an authorization code.`,callback_failed:`The runtime could not complete the OAuth provider callback.`,runtime_unavailable:`The OAuth runtime became unavailable during the callback.`};function mr(e){if(e instanceof q)return e.failure.message;throw e}function hr({api:e,documentRef:t=document,windowRef:n=window,nowLabel:r}){return(0,X.jsx)(Un,{children:(0,X.jsx)(gr,{api:e,documentRef:t,windowRef:n,nowLabel:r})})}function gr({api:e,documentRef:t,windowRef:n,nowLabel:r}){return(0,X.jsx)(jn,{session:_r({api:e,documentRef:t,windowRef:n,nowLabel:r,confirm:Wn()})})}function _r({api:e,documentRef:t,windowRef:n,nowLabel:r,confirm:i}){let[a,o]=(0,Y.useState)(Yn),[s,c]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(()=>yr(n.location?.pathname??`/admin`)),[d,f]=(0,Y.useState)(null),[p]=(0,Y.useState)(()=>{let e=xr(n.location?.search??``);return e&&n.history?.replaceState(null,``,`/admin/oauth`),e}),[m,h]=(0,Y.useState)(null),[g,_]=(0,Y.useState)([]),[v,y]=(0,Y.useState)([]),[b,x]=(0,Y.useState)(``),[S,C]=(0,Y.useState)(!1),w=(0,Y.useRef)(a),T=(0,Y.useRef)(null),E=(0,Y.useRef)(),D=(0,Y.useRef)(),O=(0,Y.useRef)(!1),k=(0,Y.useRef)(!1),A=(0,Y.useRef)(!1),j=(0,Y.useRef)(0),M=(0,Y.useCallback)(()=>r?.()??new Date().toLocaleTimeString(),[r]),N=(0,Y.useCallback)(e=>{let t=Xn(w.current,e);w.current=t,o(t)},[]);(0,Y.useEffect)(()=>{w.current=a},[a]);let P=(0,Y.useCallback)(()=>{T.current!==null&&(n.clearTimeout(T.current),T.current=null)},[n]),ee=(0,Y.useCallback)(()=>{j.current+=1,A.current=!1,f(null),h(null)},[]),F=(0,Y.useCallback)(e=>{P(),ee(),N({type:`sessionUnauthenticated`,adminStatus:e})},[P,N,ee]),I=(0,Y.useCallback)(e=>{let t=e instanceof q?e.failure:null;return t?.kind===`unauthenticated`?(F(t.adminStatus),!0):!1},[F]),te=(0,Y.useMemo)(()=>({pathname:()=>n.location?.pathname??`/admin`,push:e=>n.history?.pushState(null,``,e),replace:e=>n.history?.replaceState(null,``,e),confirm:i,subscribePopState:e=>(n.addEventListener?.(`popstate`,e),()=>n.removeEventListener?.(`popstate`,e))}),[i,n]),L=(0,Y.useCallback)(e=>{u(yr(e))},[]),R=Jt({api:e,session:a.session,browser:te,onUnauthenticated:F,onApplied:()=>E.current?.(),onPathCommitted:L}),z=wt({api:e,session:a.session,browser:te,onUnauthenticated:F,onCreated:()=>D.current?.(),onOpenCreated:R.open,onPathCommitted:L}),B=ar({api:e,active:l===`logs`,authenticated:!!a.session,onUnauthenticated:()=>F(`loginRequired`)}),V=Kn({api:e,active:l===`instructions`,csrfToken:a.session?.csrfToken,confirm:i,onUnauthenticated:F}),H=(0,Y.useCallback)(e=>w.current.session?.csrfToken===e,[]),U=(0,Y.useCallback)(async()=>{if(w.current.session){C(!0);try{let t=await e.listPresets();_(t.presets),y(t.targets??[]),x(t.revision)}finally{C(!1)}}},[e]);(0,Y.useEffect)(()=>{l===`presets`&&a.session&&U()},[U,l,a.session]);let ne=(0,Y.useCallback)(async(t,n)=>{let r=w.current.session?.csrfToken;if(!r)throw Error(`admin_session_required`);return e.previewPreset({draft:t,sourceName:n,csrfToken:r})},[e]),re=(0,Y.useCallback)(async t=>{if(O.current)return!1;O.current=!0;try{let n=w.current.session?.csrfToken;return!n||!await i({title:`${vr(t.action)} ${t.preview.draft.name}?`,message:`The preview must still match the current preset store when this change is saved.`,confirmLabel:`${vr(t.action)} preset`,details:[{label:`Preset`,value:t.preview.draft.name},{label:`Current matches`,value:String(t.preview.matchCount)},...t.preview.matchCount===0?[{label:`Attention`,value:`This preset currently matches no configured servers.`}]:[]]})?!1:(await e.mutatePreset({action:t.action,sourceName:t.sourceName,draft:t.preview.draft,revision:t.preview.revision,previewFingerprint:t.preview.previewFingerprint,confirmations:{previewConfirmed:t.preview.previewFingerprint,...t.preview.matchCount===0?{zeroMatchConfirmed:!0}:{}},csrfToken:n}),await U(),!0)}finally{O.current=!1}},[e,i,U]),W=(0,Y.useCallback)(async t=>{if(!k.current){k.current=!0;try{let n=w.current.session?.csrfToken;if(!n)return;let r=await e.previewPresetDelete({name:t,revision:b,csrfToken:n}),a=r.matches.filter(e=>e.matched).map(e=>e.name);if(!await i({title:`Delete ${t}?`,message:`This removes the preset from the current Runtime Scope.`,confirmLabel:`Delete preset`,tone:`danger`,details:[{label:`Preset`,value:t},{label:`Current matches`,value:a.join(`, `)||`none`},{label:`Consequence`,value:r.consequence}]}))return;await e.deletePreset({name:t,revision:b,previewFingerprint:r.previewFingerprint,csrfToken:n}),await U()}finally{k.current=!1}}},[e,i,U,b]),G=(0,Y.useCallback)(async e=>{let t=br(e);if(z.state.status!==`idle`){if(!await z.close(t))return;u(e);return}await R.close(t)&&u(e)},[z,R]),K=(0,Y.useCallback)(async(t,n)=>{let r=n??w.current.session;if(!r)return;let i=r.csrfToken;try{let[t,n]=await Promise.all([e.getStatus(),e.listConfiguredServers()]);if(!H(i))return;N({type:`refreshSucceeded`,status:t,configuredServers:n,updatedAt:M()})}catch(e){if(!H(i))return;I(e)||N({type:`refreshFailed`,message:`${t}${mr(e)}`})}},[e,N,M,I,H]);E.current=()=>K(``),D.current=()=>K(``);let ie=(0,Y.useCallback)(()=>{P(),tr(w.current)&&(T.current=n.setTimeout(()=>{K(``).finally(ie)},er(t.visibilityState)))},[P,t,K,n]),ae=(0,Y.useCallback)(async()=>{try{let t=await e.getSession();if(!t.authenticated){F(t.adminStatus??`loginRequired`);return}N({type:`sessionLoaded`,session:t}),await K(`Session loaded, but refresh failed: `,t)}catch(e){I(e)||N({type:`refreshFailed`,message:`Session check failed: ${mr(e)}`})}finally{ie()}},[e,N,I,F,K,ie]),oe=(0,Y.useCallback)(async t=>{if(!s){c(!0);try{let n=await e.login(t);N({type:`sessionLoaded`,session:n}),await K(`Login succeeded, but refresh failed: `,n)}catch(e){N({type:`loginFailed`,message:`Login failed: ${mr(e)}`})}finally{c(!1),ie()}}},[e,N,s,K,ie]),se=(0,Y.useCallback)(async(t,n)=>{let r=w.current.session;if(!r)return;let i=r.csrfToken;N({type:`mutationStarted`,serverId:t,action:n});try{if(await e.setConfiguredServerEnabled({name:t,enabled:n===`enable`,csrfToken:i}),!H(i))return;N({type:`mutationSucceeded`,serverId:t,action:n}),await K(``)}catch(e){if(!H(i))return;I(e)||N({type:`mutationFailed`,serverId:t,action:n,message:`Server ${n} failed: ${mr(e)}`})}},[e,N,I,H,K]),ce=(0,Y.useCallback)(async(t,r)=>{if(A.current)return;let i=w.current.session;if(!i)return;A.current=!0;let a=j.current+1;j.current=a;let o=i.csrfToken;f({serviceId:t,action:r}),h(null);try{let i=r===`authorize`?await e.authorizeOAuthService({serviceId:t,csrfToken:o}):await e.restartOAuthService({serviceId:t,csrfToken:o});if(!H(o))return;h({kind:`success`,message:`${r===`authorize`?`Authorization`:`Authorization restart`} started. Opening the provider.`}),n.location?.assign(i.redirectUrl)}catch(e){if(!H(o))return;I(e)||h({kind:`error`,message:mr(e)})}finally{j.current===a&&(A.current=!1,H(o)&&f(null))}},[e,I,H,n]),le=(0,Y.useCallback)(async()=>{let t=w.current.session?.csrfToken;try{t&&await e.logout(t)}finally{P(),ee(),N({type:`logoutSucceeded`})}},[e,P,N,ee]),ue=(0,Y.useCallback)(async(e,t)=>{if(!navigator.clipboard?.writeText)throw Error(`clipboard_unavailable`);await navigator.clipboard.writeText(t)},[]);return(0,Y.useEffect)(()=>(ae(),P),[P,ae]),(0,Y.useEffect)(()=>{let e=()=>ie();return t.addEventListener?.(`visibilitychange`,e),()=>t.removeEventListener?.(`visibilitychange`,e)},[t,ie]),{state:a,loginBusy:s,login:oe,logout:le,refresh:()=>K(`Manual refresh failed: `),navigation:{route:l,navigate:G},configuredServers:{create:{...z,open:async()=>{if(z.state.status!==`idle`){await z.open();return}await R.close(`/admin/servers`)&&await z.open()}},edit:R,mutate:se,copy:ue},oauth:{busy:d,callbackFeedback:p,operationFeedback:m,operate:ce},logs:B,presets:{items:g,targets:v,revision:b,busy:S,load:U,preview:ne,save:re,delete:W},instructions:V}}function vr(e){return e===`create`?`Create`:e===`duplicate`?`Duplicate`:`Update`}function yr(e){return e===`/admin/servers`||e.startsWith(`/admin/servers/`)?`servers`:e===`/admin/oauth`||e.startsWith(`/admin/oauth/`)?`oauth`:e===`/admin/audit`||e.startsWith(`/admin/audit/`)?`audit`:e.startsWith(`/admin/presets`)?`presets`:e.startsWith(`/admin/instructions`)?`instructions`:e.startsWith(`/admin/logs`)?`logs`:e.startsWith(`/admin/about`)?`about`:`dashboard`}function br(e){return e===`dashboard`?`/admin`:`/admin/${e}`}function xr(e){let t=new URLSearchParams(e);if(t.get(`success`)===`1`)return{kind:`success`,message:`OAuth authorization completed.`};let n=t.get(`error`);return n?{kind:`error`,message:Object.hasOwn(pr,n)?pr[n]:`OAuth authorization did not complete.`}:null}var Sr=s({primaryColor:`conduit`,defaultRadius:`sm`,fontFamily:`ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,headings:{fontFamily:`ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,fontWeight:`760`},defaultGradient:{from:`conduit.7`,to:`conduit.5`,deg:90},colors:{conduit:[`#eef7f4`,`#d7eee7`,`#acdccc`,`#7fc8ae`,`#59b393`,`#3a9d7b`,`#2c7f65`,`#246653`,`#1d5244`,`#123229`]}}),Cr=document.querySelector(`#admin-root`),wr=a({key:`1mcp-admin-color-scheme`});if(!Cr)throw Error(`Admin Console root element was not found`);(0,be.createRoot)(Cr).render((0,X.jsx)(i,{theme:Sr,defaultColorScheme:`auto`,colorSchemeManager:wr,children:(0,X.jsx)(hr,{api:Se()})}));export{_n as t};