@1mcp/agent 0.35.0-beta.2 → 0.35.0-beta.3

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 (242) hide show
  1. package/README.md +5 -2
  2. package/build/admin/assets/{admin-console-CbHHoqLr.js → admin-console-BOl7XR0p.js} +2 -2
  3. package/build/admin/assets/{admin-console-C5_zD_qW.css → admin-console-Bbil6BQU.css} +1 -1
  4. package/build/admin/index.html +2 -2
  5. package/build/auth/oauthAuthorizationFlow.d.ts +2 -2
  6. package/build/auth/oauthAuthorizationFlow.d.ts.map +1 -1
  7. package/build/auth/oauthAuthorizationFlow.js +1 -1
  8. package/build/auth/oauthAuthorizationFlow.js.map +1 -1
  9. package/build/auth/sdkOAuthServerProvider.d.ts +4 -3
  10. package/build/auth/sdkOAuthServerProvider.d.ts.map +1 -1
  11. package/build/auth/sdkOAuthServerProvider.js +132 -17
  12. package/build/auth/sdkOAuthServerProvider.js.map +1 -1
  13. package/build/auth/sessionTypes.d.ts +40 -5
  14. package/build/auth/sessionTypes.d.ts.map +1 -1
  15. package/build/auth/sessionTypes.js +33 -1
  16. package/build/auth/sessionTypes.js.map +1 -1
  17. package/build/auth/storage/fileStorageService.d.ts +18 -1
  18. package/build/auth/storage/fileStorageService.d.ts.map +1 -1
  19. package/build/auth/storage/fileStorageService.js +253 -3
  20. package/build/auth/storage/fileStorageService.js.map +1 -1
  21. package/build/auth/storage/oauthStorageService.d.ts +4 -1
  22. package/build/auth/storage/oauthStorageService.d.ts.map +1 -1
  23. package/build/auth/storage/oauthStorageService.js +8 -1
  24. package/build/auth/storage/oauthStorageService.js.map +1 -1
  25. package/build/auth/storage/refreshTokenFamilyRepository.d.ts +36 -0
  26. package/build/auth/storage/refreshTokenFamilyRepository.d.ts.map +1 -0
  27. package/build/auth/storage/refreshTokenFamilyRepository.js +167 -0
  28. package/build/auth/storage/refreshTokenFamilyRepository.js.map +1 -0
  29. package/build/auth/storage/sessionRepository.d.ts +14 -1
  30. package/build/auth/storage/sessionRepository.d.ts.map +1 -1
  31. package/build/auth/storage/sessionRepository.js +32 -9
  32. package/build/auth/storage/sessionRepository.js.map +1 -1
  33. package/build/commands/inspect/inspect.d.ts.map +1 -1
  34. package/build/commands/inspect/inspect.js +2 -9
  35. package/build/commands/inspect/inspect.js.map +1 -1
  36. package/build/commands/inspect/inspectUtils.d.ts +4 -0
  37. package/build/commands/inspect/inspectUtils.d.ts.map +1 -1
  38. package/build/commands/inspect/inspectUtils.js +12 -0
  39. package/build/commands/inspect/inspectUtils.js.map +1 -1
  40. package/build/commands/instructions/instructionsUtils.d.ts +2 -0
  41. package/build/commands/instructions/instructionsUtils.d.ts.map +1 -1
  42. package/build/commands/instructions/instructionsUtils.js +7 -3
  43. package/build/commands/instructions/instructionsUtils.js.map +1 -1
  44. package/build/commands/run/run.d.ts.map +1 -1
  45. package/build/commands/run/run.js +86 -7
  46. package/build/commands/run/run.js.map +1 -1
  47. package/build/commands/serve/asyncLoadingOptions.d.ts +30 -0
  48. package/build/commands/serve/asyncLoadingOptions.d.ts.map +1 -0
  49. package/build/commands/serve/asyncLoadingOptions.js +34 -0
  50. package/build/commands/serve/asyncLoadingOptions.js.map +1 -0
  51. package/build/commands/serve/index.d.ts +4 -1
  52. package/build/commands/serve/index.d.ts.map +1 -1
  53. package/build/commands/serve/index.js +14 -15
  54. package/build/commands/serve/index.js.map +1 -1
  55. package/build/commands/serve/serve.d.ts +2 -1
  56. package/build/commands/serve/serve.d.ts.map +1 -1
  57. package/build/commands/serve/serve.js +17 -8
  58. package/build/commands/serve/serve.js.map +1 -1
  59. package/build/commands/serve/serveBackground.d.ts.map +1 -1
  60. package/build/commands/serve/serveBackground.js +1 -0
  61. package/build/commands/serve/serveBackground.js.map +1 -1
  62. package/build/commands/shared/apiClient.d.ts +1 -1
  63. package/build/commands/shared/apiClient.d.ts.map +1 -1
  64. package/build/commands/shared/apiClient.js +2 -2
  65. package/build/commands/shared/apiClient.js.map +1 -1
  66. package/build/commands/shared/clientSurfaceAttachment.d.ts +3 -1
  67. package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
  68. package/build/commands/shared/clientSurfaceAttachment.js +14 -4
  69. package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
  70. package/build/commands/shared/commandRunner.d.ts +1 -0
  71. package/build/commands/shared/commandRunner.d.ts.map +1 -1
  72. package/build/commands/shared/commandRunner.js +10 -2
  73. package/build/commands/shared/commandRunner.js.map +1 -1
  74. package/build/commands/shared/filterSelectionQuery.d.ts +8 -0
  75. package/build/commands/shared/filterSelectionQuery.d.ts.map +1 -0
  76. package/build/commands/shared/filterSelectionQuery.js +12 -0
  77. package/build/commands/shared/filterSelectionQuery.js.map +1 -0
  78. package/build/commands/shared/inspectApiSchemas.d.ts +83 -0
  79. package/build/commands/shared/inspectApiSchemas.d.ts.map +1 -0
  80. package/build/commands/shared/inspectApiSchemas.js +40 -0
  81. package/build/commands/shared/inspectApiSchemas.js.map +1 -0
  82. package/build/commands/shared/serveTargetResolver.d.ts.map +1 -1
  83. package/build/commands/shared/serveTargetResolver.js +19 -8
  84. package/build/commands/shared/serveTargetResolver.js.map +1 -1
  85. package/build/commands/wait/index.d.ts +3 -0
  86. package/build/commands/wait/index.d.ts.map +1 -0
  87. package/build/commands/wait/index.js +20 -0
  88. package/build/commands/wait/index.js.map +1 -0
  89. package/build/commands/wait/wait.d.ts +39 -0
  90. package/build/commands/wait/wait.d.ts.map +1 -0
  91. package/build/commands/wait/wait.js +161 -0
  92. package/build/commands/wait/wait.js.map +1 -0
  93. package/build/config/configLoader.d.ts.map +1 -1
  94. package/build/config/configLoader.js +12 -0
  95. package/build/config/configLoader.js.map +1 -1
  96. package/build/constants/auth.d.ts +10 -1
  97. package/build/constants/auth.d.ts.map +1 -1
  98. package/build/constants/auth.js +11 -1
  99. package/build/constants/auth.js.map +1 -1
  100. package/build/constants/mcp.d.ts +7 -1
  101. package/build/constants/mcp.d.ts.map +1 -1
  102. package/build/constants/mcp.js +9 -1
  103. package/build/constants/mcp.js.map +1 -1
  104. package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
  105. package/build/core/capabilities/capabilityAggregator.js +10 -9
  106. package/build/core/capabilities/capabilityAggregator.js.map +1 -1
  107. package/build/core/capabilities/capabilityCatalog.d.ts +6 -5
  108. package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
  109. package/build/core/capabilities/capabilityCatalog.js +36 -23
  110. package/build/core/capabilities/capabilityCatalog.js.map +1 -1
  111. package/build/core/capabilities/capabilityVisibility.d.ts +12 -0
  112. package/build/core/capabilities/capabilityVisibility.d.ts.map +1 -0
  113. package/build/core/capabilities/capabilityVisibility.js +13 -0
  114. package/build/core/capabilities/capabilityVisibility.js.map +1 -0
  115. package/build/core/capabilities/internalCapabilitiesProvider.d.ts +2 -1
  116. package/build/core/capabilities/internalCapabilitiesProvider.d.ts.map +1 -1
  117. package/build/core/capabilities/internalCapabilitiesProvider.js +2 -2
  118. package/build/core/capabilities/internalCapabilitiesProvider.js.map +1 -1
  119. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +5 -23
  120. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
  121. package/build/core/capabilities/lazyLoadingOrchestrator.js +25 -44
  122. package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
  123. package/build/core/capabilities/metaToolProvider.d.ts +6 -21
  124. package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
  125. package/build/core/capabilities/metaToolProvider.js +18 -70
  126. package/build/core/capabilities/metaToolProvider.js.map +1 -1
  127. package/build/core/capabilities/toolRegistry.d.ts +5 -1
  128. package/build/core/capabilities/toolRegistry.d.ts.map +1 -1
  129. package/build/core/capabilities/toolRegistry.js +11 -3
  130. package/build/core/capabilities/toolRegistry.js.map +1 -1
  131. package/build/core/client/clientManager.d.ts +9 -0
  132. package/build/core/client/clientManager.d.ts.map +1 -1
  133. package/build/core/client/clientManager.js +82 -0
  134. package/build/core/client/clientManager.js.map +1 -1
  135. package/build/core/client/recreateHttpTransportOptions.d.ts +14 -0
  136. package/build/core/client/recreateHttpTransportOptions.d.ts.map +1 -0
  137. package/build/core/client/recreateHttpTransportOptions.js +2 -0
  138. package/build/core/client/recreateHttpTransportOptions.js.map +1 -0
  139. package/build/core/client/transportRecreator.d.ts +8 -1
  140. package/build/core/client/transportRecreator.d.ts.map +1 -1
  141. package/build/core/client/transportRecreator.js +11 -2
  142. package/build/core/client/transportRecreator.js.map +1 -1
  143. package/build/core/instructions/templateTypes.d.ts +2 -2
  144. package/build/core/instructions/templateTypes.d.ts.map +1 -1
  145. package/build/core/protocol/requestHandlerUtils.d.ts +3 -0
  146. package/build/core/protocol/requestHandlerUtils.d.ts.map +1 -1
  147. package/build/core/protocol/requestHandlerUtils.js +23 -7
  148. package/build/core/protocol/requestHandlerUtils.js.map +1 -1
  149. package/build/core/protocol/toolRequestHandlers.d.ts.map +1 -1
  150. package/build/core/protocol/toolRequestHandlers.js +13 -13
  151. package/build/core/protocol/toolRequestHandlers.js.map +1 -1
  152. package/build/core/runtime/runtimeIdentityService.d.ts +1 -0
  153. package/build/core/runtime/runtimeIdentityService.d.ts.map +1 -1
  154. package/build/core/runtime/runtimeIdentityService.js +4 -1
  155. package/build/core/runtime/runtimeIdentityService.js.map +1 -1
  156. package/build/core/server/clientInstanceFactory.d.ts.map +1 -1
  157. package/build/core/server/clientInstanceFactory.js +12 -3
  158. package/build/core/server/clientInstanceFactory.js.map +1 -1
  159. package/build/core/server/connectionManager.d.ts +0 -6
  160. package/build/core/server/connectionManager.d.ts.map +1 -1
  161. package/build/core/server/connectionManager.js +0 -39
  162. package/build/core/server/connectionManager.js.map +1 -1
  163. package/build/core/server/connectionResolver.d.ts.map +1 -1
  164. package/build/core/server/connectionResolver.js +35 -1
  165. package/build/core/server/connectionResolver.js.map +1 -1
  166. package/build/core/types/transport.d.ts +2 -0
  167. package/build/core/types/transport.d.ts.map +1 -1
  168. package/build/core/types/transport.js +18 -5
  169. package/build/core/types/transport.js.map +1 -1
  170. package/build/domains/backend-logs/backendLogBroker.d.ts +47 -0
  171. package/build/domains/backend-logs/backendLogBroker.d.ts.map +1 -0
  172. package/build/domains/backend-logs/backendLogBroker.js +249 -0
  173. package/build/domains/backend-logs/backendLogBroker.js.map +1 -0
  174. package/build/domains/backend-logs/backendLogProjection.d.ts +9 -0
  175. package/build/domains/backend-logs/backendLogProjection.d.ts.map +1 -0
  176. package/build/domains/backend-logs/backendLogProjection.js +40 -0
  177. package/build/domains/backend-logs/backendLogProjection.js.map +1 -0
  178. package/build/domains/backend-logs/backendLogRuntime.d.ts +4 -0
  179. package/build/domains/backend-logs/backendLogRuntime.d.ts.map +1 -0
  180. package/build/domains/backend-logs/backendLogRuntime.js +11 -0
  181. package/build/domains/backend-logs/backendLogRuntime.js.map +1 -0
  182. package/build/domains/backend-logs/backendLogSanitizer.d.ts +2 -0
  183. package/build/domains/backend-logs/backendLogSanitizer.d.ts.map +1 -0
  184. package/build/domains/backend-logs/backendLogSanitizer.js +30 -0
  185. package/build/domains/backend-logs/backendLogSanitizer.js.map +1 -0
  186. package/build/domains/backend-logs/backendLogSource.d.ts +8 -0
  187. package/build/domains/backend-logs/backendLogSource.d.ts.map +1 -0
  188. package/build/domains/backend-logs/backendLogSource.js +22 -0
  189. package/build/domains/backend-logs/backendLogSource.js.map +1 -0
  190. package/build/domains/backend-logs/backendLogTypes.d.ts +49 -0
  191. package/build/domains/backend-logs/backendLogTypes.d.ts.map +1 -0
  192. package/build/domains/backend-logs/backendLogTypes.js +2 -0
  193. package/build/domains/backend-logs/backendLogTypes.js.map +1 -0
  194. package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts +8 -1
  195. package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts.map +1 -1
  196. package/build/domains/runtime-targets/runtimeIdentityVerification.js +62 -3
  197. package/build/domains/runtime-targets/runtimeIdentityVerification.js.map +1 -1
  198. package/build/domains/runtime-targets/runtimeProbe.d.ts +34 -0
  199. package/build/domains/runtime-targets/runtimeProbe.d.ts.map +1 -0
  200. package/build/domains/runtime-targets/runtimeProbe.js +71 -0
  201. package/build/domains/runtime-targets/runtimeProbe.js.map +1 -0
  202. package/build/index.d.ts.map +1 -1
  203. package/build/index.js +3 -0
  204. package/build/index.js.map +1 -1
  205. package/build/transport/http/routes/adminRoutes.d.ts +2 -0
  206. package/build/transport/http/routes/adminRoutes.d.ts.map +1 -1
  207. package/build/transport/http/routes/adminRoutes.js +159 -17
  208. package/build/transport/http/routes/adminRoutes.js.map +1 -1
  209. package/build/transport/http/routes/inspectHelpers.d.ts +11 -4
  210. package/build/transport/http/routes/inspectHelpers.d.ts.map +1 -1
  211. package/build/transport/http/routes/inspectHelpers.js +21 -2
  212. package/build/transport/http/routes/inspectHelpers.js.map +1 -1
  213. package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -1
  214. package/build/transport/http/routes/inspectRoutes.js +55 -4
  215. package/build/transport/http/routes/inspectRoutes.js.map +1 -1
  216. package/build/transport/http/routes/toolRoutes.d.ts.map +1 -1
  217. package/build/transport/http/routes/toolRoutes.js +37 -29
  218. package/build/transport/http/routes/toolRoutes.js.map +1 -1
  219. package/build/transport/http/server.d.ts.map +1 -1
  220. package/build/transport/http/server.js +3 -1
  221. package/build/transport/http/server.js.map +1 -1
  222. package/build/transport/managedStdioStderr.d.ts +17 -1
  223. package/build/transport/managedStdioStderr.d.ts.map +1 -1
  224. package/build/transport/managedStdioStderr.js +129 -5
  225. package/build/transport/managedStdioStderr.js.map +1 -1
  226. package/build/transport/managedStdioStderrOptions.d.ts +2 -0
  227. package/build/transport/managedStdioStderrOptions.d.ts.map +1 -1
  228. package/build/transport/restartableStdioTransport.js +1 -1
  229. package/build/transport/restartableStdioTransport.js.map +1 -1
  230. package/build/transport/transportFactory.d.ts +6 -2
  231. package/build/transport/transportFactory.d.ts.map +1 -1
  232. package/build/transport/transportFactory.js +43 -15
  233. package/build/transport/transportFactory.js.map +1 -1
  234. package/build/types/serverStatus.d.ts +3 -0
  235. package/build/types/serverStatus.d.ts.map +1 -0
  236. package/build/types/serverStatus.js +13 -0
  237. package/build/types/serverStatus.js.map +1 -0
  238. package/build/utils/validation/urlDetection.d.ts +12 -9
  239. package/build/utils/validation/urlDetection.d.ts.map +1 -1
  240. package/build/utils/validation/urlDetection.js +233 -31
  241. package/build/utils/validation/urlDetection.js.map +1 -1
  242. package/package.json +4 -3
@@ -57,5 +57,5 @@ Error generating stack: `+e.message+`
57
57
  Prefix can't start with '-' when allowNegative is true.
58
58
  prefix: `+i+`
59
59
  allowNegative: `+a+`
60
- `),a=!1),Object.assign(Object.assign({},e),{allowNegative:a})}function ep(e){e=$f(e),e.decimalSeparator,e.allowedDecimalSeparators,e.thousandsGroupStyle;var t=e.suffix,n=e.allowNegative,r=e.allowLeadingZeros,i=e.onKeyDown;i===void 0&&(i=hf);var a=e.onBlur;a===void 0&&(a=hf);var o=e.thousandSeparator,s=e.decimalScale,c=e.fixedDecimalScale,l=e.prefix;l===void 0&&(l=``);var u=e.defaultValue,d=e.value,f=e.valueIsNumericString,p=e.onValueChange,m=pf(e,[`decimalSeparator`,`allowedDecimalSeparators`,`thousandsGroupStyle`,`suffix`,`allowNegative`,`allowLeadingZeros`,`onKeyDown`,`onBlur`,`thousandSeparator`,`decimalScale`,`fixedDecimalScale`,`prefix`,`defaultValue`,`value`,`valueIsNumericString`,`onValueChange`]),h=qf(e),g=h.decimalSeparator,_=h.allowedDecimalSeparators,v=function(t){return Kf(t,e)},y=function(t,n){return Zf(t,n,e)},b=vf(d)?u:d,x=f??Xf(b,l,t);vf(d)?vf(u)||(x||=typeof u==`number`):x||=typeof d==`number`;var S=function(e){return bf(e)?e:(typeof e==`number`&&(e=kf(e)),x&&typeof s==`number`?Af(e,s,!!c):e)},C=Hf(S(d),S(u),!!x,v,y,p),w=C[0],T=w.numAsString,E=w.formattedValue,D=C[1];return Object.assign(Object.assign({},m),{value:E,valueIsNumericString:!1,isValidInputCharacter:function(e){return e===g||_f(e)},isCharacterSame:function(e){var t=e.currentValue,n=e.lastValue,r=e.formattedValue,i=e.currentValueIndex,a=e.formattedValueIndex,o=t[i],u=r[a],f=Mf(n,t).to,p=function(e){return y(e).indexOf(`.`)+l.length};return d===0&&c&&s&&t[f.start]===g&&p(t)<i&&p(r)>a?!1:i>=f.start&&i<f.end&&_&&_.includes(o)&&u===g?!0:o===u},onValueChange:D,format:v,removeFormatting:y,getCaretBoundary:function(t){return Qf(t,e)},onKeyDown:function(e){var t=e.target,r=e.key,a=t.selectionStart,u=t.selectionEnd,d=t.value;if(d===void 0&&(d=``),(r===`Backspace`||r===`Delete`)&&u<l.length&&d!==`-`){e.preventDefault();return}if(a!==u){i(e);return}r===`Backspace`&&d[0]===`-`&&a===l.length+1&&n&&jf(t,1),s&&c&&(r===`Backspace`&&d[a-1]===g?(jf(t,a-1),e.preventDefault()):r===`Delete`&&d[a]===g&&e.preventDefault()),_?.includes(r)&&d[a]===g&&jf(t,a+1);var f=o===!0?`,`:o;r===`Backspace`&&d[a-1]===f&&jf(t,a-1),r===`Delete`&&d[a]===f&&jf(t,a+1),i(e)},onBlur:function(t){var n=T;n.match(/\d/g)||(n=``),r||(n=Ef(n)),c&&s&&(n=Af(n,s,c)),n!==T&&D({formattedValue:Kf(n,e),value:n,floatValue:parseFloat(n)},{event:t,source:mf.event}),a(t)}})}function tp(e){var t=ep(e);return y.createElement(Gf,Object.assign({},t))}var np={root:`m_e2f5cd4e`,controls:`m_95e17d22`,control:`m_80b4b171`};function rp({direction:e,style:t,...n}){return(0,B.jsx)(`svg`,{style:{width:`var(--ni-chevron-size)`,height:`var(--ni-chevron-size)`,transform:e===`up`?`rotate(180deg)`:void 0,...t},viewBox:`0 0 15 15`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...n,children:(0,B.jsx)(`path`,{d:`M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z`,fill:`currentColor`,fillRule:`evenodd`,clipRule:`evenodd`})})}var ip=/^(0\.0*|-0(\.0*)?)$/,ap=/^-?0\d+(\.\d+)?\.?$/,op=/\.\d*0$/,sp=/^-?\d+\.$/;function cp(e){return typeof e==`string`&&e!==``&&!Number.isNaN(Number(e))}function lp(e){return typeof e==`number`?e<2**53-1:e===``||cp(e)&&Number(e)<2**53-1}function up(e){return e.toString().replace(`.`,``).length}function dp(e,t){return(typeof e==`number`?e<2**53-1:!Number.isNaN(Number(e)))&&!Number.isNaN(e)&&up(t)<14&&t!==``}function fp(e,t,n){return e===void 0||(t===void 0||e>=t)&&(n===void 0||e<=n)}var pp={step:1,clampBehavior:`blur`,allowDecimal:!0,allowNegative:!0,withKeyboardEvents:!0,allowLeadingZeros:!0,trimLeadingZeroesOnBlur:!0,startValue:0,allowedDecimalSeparators:[`.`,`,`]},mp=U((e,{size:t})=>({controls:{"--ni-chevron-size":V(t,`ni-chevron-size`)}}));function hp(e,t,n){let r=e.toString(),i=sp.test(r),a=r.replace(/^0+(?=\d)/,``),o=parseFloat(a);if(Number.isNaN(o))return a;if(o>2**53-1)return t===void 0?a:t;let s=lt(o,n,t);return i?`${s.toString().replace(/^0+(?=\d)/,``)}.`:s}var gp=q((e,t)=>{let n=G(`NumberInput`,pp,e),{className:r,classNames:i,styles:a,unstyled:o,vars:s,onChange:c,onValueChange:l,value:u,defaultValue:d,max:f,min:p,step:m,hideControls:h,rightSection:g,isAllowed:_,clampBehavior:v,onBlur:b,allowDecimal:x,decimalScale:S,onKeyDown:C,onKeyDownCapture:w,handlersRef:T,startValue:E,disabled:D,rightSectionPointerEvents:O,allowNegative:k,readOnly:A,size:j,rightSectionWidth:M,stepHoldInterval:N,stepHoldDelay:P,allowLeadingZeros:F,withKeyboardEvents:ee,trimLeadingZeroesOnBlur:I,allowedDecimalSeparators:L,attributes:te,...ne}=n,re=W({name:`NumberInput`,classes:np,props:n,classNames:i,styles:a,unstyled:o,attributes:te,vars:s,varsResolver:mp}),{resolvedClassNames:ie,resolvedStyles:ae}=dr({classNames:i,styles:a,props:n}),[R,oe]=H({value:u,defaultValue:d,finalValue:``,onChange:c}),se=P!==void 0&&N!==void 0,ce=(0,y.useRef)(null),le=(0,y.useRef)(null),ue=(0,y.useRef)(0),de=(e,t)=>{t.source===`event`&&oe(dp(e.floatValue,e.value)&&!ip.test(e.value)&&!(F&&ap.test(e.value))&&!op.test(e.value)&&!sp.test(e.value)?e.floatValue:e.value),l?.(e,t)},fe=e=>{let t=String(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0},pe=e=>{ce.current&&e!==void 0&&ce.current.setSelectionRange(e,e)},me=(0,y.useRef)($e);me.current=()=>{if(!lp(R))return;let e,t=fe(R),n=fe(m),r=Math.max(t,n),i=10**r;if(!cp(R)&&(typeof R!=`number`||Number.isNaN(R)))e=lt(E,p,f);else if(f!==void 0){let t=(Math.round(Number(R)*i)+Math.round(m*i))/i;e=t<=f?t:f}else e=(Math.round(Number(R)*i)+Math.round(m*i))/i;let a=e.toFixed(r);oe(parseFloat(a)),l?.({floatValue:parseFloat(a),formattedValue:a,value:a},{source:`increment`}),setTimeout(()=>pe(ce.current?.value.length),0)};let he=(0,y.useRef)($e);he.current=()=>{if(!lp(R))return;let e,t=p===void 0?k?-(2**53-1):0:p,n=fe(R),r=fe(m),i=Math.max(n,r),a=10**i;if(!cp(R)&&typeof R!=`number`||Number.isNaN(R))e=lt(E,t,f);else{let n=(Math.round(Number(R)*a)-Math.round(m*a))/a;e=t!==void 0&&n<t?t:n}let o=e.toFixed(i);oe(parseFloat(o)),l?.({floatValue:parseFloat(o),formattedValue:o,value:o},{source:`decrement`}),setTimeout(()=>pe(ce.current?.value.length),0)};let ge=e=>{C?.(e),!(A||!ee)&&(e.key===`ArrowUp`&&(e.preventDefault(),me.current?.()),e.key===`ArrowDown`&&(e.preventDefault(),he.current?.()))},_e=e=>{if(w?.(e),e.key===`Backspace`){let t=ce.current;t&&t.selectionStart===0&&t.selectionStart===t.selectionEnd&&(e.preventDefault(),window.setTimeout(()=>pe(0),0))}},ve=e=>{let t=R;v===`blur`&&typeof t==`number`&&(t=lt(t,p,f)),I&&typeof t==`string`&&fe(t)<15&&(t=hp(t,f,p)),R!==t&&oe(t),b?.(e)};It(T,{increment:me.current,decrement:he.current});let ye=e=>{e?me.current?.():he.current?.(),ue.current+=1},be=e=>{if(ye(e),se){let t=typeof N==`number`?N:N(ue.current);le.current=window.setTimeout(()=>be(e),t)}},xe=(e,t)=>{e.preventDefault(),ce.current?.focus(),ye(t),se&&(le.current=window.setTimeout(()=>be(t),P))},Se=()=>{le.current&&window.clearTimeout(le.current),le.current=null,ue.current=0},Ce=(0,B.jsxs)(`div`,{...re(`controls`),children:[(0,B.jsx)(Us,{...re(`control`),tabIndex:-1,"aria-hidden":!0,disabled:D||typeof R==`number`&&f!==void 0&&R>=f,mod:{direction:`up`},onMouseDown:e=>e.preventDefault(),onPointerDown:e=>{xe(e,!0)},onPointerUp:Se,onPointerLeave:Se,children:(0,B.jsx)(rp,{direction:`up`})}),(0,B.jsx)(Us,{...re(`control`),tabIndex:-1,"aria-hidden":!0,disabled:D||typeof R==`number`&&p!==void 0&&R<=p,mod:{direction:`down`},onMouseDown:e=>e.preventDefault(),onPointerDown:e=>{xe(e,!1)},onPointerUp:Se,onPointerLeave:Se,children:(0,B.jsx)(rp,{direction:`down`})})]});return(0,B.jsx)(wl,{component:tp,allowNegative:k,className:$t(np.root,r),size:j,inputMode:`decimal`,...ne,readOnly:A,disabled:D,value:R,getInputRef:Rt(t,ce),onValueChange:de,rightSection:h||A||!lp(R)?g:g||Ce,classNames:ie,styles:ae,unstyled:o,__staticSelector:`NumberInput`,decimalScale:x?S:0,onKeyDown:ge,onKeyDownCapture:_e,rightSectionPointerEvents:O??(D?`none`:void 0),rightSectionWidth:M??`var(--ni-right-section-width-${j||`sm`})`,allowLeadingZeros:F,allowedDecimalSeparators:L,onBlur:ve,attributes:te,isAllowed:e=>v===`strict`?_?_(e)&&fp(e.floatValue,p,f):fp(e.floatValue,p,f):!_||_(e)})});gp.classes={...wl.classes,...np},gp.displayName=`@mantine/core/NumberInput`;var _p={root:`m_f61ca620`,input:`m_ccf8da4c`,innerInput:`m_f2d85dd2`,visibilityToggle:`m_b1072d44`},vp={visibilityToggleIcon:({reveal:e})=>(0,B.jsx)(`svg`,{viewBox:`0 0 15 15`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{width:`var(--psi-icon-size)`,height:`var(--psi-icon-size)`},children:(0,B.jsx)(`path`,{d:e?`M13.3536 2.35355C13.5488 2.15829 13.5488 1.84171 13.3536 1.64645C13.1583 1.45118 12.8417 1.45118 12.6464 1.64645L10.6828 3.61012C9.70652 3.21671 8.63759 3 7.5 3C4.30786 3 1.65639 4.70638 0.0760002 7.23501C-0.0253338 7.39715 -0.0253334 7.60288 0.0760014 7.76501C0.902945 9.08812 2.02314 10.1861 3.36061 10.9323L1.64645 12.6464C1.45118 12.8417 1.45118 13.1583 1.64645 13.3536C1.84171 13.5488 2.15829 13.5488 2.35355 13.3536L4.31723 11.3899C5.29348 11.7833 6.36241 12 7.5 12C10.6921 12 13.3436 10.2936 14.924 7.76501C15.0253 7.60288 15.0253 7.39715 14.924 7.23501C14.0971 5.9119 12.9769 4.81391 11.6394 4.06771L13.3536 2.35355ZM9.90428 4.38861C9.15332 4.1361 8.34759 4 7.5 4C4.80285 4 2.52952 5.37816 1.09622 7.50001C1.87284 8.6497 2.89609 9.58106 4.09974 10.1931L9.90428 4.38861ZM5.09572 10.6114L10.9003 4.80685C12.1039 5.41894 13.1272 6.35031 13.9038 7.50001C12.4705 9.62183 10.1971 11 7.5 11C6.65241 11 5.84668 10.8639 5.09572 10.6114Z`:`M7.5 11C4.80285 11 2.52952 9.62184 1.09622 7.50001C2.52952 5.37816 4.80285 4 7.5 4C10.1971 4 12.4705 5.37816 13.9038 7.50001C12.4705 9.62183 10.1971 11 7.5 11ZM7.5 3C4.30786 3 1.65639 4.70638 0.0760002 7.23501C-0.0253338 7.39715 -0.0253334 7.60288 0.0760014 7.76501C1.65639 10.2936 4.30786 12 7.5 12C10.6921 12 13.3436 10.2936 14.924 7.76501C15.0253 7.60288 15.0253 7.39715 14.924 7.23501C13.3436 4.70638 10.6921 3 7.5 3ZM7.5 9.5C8.60457 9.5 9.5 8.60457 9.5 7.5C9.5 6.39543 8.60457 5.5 7.5 5.5C6.39543 5.5 5.5 6.39543 5.5 7.5C5.5 8.60457 6.39543 9.5 7.5 9.5Z`,fill:`currentColor`,fillRule:`evenodd`,clipRule:`evenodd`})})},yp=U((e,{size:t})=>({root:{"--psi-icon-size":V(t,`psi-icon-size`),"--psi-button-size":V(t,`psi-button-size`)}})),bp=q((e,t)=>{let n=G(`PasswordInput`,vp,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,required:l,error:u,leftSection:d,disabled:f,id:p,variant:m,inputContainer:h,description:g,label:_,size:v,errorProps:y,descriptionProps:b,labelProps:x,withAsterisk:S,inputWrapperOrder:C,wrapperProps:w,radius:T,rightSection:E,rightSectionWidth:D,rightSectionPointerEvents:O,leftSectionWidth:k,visible:A,defaultVisible:j,onVisibilityChange:M,visibilityToggleIcon:N,visibilityToggleButtonProps:P,rightSectionProps:F,leftSectionProps:ee,leftSectionPointerEvents:I,withErrorStyles:L,mod:te,attributes:ne,...re}=n,ie=Pt(p),[ae,R]=H({value:A,defaultValue:j,finalValue:!1,onChange:M}),oe=()=>R(!ae),se=W({name:`PasswordInput`,classes:_p,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:ne,vars:c,varsResolver:yp}),{resolvedClassNames:ce,resolvedStyles:le}=dr({classNames:r,styles:o,props:n}),{styleProps:ue,rest:de}=Nr(re),fe=y?.id||`${ie}-error`,pe=b?.id||`${ie}-description`,me=`${u&&typeof u!=`boolean`?fe:``} ${g?pe:``}`,he=me.trim().length>0?me.trim():void 0,ge=(0,B.jsx)(Wc,{...se(`visibilityToggle`),disabled:f,radius:T,"aria-hidden":!P,"aria-pressed":ae,tabIndex:-1,...P,variant:P?.variant??`subtle`,color:`gray`,unstyled:s,onTouchEnd:e=>{e.preventDefault(),P?.onTouchEnd?.(e),oe()},onMouseDown:e=>{e.preventDefault(),P?.onMouseDown?.(e),oe()},onKeyDown:e=>{P?.onKeyDown?.(e),e.key===` `&&(e.preventDefault(),oe())},children:(0,B.jsx)(N,{reveal:ae})});return(0,B.jsx)(xl.Wrapper,{required:l,id:ie,label:_,error:u,description:g,size:v,classNames:ce,styles:le,__staticSelector:`PasswordInput`,unstyled:s,withAsterisk:S,inputWrapperOrder:C,inputContainer:h,variant:m,labelProps:{...x,htmlFor:ie},descriptionProps:{...b,id:pe},errorProps:{...y,id:fe},mod:te,attributes:ne,...se(`root`),...ue,...w,children:(0,B.jsx)(xl,{component:`div`,error:u,leftSection:d,size:v,classNames:{...ce,input:$t(_p.input,ce.input)},styles:le,radius:T,disabled:f,__staticSelector:`PasswordInput`,rightSectionWidth:D,rightSection:E??ge,variant:m,unstyled:s,leftSectionWidth:k,rightSectionPointerEvents:O||`all`,rightSectionProps:F,leftSectionProps:ee,leftSectionPointerEvents:I,withAria:!1,withErrorStyles:L,attributes:ne,children:(0,B.jsx)(`input`,{required:l,"data-invalid":!!u||void 0,"data-with-left-section":!!d||void 0,...se(`innerInput`),disabled:f,id:ie,ref:t,...de,"aria-describedby":he,autoComplete:de.autoComplete||`off`,type:ae?`text`:`password`})})})});bp.classes={...wl.classes,..._p},bp.displayName=`@mantine/core/PasswordInput`;var xp={root:`m_f3f1af94`,inner:`m_89c4f5e4`,icon:`m_f3ed6b2b`,radio:`m_8a3dbb89`,"radio--outline":`m_1bfe9d39`},[Sp,Cp]=Xe(),[wp,Tp]=Xe(),Ep={card:`m_9dc8ae12`},Dp={withBorder:!0},Op=U((e,{radius:t})=>({card:{"--card-radius":nt(t)}})),kp=q((e,t)=>{let n=G(`RadioCard`,Dp,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,checked:l,mod:u,withBorder:d,value:f,onClick:p,name:m,onKeyDown:h,attributes:g,..._}=n,v=W({name:`RadioCard`,classes:Ep,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:g,vars:c,varsResolver:Op,rootSelector:`card`}),{dir:y}=pi(),b=Cp(),x=typeof l==`boolean`?l:b?.value===f||!1,S=m||b?.name,C=e=>{if(h?.(e),[`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`].includes(e.nativeEvent.code)){e.preventDefault();let t=Array.from(document.querySelectorAll(`[role="radio"][name="${S||`__mantine`}"]`)),n=t.findIndex(t=>t===e.target),r=n+1>=t.length?0:n+1,i=n-1<0?t.length-1:n-1;e.nativeEvent.code===`ArrowDown`&&(t[r].focus(),t[r].click()),e.nativeEvent.code===`ArrowUp`&&(t[i].focus(),t[i].click()),e.nativeEvent.code===`ArrowLeft`&&(t[y===`ltr`?i:r].focus(),t[y===`ltr`?i:r].click()),e.nativeEvent.code===`ArrowRight`&&(t[y===`ltr`?r:i].focus(),t[y===`ltr`?r:i].click())}};return(0,B.jsx)(wp,{value:{checked:x},children:(0,B.jsx)(Us,{ref:t,mod:[{"with-border":d,checked:x},u],...v(`card`),..._,role:`radio`,"aria-checked":x,name:S,onClick:e=>{p?.(e),b?.onChange(f||``)},onKeyDown:C})})});kp.displayName=`@mantine/core/RadioCard`,kp.classes=Ep;var Ap=q((e,t)=>{let{value:n,defaultValue:r,onChange:i,size:a,wrapperProps:o,children:s,name:c,readOnly:l,disabled:u,...d}=G(`RadioGroup`,null,e),f=Pt(c),[p,m]=H({value:n,defaultValue:r,finalValue:``,onChange:i});return(0,B.jsx)(Sp,{value:{value:p,onChange:e=>!l&&m(typeof e==`string`?e:e.currentTarget.value),size:a,name:f,disabled:u},children:(0,B.jsx)(xl.Wrapper,{size:a,ref:t,...o,...d,labelElement:`div`,__staticSelector:`RadioGroup`,children:(0,B.jsx)(Wu,{role:`radiogroup`,children:s})})})});Ap.classes=xl.Wrapper.classes,Ap.displayName=`@mantine/core/RadioGroup`;function jp({size:e,style:t,...n}){return(0,B.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 5 5`,style:{width:z(e),height:z(e),...t},"aria-hidden":!0,...n,children:(0,B.jsx)(`circle`,{cx:`2.5`,cy:`2.5`,r:`2.5`,fill:`currentColor`})})}var Mp={indicator:`m_717d7ff6`,icon:`m_3e4da632`,"indicator--outline":`m_2980836c`},Np={icon:jp},Pp=U((e,{radius:t,color:n,size:r,iconColor:i,variant:a,autoContrast:o})=>{let s=En({color:n||e.primaryColor,theme:e}),c=s.isThemeColor&&s.shade===void 0?`var(--mantine-color-${s.color}-outline)`:s.color;return{indicator:{"--radio-size":V(r,`radio-size`),"--radio-radius":t===void 0?void 0:nt(t),"--radio-color":a===`outline`?c:Dn(n,e),"--radio-icon-size":V(r,`radio-icon-size`),"--radio-icon-color":i?Dn(i,e):Or(o,e)?Yn({color:n,theme:e,autoContrast:o}):void 0}}}),Fp=q((e,t)=>{let n=G(`RadioIndicator`,Np,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,icon:l,radius:u,color:d,iconColor:f,autoContrast:p,checked:m,mod:h,variant:g,disabled:_,attributes:v,...y}=n,b=W({name:`RadioIndicator`,classes:Mp,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:v,vars:c,varsResolver:Pp,rootSelector:`indicator`}),x=Tp(),S=typeof m==`boolean`?m:x?.checked||!1;return(0,B.jsx)(K,{ref:t,...b(`indicator`,{variant:g}),variant:g,mod:[{checked:S,disabled:_},h],...y,children:(0,B.jsx)(l,{...b(`icon`)})})});Fp.displayName=`@mantine/core/RadioIndicator`,Fp.classes=Mp;var Ip={labelPosition:`right`},Lp=U((e,{size:t,radius:n,color:r,iconColor:i,variant:a,autoContrast:o})=>{let s=En({color:r||e.primaryColor,theme:e}),c=s.isThemeColor&&s.shade===void 0?`var(--mantine-color-${s.color}-outline)`:s.color;return{root:{"--radio-size":V(t,`radio-size`),"--radio-radius":n===void 0?void 0:nt(n),"--radio-color":a===`outline`?c:Dn(r,e),"--radio-icon-color":i?Dn(i,e):Or(o,e)?Yn({color:r,theme:e,autoContrast:o}):void 0,"--radio-icon-size":V(t,`radio-icon-size`)}}}),Rp=q((e,t)=>{let n=G(`Radio`,Ip,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,id:l,size:u,label:d,labelPosition:f,description:p,error:m,radius:h,color:g,variant:_,disabled:v,wrapperProps:y,icon:b=jp,rootRef:x,iconColor:S,onChange:C,mod:w,attributes:T,checked:E,...D}=n,O=W({name:`Radio`,classes:xp,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:T,vars:c,varsResolver:Lp}),k=Cp(),A=k?.size??u,j=n.size?u:A,{styleProps:M,rest:N}=Nr(D),P=Pt(l),F=k?k.value===N.value:void 0,ee={checked:F??E,name:k?.name??N.name,onChange:e=>{k?.onChange(e),C?.(e)},disabled:k?.disabled??v};return(0,B.jsx)(Uu,{...O(`root`),__staticSelector:`Radio`,__stylesApiProps:n,id:P,size:j,labelPosition:f,label:d,description:p,error:m,disabled:ee.disabled,classNames:r,styles:o,unstyled:s,"data-checked":(F??E)||void 0,variant:_,ref:x,mod:w,...M,...y,children:(0,B.jsxs)(K,{...O(`inner`),mod:{"label-position":f},children:[(0,B.jsx)(K,{...O(`radio`,{focusable:!0,variant:_}),...N,...ee,component:`input`,mod:{error:!!m},ref:t,id:P,type:`radio`}),(0,B.jsx)(b,{...O(`icon`),"aria-hidden":!0})]})})});Rp.classes=xp,Rp.displayName=`@mantine/core/Radio`,Rp.Group=Ap,Rp.Card=kp,Rp.Indicator=Fp;var zp={root:`m_cf365364`,indicator:`m_9e182ccd`,label:`m_1738fcb2`,input:`m_1714d588`,control:`m_69686b9b`,innerLabel:`m_78882f40`},Bp={withItemsBorders:!0},Vp=U((e,{radius:t,color:n,transitionDuration:r,size:i,transitionTimingFunction:a})=>({root:{"--sc-radius":t===void 0?void 0:nt(t),"--sc-color":n?Dn(n,e):void 0,"--sc-shadow":n?void 0:`var(--mantine-shadow-xs)`,"--sc-transition-duration":r===void 0?void 0:`${r}ms`,"--sc-transition-timing-function":a,"--sc-padding":V(i,`sc-padding`),"--sc-font-size":rt(i)}})),Hp=q((e,t)=>{let n=G(`SegmentedControl`,Bp,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,data:l,value:u,defaultValue:d,onChange:f,size:p,name:m,disabled:h,readOnly:g,fullWidth:_,orientation:v,radius:b,color:x,transitionDuration:S,transitionTimingFunction:C,variant:w,autoContrast:T,withItemsBorders:E,mod:D,attributes:O,...k}=n,A=W({name:`SegmentedControl`,props:n,classes:zp,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:O,vars:c,varsResolver:Vp}),j=Wn(),M=l.map(e=>typeof e==`string`?{label:e,value:e}:e),N=Gt(),[P,F]=(0,y.useState)(ut()),[ee,I]=(0,y.useState)(null),[L,te]=(0,y.useState)({}),ne=(e,t)=>{L[t]=e,te(L)},[re,ie]=H({value:u,defaultValue:d,finalValue:Array.isArray(l)?M.find(e=>!e.disabled)?.value??l[0]?.value??null:null,onChange:f}),ae=Pt(m),R=M.map(e=>(0,y.createElement)(K,{...A(`control`),mod:{active:re===e.value,orientation:v},key:e.value},(0,y.createElement)(`input`,{...A(`input`),disabled:h||e.disabled,type:`radio`,name:ae,value:e.value,id:`${ae}-${e.value}`,checked:re===e.value,onChange:()=>!g&&ie(e.value),"data-focus-ring":j.focusRing,key:`${e.value}-input`}),(0,y.createElement)(K,{component:`label`,...A(`label`),mod:{active:re===e.value&&!(h||e.disabled),disabled:h||e.disabled,"read-only":g},htmlFor:`${ae}-${e.value}`,ref:t=>ne(t,e.value),__vars:{"--sc-label-color":x===void 0?void 0:Yn({color:x,theme:j,autoContrast:T})},key:`${e.value}-label`},(0,B.jsx)(`span`,{...A(`innerLabel`),children:e.label})))),oe=Rt(t,e=>I(e));return Ht(()=>{F(ut())},[l.length]),l.length===0?null:(0,B.jsxs)(K,{...A(`root`),variant:w,size:p,ref:oe,mod:[{"full-width":_,orientation:v,initialized:N,"with-items-borders":E},D],...k,role:`radiogroup`,"data-disabled":h,children:[typeof re==`string`&&(0,B.jsx)(kl,{target:L[re],parent:ee,component:`span`,transitionDuration:`var(--sc-transition-duration)`,...A(`indicator`)},P),R]})});Hp.classes=zp,Hp.displayName=`@mantine/core/SegmentedControl`;var Up={container:`m_925c2d2c`,root:`m_2415a157`};function Wp({spacing:e,verticalSpacing:t,cols:n,selector:r}){let i=Wn(),a=t===void 0?e:t,o=Ge({"--sg-spacing-x":tt(ct(e)),"--sg-spacing-y":tt(ct(a)),"--sg-cols":ct(n)?.toString()}),s=Ie(i.breakpoints).reduce((t,r)=>(t[r]||(t[r]={}),typeof e==`object`&&e[r]!==void 0&&(t[r][`--sg-spacing-x`]=tt(e[r])),typeof a==`object`&&a[r]!==void 0&&(t[r][`--sg-spacing-y`]=tt(a[r])),typeof n==`object`&&n[r]!==void 0&&(t[r][`--sg-cols`]=n[r]),t),{});return(0,B.jsx)(Mr,{styles:o,media:st(Ie(s),i.breakpoints).filter(e=>Ie(s[e.value]).length>0).map(e=>({query:`(min-width: ${i.breakpoints[e.value]})`,styles:s[e.value]})),selector:r})}function Gp(e){return typeof e==`object`&&e?Ie(e):[]}function Kp(e){return e.sort((e,t)=>Ve(e)-Ve(t))}function qp({spacing:e,verticalSpacing:t,cols:n}){return Kp(Array.from(new Set([...Gp(e),...Gp(t),...Gp(n)])))}function Jp({spacing:e,verticalSpacing:t,cols:n,selector:r}){let i=t===void 0?e:t,a=Ge({"--sg-spacing-x":tt(ct(e)),"--sg-spacing-y":tt(ct(i)),"--sg-cols":ct(n)?.toString()}),o=qp({spacing:e,verticalSpacing:t,cols:n}),s=o.reduce((t,r)=>(t[r]||(t[r]={}),typeof e==`object`&&e[r]!==void 0&&(t[r][`--sg-spacing-x`]=tt(e[r])),typeof i==`object`&&i[r]!==void 0&&(t[r][`--sg-spacing-y`]=tt(i[r])),typeof n==`object`&&n[r]!==void 0&&(t[r][`--sg-cols`]=n[r]),t),{});return(0,B.jsx)(Mr,{styles:a,container:o.map(e=>({query:`simple-grid (min-width: ${e})`,styles:s[e]})),selector:r})}var Yp={cols:1,spacing:`md`,type:`media`},Xp=q((e,t)=>{let n=G(`SimpleGrid`,Yp,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,cols:l,verticalSpacing:u,spacing:d,type:f,attributes:p,...m}=n,h=W({name:`SimpleGrid`,classes:Up,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:p,vars:c}),g=ni();return f===`container`?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Jp,{...n,selector:`.${g}`}),(0,B.jsx)(`div`,{...h(`container`),children:(0,B.jsx)(K,{ref:t,...h(`root`,{className:g}),...m})})]}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Wp,{...n,selector:`.${g}`}),(0,B.jsx)(K,{ref:t,...h(`root`,{className:g}),...m})]})});Xp.classes=Up,Xp.displayName=`@mantine/core/SimpleGrid`;var Zp={root:`m_6d731127`},Qp={gap:`md`,align:`stretch`,justify:`flex-start`},$p=U((e,{gap:t,align:n,justify:r})=>({root:{"--stack-gap":tt(t),"--stack-align":n,"--stack-justify":r}})),$=q((e,t)=>{let n=G(`Stack`,Qp,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,align:l,justify:u,gap:d,variant:f,attributes:p,...m}=n;return(0,B.jsx)(K,{ref:t,...W({name:`Stack`,props:n,classes:Zp,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:p,vars:c,varsResolver:$p})(`root`),variant:f,...m})});$.classes=Zp,$.displayName=`@mantine/core/Stack`;var em={root:`m_5f93f3bb`,input:`m_926b4011`,track:`m_9307d992`,thumb:`m_93039a1d`,trackLabel:`m_8277e082`},tm=(0,y.createContext)(null),nm=tm.Provider,rm=()=>(0,y.useContext)(tm),im=q((e,t)=>{let{value:n,defaultValue:r,onChange:i,size:a,wrapperProps:o,children:s,readOnly:c,disabled:l,...u}=G(`SwitchGroup`,null,e),[d,f]=H({value:n,defaultValue:r,finalValue:[],onChange:i});return(0,B.jsx)(nm,{value:{value:d,onChange:e=>{let t=e.currentTarget.value;!c&&f(d.includes(t)?d.filter(e=>e!==t):[...d,t])},size:a,disabled:l},children:(0,B.jsx)(xl.Wrapper,{size:a,ref:t,...o,...u,labelElement:`div`,__staticSelector:`SwitchGroup`,children:(0,B.jsx)(Wu,{role:`group`,children:s})})})});im.classes=xl.Wrapper.classes,im.displayName=`@mantine/core/SwitchGroup`;var am={labelPosition:`right`,withThumbIndicator:!0},om=U((e,{radius:t,color:n,size:r})=>({root:{"--switch-radius":t===void 0?void 0:nt(t),"--switch-height":V(r,`switch-height`),"--switch-width":V(r,`switch-width`),"--switch-thumb-size":V(r,`switch-thumb-size`),"--switch-label-font-size":V(r,`switch-label-font-size`),"--switch-track-label-padding":V(r,`switch-track-label-padding`),"--switch-color":n?Dn(n,e):void 0}})),sm=q((e,t)=>{let n=G(`Switch`,am,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,color:l,label:u,offLabel:d,onLabel:f,id:p,size:m,radius:h,wrapperProps:g,thumbIcon:_,checked:v,defaultChecked:y,onChange:b,labelPosition:x,description:S,error:C,disabled:w,variant:T,rootRef:E,mod:D,withThumbIndicator:O,attributes:k,...A}=n,j=rm(),M=m||j?.size,N=W({name:`Switch`,props:n,classes:em,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:k,vars:c,varsResolver:om}),{styleProps:P,rest:F}=Nr(A),ee=Pt(p),I={checked:j?.value.includes(F.value)??v,onChange:e=>{j?.onChange(e),b?.(e)},disabled:j?.disabled??w},[L,te]=H({value:I.checked??v,defaultValue:y,finalValue:!1});return(0,B.jsxs)(Uu,{...N(`root`),__staticSelector:`Switch`,__stylesApiProps:n,id:ee,size:M,labelPosition:x,label:u,description:S,error:C,disabled:I.disabled,bodyElement:`label`,labelElement:`span`,classNames:r,styles:o,unstyled:s,"data-checked":I.checked,variant:T,ref:E,mod:D,...P,...g,children:[(0,B.jsx)(`input`,{...F,...I,checked:L,"data-checked":I.checked,onChange:e=>{I.onChange?.(e),te(e.currentTarget.checked)},id:ee,ref:t,type:`checkbox`,role:`switch`,...N(`input`)}),(0,B.jsxs)(K,{"aria-hidden":`true`,component:`span`,mod:{error:C,"label-position":x,"without-labels":!f&&!d},...N(`track`),children:[(0,B.jsx)(K,{component:`span`,mod:{"reduce-motion":!0,"with-thumb-indicator":O&&!_},...N(`thumb`),children:_}),(0,B.jsx)(`span`,{...N(`trackLabel`),children:L?f:d})]})]})});sm.classes={...em,...Hu},sm.displayName=`@mantine/core/Switch`,sm.Group=im;var[cm,lm]=Ye(`Table component was not found in the tree`),um={table:`m_b23fa0ef`,th:`m_4e7aa4f3`,tr:`m_4e7aa4fd`,td:`m_4e7aa4ef`,tbody:`m_b2404537`,thead:`m_b242d975`,caption:`m_9e5a3ac7`,scrollContainer:`m_a100c15`,scrollContainerInner:`m_62259741`};function dm(e,t){if(!t)return;let n={};return t.columnBorder&&e.withColumnBorders&&(n[`data-with-column-border`]=!0),t.rowBorder&&e.withRowBorders&&(n[`data-with-row-border`]=!0),t.striped&&e.striped&&(n[`data-striped`]=e.striped),t.highlightOnHover&&e.highlightOnHover&&(n[`data-hover`]=!0),t.captionSide&&e.captionSide&&(n[`data-side`]=e.captionSide),t.stickyHeader&&e.stickyHeader&&(n[`data-sticky`]=!0),n}function fm(e,t){let n=`Table${e.charAt(0).toUpperCase()}${e.slice(1)}`,r=q((r,i)=>{let a=G(n,{},r),{classNames:o,className:s,style:c,styles:l,...u}=a,d=lm();return(0,B.jsx)(K,{component:e,ref:i,...dm(d,t),...d.getStyles(e,{className:s,classNames:o,style:c,styles:l,props:a}),...u})});return r.displayName=`@mantine/core/${n}`,r.classes=um,r}var pm=fm(`th`,{columnBorder:!0}),mm=fm(`td`,{columnBorder:!0}),hm=fm(`tr`,{rowBorder:!0,striped:!0,highlightOnHover:!0}),gm=fm(`thead`,{stickyHeader:!0}),_m=fm(`tbody`),vm=fm(`tfoot`),ym=fm(`caption`,{captionSide:!0});function bm({data:e}){return(0,B.jsxs)(B.Fragment,{children:[e.caption&&(0,B.jsx)(ym,{children:e.caption}),e.head&&(0,B.jsx)(gm,{children:(0,B.jsx)(hm,{children:e.head.map((e,t)=>(0,B.jsx)(pm,{children:e},t))})}),e.body&&(0,B.jsx)(_m,{children:e.body.map((e,t)=>(0,B.jsx)(hm,{children:e.map((e,t)=>(0,B.jsx)(mm,{children:e},t))},t))}),e.foot&&(0,B.jsx)(vm,{children:(0,B.jsx)(hm,{children:e.foot.map((e,t)=>(0,B.jsx)(pm,{children:e},t))})})]})}bm.displayName=`@mantine/core/TableDataRenderer`;var xm={type:`scrollarea`},Sm=U((e,{minWidth:t,maxHeight:n,type:r})=>({scrollContainer:{"--table-min-width":z(t),"--table-max-height":z(n),"--table-overflow":r===`native`?`auto`:void 0}})),Cm=q((e,t)=>{let n=G(`TableScrollContainer`,xm,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,children:l,minWidth:u,maxHeight:d,type:f,scrollAreaProps:p,attributes:m,...h}=n,g=W({name:`TableScrollContainer`,classes:um,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:m,vars:c,varsResolver:Sm,rootSelector:`scrollContainer`});return(0,B.jsx)(K,{component:f===`scrollarea`?zs:`div`,...f===`scrollarea`?d?{offsetScrollbars:`xy`,...p}:{offsetScrollbars:`x`,...p}:{},ref:t,...g(`scrollContainer`),...h,children:(0,B.jsx)(`div`,{...g(`scrollContainerInner`),children:l})})});Cm.classes=um,Cm.displayName=`@mantine/core/TableScrollContainer`;var wm={withRowBorders:!0,verticalSpacing:7},Tm=U((e,{layout:t,captionSide:n,horizontalSpacing:r,verticalSpacing:i,borderColor:a,stripedColor:o,highlightOnHoverColor:s,striped:c,highlightOnHover:l,stickyHeaderOffset:u,stickyHeader:d})=>({table:{"--table-layout":t,"--table-caption-side":n,"--table-horizontal-spacing":tt(r),"--table-vertical-spacing":tt(i),"--table-border-color":a?Dn(a,e):void 0,"--table-striped-color":c&&o?Dn(o,e):void 0,"--table-highlight-on-hover-color":l&&s?Dn(s,e):void 0,"--table-sticky-header-offset":d?z(u):void 0}})),Em=q((e,t)=>{let n=G(`Table`,wm,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,horizontalSpacing:l,verticalSpacing:u,captionSide:d,stripedColor:f,highlightOnHoverColor:p,striped:m,highlightOnHover:h,withColumnBorders:g,withRowBorders:_,withTableBorder:v,borderColor:y,layout:b,variant:x,data:S,children:C,stickyHeader:w,stickyHeaderOffset:T,mod:E,tabularNums:D,attributes:O,...k}=n,A=W({name:`Table`,props:n,className:i,style:a,classes:um,classNames:r,styles:o,unstyled:s,attributes:O,rootSelector:`table`,vars:c,varsResolver:Tm});return(0,B.jsx)(cm,{value:{getStyles:A,stickyHeader:w,striped:m===!0?`odd`:m||void 0,highlightOnHover:h,withColumnBorders:g,withRowBorders:_,captionSide:d||`bottom`},children:(0,B.jsx)(K,{component:`table`,variant:x,ref:t,mod:[{"data-with-table-border":v,"data-tabular-nums":D},E],...A(`table`),...k,children:C||!!S&&(0,B.jsx)(bm,{data:S})})})});Em.classes=um,Em.displayName=`@mantine/core/Table`,Em.Td=mm,Em.Th=pm,Em.Tr=hm,Em.Thead=gm,Em.Tbody=_m,Em.Tfoot=vm,Em.Caption=ym,Em.ScrollContainer=Cm,Em.DataRenderer=bm;function Dm({data:e,value:t}){let n=t.map(e=>e.trim().toLowerCase());return e.reduce((e,t)=>(Ku(t)?e.push({group:t.group,items:t.items.filter(e=>n.indexOf(e.label.toLowerCase().trim())===-1)}):n.indexOf(t.label.toLowerCase().trim())===-1&&e.push(t),e),[])}function Om(e,t){return e?t.split(RegExp(`[${e.join(``)}]`)).map(e=>e.trim()).filter(e=>e!==``):[t]}function km({splitChars:e,allowDuplicates:t,maxTags:n,value:r,currentTags:i}){let a=Om(e,r),o=t?[...i,...a]:[...new Set([...i,...a])];return n?o.slice(0,n):o}var Am={maxTags:1/0,acceptValueOnBlur:!0,splitChars:[`,`],hiddenInputValuesDivider:`,`,openOnFocus:!0,size:`sm`},jm=q((e,t)=>{let n=G(`TagsInput`,Am,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,size:l,value:u,defaultValue:d,onChange:f,onKeyDown:p,maxTags:m,allowDuplicates:h,onDuplicate:g,variant:_,data:v,dropdownOpened:b,defaultDropdownOpened:x,onDropdownOpen:S,onDropdownClose:C,selectFirstOptionOnChange:w,selectFirstOptionOnDropdownOpen:T,onOptionSubmit:E,comboboxProps:D,filter:O,limit:k,withScrollArea:A,maxDropdownHeight:j,searchValue:M,defaultSearchValue:N,onSearchChange:P,readOnly:F,disabled:ee,splitChars:I,onFocus:L,onBlur:te,onPaste:ne,radius:re,rightSection:ie,rightSectionWidth:ae,rightSectionPointerEvents:R,rightSectionProps:oe,leftSection:se,leftSectionWidth:ce,leftSectionPointerEvents:le,leftSectionProps:ue,inputContainer:de,inputWrapperOrder:fe,withAsterisk:pe,required:me,labelProps:he,descriptionProps:ge,errorProps:_e,wrapperProps:ve,description:ye,label:be,error:xe,withErrorStyles:Se,name:Ce,form:we,id:Te,clearable:Ee,clearButtonProps:De,hiddenInputProps:Oe,hiddenInputValuesDivider:ke,mod:Ae,renderOption:je,onRemove:Me,onClear:Ne,scrollAreaProps:Pe,acceptValueOnBlur:Fe,isDuplicate:Ie,openOnFocus:Le,attributes:Re,...ze}=n,Be=Pt(Te),Ve=cu(v),He=lu(Ve),Ue=(0,y.useRef)(null),z=Rt(Ue,t),We=Lu({opened:b,defaultOpened:x,onDropdownOpen:()=>{S?.(),T&&We.selectFirstOption()},onDropdownClose:()=>{C?.(),We.resetSelectedOption()}}),{styleProps:Ge,rest:{type:Ke,autoComplete:qe,...Je}}=Nr(ze),[Ye,Xe]=H({value:u,defaultValue:d,finalValue:[],onChange:f}),[Ze,Qe]=H({value:M,defaultValue:N,finalValue:``,onChange:P}),$e=e=>{Qe(e),We.resetSelectedOption()},et=W({name:`TagsInput`,classes:{},props:n,classNames:r,styles:o,unstyled:s}),{resolvedClassNames:V,resolvedStyles:tt}=dr({props:n,styles:o,classNames:r}),nt=e=>{let t=Ie?Ie(e,Ye):Ye.some(t=>t.toLowerCase()===e.toLowerCase());t&&g?.(e),(!t||t&&h)&&Ye.length<m&&(E?.(e),$e(``),e.length>0&&Xe([...Ye,e]))},rt=e=>{if(p?.(e),e.isPropagationStopped())return;let t=Ze.trim(),{length:n}=t;if(I.includes(e.key)&&n>0&&(Xe(km({splitChars:I,allowDuplicates:h,maxTags:m,value:Ze,currentTags:Ye})),$e(``),e.preventDefault()),e.key===`Enter`&&n>0&&!e.nativeEvent.isComposing){if(e.preventDefault(),document.querySelector(`#${We.listId} [data-combobox-option][data-combobox-selected]`))return;nt(t)}e.key===`Backspace`&&n===0&&Ye.length>0&&!e.nativeEvent.isComposing&&!F&&(Me?.(Ye[Ye.length-1]),Xe(Ye.slice(0,Ye.length-1)))},it=e=>{if(ne?.(e),e.preventDefault(),e.clipboardData){let t=e.clipboardData.getData(`text/plain`);Xe(km({splitChars:I,allowDuplicates:h,maxTags:m,value:`${Ze}${t}`,currentTags:Ye})),$e(``)}},at=Ye.map((e,t)=>(0,B.jsx)(nf,{withRemoveButton:!F,onRemove:()=>{let n=Ye.slice();n.splice(t,1),Xe(n),Me?.(e)},unstyled:s,disabled:ee,attributes:Re,...et(`pill`),children:e},`${e}-${t}`));(0,y.useEffect)(()=>{w&&We.selectFirstOption()},[w,Ye,Ze]);let ot=(0,B.jsx)(Bu.ClearButton,{...De,onClear:()=>{Xe([]),$e(``),Ue.current?.focus(),We.openDropdown(),Ne?.()}});return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(Bu,{store:We,classNames:V,styles:tt,unstyled:s,size:l,readOnly:F,__staticSelector:`TagsInput`,attributes:Re,onOptionSubmit:e=>{E?.(e),$e(``),Ye.length<m&&Xe([...Ye,He[e].label]),We.resetSelectedOption()},...D,children:[(0,B.jsx)(Bu.DropdownTarget,{children:(0,B.jsx)(cf,{...Ge,__staticSelector:`TagsInput`,classNames:V,styles:tt,unstyled:s,size:l,className:i,style:a,variant:_,disabled:ee,radius:re,rightSection:ie,__clearSection:ot,__clearable:Ee&&Ye.length>0&&!ee&&!F,rightSectionWidth:ae,rightSectionPointerEvents:R,rightSectionProps:oe,leftSection:se,leftSectionWidth:ce,leftSectionPointerEvents:le,leftSectionProps:ue,inputContainer:de,inputWrapperOrder:fe,withAsterisk:pe,required:me,labelProps:he,descriptionProps:ge,errorProps:_e,wrapperProps:ve,description:ye,label:be,error:xe,withErrorStyles:Se,__stylesApiProps:{...n,multiline:!0},id:Be,mod:Ae,attributes:Re,children:(0,B.jsxs)(nf.Group,{disabled:ee,unstyled:s,...et(`pillsList`),children:[at,(0,B.jsx)(Bu.EventsTarget,{autoComplete:qe,children:(0,B.jsx)(cf.Field,{...Je,ref:z,...et(`inputField`),unstyled:s,onKeyDown:rt,onFocus:e=>{L?.(e),Le&&We.openDropdown()},onBlur:e=>{te?.(e),Fe&&nt(Ze),We.closeDropdown()},onPaste:it,value:Ze,onChange:e=>$e(e.currentTarget.value),required:me&&Ye.length===0,disabled:ee,readOnly:F,id:Be})})]})})}),(0,B.jsx)(Qu,{data:Dm({data:Ve,value:Ye}),hidden:F||ee,filter:O,search:Ze,limit:k,hiddenWhenEmpty:!0,withScrollArea:A,maxDropdownHeight:j,unstyled:s,labelId:be?`${Be}-label`:void 0,"aria-label":be?void 0:ze[`aria-label`],renderOption:je,scrollAreaProps:Pe})]}),(0,B.jsx)(Bu.HiddenInput,{name:Ce,form:we,value:Ye,valuesDivider:ke,disabled:ee,...Oe})]})});jm.classes={...wl.classes,...Bu.classes},jm.displayName=`@mantine/core/TagsInput`;var Mm=q((e,t)=>(0,B.jsx)(wl,{component:`input`,ref:t,...G(`TextInput`,null,e),__staticSelector:`TextInput`}));Mm.classes=wl.classes,Mm.displayName=`@mantine/core/TextInput`;var Nm=[`h1`,`h2`,`h3`,`h4`,`h5`,`h6`],Pm=[`xs`,`sm`,`md`,`lg`,`xl`];function Fm(e,t){let n=t===void 0?`h${e}`:t;return Nm.includes(n)?{fontSize:`var(--mantine-${n}-font-size)`,fontWeight:`var(--mantine-${n}-font-weight)`,lineHeight:`var(--mantine-${n}-line-height)`}:Pm.includes(n)?{fontSize:`var(--mantine-font-size-${n})`,fontWeight:`var(--mantine-h${e}-font-weight)`,lineHeight:`var(--mantine-h${e}-line-height)`}:{fontSize:z(n),fontWeight:`var(--mantine-h${e}-font-weight)`,lineHeight:`var(--mantine-h${e}-line-height)`}}var Im={root:`m_8a5d1357`},Lm={order:1},Rm=U((e,{order:t,size:n,lineClamp:r,textWrap:i})=>{let a=Fm(t||1,n);return{root:{"--title-fw":a.fontWeight,"--title-lh":a.lineHeight,"--title-fz":a.fontSize,"--title-line-clamp":typeof r==`number`?r.toString():void 0,"--title-text-wrap":i}}}),zm=q((e,t)=>{let n=G(`Title`,Lm,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,order:c,vars:l,size:u,variant:d,lineClamp:f,textWrap:p,mod:m,attributes:h,...g}=n,_=W({name:`Title`,props:n,classes:Im,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:h,vars:l,varsResolver:Rm});return[1,2,3,4,5,6].includes(c)?(0,B.jsx)(K,{..._(`root`),component:`h${c}`,variant:d,ref:t,mod:[{order:c,"data-line-clamp":typeof f==`number`},m],size:u,...g}):null});zm.classes=Im,zm.displayName=`@mantine/core/Title`;var Bm=o((e=>{var t=_i();e.createRoot=t.createRoot,e.hydrateRoot=t.hydrateRoot}))(),Vm=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??Hm(this)}};function Hm(e){let t=Xm(e),n=Zm(e.body),r=n?`${Qm(e,t)} Request ID: ${n}`:Qm(e,t);return e.status===401?{kind:`unauthenticated`,adminStatus:Ym(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 Um(e={}){let t=Km(e.fetch??fetch),n=e.idempotencyKey??eh;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`)},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":Gm(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":Gm(`delete`,e.name)},body:JSON.stringify({revision:e.revision,previewFingerprint:e.previewFingerprint,confirmationFacts:{previewConfirmed:e.previewFingerprint,presetNameConfirmed:e.name}})})},async listConfiguredServers(){return(await t(`/admin/api/configured-servers`)).servers??[]},getConfiguredServerDetail(e){return t(`/admin/api/configured-servers/${encodeURIComponent(e)}`)},previewConfiguredServerEdit(e){return t(`/admin/api/configured-servers/${encodeURIComponent(e.name)}/preview`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken},body:JSON.stringify({edit:e.edit,...e.connectivityCheck?{connectivityCheck:e.connectivityCheck}:{}})})},applyConfiguredServerEdit(e){return t(`/admin/api/configured-servers/${encodeURIComponent(e.name)}/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})})},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 Wm(e){return`admin-console-server-apply-${th(e)}-${Date.now()}-${crypto.getRandomValues(new Uint32Array(2)).join(`-`)}`}function Gm(e,t){return`admin-console-preset-${e}-${th(t)}-${Date.now()}-${crypto.getRandomValues(new Uint32Array(2)).join(`-`)}`}function Km(e){return async function(t,n={}){let r={"Content-Type":`application/json`,"X-Admin-UI-Build-Version":`0.35.0-beta.2`,"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 Vm(0,{},e,{kind:`unavailable`,message:e})}let a=await qm(i);if(!i.ok)throw new Vm(i.status,a,Jm(a,i.statusText));return a}}async function qm(e){try{return await e.json()}catch{return{}}}function Jm(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 Ym(e){return e&&typeof e==`object`&&e.adminStatus===`setupRequired`?`setupRequired`:`loginRequired`}function Xm(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 Zm(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 Qm(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=$m(e.body);if(t)return t}return`The Admin Console request failed. Refresh the console and try again.`}}function $m(e){if(!e||typeof e!=`object`)return null;let t=e.message;return typeof t==`string`&&t.trim().length>0?t.trim():null}function eh(e){let t=crypto.getRandomValues(new Uint32Array(2)).join(`-`);return`admin-console-${e.action}-${th(e.targetName)}-${Date.now()}-${t}`}function th(e){return encodeURIComponent(e).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}var nh=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),rh=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),ih=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),ah=e=>{let t=ih(e);return t.charAt(0).toUpperCase()+t.slice(1)},oh={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},sh=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},ch=(0,y.createContext)({}),lh=()=>(0,y.useContext)(ch),uh=(0,y.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f=`currentColor`,className:p=``}=lh()??{},m=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,y.createElement)(`svg`,{ref:c,...oh,width:t??l??oh.width,height:t??l??oh.height,stroke:e??f,strokeWidth:m,className:nh(`lucide`,p,i),...!a&&!sh(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,y.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),dh=(e,t)=>{let n=(0,y.forwardRef)(({className:n,...r},i)=>(0,y.createElement)(uh,{ref:i,iconNode:t,className:nh(`lucide-${rh(ah(e))}`,`lucide-${e}`,n),...r}));return n.displayName=ah(e),n},fh=dh(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),ph=dh(`boxes`,[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`,key:`lc1i9w`}],[`path`,{d:`m7 16.5-4.74-2.85`,key:`1o9zyk`}],[`path`,{d:`m7 16.5 5-3`,key:`va8pkn`}],[`path`,{d:`M7 16.5v5.17`,key:`jnp8gn`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`,key:`8zsnat`}],[`path`,{d:`m17 16.5-5-3`,key:`8arw3v`}],[`path`,{d:`m17 16.5 4.74-2.85`,key:`8rfmw`}],[`path`,{d:`M17 16.5v5.17`,key:`k6z78m`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`,key:`1xygjf`}],[`path`,{d:`M12 8 7.26 5.15`,key:`1vbdud`}],[`path`,{d:`m12 8 4.74-2.85`,key:`3rx089`}],[`path`,{d:`M12 13.5V8`,key:`1io7kd`}]]),mh=dh(`clipboard`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}]]),hh=dh(`file-clock`,[[`path`,{d:`M16 22h2a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v2.85`,key:`ryk6xj`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 14v2.2l1.6 1`,key:`6m4bie`}],[`circle`,{cx:`8`,cy:`16`,r:`6`,key:`10v15b`}]]),gh=dh(`gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),_h=dh(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),vh=dh(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),yh=dh(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),bh=dh(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),xh=dh(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),Sh=dh(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),Ch=dh(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),wh=dh(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Th=dh(`server-cog`,[[`path`,{d:`m10.852 14.772-.383.923`,key:`11vil6`}],[`path`,{d:`M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923`,key:`1v3clb`}],[`path`,{d:`m13.148 9.228.383-.923`,key:`t2zzyc`}],[`path`,{d:`m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544`,key:`1bxfiv`}],[`path`,{d:`m14.772 10.852.923-.383`,key:`k9m8cz`}],[`path`,{d:`m14.772 13.148.923.383`,key:`1xvhww`}],[`path`,{d:`M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5`,key:`tn8das`}],[`path`,{d:`M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5`,key:`1g2pve`}],[`path`,{d:`M6 18h.01`,key:`uhywen`}],[`path`,{d:`M6 6h.01`,key:`1utrut`}],[`path`,{d:`m9.228 10.852-.923-.383`,key:`1wtb30`}],[`path`,{d:`m9.228 13.148-.923.383`,key:`1a830x`}]]),Eh=dh(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Dh=dh(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),Oh=dh(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),kh=dh(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]);function Ah(e,t,n){let r=t.trim().toLowerCase();return e.filter(e=>{let t=!r||e.id.toLowerCase().includes(r)||Ih(e).some(e=>e.toLowerCase().includes(r))||Fh(e).toLowerCase().includes(r)||Ph(e.transport).toLowerCase().includes(r),i=n===`all`||n===`enabled`&&e.enabled||n===`disabled`&&!e.enabled;return t&&i})}function jh(e){return e.filter(e=>e.enabled).length}function Mh(e){return e.filter(e=>!e.enabled).length}function Nh(e){return!!e.requiresOAuth&&(e.status!==`connected`||!!e.lastError)}function Ph(e){return typeof e.command==`string`?e.command:typeof e.url==`string`?e.url:typeof e.type==`string`?e.type:`configured`}function Fh(e){return e.transportSummary?.label??Ph(e.transport)}function Ih(e){return Array.isArray(e.tags)?e.tags:[]}function Lh(e){return e.mutationAvailability?.available??!0}function Rh(e,t){return e.actionState?.[t]??{available:!0,label:t===`enable`?`Enable ${e.id}`:`Disable ${e.id}`}}function zh(e){let t=e.connectivityCheck;return t.status===`skipped`?Vh(t.reason):t.status===`failed`?t.message:t.checkedAt?`Checked at ${t.checkedAt}`:void 0}function Bh(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 Vh(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 Hh(e){switch(e){case`rename`:return`violet`;case`connection_critical`:return`red`;case`secret`:return`grape`;case`template_risk`:return`orange`;default:return`gray`}}function Uh(e){switch(e){case`rename`:return`rename`;case`connection_critical`:return`connection critical`;case`secret`:return`secret`;case`template_risk`:return`template risk`;default:return e}}function Wh(e){return e.secretInputs.length===0?`No secret inputs`:`${e.secretInputs.length} redacted`}function Gh(e){return e?.runtimeVersion??`unknown`}function Kh(e){return e?.externalUrl??`not reported`}function qh(e){return e.view===`setupRequired`?`Setup required`:e.view}function Jh(e){return e.view===`setupRequired`?`yellow`:e.view===`console`?`teal`:`gray`}function Yh(e){return e.replace(/([A-Z])/g,` $1`).toLowerCase()}function Xh({state:e}){let t=e.status?.about;return t?(0,B.jsxs)(`section`,{"aria-labelledby":`about-title`,className:`operations-workspace`,children:[(0,B.jsx)(Z,{className:`eyebrow`,size:`xs`,children:`Product and protocol metadata`}),(0,B.jsxs)(zm,{id:`about-title`,order:2,children:[`About `,t.productName]}),t.protocolCompatible?null:(0,B.jsxs)(Ml,{color:`red`,title:`Admin UI protocol incompatibility`,children:[`This Admin UI build expects protocol `,t.adminUiProtocolVersion??`Unavailable`,`, but the runtime exposes`,` `,t.adminApiProtocolVersion,`.`]}),(0,B.jsxs)(Xp,{cols:{base:1,md:2},mt:`md`,children:[(0,B.jsx)(Zh,{title:`Versions`,values:[[`Runtime Version`,t.runtimeVersion],[`Admin UI Build Version`,t.adminUiBuildVersion??`Unavailable`],[`Admin API Protocol Version`,t.adminApiProtocolVersion],[`Admin UI Protocol Version`,t.adminUiProtocolVersion??`Unavailable`]]}),(0,B.jsx)(Zh,{title:`Runtime Scope`,values:[[`Runtime Scope ID`,t.runtime.runtimeScopeId],[`External URL`,t.runtime.externalUrl??`Unavailable`]]}),(0,B.jsx)(Zh,{title:`Build`,values:[[`Commit`,t.build.commit??`Unavailable`],[`Build timestamp`,t.build.timestamp??`Unavailable`]]}),(0,B.jsxs)(Js,{withBorder:!0,p:`md`,children:[(0,B.jsx)(zm,{order:3,children:`Project`}),(0,B.jsxs)($,{gap:`xs`,mt:`sm`,children:[t.project.repository?(0,B.jsx)(Qh,{label:`Repository`,href:t.project.repository}):(0,B.jsx)(Z,{children:`Repository · Unavailable`}),t.project.documentation?(0,B.jsx)(Qh,{label:`Documentation`,href:t.project.documentation}):(0,B.jsx)(Z,{children:`Documentation · Unavailable`}),t.project.issues?(0,B.jsx)(Qh,{label:`Report an issue`,href:t.project.issues}):(0,B.jsx)(Z,{children:`Issue reporting · Unavailable`}),(0,B.jsxs)(Z,{children:[`License · `,t.project.license??`Unavailable`]})]})]})]})]}):(0,B.jsx)(Ml,{children:`About metadata is unavailable.`})}function Zh({title:e,values:t}){return(0,B.jsxs)(Js,{withBorder:!0,p:`md`,children:[(0,B.jsx)(zm,{order:3,children:e}),(0,B.jsx)($,{gap:`xs`,mt:`sm`,children:t.map(([e,t])=>(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,children:e}),(0,B.jsx)(Z,{children:t})]},e))})]})}function Qh({label:e,href:t}){return(0,B.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`${e} (opens in a new tab)`,children:e})}function $h({label:e,value:t,meta:n,description:r,copyLabel:i,copyValue:a,onCopyText:o}){let s=a??t;return(0,B.jsxs)(X,{className:`detail-row`,justify:`space-between`,wrap:`nowrap`,children:[(0,B.jsxs)(`div`,{className:`detail-row-main`,children:[(0,B.jsx)(Z,{fw:700,children:e}),(0,B.jsx)(Z,{className:`truncate`,size:`sm`,children:t}),n?(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:n}):null,r?(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:r}):null]}),i&&s!==`-`?(0,B.jsx)(Q,{"aria-label":`Copy ${Yh(i)}`,size:`compact-xs`,variant:`subtle`,leftSection:(0,B.jsx)(mh,{size:14}),onClick:()=>void o?.(i,s),children:`Copy`}):null]})}function eg({title:e,utility:t,icon:n,children:r}){return(0,B.jsx)(Js,{component:`section`,className:`operations-panel`,withBorder:!0,children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`center`,children:[(0,B.jsxs)(X,{gap:`xs`,children:[n,(0,B.jsx)(zm,{order:3,children:e})]}),(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:t})]}),r]})})}function tg({message:e}){return(0,B.jsx)(Z,{c:`dimmed`,children:e})}function ng(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`||!og(e,i))continue;let r=rg(e.fieldPath),a=fg(e,t[r]);if(mg(a)===mg(fg(e,n[r])))continue;let c=e.fieldPath[0];c===`id`?o.id=String(a??``):c===`enabled`?o.enabled=!!a:c===`tags`?o.tags=sg(a):c===`transport`&&e.fieldPath.length>1?pg(s,e.fieldPath.slice(1),a):c&&pg(o,e.fieldPath,a)}let c=Object.values(r).filter(t=>{let n=e.flatMap(e=>e.fields).find(e=>rg(e.fieldPath)===rg(t.fieldPath));return!n||og(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 rg(e){return e.join(`\0`)}function ig(e){return fg(e,e.value)}function ag(e,t){let n=e[rg([`transport`,`type`])]??t;return n===`stdio`||n===`http`||n===`sse`||n===`streamableHttp`?n:void 0}function og(e,t){return!t||!e.applicableTransportTypes||e.applicableTransportTypes.includes(t)}function sg(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function cg(e){return e.split(/\r?\n/u).map(e=>e.trim()).filter(Boolean)}function lg(e){return!e||typeof e!=`object`||Array.isArray(e)?{}:{...e}}function ug(e){return Array.isArray(e)?e.join(`, `):e&&typeof e==`object`?Object.keys(e).length>0?Object.keys(e).join(`, `):`-`:String(e??`-`)}function dg(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(dg).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`?`${gg(t.kind)}: ${t.value}`:Object.entries(t).map(([e,t])=>`${e}: ${hg(e)?`[REDACTED]`:dg(t)}`).join(`; `)}function fg(e,t){return e.control===`switch`?!!t:e.control===`tag-list`||e.control===`string-list`?sg(t):e.control===`record`?lg(t):e.control===`number`?typeof t==`number`?t:void 0:e.control===`text`||e.control===`select`?String(t??``):t}function pg(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 mg(e){return JSON.stringify(e)}function hg(e){return/authorization|password|secret|token/iu.test(e)}function gg(e){return e.replace(/([A-Z])/g,` $1`).toLowerCase()}function _g(){return{status:`list`}}function vg(e){if(e.status!==`loaded`)return{};let t=ag(e.fieldDraft,e.detail.server.transport.type);return ng(e.detail.editContract.fieldGroups,e.fieldDraft,e.initialFieldDraft,e.secretDraft,t,e.clearedTransportOverrides)}function yg(e,t){switch(t.type){case`closed`:return _g();case`detailLoadStarted`:return{status:`loading`,serverId:t.serverId};case`detailLoaded`:return bg(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:xg(e,{fieldDraft:{...e.fieldDraft,[rg(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:xg(e,{secretDraft:{...e.secretDraft,[rg(t.fieldPath)]:t.value}});case`transportOverrideChanged`:return e.status!==`loaded`||e.applyBusy?e:xg(e,{clearedTransportOverrides:t.clear?Array.from(new Set([...e.clearedTransportOverrides,t.key])):e.clearedTransportOverrides.filter(e=>e!==t.key)});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:Sg(t.result)}:e;case`applySucceeded`:return{...bg(t.serverId,t.detail),applySuccess:`Changes applied to ${t.result.targetName}.`,applyWarning:Sg(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 bg(e,t){let n={},r={};for(let e of t.editContract.fieldGroups)for(let t of e.fields){let e=rg(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]=ig(t)}return{status:`loaded`,serverId:e,detail:t,fieldDraft:n,initialFieldDraft:n,secretDraft:r,clearedTransportOverrides:[],dirty:!1,previewBusy:!1,applyBusy:!1}}function xg(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(vg(n)).length>0}}function Sg(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 Cg({api:e,session:t,browser:n,onUnauthenticated:r,onApplied:i,onPathCommitted:a}){let[o,s]=(0,y.useReducer)(yg,void 0,_g),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)(0),m=(0,y.useRef)(0),h=(0,y.useRef)(!1),g=(0,y.useRef)();c.current=o,l.current=t,u.current=e,d.current=r;let _=(0,y.useCallback)(()=>{f.current+=1,p.current+=1,m.current+=1,h.current=!1,g.current=void 0,s({type:`closed`})},[]),v=(0,y.useCallback)(e=>!(e instanceof Vm)||e.failure.kind!==`unauthenticated`?!1:(_(),d.current(e.failure.adminStatus),!0),[_]),b=(0,y.useCallback)(async e=>{let t=l.current;if(!t)return;m.current+=1,g.current=void 0;let n=t.csrfToken,r=f.current+1;f.current=r,p.current+=1,s({type:`detailLoadStarted`,serverId:e});try{let t=await u.current.getConfiguredServerDetail(e);if(r!==f.current||l.current?.csrfToken!==n)return;s({type:`detailLoaded`,serverId:e,detail:t})}catch(t){if(r!==f.current||l.current?.csrfToken!==n||v(t))return;if(t instanceof Vm&&t.failure.kind===`configuredServerNotFound`){s({type:`detailMissing`,serverId:e});return}s({type:`detailFailed`,serverId:e,message:`Server detail failed: ${Dg(t)}`})}},[v]),x=(0,y.useCallback)(async e=>{let t=c.current;t.status===`loaded`&&t.serverId!==e&&t.dirty&&!await Eg(n)||(n.push(Og(e)),await b(e))},[n,b]),S=(0,y.useCallback)(async(e=`/admin`)=>{let t=c.current;return t.status===`loaded`&&t.dirty&&!await Eg(n)?!1:(n.push(e),_(),!0)},[n,_]),C=(0,y.useCallback)((e,t)=>{p.current+=1,g.current=void 0,s({type:`fieldChanged`,fieldPath:e,value:t})},[]),w=(0,y.useCallback)((e,t)=>{p.current+=1,g.current=void 0,s({type:`secretChanged`,fieldPath:e,value:t})},[]),T=(0,y.useCallback)((e,t)=>{p.current+=1,g.current=void 0,s({type:`transportOverrideChanged`,key:e,clear:t})},[]),E=(0,y.useCallback)(async(e=`auto`)=>{let t=l.current,n=c.current;if(!t||n.status!==`loaded`)return;let r=t.csrfToken,i=n.serverId,a=p.current+1;p.current=a,s({type:`previewStarted`});try{let t=await u.current.previewConfiguredServerEdit({name:i,csrfToken:r,connectivityCheck:e,edit:vg(n)});if(a!==p.current||l.current?.csrfToken!==r)return;let o=c.current;if(o.status!==`loaded`||o.serverId!==i)return;g.current?.previewFingerprint!==t.preview.previewFingerprint&&(g.current=void 0),s({type:`previewSucceeded`,preview:t.preview})}catch(e){if(a!==p.current||l.current?.csrfToken!==r)return;v(e)||s({type:`previewFailed`,message:`Preview failed: ${Dg(e)}`})}},[v]),D=(0,y.useCallback)(async()=>{if(h.current)return;let e=l.current,t=c.current;if(!(!e||t.status!==`loaded`||!t.preview)&&wg(t).eligible){h.current=!0;try{let r=t.preview,a=Array.from(new Set(r.diff.flatMap(e=>e.riskFlags))),o=r.connectivityCheck.status===`failed`;if(!await n.confirm({title:o?`Apply despite failed connectivity to ${r.proposedTargetName}?`:`Apply changes to ${r.proposedTargetName}?`,message:o?`The bounded connectivity check failed. Applying may make this configured server unavailable.`:`This writes the validated configuration and reloads the Runtime Scope.`,confirmLabel:o?`Apply despite failure`:`Apply changes`,tone: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 c=e.csrfToken,d=t.serverId,f=m.current+1;m.current=f;let p=g.current?.previewFingerprint===r.previewFingerprint?g.current:{previewFingerprint:r.previewFingerprint,idempotencyKey:Wm(d)};g.current=p,s({type:`applyStarted`});let h;try{h=await u.current.applyConfiguredServerEdit({name:d,csrfToken:c,idempotencyKey:p.idempotencyKey,edit:vg(t),previewFingerprint:r.previewFingerprint,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}:{}}})}catch(e){if(f!==m.current||l.current?.csrfToken!==c)return;if(!v(e)){let t=Tg(e);t&&(g.current=void 0),s({type:`applyFailed`,message:`Apply failed: ${Dg(e)}`,clearPreview:t})}return}if(f!==m.current||l.current?.csrfToken!==c)return;g.current=void 0;let _=h.result.targetName;_!==d&&n.replace(Og(_)),s({type:`applyCommitted`,serverId:_,result:h.result});try{await i?.()}catch{}try{let e=await u.current.getConfiguredServerDetail(_);if(f!==m.current||l.current?.csrfToken!==c)return;s({type:`applySucceeded`,serverId:_,detail:e,result:h.result})}catch(e){if(f!==m.current||l.current?.csrfToken!==c)return;v(e)||s({type:`applyRefreshFailed`,message:`Changes were applied, but server detail could not be refreshed: ${Dg(e)}`})}}finally{h.current=!1}}},[n,v,i]);return(0,y.useEffect)(()=>{if(!t){_();return}let e=kg(n.pathname());e?b(e):_()},[n,b,_,t?.csrfToken]),(0,y.useEffect)(()=>n.subscribePopState(()=>{(async()=>{let e=c.current,t=n.pathname(),r=kg(t);if(e.status===`loaded`&&r!==e.serverId&&e.dirty){if(n.replace(Og(e.serverId)),!await Eg(n))return;n.replace(t)}r?b(r):_(),a?.(t)})()}),[n,b,a,_]),{state:o,open:x,close:S,changeField:C,changeSecret:w,changeTransportOverride:T,preview:E,apply:D}}function wg(e){if(e.status!==`loaded`||!e.preview)return{eligible:!1,reason:`Preview changes first.`};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.`};let t=e.preview.diff.some(e=>e.riskFlags.includes(`connection_critical`)),n=ag(e.fieldDraft,e.detail.server.transport.type);return(vg(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 Tg(e){return e instanceof Vm&&e.failure.kind===`rejected`&&e.failure.code===`configured_server_stale_preview`}function Eg(e){return e.confirm({title:`Discard unsaved changes?`,message:`Your configured-server draft and preview will be lost.`,confirmLabel:`Discard changes`,tone:`danger`})}function Dg(e){if(e instanceof Vm)return e.failure.message;throw e}function Og(e){return`/admin/servers/${encodeURIComponent(e)}`}function kg(e){if(!e.startsWith(`/admin/servers/`))return null;let t=e.slice(15).split(`#`,1)[0];if(!t)return null;try{return decodeURIComponent(t)}catch{return t}}function Ag(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 jg({field:e,value:t,onChange:n}){return!e.editable||e.control===`readonly`?(0,B.jsx)($h,{label:e.label,value:ug(t)}):e.control===`switch`?(0,B.jsx)(sm,{label:e.label,checked:!!t,onChange:e=>n(e.currentTarget.checked)}):e.control===`tag-list`?(0,B.jsx)(jm,{label:e.label,value:sg(t),onChange:n}):e.control===`select`?(0,B.jsx)(ff,{label:e.label,value:String(t??``),data:e.options??[],onChange:e=>n(e.currentTarget.value)}):e.control===`number`?(0,B.jsx)(gp,{label:e.label,value:typeof t==`number`?t:``,onChange:e=>n(e===``?void 0:e)}):e.control===`string-list`?(0,B.jsx)(zd,{label:e.label,value:sg(t).join(`
61
- `),autosize:!0,minRows:2,onChange:e=>n(cg(e.currentTarget.value))}):e.control===`record`?(0,B.jsx)(Mg,{label:e.label,value:lg(t),onChange:n}):(0,B.jsx)(Mm,{label:e.label,value:String(t??``),onChange:e=>n(e.currentTarget.value)})}function Mg({label:e,value:t,onChange:n}){let[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(``);function s(e,r){n({...t,[e]:r})}function c(e){let r={...t};delete r[e],n(r)}function l(){let e=r.trim();e&&(n({...t,[e]:a}),i(``),o(``))}return(0,B.jsxs)($,{className:`record-editor`,gap:`xs`,children:[(0,B.jsx)(Z,{fw:700,children:e}),Object.entries(t).map(([t,n])=>(0,B.jsxs)(X,{gap:`xs`,align:`flex-end`,wrap:`nowrap`,children:[(0,B.jsx)(Mm,{className:`record-editor-value`,label:`${e} ${t}`,value:String(n??``),onChange:e=>s(t,e.currentTarget.value)}),(0,B.jsx)(Q,{"aria-label":`Remove ${e} ${t}`,size:`compact-xs`,variant:`subtle`,color:`red`,onClick:()=>c(t),children:`Remove`})]},t)),(0,B.jsxs)(X,{gap:`xs`,align:`flex-end`,children:[(0,B.jsx)(Mm,{label:`New ${e} key`,value:r,onChange:e=>i(e.currentTarget.value)}),(0,B.jsx)(Mm,{label:`New ${e} value`,value:a,onChange:e=>o(e.currentTarget.value)}),(0,B.jsx)(Q,{variant:`default`,onClick:l,children:`Add entry`})]})]})}function Ng({field:e,draft:t,onChange:n}){let r=t??{fieldPath:e.fieldPath,action:`preserve`,replacementKind:e.secret?.environmentReference.supported===!1?`inlineSecret`:`environmentReference`,replacementValue:``},i=e.secret?.allowedActions??[`preserve`,`replace`,`clear`],a=e.secret?.environmentReference.supported??!0,o=e.secret?.environmentReference.recommended??a,s=e.secret?.inlineReplacement.supported??!1;return(0,B.jsx)(Js,{className:`secret-editor`,withBorder:!0,children:(0,B.jsxs)($,{gap:`xs`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{fw:700,children:e.label}),(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,children:e.secret?.environmentReference.guidance??`Store only an environment variable name or substitution expression when possible.`})]}),(0,B.jsxs)(X,{gap:4,children:[(0,B.jsx)(td,{variant:`light`,children:`redacted`}),o?(0,B.jsx)(td,{color:`teal`,variant:`light`,children:`env reference recommended`}):null]})]}),(0,B.jsx)(Rp.Group,{value:r.action,onChange:e=>n({...r,action:e}),children:(0,B.jsx)(X,{gap:`sm`,children:i.map(t=>(0,B.jsx)(Rp,{value:t,label:Pg(t,e.label)},t))})}),r.action===`replace`?(0,B.jsxs)($,{gap:`xs`,children:[(0,B.jsx)(Ml,{color:`teal`,variant:`light`,children:`Recommended: keep secret material outside 1MCP config by writing only an environment variable name or substitution expression.`}),(0,B.jsx)(Rp.Group,{label:`Replacement source`,value:r.replacementKind,onChange:e=>n({...r,replacementKind:e}),children:(0,B.jsx)(X,{gap:`sm`,children:(0,B.jsx)(Rp,{disabled:!a,value:`environmentReference`,label:`Environment variable (recommended)`})})}),r.replacementKind===`environmentReference`?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Mm,{label:`Environment variable for ${e.label}`,description:"Example: GITHUB_TOKEN or ${GITHUB_TOKEN}",value:r.replacementValue,onChange:e=>n({...r,replacementValue:e.currentTarget.value})}),s?(0,B.jsx)(Q,{size:`compact-sm`,variant:`subtle`,color:`yellow`,onClick:()=>n({...r,replacementKind:`inlineSecret`,replacementValue:``}),children:`Use advanced inline secret instead`}):null]}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Ml,{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,B.jsx)(bp,{label:`Inline secret for ${e.label}`,value:r.replacementValue,onChange:e=>n({...r,replacementValue:e.currentTarget.value})}),a?(0,B.jsx)(Q,{size:`compact-sm`,variant:`subtle`,onClick:()=>n({...r,replacementKind:`environmentReference`,replacementValue:``}),children:`Use environment variable instead`}):null]}),(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,children:r.replacementKind===`environmentReference`?e.secret?.environmentReference.guidance:e.secret?.inlineReplacement.guidance})]}):null]})})}function Pg(e,t){return e===`preserve`?`Preserve existing ${t}`:e===`replace`?`Replace ${t}`:`Clear saved ${t}`}function Fg({preview:e}){let t=e.connectivityCheck,n=e.validation.status===`valid`?`teal`:`red`,r=t.status===`passed`?`teal`:t.status===`failed`?`red`:`yellow`;return(0,B.jsx)(Js,{className:`preview-result`,withBorder:!0,children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{fw:800,children:`Preview result`}),(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:`Domain facts only. No config has been written.`})]}),(0,B.jsx)(hd,{className:`preview-fingerprint`,children:e.previewFingerprint})]}),(0,B.jsx)(Ml,{color:`blue`,variant:`light`,children:`Preview only - no config has been written.`}),(0,B.jsxs)(Xp,{cols:{base:1,sm:2},spacing:`xs`,children:[(0,B.jsx)($h,{label:`Target`,value:e.targetName,meta:`Proposed: ${e.proposedTargetName}`}),(0,B.jsx)($h,{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,B.jsx)($h,{label:`Config change`,value:e.configChange.status,meta:`${e.configChange.operation} / ${e.configChange.changed?`changed`:`unchanged`}`}),(0,B.jsx)($h,{label:`Reload`,value:e.configChange.reload.status,meta:e.configChange.reload.error}),(0,B.jsx)($h,{label:`Backup`,value:e.configChange.backup.created?`created`:`not created`,meta:e.configChange.backup.path}),(0,B.jsx)(Js,{className:`connectivity-card connectivity-${t.status}`,withBorder:!0,children:(0,B.jsxs)($,{gap:4,children:[(0,B.jsxs)(X,{justify:`space-between`,gap:`xs`,children:[(0,B.jsx)(Z,{fw:700,children:`Connectivity`}),(0,B.jsx)(td,{color:r,variant:`light`,children:t.status})]}),(0,B.jsx)(Z,{size:`sm`,children:Bh(t)}),zh(e)?(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:zh(e)}):null]})})]}),e.configChange.warnings?.map(e=>(0,B.jsx)($h,{label:`Warning`,value:e},`warning:${e}`)),e.configChange.retentionCleanup.warnings.map(e=>(0,B.jsx)($h,{label:`Retention warning`,value:e},`retention:${e}`)),e.validation.errors.length>0?(0,B.jsxs)($,{gap:`xs`,children:[(0,B.jsxs)(X,{gap:`xs`,children:[(0,B.jsx)(Z,{fw:800,children:`Validation issues`}),(0,B.jsx)(td,{color:n,variant:`light`,children:e.validation.errors.length})]}),e.validation.errors.map(e=>(0,B.jsx)($h,{label:e.fieldPath.join(`.`)||`form`,value:e.code,meta:e.message},`${rg(e.fieldPath)}:${e.code}`))]}):null,e.diff.length>0?(0,B.jsxs)($,{gap:`xs`,children:[(0,B.jsxs)(X,{gap:`xs`,children:[(0,B.jsx)(Z,{fw:800,children:`Redacted diff`}),(0,B.jsxs)(td,{variant:`outline`,children:[e.diff.length,` change`,e.diff.length===1?``:`s`]})]}),e.diff.map(e=>(0,B.jsx)(Js,{className:`preview-diff-entry`,withBorder:!0,children:(0,B.jsxs)($,{gap:6,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,gap:`xs`,children:[(0,B.jsx)(Z,{fw:700,children:e.fieldPath.join(`.`)}),(0,B.jsxs)(X,{gap:4,children:[e.secretAction?(0,B.jsxs)(td,{color:`grape`,variant:`light`,children:[`secret: `,e.secretAction]}):null,e.riskFlags.map(e=>(0,B.jsx)(td,{color:Hh(e),variant:`light`,children:Uh(e)},e))]})]}),(0,B.jsxs)(Z,{size:`sm`,children:[(0,B.jsxs)(Z,{span:!0,c:`dimmed`,children:[`from`,` `]}),dg(e.oldValue),(0,B.jsxs)(Z,{span:!0,c:`dimmed`,children:[` `,`to`,` `]}),dg(e.newValue)]})]})},rg(e.fieldPath)))]}):(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:`No field-level changes were reported by preview.`})]})})}function Ig({model:e}){let{state:t}=e;if(t.status===`list`)return(0,B.jsx)(eg,{title:`Edit server`,utility:`select a target`,icon:(0,B.jsx)(bh,{size:17}),children:(0,B.jsxs)($,{className:`edit-empty-state`,gap:`xs`,children:[(0,B.jsx)(Z,{fw:700,children:`Select Edit server to change target settings.`}),(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:`Edit fields -> Preview change -> Review result`})]})});if(t.status===`loading`)return(0,B.jsx)(eg,{title:`Server detail`,utility:t.serverId,icon:(0,B.jsx)(Th,{size:17}),children:(0,B.jsx)(tg,{message:`Loading server detail.`})});if(t.status===`committed`||t.status===`committedRefreshFailed`)return(0,B.jsx)(eg,{title:`Server detail`,utility:t.serverId,icon:(0,B.jsx)(Th,{size:17}),children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsx)(Ml,{color:`teal`,role:`status`,children:t.success}),t.warning?(0,B.jsx)(Ml,{color:`yellow`,role:`status`,children:t.warning}):null,t.status===`committed`?(0,B.jsx)(tg,{message:`Refreshing the committed server detail.`}):(0,B.jsx)(Ml,{color:`yellow`,role:`status`,children:t.message}),(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:`Editing stays unavailable until the runtime returns a fresh server detail model.`}),(0,B.jsxs)(X,{children:[t.status===`committedRefreshFailed`?(0,B.jsx)(Q,{onClick:()=>void e.open(t.serverId),children:`Retry detail`}):null,(0,B.jsx)(Q,{variant:`default`,onClick:()=>void e.close(),children:`Back to servers`})]})]})});if(t.status===`missing`)return(0,B.jsx)(eg,{title:`Server detail`,utility:t.serverId,icon:(0,B.jsx)(Th,{size:17}),children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsx)(zm,{order:3,children:`Server target not found`}),(0,B.jsxs)(Z,{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,B.jsx)(Ml,{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,B.jsx)(Q,{variant:`default`,onClick:()=>e.close(),children:`Back to servers`})]})});if(t.status===`failed`)return(0,B.jsx)(eg,{title:`Server detail`,utility:t.serverId,icon:(0,B.jsx)(Th,{size:17}),children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsx)(Ml,{color:`red`,role:`alert`,children:t.message}),(0,B.jsx)(Z,{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,B.jsx)(Q,{variant:`default`,onClick:()=>e.close(),children:`Back to servers`})]})});let n=ag(t.fieldDraft,t.detail.server.transport.type),r=t.detail.editContract.fieldGroups.map(e=>({...e,fields:e.fields.filter(e=>og(e,n))})).filter(e=>e.fields.length>0),i=wg(t);return(0,B.jsx)(eg,{title:`Edit server`,utility:t.detail.server.enabled?`enabled`:`disabled`,icon:(0,B.jsx)(bh,{size:17}),children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{className:`eyebrow`,size:`xs`,children:`Configured Server Target`}),(0,B.jsxs)(X,{gap:`xs`,align:`center`,children:[(0,B.jsx)(zm,{order:2,children:t.detail.server.id}),(0,B.jsx)(td,{color:t.detail.server.enabled?`teal`:`yellow`,variant:`light`,children:t.detail.server.enabled?`enabled`:`disabled`})]}),(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:Fh(t.detail.server)}),(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:`Draft changes stay local until preview.`})]}),(0,B.jsx)(Q,{variant:`default`,onClick:()=>e.close(),children:`Back`})]}),r.map(n=>(0,B.jsx)(Js,{className:`edit-section`,withBorder:!0,children:(0,B.jsxs)($,{gap:`xs`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{fw:800,children:n.label}),(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:Ag(n.id)})]}),(0,B.jsxs)(td,{variant:`outline`,children:[n.fields.length,` fields`]})]}),n.fields.map(n=>{let r=n.fieldPath[0]===`transport`?n.fieldPath[1]:n.fieldPath[0],i=!!(r&&t.clearedTransportOverrides.includes(r));return(0,B.jsxs)($,{gap:4,children:[n.control===`secret`?(0,B.jsx)(Ng,{field:n,draft:t.secretDraft[rg(n.fieldPath)],onChange:t=>e.changeSecret(n.fieldPath,t)}):(0,B.jsx)(jg,{field:n,value:t.fieldDraft[rg(n.fieldPath)],onChange:t=>e.changeField(n.fieldPath,t)}),n.overrideSupported&&r?(0,B.jsxs)(X,{justify:`space-between`,gap:`xs`,children:[(0,B.jsx)(td,{variant:`outline`,children:i?`will inherit`:n.source===`inherited`?`inherited`:n.source}),n.clearOverrideSupported?(0,B.jsx)(Q,{size:`compact-xs`,variant:`subtle`,onClick:()=>e.changeTransportOverride(r,!i),children:i?`Restore override`:`Clear override`}):null]}):null]},rg(n.fieldPath))})]})},n.id)),(0,B.jsxs)(X,{className:`draft-action-bar`,justify:`space-between`,gap:`sm`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(td,{color:t.dirty?`yellow`:`gray`,variant:t.dirty?`light`:`outline`,children:t.dirty?`Unsaved changes`:`No changes yet`}),(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:`Preview validates the draft without writing config. Leaving this page with unsaved changes asks for confirmation.`})]}),(0,B.jsxs)(X,{gap:`xs`,children:[(0,B.jsx)(Q,{loading:t.previewBusy,disabled:!t.dirty||t.previewBusy||t.applyBusy,onClick:()=>void e.preview(`auto`),children:`Preview change`}),t.preview?(0,B.jsx)(Q,{variant:`default`,loading:t.previewBusy,disabled:t.applyBusy,onClick:()=>void e.preview(`manual`),children:`Rerun connectivity`}):null]})]}),t.previewError?(0,B.jsx)(Ml,{color:`red`,role:`alert`,children:t.previewError}):null,t.applyError?(0,B.jsx)(Ml,{color:`red`,role:`alert`,children:t.applyError}):null,t.applyWarning?(0,B.jsx)(Ml,{color:`yellow`,role:`status`,children:t.applyWarning}):null,t.applySuccess?(0,B.jsx)(Ml,{color:`teal`,role:`status`,children:t.applySuccess}):null,t.preview?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Fg,{preview:t.preview}),(0,B.jsxs)(X,{justify:`flex-end`,align:`center`,children:[i.eligible?null:(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:i.reason}),(0,B.jsx)(Q,{leftSection:(0,B.jsx)(Eh,{size:16}),loading:t.applyBusy,disabled:!i.eligible||t.applyBusy,onClick:()=>void e.apply(),children:`Apply changes`})]})]}):null]})})}function Lg({state:e,onServerAction:t,onOpenServerDetail:n}){let[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(`all`),s=vt(`(max-width: 620px)`,!1),c=(0,y.useMemo)(()=>Ah(e.configuredServers,r,a),[a,r,e.configuredServers]);return(0,B.jsxs)(eg,{title:`Server inventory`,utility:`${c.length} of ${e.configuredServers.length} targets`,icon:(0,B.jsx)(Th,{size:17}),children:[(0,B.jsxs)(X,{align:`flex-end`,gap:`sm`,className:`server-filter-row`,children:[(0,B.jsx)(Mm,{className:`server-search`,leftSection:(0,B.jsx)(wh,{size:16}),label:`Search servers`,type:`search`,value:r,onChange:e=>i(e.currentTarget.value)}),(0,B.jsx)(Hp,{"aria-label":`Server status filter`,value:a,onChange:e=>o(e),data:[{label:`All`,value:`all`},{label:`Enabled`,value:`enabled`},{label:`Disabled`,value:`disabled`}]})]}),c.length===0?(0,B.jsx)(tg,{message:`No servers match the current filter.`}):s?(0,B.jsx)(`div`,{className:`server-mobile-list`,children:c.map(r=>(0,B.jsx)(Rg,{server:r,mutation:e.serverMutations[r.id],onServerAction:t,onOpenServerDetail:n},r.id))}):(0,B.jsx)(`div`,{className:`server-table-view`,children:(0,B.jsx)(Em.ScrollContainer,{minWidth:720,children:(0,B.jsxs)(Em,{className:`admin-table`,verticalSpacing:`xs`,children:[(0,B.jsx)(Em.Thead,{children:(0,B.jsxs)(Em.Tr,{children:[(0,B.jsx)(Em.Th,{children:`Server`}),(0,B.jsx)(Em.Th,{children:`Status`}),(0,B.jsx)(Em.Th,{children:`Transport`}),(0,B.jsx)(Em.Th,{children:`Secrets`}),(0,B.jsx)(Em.Th,{children:`Action`})]})}),(0,B.jsx)(Em.Tbody,{children:c.map(r=>(0,B.jsx)(zg,{server:r,mutation:e.serverMutations[r.id],onServerAction:t,onOpenServerDetail:n},r.id))})]})})})]})}function Rg({server:e,mutation:t,onServerAction:n,onOpenServerDetail:r}){let i=e.enabled?`disable`:`enable`,a=t?.state===`busy`,o=Ih(e),s=Rh(e,i),c=!Lh(e)||!s.available;return(0,B.jsxs)(`article`,{className:`server-mobile-card${t?` server-action-${t.state}`:``}`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,wrap:`nowrap`,children:[(0,B.jsxs)(`div`,{className:`server-mobile-identity`,children:[(0,B.jsx)(Z,{fw:700,children:e.id}),o.length>0?(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,children:o.join(` / `)}):null]}),(0,B.jsx)(td,{color:e.enabled?`teal`:`yellow`,variant:`light`,children:e.enabled?`enabled`:`disabled`})]}),(0,B.jsxs)(`dl`,{className:`server-mobile-facts`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:`Transport`}),(0,B.jsx)(`dd`,{children:Fh(e)})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:`Secrets`}),(0,B.jsx)(`dd`,{children:Wh(e)})]})]}),t?.message?(0,B.jsx)(Z,{size:`xs`,c:t.state===`failed`?`red`:`dimmed`,children:t.message}):null,(0,B.jsxs)(X,{gap:`xs`,grow:!0,children:[(0,B.jsx)(Q,{"aria-label":`Edit ${e.id} server`,leftSection:(0,B.jsx)(bh,{size:14}),size:`xs`,variant:`default`,onClick:()=>void r?.(e.id),children:`Edit server`}),(0,B.jsx)(Q,{"aria-label":s.label,size:`xs`,color:i===`disable`?`red`:`teal`,variant:i===`disable`?`light`:`filled`,loading:a,disabled:a||c,onClick:()=>void n?.(e.id,i),children:i===`enable`?`Enable`:`Disable`})]})]})}function zg({server:e,mutation:t,onServerAction:n,onOpenServerDetail:r}){let i=e.enabled?`disable`:`enable`,a=t?.state===`busy`,o=Ih(e),s=Rh(e,i),c=!Lh(e)||!s.available;return(0,B.jsxs)(Em.Tr,{className:t?`server-action-${t.state}`:void 0,children:[(0,B.jsxs)(Em.Td,{children:[(0,B.jsx)(Z,{fw:700,children:e.id}),o.length>0?(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,children:o.join(` / `)}):null,t?.message?(0,B.jsx)(Z,{size:`xs`,c:t.state===`failed`?`red`:`dimmed`,children:t.message}):null]}),(0,B.jsx)(Em.Td,{children:(0,B.jsx)(td,{color:e.enabled?`teal`:`yellow`,variant:`light`,children:e.enabled?`enabled`:`disabled`})}),(0,B.jsx)(Em.Td,{children:Fh(e)}),(0,B.jsx)(Em.Td,{children:Wh(e)}),(0,B.jsx)(Em.Td,{children:(0,B.jsxs)(X,{gap:`xs`,wrap:`wrap`,children:[(0,B.jsx)(Q,{"aria-label":`Edit ${e.id} server`,leftSection:(0,B.jsx)(bh,{size:14}),size:`xs`,variant:`default`,onClick:()=>void r?.(e.id),children:`Edit server`}),(0,B.jsx)(Q,{size:`xs`,color:i===`disable`?`red`:`teal`,variant:i===`disable`?`light`:`filled`,loading:a,disabled:a||c,onClick:()=>void n?.(e.id,i),children:s.label})]})})]})}function Bg({facts:e,onCopyText:t}){return(0,B.jsx)(eg,{title:`Recent audit facts`,utility:`redacted`,icon:(0,B.jsx)(kh,{size:17}),children:e.length===0?(0,B.jsx)(tg,{message:`No recent admin audit facts.`}):(0,B.jsx)($,{gap:`xs`,children:e.map(e=>(0,B.jsx)($h,{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 Vg({model:e,navigate:t}){let{state:n,configuredServers:r}=e,i=(n.status?.audit.facts??[]).filter(e=>e.result===`failed`).length,a=(n.status?.oauth.services??[]).filter(Nh).length,[o,s]=(0,y.useState)(null),c=n.status?.runtime;async function l(e,t){try{await r.copy(e,t),s(`${Yh(e)} copied.`)}catch{s(`Could not copy ${Yh(e)}. Select the value manually.`)}}return(0,B.jsxs)(`section`,{"aria-labelledby":`runtime-operations-title`,className:`operations-workspace`,children:[(0,B.jsx)(zm,{id:`runtime-operations-title`,order:2,className:`sr-only`,children:`Runtime operations`}),(0,B.jsx)(Wg,{title:`Operations dashboard`,description:`Runtime summaries for ${n.session?.account.username??`operator`} · updated ${n.lastUpdatedAt??`never`}`,model:e}),(0,B.jsxs)(Xp,{cols:{base:2,sm:4},spacing:`sm`,className:`summary-grid`,children:[(0,B.jsx)(Gg,{label:`Enabled servers`,value:jh(n.configuredServers),tone:`good`,icon:`01`,href:`/admin/servers`,onNavigate:()=>t(`servers`)}),(0,B.jsx)(Gg,{label:`Disabled servers`,value:Mh(n.configuredServers),tone:`warn`,icon:`02`,href:`/admin/servers`,onNavigate:()=>t(`servers`)}),(0,B.jsx)(Gg,{label:`OAuth attention`,value:a,tone:a>0?`warn`:`good`,icon:`03`,href:`/admin/oauth`,onNavigate:()=>t(`oauth`)}),(0,B.jsx)(Gg,{label:`Failed audits`,value:i,tone:i>0?`bad`:`good`,icon:`04`,href:`/admin/audit`,onNavigate:()=>t(`audit`)})]}),(0,B.jsx)(`div`,{className:`dashboard-runtime-panel`,children:(0,B.jsx)(eg,{title:`Runtime identity`,utility:`current target`,icon:(0,B.jsx)(`span`,{className:`runtime-live-dot`}),children:c?(0,B.jsxs)(Xp,{cols:{base:1,sm:3},spacing:`sm`,children:[(0,B.jsx)($h,{label:`Version`,value:c.runtimeVersion}),(0,B.jsx)($h,{label:`External URL`,value:c.externalUrl??`-`}),(0,B.jsx)($h,{label:`Runtime scope`,value:c.runtimeScopeId,copyLabel:`runtimeScopeId`,onCopyText:l})]}):(0,B.jsx)(Z,{c:`dimmed`,children:`Runtime status has not loaded.`})})}),(0,B.jsx)(Kg,{message:o})]})}function Hg({model:e}){let{state:t,configuredServers:n}=e;return(0,B.jsxs)(`section`,{"aria-labelledby":`servers-workspace-title`,className:`operations-workspace`,children:[(0,B.jsx)(Wg,{title:`Configured servers`,titleId:`servers-workspace-title`,description:`${t.configuredServers.length} configured targets · updated ${t.lastUpdatedAt??`never`}`,model:e}),(0,B.jsxs)(`div`,{className:`workspace-grid`,children:[(0,B.jsx)(`div`,{className:`inventory-column`,children:(0,B.jsx)(Lg,{state:t,onServerAction:n.mutate,onOpenServerDetail:n.edit.open})}),(0,B.jsx)(`div`,{className:`inspector-column`,children:(0,B.jsx)(Ig,{model:n.edit})})]})]})}function Ug({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(`${Yh(e)} copied.`)}catch{i(`Could not copy ${Yh(e)}. Select the value manually.`)}}return(0,B.jsxs)(`section`,{"aria-labelledby":`audit-workspace-title`,className:`operations-workspace`,children:[(0,B.jsx)(Wg,{title:`Audit trail`,titleId:`audit-workspace-title`,description:`Recent redacted Admin Operations · updated ${t.lastUpdatedAt??`never`}`,model:e}),(0,B.jsx)(Bg,{facts:t.status?.audit.facts??[],onCopyText:a}),(0,B.jsx)(Kg,{message:r})]})}function Wg({title:e,titleId:t,description:n,model:r}){return(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,className:`workspace-heading`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{className:`eyebrow`,size:`xs`,children:`Operator workspace / live`}),(0,B.jsx)(zm,{id:t,order:2,children:e}),(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:n})]}),(0,B.jsxs)(X,{gap:`xs`,children:[(0,B.jsx)(Q,{variant:`default`,leftSection:(0,B.jsx)(xh,{size:16}),onClick:()=>void r.refresh(),children:`Refresh`}),(0,B.jsx)(Q,{color:`red`,variant:`light`,leftSection:(0,B.jsx)(yh,{size:16}),onClick:()=>void r.logout(),children:`Log out`})]})]})}function Gg({label:e,value:t,tone:n,icon:r,href:i,onNavigate:a}){return(0,B.jsx)(Js,{component:`a`,href:i,className:`summary-counter summary-link summary-${n}`,withBorder:!0,onClick:e=>{qg(e)&&(e.preventDefault(),a())},children:(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,wrap:`nowrap`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,fw:800,tt:`uppercase`,children:e}),(0,B.jsx)(Z,{className:`summary-value`,children:t})]}),(0,B.jsxs)($,{gap:4,align:`flex-end`,children:[(0,B.jsx)(Z,{className:`summary-index`,children:r}),(0,B.jsx)(fh,{size:15,"aria-hidden":`true`})]})]})})}function Kg({message:e}){return(0,B.jsx)(`div`,{"aria-live":`polite`,children:e?(0,B.jsx)(Ml,{color:e.startsWith(`Could not`)?`red`:`teal`,mt:`sm`,children:e}):null})}function qg(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function Jg({model:e,oauth:t}){let{state:n,configuredServers:r}=e,i=n.status?.oauth.services??[],[a,o]=(0,y.useState)(null);async function s(e){try{await r.copy(`serviceId`,e.id),o(`Service id copied.`)}catch{o(`Could not copy service id. Select the value manually.`)}}return(0,B.jsxs)(`section`,{"aria-label":`OAuth services`,className:`operations-workspace`,children:[(0,B.jsx)(Wg,{title:`OAuth services`,description:`${i.length} reported services · runtime status ${n.status?.oauth.status??`unavailable`}`,model:e}),t.callbackFeedback?(0,B.jsx)(Zg,{feedback:t.callbackFeedback}):null,t.operationFeedback?(0,B.jsx)(Zg,{feedback:t.operationFeedback}):null,i.length===0?(0,B.jsx)(Js,{className:`operations-panel`,withBorder:!0,children:(0,B.jsx)(Z,{c:`dimmed`,children:`No OAuth services reported.`})}):(0,B.jsx)($,{gap:`sm`,children:i.map(e=>(0,B.jsx)(Yg,{service:e,busy:t.busy?.serviceId===e.id?t.busy.action:null,operationBlocked:t.busy!==null,onCopy:()=>void s(e),onOperate:n=>void t.operate(e.id,n)},e.id))}),a?(0,B.jsx)(Ml,{"aria-live":`polite`,color:a.startsWith(`Could not`)?`red`:`teal`,mt:`sm`,children:a}):null]})}function Yg({service:e,busy:t,operationBlocked:n,onCopy:r,onOperate:i}){let a=Xg(e),o=a===`authorize`?`Authorize`:`Restart`;return(0,B.jsx)(Js,{component:`article`,className:`oauth-service-row`,withBorder:!0,children:(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,wrap:`nowrap`,children:[(0,B.jsxs)(`div`,{className:`oauth-service-main`,children:[(0,B.jsxs)(X,{gap:`xs`,children:[(0,B.jsx)(Z,{fw:800,children:e.displayName}),(0,B.jsx)(td,{color:e.status===`connected`?`teal`:`yellow`,variant:`light`,children:e.status})]}),(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,children:e.requiresOAuth?`OAuth required`:`No OAuth action required`}),e.lastError?(0,B.jsx)(Z,{size:`sm`,c:`red`,children:e.lastError}):null,(0,B.jsxs)(`details`,{className:`oauth-service-identity`,children:[(0,B.jsx)(`summary`,{children:`Full service ID`}),(0,B.jsxs)(X,{gap:`xs`,wrap:`nowrap`,children:[(0,B.jsx)(hd,{className:`oauth-service-id`,children:e.id}),(0,B.jsx)(Q,{"aria-label":`Copy full service ID for ${e.displayName}`,size:`compact-xs`,variant:`subtle`,onClick:r,children:(0,B.jsx)(mh,{size:14,"aria-hidden":`true`})})]})]})]}),a?(0,B.jsxs)($,{gap:4,align:`flex-end`,className:`oauth-service-action`,children:[(0,B.jsx)(Q,{"aria-label":`${o} ${e.displayName}`,leftSection:a===`authorize`?(0,B.jsx)(vh,{size:15}):(0,B.jsx)(Sh,{size:15}),loading:t===a,disabled:n,onClick:()=>i(a),children:o}),(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,"aria-live":`polite`,children:t?t===`authorize`?`Starting authorization...`:`Restarting authorization...`:``})]}):null]})})}function Xg(e){return e.requiresOAuth?e.status===`awaiting_oauth`?`authorize`:`restart`:null}function Zg({feedback:e}){return(0,B.jsx)(Ml,{color:e.kind===`success`?`teal`:`red`,role:e.kind===`success`?`status`:`alert`,mb:`sm`,children:e.message})}function Qg(e,t){let n=i_(e,`include`),r=i_(e,`exclude`),i=[];return n.length===1&&i.push({tag:n[0]}),n.length>1&&i.push({[t===`or`?`$or`:`$and`]:n.map(e=>({tag:e}))}),i.push(...r.map(e=>({$not:{tag:e}}))),i.length===0?{}:i.length===1?i[0]:{$and:i}}function $g(e,t){return e.tag?t.includes(e.tag):e.$or?e.$or.some(e=>$g(e,t)):e.$and?e.$and.every(e=>$g(e,t)):e.$not?!$g(e.$not,t):e.$in?e.$in.some(e=>t.includes(e)):!1}function e_(e){let t={},n=t_(e,t);return n?{strategy:n,states:t}:null}function t_(e,t){if(typeof e.tag==`string`&&Object.keys(e).length===1)return t[e.tag]=`include`,`or`;if(e.$not&&Object.keys(e).length===1&&r_(e.$not))return t[r_(e.$not)]=`exclude`,`or`;if(e.$or&&Object.keys(e).length===1&&n_(e.$or,t))return`or`;if(e.$and&&Object.keys(e).length===1){let n=e.$and,r=n.filter(e=>e.tag||e.$or||e.$and),i=n.filter(e=>e.$not);if(n.length!==r.length+i.length)return null;let a=`and`;if(r.length>1){if(!n_(r,t))return null}else{let e=r[0];if(e?.tag)t[e.tag]=`include`;else if(e?.$or&&n_(e.$or,t))a=`or`;else if(e?.$and&&n_(e.$and,t))a=`and`;else if(e)return null}for(let e of i){let n=e.$not?r_(e.$not):null;if(!n)return null;t[n]=`exclude`}return a}return Object.keys(e).length===0?`or`:null}function n_(e,t){for(let n of e){let e=r_(n);if(!e)return!1;t[e]=`include`}return!0}function r_(e){return typeof e.tag==`string`&&Object.keys(e).length===1?e.tag:null}function i_(e,t){return Object.entries(e).filter(([,e])=>e===t).map(([e])=>e)}function a_({model:e,runtimeScopeId:t}){let{items:n,targets:r,busy:i,load:a,preview:o,save:s,delete:c}=e,[l,u]=(0,y.useState)(),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(`or`),[_,v]=(0,y.useState)({}),[b,x]=(0,y.useState)(`{}`),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)({lossless:!0});function O(e,t=!1){u(e.name),f(t?`${e.name}-copy`:e.name),m(e.description??``);let n=e_(e.tagQuery);g(n?n.strategy:`advanced`),x(JSON.stringify(e.tagQuery,null,2));let r=n?{tags:Object.keys(n.states)}:null;v(n?.states??{}),D(r?{lossless:!0,strategy:n?.strategy,tags:r.tags,states:n?.states}:{lossless:!1,reason:`This advanced query cannot be represented losslessly in structured mode.`}),C(null)}function k(){let e;if(h===`advanced`){let t=JSON.parse(b);if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`Advanced JSON must be an object.`);e=t}else e=Qg(_,h);return{name:d,description:p||void 0,strategy:h,tagQuery:e}}async function A(){try{let e=await o(k(),l);C(e),D(e.structuredConversion),T(null)}catch(e){T(e instanceof Error?e.message:`Preset preview failed.`)}}async function j(){if(!S)return;let e=l?l===S.draft.name?`update`:`duplicate`:`create`;await s({action:e,sourceName:l,preview:S})&&(C(null),T(`Preset ${S.draft.name} saved.`))}return(0,B.jsxs)(`section`,{"aria-labelledby":`presets-title`,className:`operations-workspace`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,className:`workspace-heading`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsxs)(Z,{className:`eyebrow`,size:`xs`,children:[`Runtime Scope / `,t??`unavailable`]}),(0,B.jsx)(zm,{id:`presets-title`,order:2,children:`Presets`}),(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:`Manage the preset store owned by this running Runtime Scope.`})]}),(0,B.jsxs)(X,{children:[(0,B.jsx)(Q,{variant:`default`,onClick:()=>void a(),loading:i,children:`Refresh`}),(0,B.jsx)(Q,{onClick:()=>{u(void 0),f(``),m(``),g(`or`),v({}),x(`{}`),C(null)},children:`New preset`})]})]}),(0,B.jsxs)(`div`,{className:`workspace-grid`,children:[(0,B.jsx)(Js,{withBorder:!0,p:`md`,children:(0,B.jsxs)($,{gap:`sm`,children:[n.map(e=>(0,B.jsx)(Js,{withBorder:!0,p:`sm`,children:(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{fw:800,children:e.name}),(0,B.jsx)(Z,{size:`sm`,c:`dimmed`,children:e.description||`No description`}),(0,B.jsxs)(Z,{size:`xs`,children:[e.strategy.toUpperCase(),` · `,e.querySummary||`empty query`,` · `,e.matchCount,` `,`matches`]})]}),(0,B.jsxs)(X,{gap:`xs`,children:[(0,B.jsx)(Q,{size:`xs`,variant:`default`,onClick:()=>O(e),children:`Edit`}),(0,B.jsx)(Q,{size:`xs`,variant:`default`,onClick:()=>O(e,!0),children:`Duplicate`}),(0,B.jsx)(Q,{size:`xs`,color:`red`,variant:`light`,leftSection:(0,B.jsx)(Oh,{size:14}),onClick:()=>void c(e.name),children:`Delete`})]})]})},e.name)),!i&&n.length===0?(0,B.jsx)(Z,{c:`dimmed`,children:`No presets in this Runtime Scope.`}):null]})}),(0,B.jsx)(Js,{withBorder:!0,p:`md`,children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsx)(zm,{order:3,children:l?`Edit ${l}`:`Create preset`}),(0,B.jsx)(Mm,{label:`Preset name`,value:d,disabled:!!(l&&l===d),onChange:e=>{f(e.currentTarget.value),C(null)}}),(0,B.jsx)(Mm,{label:`Description`,value:p,onChange:e=>{m(e.currentTarget.value),C(null)}}),(0,B.jsxs)(X,{children:[(0,B.jsx)(Q,{variant:h===`or`?`filled`:`default`,"aria-pressed":h===`or`,disabled:h===`advanced`&&!E.lossless,title:h===`advanced`&&!E.lossless?E.reason:void 0,onClick:()=>{g(`or`),E.states?v(E.states):E.tags&&v(c_(E.tags)),C(null)},children:`Match any included tag`}),(0,B.jsx)(Q,{variant:h===`and`?`filled`:`default`,"aria-pressed":h===`and`,disabled:h===`advanced`&&!E.lossless,title:h===`advanced`&&!E.lossless?E.reason:void 0,onClick:()=>{g(`and`),E.states?v(E.states):E.tags&&v(c_(E.tags)),C(null)},children:`Match all included tags`}),(0,B.jsx)(Q,{variant:h===`advanced`?`filled`:`default`,"aria-pressed":h===`advanced`,onClick:()=>{x(JSON.stringify(Qg(_,h===`and`?`and`:`or`),null,2)),g(`advanced`),C(null)},children:`Advanced JSON`})]}),h===`advanced`?(0,B.jsx)(zd,{label:`Advanced JSON`,minRows:8,value:b,onChange:e=>{let t=e.currentTarget.value;x(t);try{let e=JSON.parse(t);if(e&&typeof e==`object`&&!Array.isArray(e)){let t=e_(e);D(t?{lossless:!0,strategy:t.strategy,tags:Object.keys(t.states),states:t.states}:{lossless:!1,reason:`This advanced query cannot be represented losslessly.`})}else D({lossless:!1,reason:`Advanced JSON must be an object.`})}catch{D({lossless:!1,reason:`Advanced JSON must be valid before conversion.`})}C(null)}}):(0,B.jsx)(o_,{targets:r,strategy:h,states:_,onChange:e=>{v(e),C(null)}}),(0,B.jsx)(Q,{leftSection:(0,B.jsx)(Dh,{size:16}),onClick:()=>void A(),children:`Preview matches`}),S?(0,B.jsxs)(Js,{withBorder:!0,p:`sm`,children:[(0,B.jsxs)(Z,{fw:800,children:[S.matchCount,` current matches`]}),S.validation.globalErrors.map(e=>(0,B.jsx)(Z,{c:`red`,children:e},e)),S.validation.fieldErrors.map(e=>(0,B.jsxs)(Z,{c:`red`,children:[e.field,`: `,e.message]},`${e.field}-${e.message}`)),S.validation.warnings.map(e=>(0,B.jsx)(Z,{c:`yellow`,children:e},e)),S.matches.map(e=>(0,B.jsxs)(Z,{size:`sm`,children:[e.matched?`✓`:`–`,` `,e.name,` · `,e.enabled?`enabled`:`disabled`,` · `,e.reason]},e.name)),(0,B.jsx)(Q,{mt:`sm`,disabled:S.validation.status===`invalid`,leftSection:(0,B.jsx)(Ch,{size:16}),onClick:()=>void j(),children:`Confirm and save`})]}):null,w?(0,B.jsx)(Ml,{children:w}):null]})})]})]})}function o_({targets:e,strategy:t,states:n,onChange:r}){let i=s_(e,n),a=Qg(n,t),o=e.filter(e=>$g(a,e.tags)),s=i.filter(({tag:e})=>(n[e]??`neutral`)!==`neutral`);function c(e,t){r({...n,[e]:t})}return(0,B.jsxs)(`section`,{className:`preset-tag-builder`,"aria-labelledby":`preset-tag-matrix-title`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,gap:`md`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(zm,{id:`preset-tag-matrix-title`,order:4,children:`Tag matrix`}),(0,B.jsx)(Z,{size:`sm`,c:`dimmed`,children:`Discover tags from configured targets. Include tags select servers; exclude tags remove them.`})]}),(0,B.jsxs)(td,{variant:`light`,color:o.length>0?`teal`:`yellow`,children:[o.length,` / `,e.length,` match`]})]}),(0,B.jsxs)($,{gap:`xs`,mt:`sm`,className:`preset-tag-list`,children:[i.map(({tag:e,servers:t,enabledCount:r,disabledCount:i,discovered:a})=>{let o=n[e]??`neutral`;return(0,B.jsxs)(`div`,{className:`preset-tag-row preset-tag-${o}`,children:[(0,B.jsxs)(`div`,{className:`preset-tag-identity`,children:[(0,B.jsx)(Z,{fw:800,children:e}),(0,B.jsxs)(Z,{size:`xs`,c:`dimmed`,children:[t.length,` `,t.length===1?`server`:`servers`,` · `,r,` enabled ·`,` `,i,` disabled · `,t.join(`, `)||`no current targets`,a?``:` · no longer discovered`]})]}),(0,B.jsxs)(X,{gap:4,wrap:`nowrap`,role:`group`,"aria-label":`${e} tag state`,children:[(0,B.jsx)(Q,{size:`compact-xs`,variant:o===`include`?`filled`:`subtle`,color:`teal`,"aria-pressed":o===`include`,"aria-label":`Include ${e}, ${t.length} ${t.length===1?`server`:`servers`}`,onClick:()=>c(e,o===`include`?`neutral`:`include`),children:`Include`}),(0,B.jsx)(Q,{size:`compact-xs`,variant:o===`exclude`?`filled`:`subtle`,color:`red`,"aria-pressed":o===`exclude`,"aria-label":`Exclude ${e}, ${t.length} ${t.length===1?`server`:`servers`}`,onClick:()=>c(e,o===`exclude`?`neutral`:`exclude`),children:`Exclude`})]})]},e)}),i.length===0?(0,B.jsx)(Z,{c:`dimmed`,children:`No configured target tags are available.`}):null]}),(0,B.jsxs)(`div`,{className:`preset-query-strip`,children:[(0,B.jsx)(Z,{size:`xs`,fw:800,tt:`uppercase`,children:`Draft query`}),(0,B.jsxs)(X,{gap:`xs`,mt:6,children:[s.length===0?(0,B.jsx)(Z,{c:`dimmed`,children:`Select tags to build a query.`}):null,s.map(({tag:e})=>(0,B.jsxs)(td,{color:n[e]===`exclude`?`red`:`teal`,variant:`light`,children:[n[e]===`exclude`?`EXCLUDE`:`INCLUDE`,` `,e]},e))]}),(0,B.jsxs)(Z,{size:`sm`,mt:`xs`,children:[o.length,` of `,e.length,` configured targets match this draft.`]}),(0,B.jsx)($,{gap:3,mt:`xs`,children:e.map(e=>{let t=o.some(t=>t.name===e.name);return(0,B.jsxs)(Z,{size:`xs`,c:t?void 0:`dimmed`,children:[t?`✓`:`–`,` `,e.name,` · `,e.enabled?`enabled`:`disabled`,` ·`,` `,e.tags.join(`, `)||`untagged`]},e.name)})})]})]})}function s_(e,t){let n=new Map;for(let t of e)for(let e of t.tags){let r=n.get(e)??{servers:[],enabledCount:0,disabledCount:0};r.servers.push(t.name),t.enabled?r.enabledCount+=1:r.disabledCount+=1,n.set(e,r)}for(let e of Object.keys(t))n.has(e)||n.set(e,{servers:[],enabledCount:0,disabledCount:0});return Array.from(n,([e,t])=>({tag:e,...t,discovered:t.servers.length>0})).sort((e,t)=>e.tag.localeCompare(t.tag))}function c_(e){return Object.fromEntries(e.map(e=>[e,`include`]))}function l_({session:e}){let{state:t,loginBusy:n,navigation:r}=e,i=r.route,[a,o]=(0,y.useState)(!1);if(t.view!==`console`)return(0,B.jsxs)(p_,{state:t,children:[t.view===`setupRequired`?(0,B.jsx)(m_,{}):null,t.view===`loading`||t.view===`login`?(0,B.jsx)(h_,{loading:t.view===`loading`||n,onLogin:e.login}):null]});return(0,B.jsxs)(ou,{className:`admin-app-shell`,header:{height:66},navbar:{width:224,breakpoint:`md`,collapsed:{mobile:!a}},padding:0,children:[(0,B.jsx)(ou.Header,{"aria-label":`Admin Console`,className:`admin-app-header`,children:(0,B.jsxs)(X,{h:`100%`,px:`lg`,justify:`space-between`,wrap:`nowrap`,className:`command-bar`,children:[(0,B.jsxs)(X,{gap:`sm`,wrap:`nowrap`,children:[(0,B.jsx)(id,{"aria-label":a?`Close operations navigation`:`Open operations navigation`,className:`mobile-navigation-toggle`,color:`var(--admin-ink)`,opened:a,size:`sm`,onClick:()=>o(e=>!e)}),(0,B.jsx)(`div`,{className:`brand-mark`,"aria-hidden":`true`,children:`1`}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{className:`eyebrow command-eyebrow`,size:`xs`,children:`1MCP control plane`}),(0,B.jsx)(zm,{order:1,size:`h4`,children:`Admin Console`})]})]}),(0,B.jsxs)(X,{gap:`sm`,wrap:`nowrap`,children:[(0,B.jsxs)(`div`,{className:`runtime-live`,"aria-label":`Runtime online`,children:[(0,B.jsx)(`span`,{className:`runtime-live-dot`}),(0,B.jsx)(Z,{size:`xs`,fw:800,children:`Runtime online`})]}),(0,B.jsx)(td,{variant:`light`,color:Jh(t),children:qh(t)})]})]})}),(0,B.jsxs)(ou.Navbar,{className:`admin-app-navbar`,"aria-label":`Operations navigation`,children:[(0,B.jsxs)($,{gap:`xs`,className:`nav-stack`,children:[(0,B.jsx)(Z,{className:`nav-section-label`,children:`Workspace`}),(0,B.jsx)(d_,{icon:(0,B.jsx)(gh,{size:17}),label:`Dashboard`,href:`/admin`,active:i===`dashboard`,onNavigate:()=>s(`dashboard`)}),(0,B.jsx)(d_,{icon:(0,B.jsx)(ph,{size:17}),label:`Server inventory`,href:`/admin/servers`,active:i===`servers`,onNavigate:()=>s(`servers`)}),(0,B.jsx)(d_,{icon:(0,B.jsx)(Eh,{size:17}),label:`OAuth services`,href:`/admin/oauth`,active:i===`oauth`,onNavigate:()=>s(`oauth`)}),(0,B.jsx)(d_,{icon:(0,B.jsx)(hh,{size:17}),label:`Audit trail`,href:`/admin/audit`,active:i===`audit`,onNavigate:()=>s(`audit`)}),(0,B.jsx)(d_,{icon:(0,B.jsx)(Dh,{size:17}),label:`Presets`,href:`/admin/presets`,active:i===`presets`,onNavigate:()=>s(`presets`)}),(0,B.jsx)(d_,{icon:(0,B.jsx)(_h,{size:17}),label:`About`,href:`/admin/about`,active:i===`about`,onNavigate:()=>s(`about`)})]}),(0,B.jsxs)($,{gap:`xs`,className:`nav-runtime-card`,children:[(0,B.jsx)(Z,{className:`nav-section-label`,children:`Runtime target`}),(0,B.jsx)(Z,{fw:800,className:`truncate`,children:Gh(t.status?.runtime)}),(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,className:`truncate`,children:Kh(t.status?.runtime)}),(0,B.jsx)(Z,{size:`xs`,className:`nav-scope truncate`,children:t.status?.runtime.runtimeScopeId??`scope unavailable`})]})]}),(0,B.jsx)(ou.Main,{className:`admin-shell-main`,children:(0,B.jsxs)($,{gap:`md`,className:`admin-console`,children:[(0,B.jsx)(g_,{state:t}),(0,B.jsx)(u_,{session:e})]})})]});function s(e){r.navigate(e),o(!1)}}function u_({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,B.jsx)(Hg,{model:a});case`oauth`:return(0,B.jsx)(Jg,{model:a,oauth:e.oauth});case`audit`:return(0,B.jsx)(Ug,{model:a});case`presets`:return(0,B.jsx)(a_,{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`about`:return(0,B.jsx)(Xh,{state:t});case`dashboard`:return(0,B.jsx)(Vg,{model:a,navigate:n.navigate})}}function d_({icon:e,label:t,href:n,active:r=!1,onNavigate:i}){return(0,B.jsxs)(`a`,{href:n,"aria-current":r?`page`:void 0,className:`nav-item${r?` nav-item-active`:``}`,onClick:e=>{f_(e)&&(e.preventDefault(),i?.())},children:[e,(0,B.jsx)(Z,{size:`sm`,fw:700,children:t})]})}function f_(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function p_({state:e,children:t}){return(0,B.jsx)(`main`,{className:`admin-auth-shell`,"aria-label":`Admin authentication`,children:(0,B.jsxs)($,{gap:`md`,className:`admin-auth-card`,children:[(0,B.jsx)(g_,{state:e}),t]})})}function m_(){return(0,B.jsx)(Js,{component:`section`,className:`operations-panel`,"aria-labelledby":`setup-required-title`,withBorder:!0,children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{className:`eyebrow`,size:`xs`,children:`Runtime gate`}),(0,B.jsx)(zm,{id:`setup-required-title`,order:2,children:`Setup required`})]}),(0,B.jsx)(td,{color:`yellow`,variant:`filled`,children:`No Admin Account`})]}),(0,B.jsx)(Z,{c:`dimmed`,children:`Run CLI bootstrap from the runtime host, then refresh this page. The browser setup page does not create admin accounts.`}),(0,B.jsx)(hd,{block:!0,children:`1mcp admin bootstrap --username operator --password 'use-a-long-random-password'`})]})})}function h_({loading:e,onLogin:t}){let[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(``);return(0,B.jsx)(Js,{component:`section`,className:`login-panel`,"aria-labelledby":`login-title`,withBorder:!0,children:(0,B.jsx)(`form`,{onSubmit:r=>{r.preventDefault(),e||t?.({username:n,password:i})},children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{className:`eyebrow`,size:`xs`,children:`Admin Session`}),(0,B.jsx)(zm,{id:`login-title`,order:2,children:`Operator login`})]}),(0,B.jsx)(td,{variant:`light`,children:e?`Checking session`:`Login required`})]}),(0,B.jsx)(Mm,{label:`Username`,autoComplete:`username`,disabled:e,value:n,onChange:e=>r(e.currentTarget.value),required:!0}),(0,B.jsx)(bp,{label:`Password`,autoComplete:`current-password`,disabled:e,value:i,onChange:e=>a(e.currentTarget.value),required:!0}),(0,B.jsx)(Q,{type:`submit`,loading:e,disabled:e,children:e?`Checking`:`Log in`})]})})})}function g_({state:e}){let t=e.banner??(e.error?{kind:`error`,message:e.error}:null);return t?(0,B.jsx)(Ml,{color:t.kind===`error`?`red`:`teal`,role:t.kind===`error`?`alert`:`status`,children:t.message}):null}var __=(0,y.createContext)(null);function v_({children:e}){let[t,n]=(0,y.useState)(null),r=(0,y.useRef)(null),i=(0,y.useRef)([]),a=(0,y.useRef)(new WeakSet),o=(0,y.useRef)(!1),s=(0,y.useRef)(null),c=(0,y.useRef)(null),l=(0,y.useCallback)(e=>new Promise(t=>{let a={...e,resolve:t};if(r.current){i.current.push(a);return}c.current=document.activeElement instanceof HTMLElement?document.activeElement:null,r.current=a,(0,wo.flushSync)(()=>n(a))}),[]),u=(0,y.useCallback)(e=>{let t=r.current;if(!t||o.current||a.current.has(t))return;o.current=!0,a.current.add(t),t.resolve(e);let l=i.current.shift()??null;r.current=l,(0,wo.flushSync)(()=>n(l)),window.setTimeout(()=>{o.current=!1,l?s.current?.focus():c.current?.focus()},0)},[]),d=(0,y.useMemo)(()=>l,[l]);return(0,y.useEffect)(()=>{t&&s.current?.focus()},[t]),(0,B.jsxs)(__.Provider,{value:d,children:[e,t?(0,B.jsx)(`div`,{className:`confirmation-overlay`,role:`presentation`,children:(0,B.jsx)(vc,{active:!0,children:(0,B.jsx)(Js,{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(),u(!1))},children:(0,B.jsxs)($,{gap:`md`,children:[(0,B.jsx)(zm,{id:`admin-confirmation-title`,order:3,children:t.title}),(0,B.jsx)(Z,{id:`admin-confirmation-message`,children:t.message}),t.details?.length?(0,B.jsx)(Kd,{spacing:`xs`,size:`sm`,children:t.details.map(e=>(0,B.jsxs)(Kd.Item,{children:[(0,B.jsxs)(Z,{span:!0,fw:700,children:[e.label,`:`,` `]}),(0,B.jsx)(Z,{span:!0,children:e.value})]},`${e.label}:${e.value}`))}):null,(0,B.jsxs)(X,{justify:`flex-end`,children:[(0,B.jsx)(Q,{ref:s,variant:`default`,onClick:()=>u(!1),children:t.cancelLabel??`Cancel`}),(0,B.jsx)(Q,{color:t.tone===`danger`?`red`:void 0,onClick:()=>u(!0),children:t.confirmLabel??`Confirm`})]})]})})})}):null]})}function y_(){let e=(0,y.useContext)(__);if(!e)throw Error(`useConfirmationDialog must be used within ConfirmationDialogProvider`);return e}function b_(){return{view:`loading`,session:null,status:null,configuredServers:[],serverMutations:{},banner:null,error:null,lastUpdatedAt:null}}function x_(e,t){switch(t.type){case`sessionLoaded`:return{...e,view:`console`,session:t.session,banner:null,error:null};case`sessionUnauthenticated`:return{...b_(),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{...b_(),view:`login`};case`mutationStarted`:return S_(e,t.serverId,{state:`busy`,action:t.action});case`mutationSucceeded`:return S_(e,t.serverId,{state:`succeeded`,action:t.action,message:`Server ${t.action} completed.`});case`mutationFailed`:return S_(e,t.serverId,{state:`failed`,action:t.action,message:t.message});case`clearBanner`:return{...e,banner:null,error:null}}}function S_(e,t,n){return{...e,serverMutations:{...e.serverMutations,[t]:n},banner:n.state===`failed`?{kind:`error`,message:n.message??``}:e.banner}}var C_=5e3,w_=6e4;function T_(e){return e===`visible`?C_:w_}function E_(e){return e.view===`console`&&!!e.session?.csrfToken}var D_={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 O_(e){if(e instanceof Vm)return e.failure.message;throw e}function k_({api:e,documentRef:t=document,windowRef:n=window,nowLabel:r}){return(0,B.jsx)(v_,{children:(0,B.jsx)(A_,{api:e,documentRef:t,windowRef:n,nowLabel:r})})}function A_({api:e,documentRef:t,windowRef:n,nowLabel:r}){return(0,B.jsx)(l_,{session:j_({api:e,documentRef:t,windowRef:n,nowLabel:r,confirm:y_()})})}function j_({api:e,documentRef:t,windowRef:n,nowLabel:r,confirm:i}){let[a,o]=(0,y.useState)(b_),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(()=>N_(n.location?.pathname??`/admin`)),[d,f]=(0,y.useState)(null),[p]=(0,y.useState)(()=>{let e=F_(n.location?.search??``);return e&&n.history?.replaceState(null,``,`/admin/oauth`),e}),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)([]),[v,b]=(0,y.useState)([]),[x,S]=(0,y.useState)(``),[C,w]=(0,y.useState)(!1),T=(0,y.useRef)(a),E=(0,y.useRef)(null),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=x_(T.current,e);T.current=t,o(t)},[]);(0,y.useEffect)(()=>{T.current=a},[a]);let P=(0,y.useCallback)(()=>{E.current!==null&&(n.clearTimeout(E.current),E.current=null)},[n]),F=(0,y.useCallback)(()=>{j.current+=1,A.current=!1,f(null),h(null)},[]),ee=(0,y.useCallback)(e=>{P(),F(),N({type:`sessionUnauthenticated`,adminStatus:e})},[P,N,F]),I=(0,y.useCallback)(e=>{let t=e instanceof Vm?e.failure:null;return t?.kind===`unauthenticated`?(ee(t.adminStatus),!0):!1},[ee]),L=(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]),te=(0,y.useCallback)(e=>{u(N_(e))},[]),ne=Cg({api:e,session:a.session,browser:L,onUnauthenticated:ee,onApplied:()=>D.current?.(),onPathCommitted:te}),re=(0,y.useCallback)(e=>T.current.session?.csrfToken===e,[]),ie=(0,y.useCallback)(async()=>{if(T.current.session){w(!0);try{let t=await e.listPresets();_(t.presets),b(t.targets??[]),S(t.revision)}finally{w(!1)}}},[e]);(0,y.useEffect)(()=>{l===`presets`&&a.session&&ie()},[ie,l,a.session]);let ae=(0,y.useCallback)(async(t,n)=>{let r=T.current.session?.csrfToken;if(!r)throw Error(`admin_session_required`);return e.previewPreset({draft:t,sourceName:n,csrfToken:r})},[e]),R=(0,y.useCallback)(async t=>{if(O.current)return!1;O.current=!0;try{let n=T.current.session?.csrfToken;return!n||!await i({title:`${M_(t.action)} ${t.preview.draft.name}?`,message:`The preview must still match the current preset store when this change is saved.`,confirmLabel:`${M_(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 ie(),!0)}finally{O.current=!1}},[e,i,ie]),oe=(0,y.useCallback)(async t=>{if(!k.current){k.current=!0;try{let n=T.current.session?.csrfToken;if(!n)return;let r=await e.previewPresetDelete({name:t,revision:x,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:x,previewFingerprint:r.previewFingerprint,csrfToken:n}),await ie()}finally{k.current=!1}}},[e,i,ie,x]),se=(0,y.useCallback)(async e=>{let t=P_(e);await ne.close(t)&&u(e)},[ne]),ce=(0,y.useCallback)(async(t,n)=>{let r=n??T.current.session;if(!r)return;let i=r.csrfToken;try{let[t,n]=await Promise.all([e.getStatus(),e.listConfiguredServers()]);if(!re(i))return;N({type:`refreshSucceeded`,status:t,configuredServers:n,updatedAt:M()})}catch(e){if(!re(i))return;I(e)||N({type:`refreshFailed`,message:`${t}${O_(e)}`})}},[e,N,M,I,re]);D.current=()=>ce(``);let le=(0,y.useCallback)(()=>{P(),E_(T.current)&&(E.current=n.setTimeout(()=>{ce(``).finally(le)},T_(t.visibilityState)))},[P,t,ce,n]),ue=(0,y.useCallback)(async()=>{try{let t=await e.getSession();N({type:`sessionLoaded`,session:t}),await ce(`Session loaded, but refresh failed: `,t)}catch(e){I(e)||N({type:`refreshFailed`,message:`Session check failed: ${O_(e)}`})}finally{le()}},[e,N,I,ce,le]),de=(0,y.useCallback)(async t=>{if(!s){c(!0);try{let n=await e.login(t);N({type:`sessionLoaded`,session:n}),await ce(`Login succeeded, but refresh failed: `,n)}catch(e){N({type:`loginFailed`,message:`Login failed: ${O_(e)}`})}finally{c(!1),le()}}},[e,N,s,ce,le]),fe=(0,y.useCallback)(async(t,n)=>{let r=T.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}),!re(i))return;N({type:`mutationSucceeded`,serverId:t,action:n}),await ce(``)}catch(e){if(!re(i))return;I(e)||N({type:`mutationFailed`,serverId:t,action:n,message:`Server ${n} failed: ${O_(e)}`})}},[e,N,I,re,ce]),pe=(0,y.useCallback)(async(t,r)=>{if(A.current)return;let i=T.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(!re(o))return;h({kind:`success`,message:`${r===`authorize`?`Authorization`:`Authorization restart`} started. Opening the provider.`}),n.location?.assign(i.redirectUrl)}catch(e){if(!re(o))return;I(e)||h({kind:`error`,message:O_(e)})}finally{j.current===a&&(A.current=!1,re(o)&&f(null))}},[e,I,re,n]),me=(0,y.useCallback)(async()=>{let t=T.current.session?.csrfToken;try{t&&await e.logout(t)}finally{P(),F(),N({type:`logoutSucceeded`})}},[e,P,N,F]),he=(0,y.useCallback)(async(e,t)=>{if(!navigator.clipboard?.writeText)throw Error(`clipboard_unavailable`);await navigator.clipboard.writeText(t)},[]);return(0,y.useEffect)(()=>(ue(),P),[P,ue]),(0,y.useEffect)(()=>{let e=()=>le();return t.addEventListener?.(`visibilitychange`,e),()=>t.removeEventListener?.(`visibilitychange`,e)},[t,le]),{state:a,loginBusy:s,login:de,logout:me,refresh:()=>ce(`Manual refresh failed: `),navigation:{route:l,navigate:se},configuredServers:{edit:ne,mutate:fe,copy:he},oauth:{busy:d,callbackFeedback:p,operationFeedback:m,operate:pe},presets:{items:g,targets:v,revision:x,busy:C,load:ie,preview:ae,save:R,delete:oe}}}function M_(e){return e===`create`?`Create`:e===`duplicate`?`Duplicate`:`Update`}function N_(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/about`)?`about`:`dashboard`}function P_(e){return e===`dashboard`?`/admin`:`/admin/${e}`}function F_(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(D_,n)?D_[n]:`OAuth authorization did not complete.`}:null}var I_=kr({primaryColor:`conduit`,defaultRadius:`sm`,fontFamily:`Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,headings:{fontFamily:`Inter, 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`]}}),L_=document.querySelector(`#admin-root`);if(!L_)throw Error(`Admin Console root element was not found`);(0,Bm.createRoot)(L_).render((0,B.jsx)(lr,{theme:I_,children:(0,B.jsx)(k_,{api:Um()})}));
60
+ `),a=!1),Object.assign(Object.assign({},e),{allowNegative:a})}function ep(e){e=$f(e),e.decimalSeparator,e.allowedDecimalSeparators,e.thousandsGroupStyle;var t=e.suffix,n=e.allowNegative,r=e.allowLeadingZeros,i=e.onKeyDown;i===void 0&&(i=hf);var a=e.onBlur;a===void 0&&(a=hf);var o=e.thousandSeparator,s=e.decimalScale,c=e.fixedDecimalScale,l=e.prefix;l===void 0&&(l=``);var u=e.defaultValue,d=e.value,f=e.valueIsNumericString,p=e.onValueChange,m=pf(e,[`decimalSeparator`,`allowedDecimalSeparators`,`thousandsGroupStyle`,`suffix`,`allowNegative`,`allowLeadingZeros`,`onKeyDown`,`onBlur`,`thousandSeparator`,`decimalScale`,`fixedDecimalScale`,`prefix`,`defaultValue`,`value`,`valueIsNumericString`,`onValueChange`]),h=qf(e),g=h.decimalSeparator,_=h.allowedDecimalSeparators,v=function(t){return Kf(t,e)},y=function(t,n){return Zf(t,n,e)},b=vf(d)?u:d,x=f??Xf(b,l,t);vf(d)?vf(u)||(x||=typeof u==`number`):x||=typeof d==`number`;var S=function(e){return bf(e)?e:(typeof e==`number`&&(e=kf(e)),x&&typeof s==`number`?Af(e,s,!!c):e)},C=Hf(S(d),S(u),!!x,v,y,p),w=C[0],T=w.numAsString,E=w.formattedValue,D=C[1];return Object.assign(Object.assign({},m),{value:E,valueIsNumericString:!1,isValidInputCharacter:function(e){return e===g||_f(e)},isCharacterSame:function(e){var t=e.currentValue,n=e.lastValue,r=e.formattedValue,i=e.currentValueIndex,a=e.formattedValueIndex,o=t[i],u=r[a],f=Mf(n,t).to,p=function(e){return y(e).indexOf(`.`)+l.length};return d===0&&c&&s&&t[f.start]===g&&p(t)<i&&p(r)>a?!1:i>=f.start&&i<f.end&&_&&_.includes(o)&&u===g?!0:o===u},onValueChange:D,format:v,removeFormatting:y,getCaretBoundary:function(t){return Qf(t,e)},onKeyDown:function(e){var t=e.target,r=e.key,a=t.selectionStart,u=t.selectionEnd,d=t.value;if(d===void 0&&(d=``),(r===`Backspace`||r===`Delete`)&&u<l.length&&d!==`-`){e.preventDefault();return}if(a!==u){i(e);return}r===`Backspace`&&d[0]===`-`&&a===l.length+1&&n&&jf(t,1),s&&c&&(r===`Backspace`&&d[a-1]===g?(jf(t,a-1),e.preventDefault()):r===`Delete`&&d[a]===g&&e.preventDefault()),_?.includes(r)&&d[a]===g&&jf(t,a+1);var f=o===!0?`,`:o;r===`Backspace`&&d[a-1]===f&&jf(t,a-1),r===`Delete`&&d[a]===f&&jf(t,a+1),i(e)},onBlur:function(t){var n=T;n.match(/\d/g)||(n=``),r||(n=Ef(n)),c&&s&&(n=Af(n,s,c)),n!==T&&D({formattedValue:Kf(n,e),value:n,floatValue:parseFloat(n)},{event:t,source:mf.event}),a(t)}})}function tp(e){var t=ep(e);return y.createElement(Gf,Object.assign({},t))}var np={root:`m_e2f5cd4e`,controls:`m_95e17d22`,control:`m_80b4b171`};function rp({direction:e,style:t,...n}){return(0,B.jsx)(`svg`,{style:{width:`var(--ni-chevron-size)`,height:`var(--ni-chevron-size)`,transform:e===`up`?`rotate(180deg)`:void 0,...t},viewBox:`0 0 15 15`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,...n,children:(0,B.jsx)(`path`,{d:`M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z`,fill:`currentColor`,fillRule:`evenodd`,clipRule:`evenodd`})})}var ip=/^(0\.0*|-0(\.0*)?)$/,ap=/^-?0\d+(\.\d+)?\.?$/,op=/\.\d*0$/,sp=/^-?\d+\.$/;function cp(e){return typeof e==`string`&&e!==``&&!Number.isNaN(Number(e))}function lp(e){return typeof e==`number`?e<2**53-1:e===``||cp(e)&&Number(e)<2**53-1}function up(e){return e.toString().replace(`.`,``).length}function dp(e,t){return(typeof e==`number`?e<2**53-1:!Number.isNaN(Number(e)))&&!Number.isNaN(e)&&up(t)<14&&t!==``}function fp(e,t,n){return e===void 0||(t===void 0||e>=t)&&(n===void 0||e<=n)}var pp={step:1,clampBehavior:`blur`,allowDecimal:!0,allowNegative:!0,withKeyboardEvents:!0,allowLeadingZeros:!0,trimLeadingZeroesOnBlur:!0,startValue:0,allowedDecimalSeparators:[`.`,`,`]},mp=U((e,{size:t})=>({controls:{"--ni-chevron-size":V(t,`ni-chevron-size`)}}));function hp(e,t,n){let r=e.toString(),i=sp.test(r),a=r.replace(/^0+(?=\d)/,``),o=parseFloat(a);if(Number.isNaN(o))return a;if(o>2**53-1)return t===void 0?a:t;let s=lt(o,n,t);return i?`${s.toString().replace(/^0+(?=\d)/,``)}.`:s}var gp=q((e,t)=>{let n=G(`NumberInput`,pp,e),{className:r,classNames:i,styles:a,unstyled:o,vars:s,onChange:c,onValueChange:l,value:u,defaultValue:d,max:f,min:p,step:m,hideControls:h,rightSection:g,isAllowed:_,clampBehavior:v,onBlur:b,allowDecimal:x,decimalScale:S,onKeyDown:C,onKeyDownCapture:w,handlersRef:T,startValue:E,disabled:D,rightSectionPointerEvents:O,allowNegative:k,readOnly:A,size:j,rightSectionWidth:M,stepHoldInterval:N,stepHoldDelay:P,allowLeadingZeros:F,withKeyboardEvents:ee,trimLeadingZeroesOnBlur:I,allowedDecimalSeparators:L,attributes:te,...ne}=n,re=W({name:`NumberInput`,classes:np,props:n,classNames:i,styles:a,unstyled:o,attributes:te,vars:s,varsResolver:mp}),{resolvedClassNames:ie,resolvedStyles:ae}=dr({classNames:i,styles:a,props:n}),[R,oe]=H({value:u,defaultValue:d,finalValue:``,onChange:c}),se=P!==void 0&&N!==void 0,ce=(0,y.useRef)(null),le=(0,y.useRef)(null),ue=(0,y.useRef)(0),de=(e,t)=>{t.source===`event`&&oe(dp(e.floatValue,e.value)&&!ip.test(e.value)&&!(F&&ap.test(e.value))&&!op.test(e.value)&&!sp.test(e.value)?e.floatValue:e.value),l?.(e,t)},fe=e=>{let t=String(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0},pe=e=>{ce.current&&e!==void 0&&ce.current.setSelectionRange(e,e)},me=(0,y.useRef)($e);me.current=()=>{if(!lp(R))return;let e,t=fe(R),n=fe(m),r=Math.max(t,n),i=10**r;if(!cp(R)&&(typeof R!=`number`||Number.isNaN(R)))e=lt(E,p,f);else if(f!==void 0){let t=(Math.round(Number(R)*i)+Math.round(m*i))/i;e=t<=f?t:f}else e=(Math.round(Number(R)*i)+Math.round(m*i))/i;let a=e.toFixed(r);oe(parseFloat(a)),l?.({floatValue:parseFloat(a),formattedValue:a,value:a},{source:`increment`}),setTimeout(()=>pe(ce.current?.value.length),0)};let he=(0,y.useRef)($e);he.current=()=>{if(!lp(R))return;let e,t=p===void 0?k?-(2**53-1):0:p,n=fe(R),r=fe(m),i=Math.max(n,r),a=10**i;if(!cp(R)&&typeof R!=`number`||Number.isNaN(R))e=lt(E,t,f);else{let n=(Math.round(Number(R)*a)-Math.round(m*a))/a;e=t!==void 0&&n<t?t:n}let o=e.toFixed(i);oe(parseFloat(o)),l?.({floatValue:parseFloat(o),formattedValue:o,value:o},{source:`decrement`}),setTimeout(()=>pe(ce.current?.value.length),0)};let ge=e=>{C?.(e),!(A||!ee)&&(e.key===`ArrowUp`&&(e.preventDefault(),me.current?.()),e.key===`ArrowDown`&&(e.preventDefault(),he.current?.()))},_e=e=>{if(w?.(e),e.key===`Backspace`){let t=ce.current;t&&t.selectionStart===0&&t.selectionStart===t.selectionEnd&&(e.preventDefault(),window.setTimeout(()=>pe(0),0))}},ve=e=>{let t=R;v===`blur`&&typeof t==`number`&&(t=lt(t,p,f)),I&&typeof t==`string`&&fe(t)<15&&(t=hp(t,f,p)),R!==t&&oe(t),b?.(e)};It(T,{increment:me.current,decrement:he.current});let ye=e=>{e?me.current?.():he.current?.(),ue.current+=1},be=e=>{if(ye(e),se){let t=typeof N==`number`?N:N(ue.current);le.current=window.setTimeout(()=>be(e),t)}},xe=(e,t)=>{e.preventDefault(),ce.current?.focus(),ye(t),se&&(le.current=window.setTimeout(()=>be(t),P))},Se=()=>{le.current&&window.clearTimeout(le.current),le.current=null,ue.current=0},Ce=(0,B.jsxs)(`div`,{...re(`controls`),children:[(0,B.jsx)(Us,{...re(`control`),tabIndex:-1,"aria-hidden":!0,disabled:D||typeof R==`number`&&f!==void 0&&R>=f,mod:{direction:`up`},onMouseDown:e=>e.preventDefault(),onPointerDown:e=>{xe(e,!0)},onPointerUp:Se,onPointerLeave:Se,children:(0,B.jsx)(rp,{direction:`up`})}),(0,B.jsx)(Us,{...re(`control`),tabIndex:-1,"aria-hidden":!0,disabled:D||typeof R==`number`&&p!==void 0&&R<=p,mod:{direction:`down`},onMouseDown:e=>e.preventDefault(),onPointerDown:e=>{xe(e,!1)},onPointerUp:Se,onPointerLeave:Se,children:(0,B.jsx)(rp,{direction:`down`})})]});return(0,B.jsx)(wl,{component:tp,allowNegative:k,className:$t(np.root,r),size:j,inputMode:`decimal`,...ne,readOnly:A,disabled:D,value:R,getInputRef:Rt(t,ce),onValueChange:de,rightSection:h||A||!lp(R)?g:g||Ce,classNames:ie,styles:ae,unstyled:o,__staticSelector:`NumberInput`,decimalScale:x?S:0,onKeyDown:ge,onKeyDownCapture:_e,rightSectionPointerEvents:O??(D?`none`:void 0),rightSectionWidth:M??`var(--ni-right-section-width-${j||`sm`})`,allowLeadingZeros:F,allowedDecimalSeparators:L,onBlur:ve,attributes:te,isAllowed:e=>v===`strict`?_?_(e)&&fp(e.floatValue,p,f):fp(e.floatValue,p,f):!_||_(e)})});gp.classes={...wl.classes,...np},gp.displayName=`@mantine/core/NumberInput`;var _p={root:`m_f61ca620`,input:`m_ccf8da4c`,innerInput:`m_f2d85dd2`,visibilityToggle:`m_b1072d44`},vp={visibilityToggleIcon:({reveal:e})=>(0,B.jsx)(`svg`,{viewBox:`0 0 15 15`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,style:{width:`var(--psi-icon-size)`,height:`var(--psi-icon-size)`},children:(0,B.jsx)(`path`,{d:e?`M13.3536 2.35355C13.5488 2.15829 13.5488 1.84171 13.3536 1.64645C13.1583 1.45118 12.8417 1.45118 12.6464 1.64645L10.6828 3.61012C9.70652 3.21671 8.63759 3 7.5 3C4.30786 3 1.65639 4.70638 0.0760002 7.23501C-0.0253338 7.39715 -0.0253334 7.60288 0.0760014 7.76501C0.902945 9.08812 2.02314 10.1861 3.36061 10.9323L1.64645 12.6464C1.45118 12.8417 1.45118 13.1583 1.64645 13.3536C1.84171 13.5488 2.15829 13.5488 2.35355 13.3536L4.31723 11.3899C5.29348 11.7833 6.36241 12 7.5 12C10.6921 12 13.3436 10.2936 14.924 7.76501C15.0253 7.60288 15.0253 7.39715 14.924 7.23501C14.0971 5.9119 12.9769 4.81391 11.6394 4.06771L13.3536 2.35355ZM9.90428 4.38861C9.15332 4.1361 8.34759 4 7.5 4C4.80285 4 2.52952 5.37816 1.09622 7.50001C1.87284 8.6497 2.89609 9.58106 4.09974 10.1931L9.90428 4.38861ZM5.09572 10.6114L10.9003 4.80685C12.1039 5.41894 13.1272 6.35031 13.9038 7.50001C12.4705 9.62183 10.1971 11 7.5 11C6.65241 11 5.84668 10.8639 5.09572 10.6114Z`:`M7.5 11C4.80285 11 2.52952 9.62184 1.09622 7.50001C2.52952 5.37816 4.80285 4 7.5 4C10.1971 4 12.4705 5.37816 13.9038 7.50001C12.4705 9.62183 10.1971 11 7.5 11ZM7.5 3C4.30786 3 1.65639 4.70638 0.0760002 7.23501C-0.0253338 7.39715 -0.0253334 7.60288 0.0760014 7.76501C1.65639 10.2936 4.30786 12 7.5 12C10.6921 12 13.3436 10.2936 14.924 7.76501C15.0253 7.60288 15.0253 7.39715 14.924 7.23501C13.3436 4.70638 10.6921 3 7.5 3ZM7.5 9.5C8.60457 9.5 9.5 8.60457 9.5 7.5C9.5 6.39543 8.60457 5.5 7.5 5.5C6.39543 5.5 5.5 6.39543 5.5 7.5C5.5 8.60457 6.39543 9.5 7.5 9.5Z`,fill:`currentColor`,fillRule:`evenodd`,clipRule:`evenodd`})})},yp=U((e,{size:t})=>({root:{"--psi-icon-size":V(t,`psi-icon-size`),"--psi-button-size":V(t,`psi-button-size`)}})),bp=q((e,t)=>{let n=G(`PasswordInput`,vp,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,required:l,error:u,leftSection:d,disabled:f,id:p,variant:m,inputContainer:h,description:g,label:_,size:v,errorProps:y,descriptionProps:b,labelProps:x,withAsterisk:S,inputWrapperOrder:C,wrapperProps:w,radius:T,rightSection:E,rightSectionWidth:D,rightSectionPointerEvents:O,leftSectionWidth:k,visible:A,defaultVisible:j,onVisibilityChange:M,visibilityToggleIcon:N,visibilityToggleButtonProps:P,rightSectionProps:F,leftSectionProps:ee,leftSectionPointerEvents:I,withErrorStyles:L,mod:te,attributes:ne,...re}=n,ie=Pt(p),[ae,R]=H({value:A,defaultValue:j,finalValue:!1,onChange:M}),oe=()=>R(!ae),se=W({name:`PasswordInput`,classes:_p,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:ne,vars:c,varsResolver:yp}),{resolvedClassNames:ce,resolvedStyles:le}=dr({classNames:r,styles:o,props:n}),{styleProps:ue,rest:de}=Nr(re),fe=y?.id||`${ie}-error`,pe=b?.id||`${ie}-description`,me=`${u&&typeof u!=`boolean`?fe:``} ${g?pe:``}`,he=me.trim().length>0?me.trim():void 0,ge=(0,B.jsx)(Wc,{...se(`visibilityToggle`),disabled:f,radius:T,"aria-hidden":!P,"aria-pressed":ae,tabIndex:-1,...P,variant:P?.variant??`subtle`,color:`gray`,unstyled:s,onTouchEnd:e=>{e.preventDefault(),P?.onTouchEnd?.(e),oe()},onMouseDown:e=>{e.preventDefault(),P?.onMouseDown?.(e),oe()},onKeyDown:e=>{P?.onKeyDown?.(e),e.key===` `&&(e.preventDefault(),oe())},children:(0,B.jsx)(N,{reveal:ae})});return(0,B.jsx)(xl.Wrapper,{required:l,id:ie,label:_,error:u,description:g,size:v,classNames:ce,styles:le,__staticSelector:`PasswordInput`,unstyled:s,withAsterisk:S,inputWrapperOrder:C,inputContainer:h,variant:m,labelProps:{...x,htmlFor:ie},descriptionProps:{...b,id:pe},errorProps:{...y,id:fe},mod:te,attributes:ne,...se(`root`),...ue,...w,children:(0,B.jsx)(xl,{component:`div`,error:u,leftSection:d,size:v,classNames:{...ce,input:$t(_p.input,ce.input)},styles:le,radius:T,disabled:f,__staticSelector:`PasswordInput`,rightSectionWidth:D,rightSection:E??ge,variant:m,unstyled:s,leftSectionWidth:k,rightSectionPointerEvents:O||`all`,rightSectionProps:F,leftSectionProps:ee,leftSectionPointerEvents:I,withAria:!1,withErrorStyles:L,attributes:ne,children:(0,B.jsx)(`input`,{required:l,"data-invalid":!!u||void 0,"data-with-left-section":!!d||void 0,...se(`innerInput`),disabled:f,id:ie,ref:t,...de,"aria-describedby":he,autoComplete:de.autoComplete||`off`,type:ae?`text`:`password`})})})});bp.classes={...wl.classes,..._p},bp.displayName=`@mantine/core/PasswordInput`;var xp={root:`m_f3f1af94`,inner:`m_89c4f5e4`,icon:`m_f3ed6b2b`,radio:`m_8a3dbb89`,"radio--outline":`m_1bfe9d39`},[Sp,Cp]=Xe(),[wp,Tp]=Xe(),Ep={card:`m_9dc8ae12`},Dp={withBorder:!0},Op=U((e,{radius:t})=>({card:{"--card-radius":nt(t)}})),kp=q((e,t)=>{let n=G(`RadioCard`,Dp,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,checked:l,mod:u,withBorder:d,value:f,onClick:p,name:m,onKeyDown:h,attributes:g,..._}=n,v=W({name:`RadioCard`,classes:Ep,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:g,vars:c,varsResolver:Op,rootSelector:`card`}),{dir:y}=pi(),b=Cp(),x=typeof l==`boolean`?l:b?.value===f||!1,S=m||b?.name,C=e=>{if(h?.(e),[`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`].includes(e.nativeEvent.code)){e.preventDefault();let t=Array.from(document.querySelectorAll(`[role="radio"][name="${S||`__mantine`}"]`)),n=t.findIndex(t=>t===e.target),r=n+1>=t.length?0:n+1,i=n-1<0?t.length-1:n-1;e.nativeEvent.code===`ArrowDown`&&(t[r].focus(),t[r].click()),e.nativeEvent.code===`ArrowUp`&&(t[i].focus(),t[i].click()),e.nativeEvent.code===`ArrowLeft`&&(t[y===`ltr`?i:r].focus(),t[y===`ltr`?i:r].click()),e.nativeEvent.code===`ArrowRight`&&(t[y===`ltr`?r:i].focus(),t[y===`ltr`?r:i].click())}};return(0,B.jsx)(wp,{value:{checked:x},children:(0,B.jsx)(Us,{ref:t,mod:[{"with-border":d,checked:x},u],...v(`card`),..._,role:`radio`,"aria-checked":x,name:S,onClick:e=>{p?.(e),b?.onChange(f||``)},onKeyDown:C})})});kp.displayName=`@mantine/core/RadioCard`,kp.classes=Ep;var Ap=q((e,t)=>{let{value:n,defaultValue:r,onChange:i,size:a,wrapperProps:o,children:s,name:c,readOnly:l,disabled:u,...d}=G(`RadioGroup`,null,e),f=Pt(c),[p,m]=H({value:n,defaultValue:r,finalValue:``,onChange:i});return(0,B.jsx)(Sp,{value:{value:p,onChange:e=>!l&&m(typeof e==`string`?e:e.currentTarget.value),size:a,name:f,disabled:u},children:(0,B.jsx)(xl.Wrapper,{size:a,ref:t,...o,...d,labelElement:`div`,__staticSelector:`RadioGroup`,children:(0,B.jsx)(Wu,{role:`radiogroup`,children:s})})})});Ap.classes=xl.Wrapper.classes,Ap.displayName=`@mantine/core/RadioGroup`;function jp({size:e,style:t,...n}){return(0,B.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 5 5`,style:{width:z(e),height:z(e),...t},"aria-hidden":!0,...n,children:(0,B.jsx)(`circle`,{cx:`2.5`,cy:`2.5`,r:`2.5`,fill:`currentColor`})})}var Mp={indicator:`m_717d7ff6`,icon:`m_3e4da632`,"indicator--outline":`m_2980836c`},Np={icon:jp},Pp=U((e,{radius:t,color:n,size:r,iconColor:i,variant:a,autoContrast:o})=>{let s=En({color:n||e.primaryColor,theme:e}),c=s.isThemeColor&&s.shade===void 0?`var(--mantine-color-${s.color}-outline)`:s.color;return{indicator:{"--radio-size":V(r,`radio-size`),"--radio-radius":t===void 0?void 0:nt(t),"--radio-color":a===`outline`?c:Dn(n,e),"--radio-icon-size":V(r,`radio-icon-size`),"--radio-icon-color":i?Dn(i,e):Or(o,e)?Yn({color:n,theme:e,autoContrast:o}):void 0}}}),Fp=q((e,t)=>{let n=G(`RadioIndicator`,Np,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,icon:l,radius:u,color:d,iconColor:f,autoContrast:p,checked:m,mod:h,variant:g,disabled:_,attributes:v,...y}=n,b=W({name:`RadioIndicator`,classes:Mp,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:v,vars:c,varsResolver:Pp,rootSelector:`indicator`}),x=Tp(),S=typeof m==`boolean`?m:x?.checked||!1;return(0,B.jsx)(K,{ref:t,...b(`indicator`,{variant:g}),variant:g,mod:[{checked:S,disabled:_},h],...y,children:(0,B.jsx)(l,{...b(`icon`)})})});Fp.displayName=`@mantine/core/RadioIndicator`,Fp.classes=Mp;var Ip={labelPosition:`right`},Lp=U((e,{size:t,radius:n,color:r,iconColor:i,variant:a,autoContrast:o})=>{let s=En({color:r||e.primaryColor,theme:e}),c=s.isThemeColor&&s.shade===void 0?`var(--mantine-color-${s.color}-outline)`:s.color;return{root:{"--radio-size":V(t,`radio-size`),"--radio-radius":n===void 0?void 0:nt(n),"--radio-color":a===`outline`?c:Dn(r,e),"--radio-icon-color":i?Dn(i,e):Or(o,e)?Yn({color:r,theme:e,autoContrast:o}):void 0,"--radio-icon-size":V(t,`radio-icon-size`)}}}),Rp=q((e,t)=>{let n=G(`Radio`,Ip,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,id:l,size:u,label:d,labelPosition:f,description:p,error:m,radius:h,color:g,variant:_,disabled:v,wrapperProps:y,icon:b=jp,rootRef:x,iconColor:S,onChange:C,mod:w,attributes:T,checked:E,...D}=n,O=W({name:`Radio`,classes:xp,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:T,vars:c,varsResolver:Lp}),k=Cp(),A=k?.size??u,j=n.size?u:A,{styleProps:M,rest:N}=Nr(D),P=Pt(l),F=k?k.value===N.value:void 0,ee={checked:F??E,name:k?.name??N.name,onChange:e=>{k?.onChange(e),C?.(e)},disabled:k?.disabled??v};return(0,B.jsx)(Uu,{...O(`root`),__staticSelector:`Radio`,__stylesApiProps:n,id:P,size:j,labelPosition:f,label:d,description:p,error:m,disabled:ee.disabled,classNames:r,styles:o,unstyled:s,"data-checked":(F??E)||void 0,variant:_,ref:x,mod:w,...M,...y,children:(0,B.jsxs)(K,{...O(`inner`),mod:{"label-position":f},children:[(0,B.jsx)(K,{...O(`radio`,{focusable:!0,variant:_}),...N,...ee,component:`input`,mod:{error:!!m},ref:t,id:P,type:`radio`}),(0,B.jsx)(b,{...O(`icon`),"aria-hidden":!0})]})})});Rp.classes=xp,Rp.displayName=`@mantine/core/Radio`,Rp.Group=Ap,Rp.Card=kp,Rp.Indicator=Fp;var zp={root:`m_cf365364`,indicator:`m_9e182ccd`,label:`m_1738fcb2`,input:`m_1714d588`,control:`m_69686b9b`,innerLabel:`m_78882f40`},Bp={withItemsBorders:!0},Vp=U((e,{radius:t,color:n,transitionDuration:r,size:i,transitionTimingFunction:a})=>({root:{"--sc-radius":t===void 0?void 0:nt(t),"--sc-color":n?Dn(n,e):void 0,"--sc-shadow":n?void 0:`var(--mantine-shadow-xs)`,"--sc-transition-duration":r===void 0?void 0:`${r}ms`,"--sc-transition-timing-function":a,"--sc-padding":V(i,`sc-padding`),"--sc-font-size":rt(i)}})),Hp=q((e,t)=>{let n=G(`SegmentedControl`,Bp,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,data:l,value:u,defaultValue:d,onChange:f,size:p,name:m,disabled:h,readOnly:g,fullWidth:_,orientation:v,radius:b,color:x,transitionDuration:S,transitionTimingFunction:C,variant:w,autoContrast:T,withItemsBorders:E,mod:D,attributes:O,...k}=n,A=W({name:`SegmentedControl`,props:n,classes:zp,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:O,vars:c,varsResolver:Vp}),j=Wn(),M=l.map(e=>typeof e==`string`?{label:e,value:e}:e),N=Gt(),[P,F]=(0,y.useState)(ut()),[ee,I]=(0,y.useState)(null),[L,te]=(0,y.useState)({}),ne=(e,t)=>{L[t]=e,te(L)},[re,ie]=H({value:u,defaultValue:d,finalValue:Array.isArray(l)?M.find(e=>!e.disabled)?.value??l[0]?.value??null:null,onChange:f}),ae=Pt(m),R=M.map(e=>(0,y.createElement)(K,{...A(`control`),mod:{active:re===e.value,orientation:v},key:e.value},(0,y.createElement)(`input`,{...A(`input`),disabled:h||e.disabled,type:`radio`,name:ae,value:e.value,id:`${ae}-${e.value}`,checked:re===e.value,onChange:()=>!g&&ie(e.value),"data-focus-ring":j.focusRing,key:`${e.value}-input`}),(0,y.createElement)(K,{component:`label`,...A(`label`),mod:{active:re===e.value&&!(h||e.disabled),disabled:h||e.disabled,"read-only":g},htmlFor:`${ae}-${e.value}`,ref:t=>ne(t,e.value),__vars:{"--sc-label-color":x===void 0?void 0:Yn({color:x,theme:j,autoContrast:T})},key:`${e.value}-label`},(0,B.jsx)(`span`,{...A(`innerLabel`),children:e.label})))),oe=Rt(t,e=>I(e));return Ht(()=>{F(ut())},[l.length]),l.length===0?null:(0,B.jsxs)(K,{...A(`root`),variant:w,size:p,ref:oe,mod:[{"full-width":_,orientation:v,initialized:N,"with-items-borders":E},D],...k,role:`radiogroup`,"data-disabled":h,children:[typeof re==`string`&&(0,B.jsx)(kl,{target:L[re],parent:ee,component:`span`,transitionDuration:`var(--sc-transition-duration)`,...A(`indicator`)},P),R]})});Hp.classes=zp,Hp.displayName=`@mantine/core/SegmentedControl`;var Up={container:`m_925c2d2c`,root:`m_2415a157`};function Wp({spacing:e,verticalSpacing:t,cols:n,selector:r}){let i=Wn(),a=t===void 0?e:t,o=Ge({"--sg-spacing-x":tt(ct(e)),"--sg-spacing-y":tt(ct(a)),"--sg-cols":ct(n)?.toString()}),s=Ie(i.breakpoints).reduce((t,r)=>(t[r]||(t[r]={}),typeof e==`object`&&e[r]!==void 0&&(t[r][`--sg-spacing-x`]=tt(e[r])),typeof a==`object`&&a[r]!==void 0&&(t[r][`--sg-spacing-y`]=tt(a[r])),typeof n==`object`&&n[r]!==void 0&&(t[r][`--sg-cols`]=n[r]),t),{});return(0,B.jsx)(Mr,{styles:o,media:st(Ie(s),i.breakpoints).filter(e=>Ie(s[e.value]).length>0).map(e=>({query:`(min-width: ${i.breakpoints[e.value]})`,styles:s[e.value]})),selector:r})}function Gp(e){return typeof e==`object`&&e?Ie(e):[]}function Kp(e){return e.sort((e,t)=>Ve(e)-Ve(t))}function qp({spacing:e,verticalSpacing:t,cols:n}){return Kp(Array.from(new Set([...Gp(e),...Gp(t),...Gp(n)])))}function Jp({spacing:e,verticalSpacing:t,cols:n,selector:r}){let i=t===void 0?e:t,a=Ge({"--sg-spacing-x":tt(ct(e)),"--sg-spacing-y":tt(ct(i)),"--sg-cols":ct(n)?.toString()}),o=qp({spacing:e,verticalSpacing:t,cols:n}),s=o.reduce((t,r)=>(t[r]||(t[r]={}),typeof e==`object`&&e[r]!==void 0&&(t[r][`--sg-spacing-x`]=tt(e[r])),typeof i==`object`&&i[r]!==void 0&&(t[r][`--sg-spacing-y`]=tt(i[r])),typeof n==`object`&&n[r]!==void 0&&(t[r][`--sg-cols`]=n[r]),t),{});return(0,B.jsx)(Mr,{styles:a,container:o.map(e=>({query:`simple-grid (min-width: ${e})`,styles:s[e]})),selector:r})}var Yp={cols:1,spacing:`md`,type:`media`},Xp=q((e,t)=>{let n=G(`SimpleGrid`,Yp,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,cols:l,verticalSpacing:u,spacing:d,type:f,attributes:p,...m}=n,h=W({name:`SimpleGrid`,classes:Up,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:p,vars:c}),g=ni();return f===`container`?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Jp,{...n,selector:`.${g}`}),(0,B.jsx)(`div`,{...h(`container`),children:(0,B.jsx)(K,{ref:t,...h(`root`,{className:g}),...m})})]}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Wp,{...n,selector:`.${g}`}),(0,B.jsx)(K,{ref:t,...h(`root`,{className:g}),...m})]})});Xp.classes=Up,Xp.displayName=`@mantine/core/SimpleGrid`;var Zp={root:`m_6d731127`},Qp={gap:`md`,align:`stretch`,justify:`flex-start`},$p=U((e,{gap:t,align:n,justify:r})=>({root:{"--stack-gap":tt(t),"--stack-align":n,"--stack-justify":r}})),$=q((e,t)=>{let n=G(`Stack`,Qp,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,align:l,justify:u,gap:d,variant:f,attributes:p,...m}=n;return(0,B.jsx)(K,{ref:t,...W({name:`Stack`,props:n,classes:Zp,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:p,vars:c,varsResolver:$p})(`root`),variant:f,...m})});$.classes=Zp,$.displayName=`@mantine/core/Stack`;var em={root:`m_5f93f3bb`,input:`m_926b4011`,track:`m_9307d992`,thumb:`m_93039a1d`,trackLabel:`m_8277e082`},tm=(0,y.createContext)(null),nm=tm.Provider,rm=()=>(0,y.useContext)(tm),im=q((e,t)=>{let{value:n,defaultValue:r,onChange:i,size:a,wrapperProps:o,children:s,readOnly:c,disabled:l,...u}=G(`SwitchGroup`,null,e),[d,f]=H({value:n,defaultValue:r,finalValue:[],onChange:i});return(0,B.jsx)(nm,{value:{value:d,onChange:e=>{let t=e.currentTarget.value;!c&&f(d.includes(t)?d.filter(e=>e!==t):[...d,t])},size:a,disabled:l},children:(0,B.jsx)(xl.Wrapper,{size:a,ref:t,...o,...u,labelElement:`div`,__staticSelector:`SwitchGroup`,children:(0,B.jsx)(Wu,{role:`group`,children:s})})})});im.classes=xl.Wrapper.classes,im.displayName=`@mantine/core/SwitchGroup`;var am={labelPosition:`right`,withThumbIndicator:!0},om=U((e,{radius:t,color:n,size:r})=>({root:{"--switch-radius":t===void 0?void 0:nt(t),"--switch-height":V(r,`switch-height`),"--switch-width":V(r,`switch-width`),"--switch-thumb-size":V(r,`switch-thumb-size`),"--switch-label-font-size":V(r,`switch-label-font-size`),"--switch-track-label-padding":V(r,`switch-track-label-padding`),"--switch-color":n?Dn(n,e):void 0}})),sm=q((e,t)=>{let n=G(`Switch`,am,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,color:l,label:u,offLabel:d,onLabel:f,id:p,size:m,radius:h,wrapperProps:g,thumbIcon:_,checked:v,defaultChecked:y,onChange:b,labelPosition:x,description:S,error:C,disabled:w,variant:T,rootRef:E,mod:D,withThumbIndicator:O,attributes:k,...A}=n,j=rm(),M=m||j?.size,N=W({name:`Switch`,props:n,classes:em,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:k,vars:c,varsResolver:om}),{styleProps:P,rest:F}=Nr(A),ee=Pt(p),I={checked:j?.value.includes(F.value)??v,onChange:e=>{j?.onChange(e),b?.(e)},disabled:j?.disabled??w},[L,te]=H({value:I.checked??v,defaultValue:y,finalValue:!1});return(0,B.jsxs)(Uu,{...N(`root`),__staticSelector:`Switch`,__stylesApiProps:n,id:ee,size:M,labelPosition:x,label:u,description:S,error:C,disabled:I.disabled,bodyElement:`label`,labelElement:`span`,classNames:r,styles:o,unstyled:s,"data-checked":I.checked,variant:T,ref:E,mod:D,...P,...g,children:[(0,B.jsx)(`input`,{...F,...I,checked:L,"data-checked":I.checked,onChange:e=>{I.onChange?.(e),te(e.currentTarget.checked)},id:ee,ref:t,type:`checkbox`,role:`switch`,...N(`input`)}),(0,B.jsxs)(K,{"aria-hidden":`true`,component:`span`,mod:{error:C,"label-position":x,"without-labels":!f&&!d},...N(`track`),children:[(0,B.jsx)(K,{component:`span`,mod:{"reduce-motion":!0,"with-thumb-indicator":O&&!_},...N(`thumb`),children:_}),(0,B.jsx)(`span`,{...N(`trackLabel`),children:L?f:d})]})]})});sm.classes={...em,...Hu},sm.displayName=`@mantine/core/Switch`,sm.Group=im;var[cm,lm]=Ye(`Table component was not found in the tree`),um={table:`m_b23fa0ef`,th:`m_4e7aa4f3`,tr:`m_4e7aa4fd`,td:`m_4e7aa4ef`,tbody:`m_b2404537`,thead:`m_b242d975`,caption:`m_9e5a3ac7`,scrollContainer:`m_a100c15`,scrollContainerInner:`m_62259741`};function dm(e,t){if(!t)return;let n={};return t.columnBorder&&e.withColumnBorders&&(n[`data-with-column-border`]=!0),t.rowBorder&&e.withRowBorders&&(n[`data-with-row-border`]=!0),t.striped&&e.striped&&(n[`data-striped`]=e.striped),t.highlightOnHover&&e.highlightOnHover&&(n[`data-hover`]=!0),t.captionSide&&e.captionSide&&(n[`data-side`]=e.captionSide),t.stickyHeader&&e.stickyHeader&&(n[`data-sticky`]=!0),n}function fm(e,t){let n=`Table${e.charAt(0).toUpperCase()}${e.slice(1)}`,r=q((r,i)=>{let a=G(n,{},r),{classNames:o,className:s,style:c,styles:l,...u}=a,d=lm();return(0,B.jsx)(K,{component:e,ref:i,...dm(d,t),...d.getStyles(e,{className:s,classNames:o,style:c,styles:l,props:a}),...u})});return r.displayName=`@mantine/core/${n}`,r.classes=um,r}var pm=fm(`th`,{columnBorder:!0}),mm=fm(`td`,{columnBorder:!0}),hm=fm(`tr`,{rowBorder:!0,striped:!0,highlightOnHover:!0}),gm=fm(`thead`,{stickyHeader:!0}),_m=fm(`tbody`),vm=fm(`tfoot`),ym=fm(`caption`,{captionSide:!0});function bm({data:e}){return(0,B.jsxs)(B.Fragment,{children:[e.caption&&(0,B.jsx)(ym,{children:e.caption}),e.head&&(0,B.jsx)(gm,{children:(0,B.jsx)(hm,{children:e.head.map((e,t)=>(0,B.jsx)(pm,{children:e},t))})}),e.body&&(0,B.jsx)(_m,{children:e.body.map((e,t)=>(0,B.jsx)(hm,{children:e.map((e,t)=>(0,B.jsx)(mm,{children:e},t))},t))}),e.foot&&(0,B.jsx)(vm,{children:(0,B.jsx)(hm,{children:e.foot.map((e,t)=>(0,B.jsx)(pm,{children:e},t))})})]})}bm.displayName=`@mantine/core/TableDataRenderer`;var xm={type:`scrollarea`},Sm=U((e,{minWidth:t,maxHeight:n,type:r})=>({scrollContainer:{"--table-min-width":z(t),"--table-max-height":z(n),"--table-overflow":r===`native`?`auto`:void 0}})),Cm=q((e,t)=>{let n=G(`TableScrollContainer`,xm,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,children:l,minWidth:u,maxHeight:d,type:f,scrollAreaProps:p,attributes:m,...h}=n,g=W({name:`TableScrollContainer`,classes:um,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:m,vars:c,varsResolver:Sm,rootSelector:`scrollContainer`});return(0,B.jsx)(K,{component:f===`scrollarea`?zs:`div`,...f===`scrollarea`?d?{offsetScrollbars:`xy`,...p}:{offsetScrollbars:`x`,...p}:{},ref:t,...g(`scrollContainer`),...h,children:(0,B.jsx)(`div`,{...g(`scrollContainerInner`),children:l})})});Cm.classes=um,Cm.displayName=`@mantine/core/TableScrollContainer`;var wm={withRowBorders:!0,verticalSpacing:7},Tm=U((e,{layout:t,captionSide:n,horizontalSpacing:r,verticalSpacing:i,borderColor:a,stripedColor:o,highlightOnHoverColor:s,striped:c,highlightOnHover:l,stickyHeaderOffset:u,stickyHeader:d})=>({table:{"--table-layout":t,"--table-caption-side":n,"--table-horizontal-spacing":tt(r),"--table-vertical-spacing":tt(i),"--table-border-color":a?Dn(a,e):void 0,"--table-striped-color":c&&o?Dn(o,e):void 0,"--table-highlight-on-hover-color":l&&s?Dn(s,e):void 0,"--table-sticky-header-offset":d?z(u):void 0}})),Em=q((e,t)=>{let n=G(`Table`,wm,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,horizontalSpacing:l,verticalSpacing:u,captionSide:d,stripedColor:f,highlightOnHoverColor:p,striped:m,highlightOnHover:h,withColumnBorders:g,withRowBorders:_,withTableBorder:v,borderColor:y,layout:b,variant:x,data:S,children:C,stickyHeader:w,stickyHeaderOffset:T,mod:E,tabularNums:D,attributes:O,...k}=n,A=W({name:`Table`,props:n,className:i,style:a,classes:um,classNames:r,styles:o,unstyled:s,attributes:O,rootSelector:`table`,vars:c,varsResolver:Tm});return(0,B.jsx)(cm,{value:{getStyles:A,stickyHeader:w,striped:m===!0?`odd`:m||void 0,highlightOnHover:h,withColumnBorders:g,withRowBorders:_,captionSide:d||`bottom`},children:(0,B.jsx)(K,{component:`table`,variant:x,ref:t,mod:[{"data-with-table-border":v,"data-tabular-nums":D},E],...A(`table`),...k,children:C||!!S&&(0,B.jsx)(bm,{data:S})})})});Em.classes=um,Em.displayName=`@mantine/core/Table`,Em.Td=mm,Em.Th=pm,Em.Tr=hm,Em.Thead=gm,Em.Tbody=_m,Em.Tfoot=vm,Em.Caption=ym,Em.ScrollContainer=Cm,Em.DataRenderer=bm;function Dm({data:e,value:t}){let n=t.map(e=>e.trim().toLowerCase());return e.reduce((e,t)=>(Ku(t)?e.push({group:t.group,items:t.items.filter(e=>n.indexOf(e.label.toLowerCase().trim())===-1)}):n.indexOf(t.label.toLowerCase().trim())===-1&&e.push(t),e),[])}function Om(e,t){return e?t.split(RegExp(`[${e.join(``)}]`)).map(e=>e.trim()).filter(e=>e!==``):[t]}function km({splitChars:e,allowDuplicates:t,maxTags:n,value:r,currentTags:i}){let a=Om(e,r),o=t?[...i,...a]:[...new Set([...i,...a])];return n?o.slice(0,n):o}var Am={maxTags:1/0,acceptValueOnBlur:!0,splitChars:[`,`],hiddenInputValuesDivider:`,`,openOnFocus:!0,size:`sm`},jm=q((e,t)=>{let n=G(`TagsInput`,Am,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,size:l,value:u,defaultValue:d,onChange:f,onKeyDown:p,maxTags:m,allowDuplicates:h,onDuplicate:g,variant:_,data:v,dropdownOpened:b,defaultDropdownOpened:x,onDropdownOpen:S,onDropdownClose:C,selectFirstOptionOnChange:w,selectFirstOptionOnDropdownOpen:T,onOptionSubmit:E,comboboxProps:D,filter:O,limit:k,withScrollArea:A,maxDropdownHeight:j,searchValue:M,defaultSearchValue:N,onSearchChange:P,readOnly:F,disabled:ee,splitChars:I,onFocus:L,onBlur:te,onPaste:ne,radius:re,rightSection:ie,rightSectionWidth:ae,rightSectionPointerEvents:R,rightSectionProps:oe,leftSection:se,leftSectionWidth:ce,leftSectionPointerEvents:le,leftSectionProps:ue,inputContainer:de,inputWrapperOrder:fe,withAsterisk:pe,required:me,labelProps:he,descriptionProps:ge,errorProps:_e,wrapperProps:ve,description:ye,label:be,error:xe,withErrorStyles:Se,name:Ce,form:we,id:Te,clearable:Ee,clearButtonProps:De,hiddenInputProps:Oe,hiddenInputValuesDivider:ke,mod:Ae,renderOption:je,onRemove:Me,onClear:Ne,scrollAreaProps:Pe,acceptValueOnBlur:Fe,isDuplicate:Ie,openOnFocus:Le,attributes:Re,...ze}=n,Be=Pt(Te),Ve=cu(v),He=lu(Ve),Ue=(0,y.useRef)(null),z=Rt(Ue,t),We=Lu({opened:b,defaultOpened:x,onDropdownOpen:()=>{S?.(),T&&We.selectFirstOption()},onDropdownClose:()=>{C?.(),We.resetSelectedOption()}}),{styleProps:Ge,rest:{type:Ke,autoComplete:qe,...Je}}=Nr(ze),[Ye,Xe]=H({value:u,defaultValue:d,finalValue:[],onChange:f}),[Ze,Qe]=H({value:M,defaultValue:N,finalValue:``,onChange:P}),$e=e=>{Qe(e),We.resetSelectedOption()},et=W({name:`TagsInput`,classes:{},props:n,classNames:r,styles:o,unstyled:s}),{resolvedClassNames:V,resolvedStyles:tt}=dr({props:n,styles:o,classNames:r}),nt=e=>{let t=Ie?Ie(e,Ye):Ye.some(t=>t.toLowerCase()===e.toLowerCase());t&&g?.(e),(!t||t&&h)&&Ye.length<m&&(E?.(e),$e(``),e.length>0&&Xe([...Ye,e]))},rt=e=>{if(p?.(e),e.isPropagationStopped())return;let t=Ze.trim(),{length:n}=t;if(I.includes(e.key)&&n>0&&(Xe(km({splitChars:I,allowDuplicates:h,maxTags:m,value:Ze,currentTags:Ye})),$e(``),e.preventDefault()),e.key===`Enter`&&n>0&&!e.nativeEvent.isComposing){if(e.preventDefault(),document.querySelector(`#${We.listId} [data-combobox-option][data-combobox-selected]`))return;nt(t)}e.key===`Backspace`&&n===0&&Ye.length>0&&!e.nativeEvent.isComposing&&!F&&(Me?.(Ye[Ye.length-1]),Xe(Ye.slice(0,Ye.length-1)))},it=e=>{if(ne?.(e),e.preventDefault(),e.clipboardData){let t=e.clipboardData.getData(`text/plain`);Xe(km({splitChars:I,allowDuplicates:h,maxTags:m,value:`${Ze}${t}`,currentTags:Ye})),$e(``)}},at=Ye.map((e,t)=>(0,B.jsx)(nf,{withRemoveButton:!F,onRemove:()=>{let n=Ye.slice();n.splice(t,1),Xe(n),Me?.(e)},unstyled:s,disabled:ee,attributes:Re,...et(`pill`),children:e},`${e}-${t}`));(0,y.useEffect)(()=>{w&&We.selectFirstOption()},[w,Ye,Ze]);let ot=(0,B.jsx)(Bu.ClearButton,{...De,onClear:()=>{Xe([]),$e(``),Ue.current?.focus(),We.openDropdown(),Ne?.()}});return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(Bu,{store:We,classNames:V,styles:tt,unstyled:s,size:l,readOnly:F,__staticSelector:`TagsInput`,attributes:Re,onOptionSubmit:e=>{E?.(e),$e(``),Ye.length<m&&Xe([...Ye,He[e].label]),We.resetSelectedOption()},...D,children:[(0,B.jsx)(Bu.DropdownTarget,{children:(0,B.jsx)(cf,{...Ge,__staticSelector:`TagsInput`,classNames:V,styles:tt,unstyled:s,size:l,className:i,style:a,variant:_,disabled:ee,radius:re,rightSection:ie,__clearSection:ot,__clearable:Ee&&Ye.length>0&&!ee&&!F,rightSectionWidth:ae,rightSectionPointerEvents:R,rightSectionProps:oe,leftSection:se,leftSectionWidth:ce,leftSectionPointerEvents:le,leftSectionProps:ue,inputContainer:de,inputWrapperOrder:fe,withAsterisk:pe,required:me,labelProps:he,descriptionProps:ge,errorProps:_e,wrapperProps:ve,description:ye,label:be,error:xe,withErrorStyles:Se,__stylesApiProps:{...n,multiline:!0},id:Be,mod:Ae,attributes:Re,children:(0,B.jsxs)(nf.Group,{disabled:ee,unstyled:s,...et(`pillsList`),children:[at,(0,B.jsx)(Bu.EventsTarget,{autoComplete:qe,children:(0,B.jsx)(cf.Field,{...Je,ref:z,...et(`inputField`),unstyled:s,onKeyDown:rt,onFocus:e=>{L?.(e),Le&&We.openDropdown()},onBlur:e=>{te?.(e),Fe&&nt(Ze),We.closeDropdown()},onPaste:it,value:Ze,onChange:e=>$e(e.currentTarget.value),required:me&&Ye.length===0,disabled:ee,readOnly:F,id:Be})})]})})}),(0,B.jsx)(Qu,{data:Dm({data:Ve,value:Ye}),hidden:F||ee,filter:O,search:Ze,limit:k,hiddenWhenEmpty:!0,withScrollArea:A,maxDropdownHeight:j,unstyled:s,labelId:be?`${Be}-label`:void 0,"aria-label":be?void 0:ze[`aria-label`],renderOption:je,scrollAreaProps:Pe})]}),(0,B.jsx)(Bu.HiddenInput,{name:Ce,form:we,value:Ye,valuesDivider:ke,disabled:ee,...Oe})]})});jm.classes={...wl.classes,...Bu.classes},jm.displayName=`@mantine/core/TagsInput`;var Mm=q((e,t)=>(0,B.jsx)(wl,{component:`input`,ref:t,...G(`TextInput`,null,e),__staticSelector:`TextInput`}));Mm.classes=wl.classes,Mm.displayName=`@mantine/core/TextInput`;var Nm=[`h1`,`h2`,`h3`,`h4`,`h5`,`h6`],Pm=[`xs`,`sm`,`md`,`lg`,`xl`];function Fm(e,t){let n=t===void 0?`h${e}`:t;return Nm.includes(n)?{fontSize:`var(--mantine-${n}-font-size)`,fontWeight:`var(--mantine-${n}-font-weight)`,lineHeight:`var(--mantine-${n}-line-height)`}:Pm.includes(n)?{fontSize:`var(--mantine-font-size-${n})`,fontWeight:`var(--mantine-h${e}-font-weight)`,lineHeight:`var(--mantine-h${e}-line-height)`}:{fontSize:z(n),fontWeight:`var(--mantine-h${e}-font-weight)`,lineHeight:`var(--mantine-h${e}-line-height)`}}var Im={root:`m_8a5d1357`},Lm={order:1},Rm=U((e,{order:t,size:n,lineClamp:r,textWrap:i})=>{let a=Fm(t||1,n);return{root:{"--title-fw":a.fontWeight,"--title-lh":a.lineHeight,"--title-fz":a.fontSize,"--title-line-clamp":typeof r==`number`?r.toString():void 0,"--title-text-wrap":i}}}),zm=q((e,t)=>{let n=G(`Title`,Lm,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,order:c,vars:l,size:u,variant:d,lineClamp:f,textWrap:p,mod:m,attributes:h,...g}=n,_=W({name:`Title`,props:n,classes:Im,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:h,vars:l,varsResolver:Rm});return[1,2,3,4,5,6].includes(c)?(0,B.jsx)(K,{..._(`root`),component:`h${c}`,variant:d,ref:t,mod:[{order:c,"data-line-clamp":typeof f==`number`},m],size:u,...g}):null});zm.classes=Im,zm.displayName=`@mantine/core/Title`;var Bm=o((e=>{var t=_i();e.createRoot=t.createRoot,e.hydrateRoot=t.hydrateRoot}))(),Vm=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??Hm(this)}};function Hm(e){let t=Xm(e),n=Zm(e.body),r=n?`${Qm(e,t)} Request ID: ${n}`:Qm(e,t);return e.status===401?{kind:`unauthenticated`,adminStatus:Ym(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 Um(e={}){let t=Km(e.fetch??fetch),n=e.idempotencyKey??eh,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":Gm(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":Gm(`delete`,e.name)},body:JSON.stringify({revision:e.revision,previewFingerprint:e.previewFingerprint,confirmationFacts:{previewConfirmed:e.previewFingerprint,presetNameConfirmed:e.name}})})},async listConfiguredServers(){return(await t(`/admin/api/configured-servers`)).servers??[]},getConfiguredServerDetail(e){return t(`/admin/api/configured-servers/${encodeURIComponent(e)}`)},previewConfiguredServerEdit(e){return t(`/admin/api/configured-servers/${encodeURIComponent(e.name)}/preview`,{method:`POST`,headers:{"X-CSRF-Token":e.csrfToken},body:JSON.stringify({edit:e.edit,...e.connectivityCheck?{connectivityCheck:e.connectivityCheck}:{}})})},applyConfiguredServerEdit(e){return t(`/admin/api/configured-servers/${encodeURIComponent(e.name)}/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})})},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 Wm(e){return`admin-console-server-apply-${th(e)}-${Date.now()}-${crypto.getRandomValues(new Uint32Array(2)).join(`-`)}`}function Gm(e,t){return`admin-console-preset-${e}-${th(t)}-${Date.now()}-${crypto.getRandomValues(new Uint32Array(2)).join(`-`)}`}function Km(e){return async function(t,n={}){let r={"Content-Type":`application/json`,"X-Admin-UI-Build-Version":`0.35.0-beta.3`,"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 Vm(0,{},e,{kind:`unavailable`,message:e})}let a=await qm(i);if(!i.ok)throw new Vm(i.status,a,Jm(a,i.statusText));return a}}async function qm(e){try{return await e.json()}catch{return{}}}function Jm(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 Ym(e){return e&&typeof e==`object`&&e.adminStatus===`setupRequired`?`setupRequired`:`loginRequired`}function Xm(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 Zm(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 Qm(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=$m(e.body);if(t)return t}return`The Admin Console request failed. Refresh the console and try again.`}}function $m(e){if(!e||typeof e!=`object`)return null;let t=e.message;return typeof t==`string`&&t.trim().length>0?t.trim():null}function eh(e){let t=crypto.getRandomValues(new Uint32Array(2)).join(`-`);return`admin-console-${e.action}-${th(e.targetName)}-${Date.now()}-${t}`}function th(e){return encodeURIComponent(e).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}var nh=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),rh=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),ih=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),ah=e=>{let t=ih(e);return t.charAt(0).toUpperCase()+t.slice(1)},oh={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},sh=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},ch=(0,y.createContext)({}),lh=()=>(0,y.useContext)(ch),uh=(0,y.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f=`currentColor`,className:p=``}=lh()??{},m=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,y.createElement)(`svg`,{ref:c,...oh,width:t??l??oh.width,height:t??l??oh.height,stroke:e??f,strokeWidth:m,className:nh(`lucide`,p,i),...!a&&!sh(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,y.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),dh=(e,t)=>{let n=(0,y.forwardRef)(({className:n,...r},i)=>(0,y.createElement)(uh,{ref:i,iconNode:t,className:nh(`lucide-${rh(ah(e))}`,`lucide-${e}`,n),...r}));return n.displayName=ah(e),n},fh=dh(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),ph=dh(`boxes`,[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`,key:`lc1i9w`}],[`path`,{d:`m7 16.5-4.74-2.85`,key:`1o9zyk`}],[`path`,{d:`m7 16.5 5-3`,key:`va8pkn`}],[`path`,{d:`M7 16.5v5.17`,key:`jnp8gn`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`,key:`8zsnat`}],[`path`,{d:`m17 16.5-5-3`,key:`8arw3v`}],[`path`,{d:`m17 16.5 4.74-2.85`,key:`8rfmw`}],[`path`,{d:`M17 16.5v5.17`,key:`k6z78m`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`,key:`1xygjf`}],[`path`,{d:`M12 8 7.26 5.15`,key:`1vbdud`}],[`path`,{d:`m12 8 4.74-2.85`,key:`3rx089`}],[`path`,{d:`M12 13.5V8`,key:`1io7kd`}]]),mh=dh(`clipboard`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}]]),hh=dh(`file-clock`,[[`path`,{d:`M16 22h2a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v2.85`,key:`ryk6xj`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 14v2.2l1.6 1`,key:`6m4bie`}],[`circle`,{cx:`8`,cy:`16`,r:`6`,key:`10v15b`}]]),gh=dh(`gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),_h=dh(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),vh=dh(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),yh=dh(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),bh=dh(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),xh=dh(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),Sh=dh(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),Ch=dh(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),wh=dh(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Th=dh(`server-cog`,[[`path`,{d:`m10.852 14.772-.383.923`,key:`11vil6`}],[`path`,{d:`M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923`,key:`1v3clb`}],[`path`,{d:`m13.148 9.228.383-.923`,key:`t2zzyc`}],[`path`,{d:`m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544`,key:`1bxfiv`}],[`path`,{d:`m14.772 10.852.923-.383`,key:`k9m8cz`}],[`path`,{d:`m14.772 13.148.923.383`,key:`1xvhww`}],[`path`,{d:`M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5`,key:`tn8das`}],[`path`,{d:`M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5`,key:`1g2pve`}],[`path`,{d:`M6 18h.01`,key:`uhywen`}],[`path`,{d:`M6 6h.01`,key:`1utrut`}],[`path`,{d:`m9.228 10.852-.923-.383`,key:`1wtb30`}],[`path`,{d:`m9.228 13.148-.923.383`,key:`1a830x`}]]),Eh=dh(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Dh=dh(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),Oh=dh(`square-terminal`,[[`path`,{d:`m7 11 2-2-2-2`,key:`1lz0vl`}],[`path`,{d:`M11 13h4`,key:`1p7l4v`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}]]),kh=dh(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Ah=dh(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]);function jh(e,t,n){let r=t.trim().toLowerCase();return e.filter(e=>{let t=!r||e.id.toLowerCase().includes(r)||Lh(e).some(e=>e.toLowerCase().includes(r))||Ih(e).toLowerCase().includes(r)||Fh(e.transport).toLowerCase().includes(r),i=n===`all`||n===`enabled`&&e.enabled||n===`disabled`&&!e.enabled;return t&&i})}function Mh(e){return e.filter(e=>e.enabled).length}function Nh(e){return e.filter(e=>!e.enabled).length}function Ph(e){return!!e.requiresOAuth&&(e.status!==`connected`||!!e.lastError)}function Fh(e){return typeof e.command==`string`?e.command:typeof e.url==`string`?e.url:typeof e.type==`string`?e.type:`configured`}function Ih(e){return e.transportSummary?.label??Fh(e.transport)}function Lh(e){return Array.isArray(e.tags)?e.tags:[]}function Rh(e){return e.mutationAvailability?.available??!0}function zh(e,t){return e.actionState?.[t]??{available:!0,label:t===`enable`?`Enable ${e.id}`:`Disable ${e.id}`}}function Bh(e){let t=e.connectivityCheck;return t.status===`skipped`?Hh(t.reason):t.status===`failed`?t.message:t.checkedAt?`Checked at ${t.checkedAt}`:void 0}function Vh(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 Hh(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 Uh(e){switch(e){case`rename`:return`violet`;case`connection_critical`:return`red`;case`secret`:return`grape`;case`template_risk`:return`orange`;default:return`gray`}}function Wh(e){switch(e){case`rename`:return`rename`;case`connection_critical`:return`connection critical`;case`secret`:return`secret`;case`template_risk`:return`template risk`;default:return e}}function Gh(e){return e.secretInputs.length===0?`No secret inputs`:`${e.secretInputs.length} redacted`}function Kh(e){return e?.runtimeVersion??`unknown`}function qh(e){return e?.externalUrl??`not reported`}function Jh(e){return e.view===`setupRequired`?`Setup required`:e.view}function Yh(e){return e.view===`setupRequired`?`yellow`:e.view===`console`?`teal`:`gray`}function Xh(e){return e.replace(/([A-Z])/g,` $1`).toLowerCase()}function Zh({state:e}){let t=e.status?.about;return t?(0,B.jsxs)(`section`,{"aria-labelledby":`about-title`,className:`operations-workspace`,children:[(0,B.jsx)(Z,{className:`eyebrow`,size:`xs`,children:`Product and protocol metadata`}),(0,B.jsxs)(zm,{id:`about-title`,order:2,children:[`About `,t.productName]}),t.protocolCompatible?null:(0,B.jsxs)(Ml,{color:`red`,title:`Admin UI protocol incompatibility`,children:[`This Admin UI build expects protocol `,t.adminUiProtocolVersion??`Unavailable`,`, but the runtime exposes`,` `,t.adminApiProtocolVersion,`.`]}),(0,B.jsxs)(Xp,{cols:{base:1,md:2},mt:`md`,children:[(0,B.jsx)(Qh,{title:`Versions`,values:[[`Runtime Version`,t.runtimeVersion],[`Admin UI Build Version`,t.adminUiBuildVersion??`Unavailable`],[`Admin API Protocol Version`,t.adminApiProtocolVersion],[`Admin UI Protocol Version`,t.adminUiProtocolVersion??`Unavailable`]]}),(0,B.jsx)(Qh,{title:`Runtime Scope`,values:[[`Runtime Scope ID`,t.runtime.runtimeScopeId],[`External URL`,t.runtime.externalUrl??`Unavailable`]]}),(0,B.jsx)(Qh,{title:`Build`,values:[[`Commit`,t.build.commit??`Unavailable`],[`Build timestamp`,t.build.timestamp??`Unavailable`]]}),(0,B.jsxs)(Js,{withBorder:!0,p:`md`,children:[(0,B.jsx)(zm,{order:3,children:`Project`}),(0,B.jsxs)($,{gap:`xs`,mt:`sm`,children:[t.project.repository?(0,B.jsx)($h,{label:`Repository`,href:t.project.repository}):(0,B.jsx)(Z,{children:`Repository · Unavailable`}),t.project.documentation?(0,B.jsx)($h,{label:`Documentation`,href:t.project.documentation}):(0,B.jsx)(Z,{children:`Documentation · Unavailable`}),t.project.issues?(0,B.jsx)($h,{label:`Report an issue`,href:t.project.issues}):(0,B.jsx)(Z,{children:`Issue reporting · Unavailable`}),(0,B.jsxs)(Z,{children:[`License · `,t.project.license??`Unavailable`]})]})]})]})]}):(0,B.jsx)(Ml,{children:`About metadata is unavailable.`})}function Qh({title:e,values:t}){return(0,B.jsxs)(Js,{withBorder:!0,p:`md`,children:[(0,B.jsx)(zm,{order:3,children:e}),(0,B.jsx)($,{gap:`xs`,mt:`sm`,children:t.map(([e,t])=>(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,children:e}),(0,B.jsx)(Z,{children:t})]},e))})]})}function $h({label:e,href:t}){return(0,B.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`${e} (opens in a new tab)`,children:e})}function eg({logs:e}){let t=e.sources.find(t=>t.id===e.selectedSourceId)??null;return(0,B.jsxs)(`section`,{"aria-label":`Backend logs`,className:`operations-workspace backend-logs-workspace`,children:[(0,B.jsx)(`header`,{className:`workspace-heading backend-logs-heading`,children:(0,B.jsxs)(X,{justify:`space-between`,align:`flex-end`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{className:`eyebrow`,size:`xs`,children:`Runtime diagnostics`}),(0,B.jsx)(zm,{order:2,children:`Backend logs`})]}),(0,B.jsx)(td,{color:sg(e.connection),variant:`light`,children:og(e.connection)})]})}),e.sources.length===0?(0,B.jsx)(`div`,{className:`backend-log-empty`,role:`status`,children:e.connection===`loading`?`Loading backend log sources...`:`No stdio backend log sources are available.`}):(0,B.jsxs)(`div`,{className:`backend-log-layout`,children:[(0,B.jsx)(`nav`,{"aria-label":`Backend log sources`,className:`backend-log-sources`,children:e.sources.map(t=>(0,B.jsx)(tg,{source:t,active:t.id===e.selectedSourceId,unread:e.unread[t.id]??0,onSelect:()=>void e.select(t.id)},t.id))}),(0,B.jsx)(`div`,{className:`backend-log-inspector`,children:t?(0,B.jsx)(rg,{source:t,logs:e}):null})]})]})}function tg({source:e,active:t,unread:n,onSelect:r}){return(0,B.jsxs)(Us,{"aria-label":`${e.displayName}, ${ng(e)}`,"aria-current":t?`page`:void 0,className:`backend-log-source${t?` backend-log-source-active`:``}`,onClick:r,children:[(0,B.jsxs)(`span`,{className:`backend-log-source-copy`,children:[(0,B.jsx)(Z,{component:`span`,fw:800,size:`sm`,children:e.displayName}),(0,B.jsx)(Z,{component:`span`,c:`dimmed`,size:`xs`,children:ng(e)})]}),n>0?(0,B.jsx)(td,{size:`xs`,color:`orange`,children:n>99?`99+`:n}):null]})}function ng(e){return e.capture===`not-captured`?`Not captured`:e.lifecycle===`ended`?`Ended`:`Managed stderr`}function rg({source:e,logs:t}){let n=t.entries;return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(X,{className:`backend-log-source-header`,justify:`space-between`,wrap:`nowrap`,children:[(0,B.jsxs)(`div`,{className:`truncate`,children:[(0,B.jsx)(Z,{fw:900,children:e.displayName}),(0,B.jsx)(Z,{className:`backend-log-canonical truncate`,size:`xs`,children:e.canonicalName})]}),(0,B.jsx)(td,{color:e.capture===`not-captured`?`red`:e.lifecycle===`ended`?`orange`:`teal`,children:e.capture===`not-captured`?`Unavailable`:e.lifecycle===`ended`?`Ended`:`Live`})]}),e.capture===`not-captured`?(0,B.jsx)(`div`,{className:`backend-log-empty`,role:`status`,children:`This server sends stderr to an explicit destination, so the runtime does not capture it.`}):t.selectionLoading?(0,B.jsx)(`div`,{className:`backend-log-empty`,role:`status`,children:`Loading retained log history...`}):t.selectionError?(0,B.jsx)(`div`,{className:`backend-log-empty`,role:`alert`,children:t.selectionError}):n.length===0?(0,B.jsx)(`div`,{className:`backend-log-empty`,role:`status`,children:e.lifecycle===`ended`?`This source ended without retained log entries.`:`No captured stderr in retained runtime history.`}):(0,B.jsx)(`div`,{"aria-label":`${e.displayName} retained log entries`,className:`backend-log-well`,role:`log`,children:n.map(e=>(0,B.jsx)(ig,{entry:e},e.sequence))})]})}function ig({entry:e}){return(0,B.jsxs)(`div`,{className:`backend-log-row backend-log-row-${e.kind}`,children:[(0,B.jsxs)(`span`,{className:`backend-log-rail`,children:[(0,B.jsxs)(`span`,{children:[`#`,e.sequence]}),(0,B.jsx)(`time`,{dateTime:e.timestamp,children:ag(e.timestamp)})]}),(0,B.jsx)(`span`,{className:`backend-log-content`,children:e.content})]})}function ag(e){let t=new Date(e);return Number.isNaN(t.valueOf())?e:t.toLocaleTimeString([],{hour12:!1})}function og(e){return e===`reconnecting`?`Reconnecting`:e===`active`?`Live stream`:e===`loading`?`Connecting`:`Inactive`}function sg(e){return e===`active`?`teal`:e===`reconnecting`?`orange`:`gray`}function cg({label:e,value:t,meta:n,description:r,copyLabel:i,copyValue:a,onCopyText:o}){let s=a??t;return(0,B.jsxs)(X,{className:`detail-row`,justify:`space-between`,wrap:`nowrap`,children:[(0,B.jsxs)(`div`,{className:`detail-row-main`,children:[(0,B.jsx)(Z,{fw:700,children:e}),(0,B.jsx)(Z,{className:`truncate`,size:`sm`,children:t}),n?(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:n}):null,r?(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:r}):null]}),i&&s!==`-`?(0,B.jsx)(Q,{"aria-label":`Copy ${Xh(i)}`,size:`compact-xs`,variant:`subtle`,leftSection:(0,B.jsx)(mh,{size:14}),onClick:()=>void o?.(i,s),children:`Copy`}):null]})}function lg({title:e,utility:t,icon:n,children:r}){return(0,B.jsx)(Js,{component:`section`,className:`operations-panel`,withBorder:!0,children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`center`,children:[(0,B.jsxs)(X,{gap:`xs`,children:[n,(0,B.jsx)(zm,{order:3,children:e})]}),(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:t})]}),r]})})}function ug({message:e}){return(0,B.jsx)(Z,{c:`dimmed`,children:e})}function dg(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`||!hg(e,i))continue;let r=fg(e.fieldPath),a=xg(e,t[r]);if(Cg(a)===Cg(xg(e,n[r])))continue;let c=e.fieldPath[0];c===`id`?o.id=String(a??``):c===`enabled`?o.enabled=!!a:c===`tags`?o.tags=gg(a):c===`transport`&&e.fieldPath.length>1?Sg(s,e.fieldPath.slice(1),a):c&&Sg(o,e.fieldPath,a)}let c=Object.values(r).filter(t=>{let n=e.flatMap(e=>e.fields).find(e=>fg(e.fieldPath)===fg(t.fieldPath));return!n||hg(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 fg(e){return e.join(`\0`)}function pg(e){return xg(e,e.value)}function mg(e,t){let n=e[fg([`transport`,`type`])]??t;return n===`stdio`||n===`http`||n===`sse`||n===`streamableHttp`?n:void 0}function hg(e,t){return!t||!e.applicableTransportTypes||e.applicableTransportTypes.includes(t)}function gg(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}function _g(e){return e.split(/\r?\n/u).map(e=>e.trim()).filter(Boolean)}function vg(e){return!e||typeof e!=`object`||Array.isArray(e)?{}:{...e}}function yg(e){return Array.isArray(e)?e.join(`, `):e&&typeof e==`object`?Object.keys(e).length>0?Object.keys(e).join(`, `):`-`:String(e??`-`)}function bg(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(bg).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`?`${Tg(t.kind)}: ${t.value}`:Object.entries(t).map(([e,t])=>`${e}: ${wg(e)?`[REDACTED]`:bg(t)}`).join(`; `)}function xg(e,t){return e.control===`switch`?!!t:e.control===`tag-list`||e.control===`string-list`?gg(t):e.control===`record`?vg(t):e.control===`number`?typeof t==`number`?t:void 0:e.control===`text`||e.control===`select`?String(t??``):t}function Sg(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 Cg(e){return JSON.stringify(e)}function wg(e){return/authorization|password|secret|token/iu.test(e)}function Tg(e){return e.replace(/([A-Z])/g,` $1`).toLowerCase()}function Eg(){return{status:`list`}}function Dg(e){if(e.status!==`loaded`)return{};let t=mg(e.fieldDraft,e.detail.server.transport.type);return dg(e.detail.editContract.fieldGroups,e.fieldDraft,e.initialFieldDraft,e.secretDraft,t,e.clearedTransportOverrides)}function Og(e,t){switch(t.type){case`closed`:return Eg();case`detailLoadStarted`:return{status:`loading`,serverId:t.serverId};case`detailLoaded`:return kg(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:Ag(e,{fieldDraft:{...e.fieldDraft,[fg(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:Ag(e,{secretDraft:{...e.secretDraft,[fg(t.fieldPath)]:t.value}});case`transportOverrideChanged`:return e.status!==`loaded`||e.applyBusy?e:Ag(e,{clearedTransportOverrides:t.clear?Array.from(new Set([...e.clearedTransportOverrides,t.key])):e.clearedTransportOverrides.filter(e=>e!==t.key)});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:jg(t.result)}:e;case`applySucceeded`:return{...kg(t.serverId,t.detail),applySuccess:`Changes applied to ${t.result.targetName}.`,applyWarning:jg(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 kg(e,t){let n={},r={};for(let e of t.editContract.fieldGroups)for(let t of e.fields){let e=fg(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]=pg(t)}return{status:`loaded`,serverId:e,detail:t,fieldDraft:n,initialFieldDraft:n,secretDraft:r,clearedTransportOverrides:[],dirty:!1,previewBusy:!1,applyBusy:!1}}function Ag(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(Dg(n)).length>0}}function jg(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 Mg({api:e,session:t,browser:n,onUnauthenticated:r,onApplied:i,onPathCommitted:a}){let[o,s]=(0,y.useReducer)(Og,void 0,Eg),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)(0),m=(0,y.useRef)(0),h=(0,y.useRef)(!1),g=(0,y.useRef)();c.current=o,l.current=t,u.current=e,d.current=r;let _=(0,y.useCallback)(()=>{f.current+=1,p.current+=1,m.current+=1,h.current=!1,g.current=void 0,s({type:`closed`})},[]),v=(0,y.useCallback)(e=>!(e instanceof Vm)||e.failure.kind!==`unauthenticated`?!1:(_(),d.current(e.failure.adminStatus),!0),[_]),b=(0,y.useCallback)(async e=>{let t=l.current;if(!t)return;m.current+=1,g.current=void 0;let n=t.csrfToken,r=f.current+1;f.current=r,p.current+=1,s({type:`detailLoadStarted`,serverId:e});try{let t=await u.current.getConfiguredServerDetail(e);if(r!==f.current||l.current?.csrfToken!==n)return;s({type:`detailLoaded`,serverId:e,detail:t})}catch(t){if(r!==f.current||l.current?.csrfToken!==n||v(t))return;if(t instanceof Vm&&t.failure.kind===`configuredServerNotFound`){s({type:`detailMissing`,serverId:e});return}s({type:`detailFailed`,serverId:e,message:`Server detail failed: ${Ig(t)}`})}},[v]),x=(0,y.useCallback)(async e=>{let t=c.current;t.status===`loaded`&&t.serverId!==e&&t.dirty&&!await Fg(n)||(n.push(Lg(e)),await b(e))},[n,b]),S=(0,y.useCallback)(async(e=`/admin`)=>{let t=c.current;return t.status===`loaded`&&t.dirty&&!await Fg(n)?!1:(n.push(e),_(),!0)},[n,_]),C=(0,y.useCallback)((e,t)=>{p.current+=1,g.current=void 0,s({type:`fieldChanged`,fieldPath:e,value:t})},[]),w=(0,y.useCallback)((e,t)=>{p.current+=1,g.current=void 0,s({type:`secretChanged`,fieldPath:e,value:t})},[]),T=(0,y.useCallback)((e,t)=>{p.current+=1,g.current=void 0,s({type:`transportOverrideChanged`,key:e,clear:t})},[]),E=(0,y.useCallback)(async(e=`auto`)=>{let t=l.current,n=c.current;if(!t||n.status!==`loaded`)return;let r=t.csrfToken,i=n.serverId,a=p.current+1;p.current=a,s({type:`previewStarted`});try{let t=await u.current.previewConfiguredServerEdit({name:i,csrfToken:r,connectivityCheck:e,edit:Dg(n)});if(a!==p.current||l.current?.csrfToken!==r)return;let o=c.current;if(o.status!==`loaded`||o.serverId!==i)return;g.current?.previewFingerprint!==t.preview.previewFingerprint&&(g.current=void 0),s({type:`previewSucceeded`,preview:t.preview})}catch(e){if(a!==p.current||l.current?.csrfToken!==r)return;v(e)||s({type:`previewFailed`,message:`Preview failed: ${Ig(e)}`})}},[v]),D=(0,y.useCallback)(async()=>{if(h.current)return;let e=l.current,t=c.current;if(!(!e||t.status!==`loaded`||!t.preview)&&Ng(t).eligible){h.current=!0;try{let r=t.preview,a=Array.from(new Set(r.diff.flatMap(e=>e.riskFlags))),o=r.connectivityCheck.status===`failed`;if(!await n.confirm({title:o?`Apply despite failed connectivity to ${r.proposedTargetName}?`:`Apply changes to ${r.proposedTargetName}?`,message:o?`The bounded connectivity check failed. Applying may make this configured server unavailable.`:`This writes the validated configuration and reloads the Runtime Scope.`,confirmLabel:o?`Apply despite failure`:`Apply changes`,tone: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 c=e.csrfToken,d=t.serverId,f=m.current+1;m.current=f;let p=g.current?.previewFingerprint===r.previewFingerprint?g.current:{previewFingerprint:r.previewFingerprint,idempotencyKey:Wm(d)};g.current=p,s({type:`applyStarted`});let h;try{h=await u.current.applyConfiguredServerEdit({name:d,csrfToken:c,idempotencyKey:p.idempotencyKey,edit:Dg(t),previewFingerprint:r.previewFingerprint,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}:{}}})}catch(e){if(f!==m.current||l.current?.csrfToken!==c)return;if(!v(e)){let t=Pg(e);t&&(g.current=void 0),s({type:`applyFailed`,message:`Apply failed: ${Ig(e)}`,clearPreview:t})}return}if(f!==m.current||l.current?.csrfToken!==c)return;g.current=void 0;let _=h.result.targetName;_!==d&&n.replace(Lg(_)),s({type:`applyCommitted`,serverId:_,result:h.result});try{await i?.()}catch{}try{let e=await u.current.getConfiguredServerDetail(_);if(f!==m.current||l.current?.csrfToken!==c)return;s({type:`applySucceeded`,serverId:_,detail:e,result:h.result})}catch(e){if(f!==m.current||l.current?.csrfToken!==c)return;v(e)||s({type:`applyRefreshFailed`,message:`Changes were applied, but server detail could not be refreshed: ${Ig(e)}`})}}finally{h.current=!1}}},[n,v,i]);return(0,y.useEffect)(()=>{if(!t){_();return}let e=Rg(n.pathname());e?b(e):_()},[n,b,_,t?.csrfToken]),(0,y.useEffect)(()=>n.subscribePopState(()=>{(async()=>{let e=c.current,t=n.pathname(),r=Rg(t);if(e.status===`loaded`&&r!==e.serverId&&e.dirty){if(n.replace(Lg(e.serverId)),!await Fg(n))return;n.replace(t)}r?b(r):_(),a?.(t)})()}),[n,b,a,_]),{state:o,open:x,close:S,changeField:C,changeSecret:w,changeTransportOverride:T,preview:E,apply:D}}function Ng(e){if(e.status!==`loaded`||!e.preview)return{eligible:!1,reason:`Preview changes first.`};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.`};let t=e.preview.diff.some(e=>e.riskFlags.includes(`connection_critical`)),n=mg(e.fieldDraft,e.detail.server.transport.type);return(Dg(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 Pg(e){return e instanceof Vm&&e.failure.kind===`rejected`&&e.failure.code===`configured_server_stale_preview`}function Fg(e){return e.confirm({title:`Discard unsaved changes?`,message:`Your configured-server draft and preview will be lost.`,confirmLabel:`Discard changes`,tone:`danger`})}function Ig(e){if(e instanceof Vm)return e.failure.message;throw e}function Lg(e){return`/admin/servers/${encodeURIComponent(e)}`}function Rg(e){if(!e.startsWith(`/admin/servers/`))return null;let t=e.slice(15).split(`#`,1)[0];if(!t)return null;try{return decodeURIComponent(t)}catch{return t}}function zg(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 Bg({field:e,value:t,onChange:n}){return!e.editable||e.control===`readonly`?(0,B.jsx)(cg,{label:e.label,value:yg(t)}):e.control===`switch`?(0,B.jsx)(sm,{label:e.label,checked:!!t,onChange:e=>n(e.currentTarget.checked)}):e.control===`tag-list`?(0,B.jsx)(jm,{label:e.label,value:gg(t),onChange:n}):e.control===`select`?(0,B.jsx)(ff,{label:e.label,value:String(t??``),data:e.options??[],onChange:e=>n(e.currentTarget.value)}):e.control===`number`?(0,B.jsx)(gp,{label:e.label,value:typeof t==`number`?t:``,onChange:e=>n(e===``?void 0:e)}):e.control===`string-list`?(0,B.jsx)(zd,{label:e.label,value:gg(t).join(`
61
+ `),autosize:!0,minRows:2,onChange:e=>n(_g(e.currentTarget.value))}):e.control===`record`?(0,B.jsx)(Vg,{label:e.label,value:vg(t),onChange:n}):(0,B.jsx)(Mm,{label:e.label,value:String(t??``),onChange:e=>n(e.currentTarget.value)})}function Vg({label:e,value:t,onChange:n}){let[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(``);function s(e,r){n({...t,[e]:r})}function c(e){let r={...t};delete r[e],n(r)}function l(){let e=r.trim();e&&(n({...t,[e]:a}),i(``),o(``))}return(0,B.jsxs)($,{className:`record-editor`,gap:`xs`,children:[(0,B.jsx)(Z,{fw:700,children:e}),Object.entries(t).map(([t,n])=>(0,B.jsxs)(X,{gap:`xs`,align:`flex-end`,wrap:`nowrap`,children:[(0,B.jsx)(Mm,{className:`record-editor-value`,label:`${e} ${t}`,value:String(n??``),onChange:e=>s(t,e.currentTarget.value)}),(0,B.jsx)(Q,{"aria-label":`Remove ${e} ${t}`,size:`compact-xs`,variant:`subtle`,color:`red`,onClick:()=>c(t),children:`Remove`})]},t)),(0,B.jsxs)(X,{gap:`xs`,align:`flex-end`,children:[(0,B.jsx)(Mm,{label:`New ${e} key`,value:r,onChange:e=>i(e.currentTarget.value)}),(0,B.jsx)(Mm,{label:`New ${e} value`,value:a,onChange:e=>o(e.currentTarget.value)}),(0,B.jsx)(Q,{variant:`default`,onClick:l,children:`Add entry`})]})]})}function Hg({field:e,draft:t,onChange:n}){let r=t??{fieldPath:e.fieldPath,action:`preserve`,replacementKind:e.secret?.environmentReference.supported===!1?`inlineSecret`:`environmentReference`,replacementValue:``},i=e.secret?.allowedActions??[`preserve`,`replace`,`clear`],a=e.secret?.environmentReference.supported??!0,o=e.secret?.environmentReference.recommended??a,s=e.secret?.inlineReplacement.supported??!1;return(0,B.jsx)(Js,{className:`secret-editor`,withBorder:!0,children:(0,B.jsxs)($,{gap:`xs`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{fw:700,children:e.label}),(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,children:e.secret?.environmentReference.guidance??`Store only an environment variable name or substitution expression when possible.`})]}),(0,B.jsxs)(X,{gap:4,children:[(0,B.jsx)(td,{variant:`light`,children:`redacted`}),o?(0,B.jsx)(td,{color:`teal`,variant:`light`,children:`env reference recommended`}):null]})]}),(0,B.jsx)(Rp.Group,{value:r.action,onChange:e=>n({...r,action:e}),children:(0,B.jsx)(X,{gap:`sm`,children:i.map(t=>(0,B.jsx)(Rp,{value:t,label:Ug(t,e.label)},t))})}),r.action===`replace`?(0,B.jsxs)($,{gap:`xs`,children:[(0,B.jsx)(Ml,{color:`teal`,variant:`light`,children:`Recommended: keep secret material outside 1MCP config by writing only an environment variable name or substitution expression.`}),(0,B.jsx)(Rp.Group,{label:`Replacement source`,value:r.replacementKind,onChange:e=>n({...r,replacementKind:e}),children:(0,B.jsx)(X,{gap:`sm`,children:(0,B.jsx)(Rp,{disabled:!a,value:`environmentReference`,label:`Environment variable (recommended)`})})}),r.replacementKind===`environmentReference`?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Mm,{label:`Environment variable for ${e.label}`,description:"Example: GITHUB_TOKEN or ${GITHUB_TOKEN}",value:r.replacementValue,onChange:e=>n({...r,replacementValue:e.currentTarget.value})}),s?(0,B.jsx)(Q,{size:`compact-sm`,variant:`subtle`,color:`yellow`,onClick:()=>n({...r,replacementKind:`inlineSecret`,replacementValue:``}),children:`Use advanced inline secret instead`}):null]}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Ml,{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,B.jsx)(bp,{label:`Inline secret for ${e.label}`,value:r.replacementValue,onChange:e=>n({...r,replacementValue:e.currentTarget.value})}),a?(0,B.jsx)(Q,{size:`compact-sm`,variant:`subtle`,onClick:()=>n({...r,replacementKind:`environmentReference`,replacementValue:``}),children:`Use environment variable instead`}):null]}),(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,children:r.replacementKind===`environmentReference`?e.secret?.environmentReference.guidance:e.secret?.inlineReplacement.guidance})]}):null]})})}function Ug(e,t){return e===`preserve`?`Preserve existing ${t}`:e===`replace`?`Replace ${t}`:`Clear saved ${t}`}function Wg({preview:e}){let t=e.connectivityCheck,n=e.validation.status===`valid`?`teal`:`red`,r=t.status===`passed`?`teal`:t.status===`failed`?`red`:`yellow`;return(0,B.jsx)(Js,{className:`preview-result`,withBorder:!0,children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{fw:800,children:`Preview result`}),(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:`Domain facts only. No config has been written.`})]}),(0,B.jsx)(hd,{className:`preview-fingerprint`,children:e.previewFingerprint})]}),(0,B.jsx)(Ml,{color:`blue`,variant:`light`,children:`Preview only - no config has been written.`}),(0,B.jsxs)(Xp,{cols:{base:1,sm:2},spacing:`xs`,children:[(0,B.jsx)(cg,{label:`Target`,value:e.targetName,meta:`Proposed: ${e.proposedTargetName}`}),(0,B.jsx)(cg,{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,B.jsx)(cg,{label:`Config change`,value:e.configChange.status,meta:`${e.configChange.operation} / ${e.configChange.changed?`changed`:`unchanged`}`}),(0,B.jsx)(cg,{label:`Reload`,value:e.configChange.reload.status,meta:e.configChange.reload.error}),(0,B.jsx)(cg,{label:`Backup`,value:e.configChange.backup.created?`created`:`not created`,meta:e.configChange.backup.path}),(0,B.jsx)(Js,{className:`connectivity-card connectivity-${t.status}`,withBorder:!0,children:(0,B.jsxs)($,{gap:4,children:[(0,B.jsxs)(X,{justify:`space-between`,gap:`xs`,children:[(0,B.jsx)(Z,{fw:700,children:`Connectivity`}),(0,B.jsx)(td,{color:r,variant:`light`,children:t.status})]}),(0,B.jsx)(Z,{size:`sm`,children:Vh(t)}),Bh(e)?(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:Bh(e)}):null]})})]}),e.configChange.warnings?.map(e=>(0,B.jsx)(cg,{label:`Warning`,value:e},`warning:${e}`)),e.configChange.retentionCleanup.warnings.map(e=>(0,B.jsx)(cg,{label:`Retention warning`,value:e},`retention:${e}`)),e.validation.errors.length>0?(0,B.jsxs)($,{gap:`xs`,children:[(0,B.jsxs)(X,{gap:`xs`,children:[(0,B.jsx)(Z,{fw:800,children:`Validation issues`}),(0,B.jsx)(td,{color:n,variant:`light`,children:e.validation.errors.length})]}),e.validation.errors.map(e=>(0,B.jsx)(cg,{label:e.fieldPath.join(`.`)||`form`,value:e.code,meta:e.message},`${fg(e.fieldPath)}:${e.code}`))]}):null,e.diff.length>0?(0,B.jsxs)($,{gap:`xs`,children:[(0,B.jsxs)(X,{gap:`xs`,children:[(0,B.jsx)(Z,{fw:800,children:`Redacted diff`}),(0,B.jsxs)(td,{variant:`outline`,children:[e.diff.length,` change`,e.diff.length===1?``:`s`]})]}),e.diff.map(e=>(0,B.jsx)(Js,{className:`preview-diff-entry`,withBorder:!0,children:(0,B.jsxs)($,{gap:6,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,gap:`xs`,children:[(0,B.jsx)(Z,{fw:700,children:e.fieldPath.join(`.`)}),(0,B.jsxs)(X,{gap:4,children:[e.secretAction?(0,B.jsxs)(td,{color:`grape`,variant:`light`,children:[`secret: `,e.secretAction]}):null,e.riskFlags.map(e=>(0,B.jsx)(td,{color:Uh(e),variant:`light`,children:Wh(e)},e))]})]}),(0,B.jsxs)(Z,{size:`sm`,children:[(0,B.jsxs)(Z,{span:!0,c:`dimmed`,children:[`from`,` `]}),bg(e.oldValue),(0,B.jsxs)(Z,{span:!0,c:`dimmed`,children:[` `,`to`,` `]}),bg(e.newValue)]})]})},fg(e.fieldPath)))]}):(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:`No field-level changes were reported by preview.`})]})})}function Gg({model:e}){let{state:t}=e;if(t.status===`list`)return(0,B.jsx)(lg,{title:`Edit server`,utility:`select a target`,icon:(0,B.jsx)(bh,{size:17}),children:(0,B.jsxs)($,{className:`edit-empty-state`,gap:`xs`,children:[(0,B.jsx)(Z,{fw:700,children:`Select Edit server to change target settings.`}),(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:`Edit fields -> Preview change -> Review result`})]})});if(t.status===`loading`)return(0,B.jsx)(lg,{title:`Server detail`,utility:t.serverId,icon:(0,B.jsx)(Th,{size:17}),children:(0,B.jsx)(ug,{message:`Loading server detail.`})});if(t.status===`committed`||t.status===`committedRefreshFailed`)return(0,B.jsx)(lg,{title:`Server detail`,utility:t.serverId,icon:(0,B.jsx)(Th,{size:17}),children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsx)(Ml,{color:`teal`,role:`status`,children:t.success}),t.warning?(0,B.jsx)(Ml,{color:`yellow`,role:`status`,children:t.warning}):null,t.status===`committed`?(0,B.jsx)(ug,{message:`Refreshing the committed server detail.`}):(0,B.jsx)(Ml,{color:`yellow`,role:`status`,children:t.message}),(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:`Editing stays unavailable until the runtime returns a fresh server detail model.`}),(0,B.jsxs)(X,{children:[t.status===`committedRefreshFailed`?(0,B.jsx)(Q,{onClick:()=>void e.open(t.serverId),children:`Retry detail`}):null,(0,B.jsx)(Q,{variant:`default`,onClick:()=>void e.close(),children:`Back to servers`})]})]})});if(t.status===`missing`)return(0,B.jsx)(lg,{title:`Server detail`,utility:t.serverId,icon:(0,B.jsx)(Th,{size:17}),children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsx)(zm,{order:3,children:`Server target not found`}),(0,B.jsxs)(Z,{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,B.jsx)(Ml,{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,B.jsx)(Q,{variant:`default`,onClick:()=>e.close(),children:`Back to servers`})]})});if(t.status===`failed`)return(0,B.jsx)(lg,{title:`Server detail`,utility:t.serverId,icon:(0,B.jsx)(Th,{size:17}),children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsx)(Ml,{color:`red`,role:`alert`,children:t.message}),(0,B.jsx)(Z,{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,B.jsx)(Q,{variant:`default`,onClick:()=>e.close(),children:`Back to servers`})]})});let n=mg(t.fieldDraft,t.detail.server.transport.type),r=t.detail.editContract.fieldGroups.map(e=>({...e,fields:e.fields.filter(e=>hg(e,n))})).filter(e=>e.fields.length>0),i=Ng(t);return(0,B.jsx)(lg,{title:`Edit server`,utility:t.detail.server.enabled?`enabled`:`disabled`,icon:(0,B.jsx)(bh,{size:17}),children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{className:`eyebrow`,size:`xs`,children:`Configured Server Target`}),(0,B.jsxs)(X,{gap:`xs`,align:`center`,children:[(0,B.jsx)(zm,{order:2,children:t.detail.server.id}),(0,B.jsx)(td,{color:t.detail.server.enabled?`teal`:`yellow`,variant:`light`,children:t.detail.server.enabled?`enabled`:`disabled`})]}),(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:Ih(t.detail.server)}),(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:`Draft changes stay local until preview.`})]}),(0,B.jsx)(Q,{variant:`default`,onClick:()=>e.close(),children:`Back`})]}),r.map(n=>(0,B.jsx)(Js,{className:`edit-section`,withBorder:!0,children:(0,B.jsxs)($,{gap:`xs`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{fw:800,children:n.label}),(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:zg(n.id)})]}),(0,B.jsxs)(td,{variant:`outline`,children:[n.fields.length,` fields`]})]}),n.fields.map(n=>{let r=n.fieldPath[0]===`transport`?n.fieldPath[1]:n.fieldPath[0],i=!!(r&&t.clearedTransportOverrides.includes(r));return(0,B.jsxs)($,{gap:4,children:[n.control===`secret`?(0,B.jsx)(Hg,{field:n,draft:t.secretDraft[fg(n.fieldPath)],onChange:t=>e.changeSecret(n.fieldPath,t)}):(0,B.jsx)(Bg,{field:n,value:t.fieldDraft[fg(n.fieldPath)],onChange:t=>e.changeField(n.fieldPath,t)}),n.overrideSupported&&r?(0,B.jsxs)(X,{justify:`space-between`,gap:`xs`,children:[(0,B.jsx)(td,{variant:`outline`,children:i?`will inherit`:n.source===`inherited`?`inherited`:n.source}),n.clearOverrideSupported?(0,B.jsx)(Q,{size:`compact-xs`,variant:`subtle`,onClick:()=>e.changeTransportOverride(r,!i),children:i?`Restore override`:`Clear override`}):null]}):null]},fg(n.fieldPath))})]})},n.id)),(0,B.jsxs)(X,{className:`draft-action-bar`,justify:`space-between`,gap:`sm`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(td,{color:t.dirty?`yellow`:`gray`,variant:t.dirty?`light`:`outline`,children:t.dirty?`Unsaved changes`:`No changes yet`}),(0,B.jsx)(Z,{c:`dimmed`,size:`xs`,children:`Preview validates the draft without writing config. Leaving this page with unsaved changes asks for confirmation.`})]}),(0,B.jsxs)(X,{gap:`xs`,children:[(0,B.jsx)(Q,{loading:t.previewBusy,disabled:!t.dirty||t.previewBusy||t.applyBusy,onClick:()=>void e.preview(`auto`),children:`Preview change`}),t.preview?(0,B.jsx)(Q,{variant:`default`,loading:t.previewBusy,disabled:t.applyBusy,onClick:()=>void e.preview(`manual`),children:`Rerun connectivity`}):null]})]}),t.previewError?(0,B.jsx)(Ml,{color:`red`,role:`alert`,children:t.previewError}):null,t.applyError?(0,B.jsx)(Ml,{color:`red`,role:`alert`,children:t.applyError}):null,t.applyWarning?(0,B.jsx)(Ml,{color:`yellow`,role:`status`,children:t.applyWarning}):null,t.applySuccess?(0,B.jsx)(Ml,{color:`teal`,role:`status`,children:t.applySuccess}):null,t.preview?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(Wg,{preview:t.preview}),(0,B.jsxs)(X,{justify:`flex-end`,align:`center`,children:[i.eligible?null:(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:i.reason}),(0,B.jsx)(Q,{leftSection:(0,B.jsx)(Eh,{size:16}),loading:t.applyBusy,disabled:!i.eligible||t.applyBusy,onClick:()=>void e.apply(),children:`Apply changes`})]})]}):null]})})}function Kg({state:e,onServerAction:t,onOpenServerDetail:n}){let[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(`all`),s=vt(`(max-width: 620px)`,!1),c=(0,y.useMemo)(()=>jh(e.configuredServers,r,a),[a,r,e.configuredServers]);return(0,B.jsxs)(lg,{title:`Server inventory`,utility:`${c.length} of ${e.configuredServers.length} targets`,icon:(0,B.jsx)(Th,{size:17}),children:[(0,B.jsxs)(X,{align:`flex-end`,gap:`sm`,className:`server-filter-row`,children:[(0,B.jsx)(Mm,{className:`server-search`,leftSection:(0,B.jsx)(wh,{size:16}),label:`Search servers`,type:`search`,value:r,onChange:e=>i(e.currentTarget.value)}),(0,B.jsx)(Hp,{"aria-label":`Server status filter`,value:a,onChange:e=>o(e),data:[{label:`All`,value:`all`},{label:`Enabled`,value:`enabled`},{label:`Disabled`,value:`disabled`}]})]}),c.length===0?(0,B.jsx)(ug,{message:`No servers match the current filter.`}):s?(0,B.jsx)(`div`,{className:`server-mobile-list`,children:c.map(r=>(0,B.jsx)(qg,{server:r,mutation:e.serverMutations[r.id],onServerAction:t,onOpenServerDetail:n},r.id))}):(0,B.jsx)(`div`,{className:`server-table-view`,children:(0,B.jsx)(Em.ScrollContainer,{minWidth:720,children:(0,B.jsxs)(Em,{className:`admin-table`,verticalSpacing:`xs`,children:[(0,B.jsx)(Em.Thead,{children:(0,B.jsxs)(Em.Tr,{children:[(0,B.jsx)(Em.Th,{children:`Server`}),(0,B.jsx)(Em.Th,{children:`Status`}),(0,B.jsx)(Em.Th,{children:`Transport`}),(0,B.jsx)(Em.Th,{children:`Secrets`}),(0,B.jsx)(Em.Th,{children:`Action`})]})}),(0,B.jsx)(Em.Tbody,{children:c.map(r=>(0,B.jsx)(Jg,{server:r,mutation:e.serverMutations[r.id],onServerAction:t,onOpenServerDetail:n},r.id))})]})})})]})}function qg({server:e,mutation:t,onServerAction:n,onOpenServerDetail:r}){let i=e.enabled?`disable`:`enable`,a=t?.state===`busy`,o=Lh(e),s=zh(e,i),c=!Rh(e)||!s.available;return(0,B.jsxs)(`article`,{className:`server-mobile-card${t?` server-action-${t.state}`:``}`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,wrap:`nowrap`,children:[(0,B.jsxs)(`div`,{className:`server-mobile-identity`,children:[(0,B.jsx)(Z,{fw:700,children:e.id}),o.length>0?(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,children:o.join(` / `)}):null]}),(0,B.jsx)(td,{color:e.enabled?`teal`:`yellow`,variant:`light`,children:e.enabled?`enabled`:`disabled`})]}),(0,B.jsxs)(`dl`,{className:`server-mobile-facts`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:`Transport`}),(0,B.jsx)(`dd`,{children:Ih(e)})]}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`dt`,{children:`Secrets`}),(0,B.jsx)(`dd`,{children:Gh(e)})]})]}),t?.message?(0,B.jsx)(Z,{size:`xs`,c:t.state===`failed`?`red`:`dimmed`,children:t.message}):null,(0,B.jsxs)(X,{gap:`xs`,grow:!0,children:[(0,B.jsx)(Q,{"aria-label":`Edit ${e.id} server`,leftSection:(0,B.jsx)(bh,{size:14}),size:`xs`,variant:`default`,onClick:()=>void r?.(e.id),children:`Edit server`}),(0,B.jsx)(Q,{"aria-label":s.label,size:`xs`,color:i===`disable`?`red`:`teal`,variant:i===`disable`?`light`:`filled`,loading:a,disabled:a||c,onClick:()=>void n?.(e.id,i),children:i===`enable`?`Enable`:`Disable`})]})]})}function Jg({server:e,mutation:t,onServerAction:n,onOpenServerDetail:r}){let i=e.enabled?`disable`:`enable`,a=t?.state===`busy`,o=Lh(e),s=zh(e,i),c=!Rh(e)||!s.available;return(0,B.jsxs)(Em.Tr,{className:t?`server-action-${t.state}`:void 0,children:[(0,B.jsxs)(Em.Td,{children:[(0,B.jsx)(Z,{fw:700,children:e.id}),o.length>0?(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,children:o.join(` / `)}):null,t?.message?(0,B.jsx)(Z,{size:`xs`,c:t.state===`failed`?`red`:`dimmed`,children:t.message}):null]}),(0,B.jsx)(Em.Td,{children:(0,B.jsx)(td,{color:e.enabled?`teal`:`yellow`,variant:`light`,children:e.enabled?`enabled`:`disabled`})}),(0,B.jsx)(Em.Td,{children:Ih(e)}),(0,B.jsx)(Em.Td,{children:Gh(e)}),(0,B.jsx)(Em.Td,{children:(0,B.jsxs)(X,{gap:`xs`,wrap:`wrap`,children:[(0,B.jsx)(Q,{"aria-label":`Edit ${e.id} server`,leftSection:(0,B.jsx)(bh,{size:14}),size:`xs`,variant:`default`,onClick:()=>void r?.(e.id),children:`Edit server`}),(0,B.jsx)(Q,{size:`xs`,color:i===`disable`?`red`:`teal`,variant:i===`disable`?`light`:`filled`,loading:a,disabled:a||c,onClick:()=>void n?.(e.id,i),children:s.label})]})})]})}function Yg({facts:e,onCopyText:t}){return(0,B.jsx)(lg,{title:`Recent audit facts`,utility:`redacted`,icon:(0,B.jsx)(Ah,{size:17}),children:e.length===0?(0,B.jsx)(ug,{message:`No recent admin audit facts.`}):(0,B.jsx)($,{gap:`xs`,children:e.map(e=>(0,B.jsx)(cg,{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 Xg({model:e,navigate:t}){let{state:n,configuredServers:r}=e,i=(n.status?.audit.facts??[]).filter(e=>e.result===`failed`).length,a=(n.status?.oauth.services??[]).filter(Ph).length,[o,s]=(0,y.useState)(null),c=n.status?.runtime;async function l(e,t){try{await r.copy(e,t),s(`${Xh(e)} copied.`)}catch{s(`Could not copy ${Xh(e)}. Select the value manually.`)}}return(0,B.jsxs)(`section`,{"aria-labelledby":`runtime-operations-title`,className:`operations-workspace`,children:[(0,B.jsx)(zm,{id:`runtime-operations-title`,order:2,className:`sr-only`,children:`Runtime operations`}),(0,B.jsx)($g,{title:`Operations dashboard`,description:`Runtime summaries for ${n.session?.account.username??`operator`} · updated ${n.lastUpdatedAt??`never`}`,model:e}),(0,B.jsxs)(Xp,{cols:{base:2,sm:4},spacing:`sm`,className:`summary-grid`,children:[(0,B.jsx)(e_,{label:`Enabled servers`,value:Mh(n.configuredServers),tone:`good`,icon:`01`,href:`/admin/servers`,onNavigate:()=>t(`servers`)}),(0,B.jsx)(e_,{label:`Disabled servers`,value:Nh(n.configuredServers),tone:`warn`,icon:`02`,href:`/admin/servers`,onNavigate:()=>t(`servers`)}),(0,B.jsx)(e_,{label:`OAuth attention`,value:a,tone:a>0?`warn`:`good`,icon:`03`,href:`/admin/oauth`,onNavigate:()=>t(`oauth`)}),(0,B.jsx)(e_,{label:`Failed audits`,value:i,tone:i>0?`bad`:`good`,icon:`04`,href:`/admin/audit`,onNavigate:()=>t(`audit`)})]}),(0,B.jsx)(`div`,{className:`dashboard-runtime-panel`,children:(0,B.jsx)(lg,{title:`Runtime identity`,utility:`current target`,icon:(0,B.jsx)(`span`,{className:`runtime-live-dot`}),children:c?(0,B.jsxs)(Xp,{cols:{base:1,sm:3},spacing:`sm`,children:[(0,B.jsx)(cg,{label:`Version`,value:c.runtimeVersion}),(0,B.jsx)(cg,{label:`External URL`,value:c.externalUrl??`-`}),(0,B.jsx)(cg,{label:`Runtime scope`,value:c.runtimeScopeId,copyLabel:`runtimeScopeId`,onCopyText:l})]}):(0,B.jsx)(Z,{c:`dimmed`,children:`Runtime status has not loaded.`})})}),(0,B.jsx)(t_,{message:o})]})}function Zg({model:e}){let{state:t,configuredServers:n}=e;return(0,B.jsxs)(`section`,{"aria-labelledby":`servers-workspace-title`,className:`operations-workspace`,children:[(0,B.jsx)($g,{title:`Configured servers`,titleId:`servers-workspace-title`,description:`${t.configuredServers.length} configured targets · updated ${t.lastUpdatedAt??`never`}`,model:e}),(0,B.jsxs)(`div`,{className:`workspace-grid`,children:[(0,B.jsx)(`div`,{className:`inventory-column`,children:(0,B.jsx)(Kg,{state:t,onServerAction:n.mutate,onOpenServerDetail:n.edit.open})}),(0,B.jsx)(`div`,{className:`inspector-column`,children:(0,B.jsx)(Gg,{model:n.edit})})]})]})}function Qg({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(`${Xh(e)} copied.`)}catch{i(`Could not copy ${Xh(e)}. Select the value manually.`)}}return(0,B.jsxs)(`section`,{"aria-labelledby":`audit-workspace-title`,className:`operations-workspace`,children:[(0,B.jsx)($g,{title:`Audit trail`,titleId:`audit-workspace-title`,description:`Recent redacted Admin Operations · updated ${t.lastUpdatedAt??`never`}`,model:e}),(0,B.jsx)(Yg,{facts:t.status?.audit.facts??[],onCopyText:a}),(0,B.jsx)(t_,{message:r})]})}function $g({title:e,titleId:t,description:n,model:r}){return(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,className:`workspace-heading`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{className:`eyebrow`,size:`xs`,children:`Operator workspace / live`}),(0,B.jsx)(zm,{id:t,order:2,children:e}),(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:n})]}),(0,B.jsxs)(X,{gap:`xs`,children:[(0,B.jsx)(Q,{variant:`default`,leftSection:(0,B.jsx)(xh,{size:16}),onClick:()=>void r.refresh(),children:`Refresh`}),(0,B.jsx)(Q,{color:`red`,variant:`light`,leftSection:(0,B.jsx)(yh,{size:16}),onClick:()=>void r.logout(),children:`Log out`})]})]})}function e_({label:e,value:t,tone:n,icon:r,href:i,onNavigate:a}){return(0,B.jsx)(Js,{component:`a`,href:i,className:`summary-counter summary-link summary-${n}`,withBorder:!0,onClick:e=>{n_(e)&&(e.preventDefault(),a())},children:(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,wrap:`nowrap`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,fw:800,tt:`uppercase`,children:e}),(0,B.jsx)(Z,{className:`summary-value`,children:t})]}),(0,B.jsxs)($,{gap:4,align:`flex-end`,children:[(0,B.jsx)(Z,{className:`summary-index`,children:r}),(0,B.jsx)(fh,{size:15,"aria-hidden":`true`})]})]})})}function t_({message:e}){return(0,B.jsx)(`div`,{"aria-live":`polite`,children:e?(0,B.jsx)(Ml,{color:e.startsWith(`Could not`)?`red`:`teal`,mt:`sm`,children:e}):null})}function n_(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function r_({model:e,oauth:t}){let{state:n,configuredServers:r}=e,i=n.status?.oauth.services??[],[a,o]=(0,y.useState)(null);async function s(e){try{await r.copy(`serviceId`,e.id),o(`Service id copied.`)}catch{o(`Could not copy service id. Select the value manually.`)}}return(0,B.jsxs)(`section`,{"aria-label":`OAuth services`,className:`operations-workspace`,children:[(0,B.jsx)($g,{title:`OAuth services`,description:`${i.length} reported services · runtime status ${n.status?.oauth.status??`unavailable`}`,model:e}),t.callbackFeedback?(0,B.jsx)(o_,{feedback:t.callbackFeedback}):null,t.operationFeedback?(0,B.jsx)(o_,{feedback:t.operationFeedback}):null,i.length===0?(0,B.jsx)(Js,{className:`operations-panel`,withBorder:!0,children:(0,B.jsx)(Z,{c:`dimmed`,children:`No OAuth services reported.`})}):(0,B.jsx)($,{gap:`sm`,children:i.map(e=>(0,B.jsx)(i_,{service:e,busy:t.busy?.serviceId===e.id?t.busy.action:null,operationBlocked:t.busy!==null,onCopy:()=>void s(e),onOperate:n=>void t.operate(e.id,n)},e.id))}),a?(0,B.jsx)(Ml,{"aria-live":`polite`,color:a.startsWith(`Could not`)?`red`:`teal`,mt:`sm`,children:a}):null]})}function i_({service:e,busy:t,operationBlocked:n,onCopy:r,onOperate:i}){let a=a_(e),o=a===`authorize`?`Authorize`:`Restart`;return(0,B.jsx)(Js,{component:`article`,className:`oauth-service-row`,withBorder:!0,children:(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,wrap:`nowrap`,children:[(0,B.jsxs)(`div`,{className:`oauth-service-main`,children:[(0,B.jsxs)(X,{gap:`xs`,children:[(0,B.jsx)(Z,{fw:800,children:e.displayName}),(0,B.jsx)(td,{color:e.status===`connected`?`teal`:`yellow`,variant:`light`,children:e.status})]}),(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,children:e.requiresOAuth?`OAuth required`:`No OAuth action required`}),e.lastError?(0,B.jsx)(Z,{size:`sm`,c:`red`,children:e.lastError}):null,(0,B.jsxs)(`details`,{className:`oauth-service-identity`,children:[(0,B.jsx)(`summary`,{children:`Full service ID`}),(0,B.jsxs)(X,{gap:`xs`,wrap:`nowrap`,children:[(0,B.jsx)(hd,{className:`oauth-service-id`,children:e.id}),(0,B.jsx)(Q,{"aria-label":`Copy full service ID for ${e.displayName}`,size:`compact-xs`,variant:`subtle`,onClick:r,children:(0,B.jsx)(mh,{size:14,"aria-hidden":`true`})})]})]})]}),a?(0,B.jsxs)($,{gap:4,align:`flex-end`,className:`oauth-service-action`,children:[(0,B.jsx)(Q,{"aria-label":`${o} ${e.displayName}`,leftSection:a===`authorize`?(0,B.jsx)(vh,{size:15}):(0,B.jsx)(Sh,{size:15}),loading:t===a,disabled:n,onClick:()=>i(a),children:o}),(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,"aria-live":`polite`,children:t?t===`authorize`?`Starting authorization...`:`Restarting authorization...`:``})]}):null]})})}function a_(e){return e.requiresOAuth?e.status===`awaiting_oauth`?`authorize`:`restart`:null}function o_({feedback:e}){return(0,B.jsx)(Ml,{color:e.kind===`success`?`teal`:`red`,role:e.kind===`success`?`status`:`alert`,mb:`sm`,children:e.message})}function s_(e,t){let n=p_(e,`include`),r=p_(e,`exclude`),i=[];return n.length===1&&i.push({tag:n[0]}),n.length>1&&i.push({[t===`or`?`$or`:`$and`]:n.map(e=>({tag:e}))}),i.push(...r.map(e=>({$not:{tag:e}}))),i.length===0?{}:i.length===1?i[0]:{$and:i}}function c_(e,t){return e.tag?t.includes(e.tag):e.$or?e.$or.some(e=>c_(e,t)):e.$and?e.$and.every(e=>c_(e,t)):e.$not?!c_(e.$not,t):e.$in?e.$in.some(e=>t.includes(e)):!1}function l_(e){let t={},n=u_(e,t);return n?{strategy:n,states:t}:null}function u_(e,t){if(typeof e.tag==`string`&&Object.keys(e).length===1)return t[e.tag]=`include`,`or`;if(e.$not&&Object.keys(e).length===1&&f_(e.$not))return t[f_(e.$not)]=`exclude`,`or`;if(e.$or&&Object.keys(e).length===1&&d_(e.$or,t))return`or`;if(e.$and&&Object.keys(e).length===1){let n=e.$and,r=n.filter(e=>e.tag||e.$or||e.$and),i=n.filter(e=>e.$not);if(n.length!==r.length+i.length)return null;let a=`and`;if(r.length>1){if(!d_(r,t))return null}else{let e=r[0];if(e?.tag)t[e.tag]=`include`;else if(e?.$or&&d_(e.$or,t))a=`or`;else if(e?.$and&&d_(e.$and,t))a=`and`;else if(e)return null}for(let e of i){let n=e.$not?f_(e.$not):null;if(!n)return null;t[n]=`exclude`}return a}return Object.keys(e).length===0?`or`:null}function d_(e,t){for(let n of e){let e=f_(n);if(!e)return!1;t[e]=`include`}return!0}function f_(e){return typeof e.tag==`string`&&Object.keys(e).length===1?e.tag:null}function p_(e,t){return Object.entries(e).filter(([,e])=>e===t).map(([e])=>e)}function m_({model:e,runtimeScopeId:t}){let{items:n,targets:r,busy:i,load:a,preview:o,save:s,delete:c}=e,[l,u]=(0,y.useState)(),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(`or`),[_,v]=(0,y.useState)({}),[b,x]=(0,y.useState)(`{}`),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)({lossless:!0});function O(e,t=!1){u(e.name),f(t?`${e.name}-copy`:e.name),m(e.description??``);let n=l_(e.tagQuery);g(n?n.strategy:`advanced`),x(JSON.stringify(e.tagQuery,null,2));let r=n?{tags:Object.keys(n.states)}:null;v(n?.states??{}),D(r?{lossless:!0,strategy:n?.strategy,tags:r.tags,states:n?.states}:{lossless:!1,reason:`This advanced query cannot be represented losslessly in structured mode.`}),C(null)}function k(){let e;if(h===`advanced`){let t=JSON.parse(b);if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`Advanced JSON must be an object.`);e=t}else e=s_(_,h);return{name:d,description:p||void 0,strategy:h,tagQuery:e}}async function A(){try{let e=await o(k(),l);C(e),D(e.structuredConversion),T(null)}catch(e){T(e instanceof Error?e.message:`Preset preview failed.`)}}async function j(){if(!S)return;let e=l?l===S.draft.name?`update`:`duplicate`:`create`;await s({action:e,sourceName:l,preview:S})&&(C(null),T(`Preset ${S.draft.name} saved.`))}return(0,B.jsxs)(`section`,{"aria-labelledby":`presets-title`,className:`operations-workspace`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,className:`workspace-heading`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsxs)(Z,{className:`eyebrow`,size:`xs`,children:[`Runtime Scope / `,t??`unavailable`]}),(0,B.jsx)(zm,{id:`presets-title`,order:2,children:`Presets`}),(0,B.jsx)(Z,{c:`dimmed`,size:`sm`,children:`Manage the preset store owned by this running Runtime Scope.`})]}),(0,B.jsxs)(X,{children:[(0,B.jsx)(Q,{variant:`default`,onClick:()=>void a(),loading:i,children:`Refresh`}),(0,B.jsx)(Q,{onClick:()=>{u(void 0),f(``),m(``),g(`or`),v({}),x(`{}`),C(null)},children:`New preset`})]})]}),(0,B.jsxs)(`div`,{className:`workspace-grid`,children:[(0,B.jsx)(Js,{withBorder:!0,p:`md`,children:(0,B.jsxs)($,{gap:`sm`,children:[n.map(e=>(0,B.jsx)(Js,{withBorder:!0,p:`sm`,children:(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{fw:800,children:e.name}),(0,B.jsx)(Z,{size:`sm`,c:`dimmed`,children:e.description||`No description`}),(0,B.jsxs)(Z,{size:`xs`,children:[e.strategy.toUpperCase(),` · `,e.querySummary||`empty query`,` · `,e.matchCount,` `,`matches`]})]}),(0,B.jsxs)(X,{gap:`xs`,children:[(0,B.jsx)(Q,{size:`xs`,variant:`default`,onClick:()=>O(e),children:`Edit`}),(0,B.jsx)(Q,{size:`xs`,variant:`default`,onClick:()=>O(e,!0),children:`Duplicate`}),(0,B.jsx)(Q,{size:`xs`,color:`red`,variant:`light`,leftSection:(0,B.jsx)(kh,{size:14}),onClick:()=>void c(e.name),children:`Delete`})]})]})},e.name)),!i&&n.length===0?(0,B.jsx)(Z,{c:`dimmed`,children:`No presets in this Runtime Scope.`}):null]})}),(0,B.jsx)(Js,{withBorder:!0,p:`md`,children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsx)(zm,{order:3,children:l?`Edit ${l}`:`Create preset`}),(0,B.jsx)(Mm,{label:`Preset name`,value:d,disabled:!!(l&&l===d),onChange:e=>{f(e.currentTarget.value),C(null)}}),(0,B.jsx)(Mm,{label:`Description`,value:p,onChange:e=>{m(e.currentTarget.value),C(null)}}),(0,B.jsxs)(X,{children:[(0,B.jsx)(Q,{variant:h===`or`?`filled`:`default`,"aria-pressed":h===`or`,disabled:h===`advanced`&&!E.lossless,title:h===`advanced`&&!E.lossless?E.reason:void 0,onClick:()=>{g(`or`),E.states?v(E.states):E.tags&&v(__(E.tags)),C(null)},children:`Match any included tag`}),(0,B.jsx)(Q,{variant:h===`and`?`filled`:`default`,"aria-pressed":h===`and`,disabled:h===`advanced`&&!E.lossless,title:h===`advanced`&&!E.lossless?E.reason:void 0,onClick:()=>{g(`and`),E.states?v(E.states):E.tags&&v(__(E.tags)),C(null)},children:`Match all included tags`}),(0,B.jsx)(Q,{variant:h===`advanced`?`filled`:`default`,"aria-pressed":h===`advanced`,onClick:()=>{x(JSON.stringify(s_(_,h===`and`?`and`:`or`),null,2)),g(`advanced`),C(null)},children:`Advanced JSON`})]}),h===`advanced`?(0,B.jsx)(zd,{label:`Advanced JSON`,minRows:8,value:b,onChange:e=>{let t=e.currentTarget.value;x(t);try{let e=JSON.parse(t);if(e&&typeof e==`object`&&!Array.isArray(e)){let t=l_(e);D(t?{lossless:!0,strategy:t.strategy,tags:Object.keys(t.states),states:t.states}:{lossless:!1,reason:`This advanced query cannot be represented losslessly.`})}else D({lossless:!1,reason:`Advanced JSON must be an object.`})}catch{D({lossless:!1,reason:`Advanced JSON must be valid before conversion.`})}C(null)}}):(0,B.jsx)(h_,{targets:r,strategy:h,states:_,onChange:e=>{v(e),C(null)}}),(0,B.jsx)(Q,{leftSection:(0,B.jsx)(Dh,{size:16}),onClick:()=>void A(),children:`Preview matches`}),S?(0,B.jsxs)(Js,{withBorder:!0,p:`sm`,children:[(0,B.jsxs)(Z,{fw:800,children:[S.matchCount,` current matches`]}),S.validation.globalErrors.map(e=>(0,B.jsx)(Z,{c:`red`,children:e},e)),S.validation.fieldErrors.map(e=>(0,B.jsxs)(Z,{c:`red`,children:[e.field,`: `,e.message]},`${e.field}-${e.message}`)),S.validation.warnings.map(e=>(0,B.jsx)(Z,{c:`yellow`,children:e},e)),S.matches.map(e=>(0,B.jsxs)(Z,{size:`sm`,children:[e.matched?`✓`:`–`,` `,e.name,` · `,e.enabled?`enabled`:`disabled`,` · `,e.reason]},e.name)),(0,B.jsx)(Q,{mt:`sm`,disabled:S.validation.status===`invalid`,leftSection:(0,B.jsx)(Ch,{size:16}),onClick:()=>void j(),children:`Confirm and save`})]}):null,w?(0,B.jsx)(Ml,{children:w}):null]})})]})]})}function h_({targets:e,strategy:t,states:n,onChange:r}){let i=g_(e,n),a=s_(n,t),o=e.filter(e=>c_(a,e.tags)),s=i.filter(({tag:e})=>(n[e]??`neutral`)!==`neutral`);function c(e,t){r({...n,[e]:t})}return(0,B.jsxs)(`section`,{className:`preset-tag-builder`,"aria-labelledby":`preset-tag-matrix-title`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,gap:`md`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(zm,{id:`preset-tag-matrix-title`,order:4,children:`Tag matrix`}),(0,B.jsx)(Z,{size:`sm`,c:`dimmed`,children:`Discover tags from configured targets. Include tags select servers; exclude tags remove them.`})]}),(0,B.jsxs)(td,{variant:`light`,color:o.length>0?`teal`:`yellow`,children:[o.length,` / `,e.length,` match`]})]}),(0,B.jsxs)($,{gap:`xs`,mt:`sm`,className:`preset-tag-list`,children:[i.map(({tag:e,servers:t,enabledCount:r,disabledCount:i,discovered:a})=>{let o=n[e]??`neutral`;return(0,B.jsxs)(`div`,{className:`preset-tag-row preset-tag-${o}`,children:[(0,B.jsxs)(`div`,{className:`preset-tag-identity`,children:[(0,B.jsx)(Z,{fw:800,children:e}),(0,B.jsxs)(Z,{size:`xs`,c:`dimmed`,children:[t.length,` `,t.length===1?`server`:`servers`,` · `,r,` enabled ·`,` `,i,` disabled · `,t.join(`, `)||`no current targets`,a?``:` · no longer discovered`]})]}),(0,B.jsxs)(X,{gap:4,wrap:`nowrap`,role:`group`,"aria-label":`${e} tag state`,children:[(0,B.jsx)(Q,{size:`compact-xs`,variant:o===`include`?`filled`:`subtle`,color:`teal`,"aria-pressed":o===`include`,"aria-label":`Include ${e}, ${t.length} ${t.length===1?`server`:`servers`}`,onClick:()=>c(e,o===`include`?`neutral`:`include`),children:`Include`}),(0,B.jsx)(Q,{size:`compact-xs`,variant:o===`exclude`?`filled`:`subtle`,color:`red`,"aria-pressed":o===`exclude`,"aria-label":`Exclude ${e}, ${t.length} ${t.length===1?`server`:`servers`}`,onClick:()=>c(e,o===`exclude`?`neutral`:`exclude`),children:`Exclude`})]})]},e)}),i.length===0?(0,B.jsx)(Z,{c:`dimmed`,children:`No configured target tags are available.`}):null]}),(0,B.jsxs)(`div`,{className:`preset-query-strip`,children:[(0,B.jsx)(Z,{size:`xs`,fw:800,tt:`uppercase`,children:`Draft query`}),(0,B.jsxs)(X,{gap:`xs`,mt:6,children:[s.length===0?(0,B.jsx)(Z,{c:`dimmed`,children:`Select tags to build a query.`}):null,s.map(({tag:e})=>(0,B.jsxs)(td,{color:n[e]===`exclude`?`red`:`teal`,variant:`light`,children:[n[e]===`exclude`?`EXCLUDE`:`INCLUDE`,` `,e]},e))]}),(0,B.jsxs)(Z,{size:`sm`,mt:`xs`,children:[o.length,` of `,e.length,` configured targets match this draft.`]}),(0,B.jsx)($,{gap:3,mt:`xs`,children:e.map(e=>{let t=o.some(t=>t.name===e.name);return(0,B.jsxs)(Z,{size:`xs`,c:t?void 0:`dimmed`,children:[t?`✓`:`–`,` `,e.name,` · `,e.enabled?`enabled`:`disabled`,` ·`,` `,e.tags.join(`, `)||`untagged`]},e.name)})})]})]})}function g_(e,t){let n=new Map;for(let t of e)for(let e of t.tags){let r=n.get(e)??{servers:[],enabledCount:0,disabledCount:0};r.servers.push(t.name),t.enabled?r.enabledCount+=1:r.disabledCount+=1,n.set(e,r)}for(let e of Object.keys(t))n.has(e)||n.set(e,{servers:[],enabledCount:0,disabledCount:0});return Array.from(n,([e,t])=>({tag:e,...t,discovered:t.servers.length>0})).sort((e,t)=>e.tag.localeCompare(t.tag))}function __(e){return Object.fromEntries(e.map(e=>[e,`include`]))}function v_({session:e}){let{state:t,loginBusy:n,navigation:r}=e,i=r.route,[a,o]=(0,y.useState)(!1);if(t.view!==`console`)return(0,B.jsxs)(S_,{state:t,children:[t.view===`setupRequired`?(0,B.jsx)(C_,{}):null,t.view===`loading`||t.view===`login`?(0,B.jsx)(w_,{loading:t.view===`loading`||n,onLogin:e.login}):null]});return(0,B.jsxs)(ou,{className:`admin-app-shell`,header:{height:66},navbar:{width:224,breakpoint:`md`,collapsed:{mobile:!a}},padding:0,children:[(0,B.jsx)(ou.Header,{"aria-label":`Admin Console`,className:`admin-app-header`,children:(0,B.jsxs)(X,{h:`100%`,px:`lg`,justify:`space-between`,wrap:`nowrap`,className:`command-bar`,children:[(0,B.jsxs)(X,{gap:`sm`,wrap:`nowrap`,children:[(0,B.jsx)(id,{"aria-label":a?`Close operations navigation`:`Open operations navigation`,className:`mobile-navigation-toggle`,color:`var(--admin-ink)`,opened:a,size:`sm`,onClick:()=>o(e=>!e)}),(0,B.jsx)(`div`,{className:`brand-mark`,"aria-hidden":`true`,children:`1`}),(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{className:`eyebrow command-eyebrow`,size:`xs`,children:`1MCP control plane`}),(0,B.jsx)(zm,{order:1,size:`h4`,children:`Admin Console`})]})]}),(0,B.jsxs)(X,{gap:`sm`,wrap:`nowrap`,children:[(0,B.jsxs)(`div`,{className:`runtime-live`,"aria-label":`Runtime online`,children:[(0,B.jsx)(`span`,{className:`runtime-live-dot`}),(0,B.jsx)(Z,{size:`xs`,fw:800,children:`Runtime online`})]}),(0,B.jsx)(td,{variant:`light`,color:Yh(t),children:Jh(t)})]})]})}),(0,B.jsxs)(ou.Navbar,{className:`admin-app-navbar`,"aria-label":`Operations navigation`,children:[(0,B.jsxs)($,{gap:`xs`,className:`nav-stack`,children:[(0,B.jsx)(Z,{className:`nav-section-label`,children:`Workspace`}),(0,B.jsx)(b_,{icon:(0,B.jsx)(gh,{size:17}),label:`Dashboard`,href:`/admin`,active:i===`dashboard`,onNavigate:()=>s(`dashboard`)}),(0,B.jsx)(b_,{icon:(0,B.jsx)(ph,{size:17}),label:`Server inventory`,href:`/admin/servers`,active:i===`servers`,onNavigate:()=>s(`servers`)}),(0,B.jsx)(b_,{icon:(0,B.jsx)(Eh,{size:17}),label:`OAuth services`,href:`/admin/oauth`,active:i===`oauth`,onNavigate:()=>s(`oauth`)}),(0,B.jsx)(b_,{icon:(0,B.jsx)(hh,{size:17}),label:`Audit trail`,href:`/admin/audit`,active:i===`audit`,onNavigate:()=>s(`audit`)}),(0,B.jsx)(b_,{icon:(0,B.jsx)(Dh,{size:17}),label:`Presets`,href:`/admin/presets`,active:i===`presets`,onNavigate:()=>s(`presets`)}),(0,B.jsx)(b_,{icon:(0,B.jsx)(Oh,{size:17}),label:`Backend logs`,href:`/admin/logs`,active:i===`logs`,onNavigate:()=>s(`logs`)}),(0,B.jsx)(b_,{icon:(0,B.jsx)(_h,{size:17}),label:`About`,href:`/admin/about`,active:i===`about`,onNavigate:()=>s(`about`)})]}),(0,B.jsxs)($,{gap:`xs`,className:`nav-runtime-card`,children:[(0,B.jsx)(Z,{className:`nav-section-label`,children:`Runtime target`}),(0,B.jsx)(Z,{fw:800,className:`truncate`,children:Kh(t.status?.runtime)}),(0,B.jsx)(Z,{size:`xs`,c:`dimmed`,className:`truncate`,children:qh(t.status?.runtime)}),(0,B.jsx)(Z,{size:`xs`,className:`nav-scope truncate`,children:t.status?.runtime.runtimeScopeId??`scope unavailable`})]})]}),(0,B.jsx)(ou.Main,{className:`admin-shell-main`,children:(0,B.jsxs)($,{gap:`md`,className:`admin-console`,children:[(0,B.jsx)(T_,{state:t}),(0,B.jsx)(y_,{session:e})]})})]});function s(e){r.navigate(e),o(!1)}}function y_({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,B.jsx)(Zg,{model:a});case`oauth`:return(0,B.jsx)(r_,{model:a,oauth:e.oauth});case`audit`:return(0,B.jsx)(Qg,{model:a});case`presets`:return(0,B.jsx)(m_,{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`logs`:return(0,B.jsx)(eg,{logs:e.logs});case`about`:return(0,B.jsx)(Zh,{state:t});case`dashboard`:return(0,B.jsx)(Xg,{model:a,navigate:n.navigate})}}function b_({icon:e,label:t,href:n,active:r=!1,onNavigate:i}){return(0,B.jsxs)(`a`,{href:n,"aria-current":r?`page`:void 0,className:`nav-item${r?` nav-item-active`:``}`,onClick:e=>{x_(e)&&(e.preventDefault(),i?.())},children:[e,(0,B.jsx)(Z,{size:`sm`,fw:700,children:t})]})}function x_(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function S_({state:e,children:t}){return(0,B.jsx)(`main`,{className:`admin-auth-shell`,"aria-label":`Admin authentication`,children:(0,B.jsxs)($,{gap:`md`,className:`admin-auth-card`,children:[(0,B.jsx)(T_,{state:e}),t]})})}function C_(){return(0,B.jsx)(Js,{component:`section`,className:`operations-panel`,"aria-labelledby":`setup-required-title`,withBorder:!0,children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{className:`eyebrow`,size:`xs`,children:`Runtime gate`}),(0,B.jsx)(zm,{id:`setup-required-title`,order:2,children:`Setup required`})]}),(0,B.jsx)(td,{color:`yellow`,variant:`filled`,children:`No Admin Account`})]}),(0,B.jsx)(Z,{c:`dimmed`,children:`Run CLI bootstrap from the runtime host, then refresh this page. The browser setup page does not create admin accounts.`}),(0,B.jsx)(hd,{block:!0,children:`1mcp admin bootstrap --username operator --password 'use-a-long-random-password'`})]})})}function w_({loading:e,onLogin:t}){let[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(``);return(0,B.jsx)(Js,{component:`section`,className:`login-panel`,"aria-labelledby":`login-title`,withBorder:!0,children:(0,B.jsx)(`form`,{onSubmit:r=>{r.preventDefault(),e||t?.({username:n,password:i})},children:(0,B.jsxs)($,{gap:`sm`,children:[(0,B.jsxs)(X,{justify:`space-between`,align:`flex-start`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(Z,{className:`eyebrow`,size:`xs`,children:`Admin Session`}),(0,B.jsx)(zm,{id:`login-title`,order:2,children:`Operator login`})]}),(0,B.jsx)(td,{variant:`light`,children:e?`Checking session`:`Login required`})]}),(0,B.jsx)(Mm,{label:`Username`,autoComplete:`username`,disabled:e,value:n,onChange:e=>r(e.currentTarget.value),required:!0}),(0,B.jsx)(bp,{label:`Password`,autoComplete:`current-password`,disabled:e,value:i,onChange:e=>a(e.currentTarget.value),required:!0}),(0,B.jsx)(Q,{type:`submit`,loading:e,disabled:e,children:e?`Checking`:`Log in`})]})})})}function T_({state:e}){let t=e.banner??(e.error?{kind:`error`,message:e.error}:null);return t?(0,B.jsx)(Ml,{color:t.kind===`error`?`red`:`teal`,role:t.kind===`error`?`alert`:`status`,children:t.message}):null}var E_=(0,y.createContext)(null);function D_({children:e}){let[t,n]=(0,y.useState)(null),r=(0,y.useRef)(null),i=(0,y.useRef)([]),a=(0,y.useRef)(new WeakSet),o=(0,y.useRef)(!1),s=(0,y.useRef)(null),c=(0,y.useRef)(null),l=(0,y.useCallback)(e=>new Promise(t=>{let a={...e,resolve:t};if(r.current){i.current.push(a);return}c.current=document.activeElement instanceof HTMLElement?document.activeElement:null,r.current=a,(0,wo.flushSync)(()=>n(a))}),[]),u=(0,y.useCallback)(e=>{let t=r.current;if(!t||o.current||a.current.has(t))return;o.current=!0,a.current.add(t),t.resolve(e);let l=i.current.shift()??null;r.current=l,(0,wo.flushSync)(()=>n(l)),window.setTimeout(()=>{o.current=!1,l?s.current?.focus():c.current?.focus()},0)},[]),d=(0,y.useMemo)(()=>l,[l]);return(0,y.useEffect)(()=>{t&&s.current?.focus()},[t]),(0,B.jsxs)(E_.Provider,{value:d,children:[e,t?(0,B.jsx)(`div`,{className:`confirmation-overlay`,role:`presentation`,children:(0,B.jsx)(vc,{active:!0,children:(0,B.jsx)(Js,{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(),u(!1))},children:(0,B.jsxs)($,{gap:`md`,children:[(0,B.jsx)(zm,{id:`admin-confirmation-title`,order:3,children:t.title}),(0,B.jsx)(Z,{id:`admin-confirmation-message`,children:t.message}),t.details?.length?(0,B.jsx)(Kd,{spacing:`xs`,size:`sm`,children:t.details.map(e=>(0,B.jsxs)(Kd.Item,{children:[(0,B.jsxs)(Z,{span:!0,fw:700,children:[e.label,`:`,` `]}),(0,B.jsx)(Z,{span:!0,children:e.value})]},`${e.label}:${e.value}`))}):null,(0,B.jsxs)(X,{justify:`flex-end`,children:[(0,B.jsx)(Q,{ref:s,variant:`default`,onClick:()=>u(!1),children:t.cancelLabel??`Cancel`}),(0,B.jsx)(Q,{color:t.tone===`danger`?`red`:void 0,onClick:()=>u(!0),children:t.confirmLabel??`Confirm`})]})]})})})}):null]})}function O_(){let e=(0,y.useContext)(E_);if(!e)throw Error(`useConfirmationDialog must be used within ConfirmationDialogProvider`);return e}function k_(){return{view:`loading`,session:null,status:null,configuredServers:[],serverMutations:{},banner:null,error:null,lastUpdatedAt:null}}function A_(e,t){switch(t.type){case`sessionLoaded`:return{...e,view:`console`,session:t.session,banner:null,error:null};case`sessionUnauthenticated`:return{...k_(),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{...k_(),view:`login`};case`mutationStarted`:return j_(e,t.serverId,{state:`busy`,action:t.action});case`mutationSucceeded`:return j_(e,t.serverId,{state:`succeeded`,action:t.action,message:`Server ${t.action} completed.`});case`mutationFailed`:return j_(e,t.serverId,{state:`failed`,action:t.action,message:t.message});case`clearBanner`:return{...e,banner:null,error:null}}}function j_(e,t,n){return{...e,serverMutations:{...e.serverMutations,[t]:n},banner:n.state===`failed`?{kind:`error`,message:n.message??``}:e.banner}}var M_=5e3,N_=6e4;function P_(e){return e===`visible`?M_:N_}function F_(e){return e.view===`console`&&!!e.session?.csrfToken}var I_=5e3,L_=512*1024,R_={connection:`idle`,sources:[],selectedSourceId:null,entries:[],unread:{},cursors:{},selectionLoading:!1,selectionError:null};function z_(e){let[t,n]=(0,y.useState)(R_),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?K_(e.entries.filter(e=>e.sourceId===n)):[],unread:G_(e,n),cursors:H_(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:K_([...n,...r]),selectionLoading:!1,selectionError:null}})}catch(e){if(o.current!==r)return;if(e instanceof Vm&&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(R_);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,V_(e)]),n(t=>B_(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=>U_(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=>U_(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 B_(e,t){let n=e.sources.some(e=>e.id===t.sourceId)?e.sources:[...e.sources,V_(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:K_([...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 V_(e){return{id:e.sourceId,canonicalName:e.canonicalName,displayName:e.displayName,kind:e.sourceKind,capture:`managed`,lifecycle:`active`}}function H_(e){let t={};for(let n of e)t[n.sourceId]=n.sequence;return t}function U_(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:W_(e.unread,r),cursors:W_(e.cursors,r),selectionLoading:i&&n!==null,selectionError:i?null:e.selectionError}}function W_(e,t){return Object.fromEntries(Object.entries(e).filter(([e])=>t.has(e)))}function G_(e,t){let n={};for(let r of e.entries)r.sourceId!==t&&(n[r.sourceId]=(n[r.sourceId]??0)+1);return n}function K_(e){let t=0,n=[];for(let r=e.length-1;r>=0&&n.length<I_;r--){let i=e[r];if(t+=i.content.length,t>L_&&n.length>0)break;n.push(i)}return n.reverse()}var q_={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 J_(e){if(e instanceof Vm)return e.failure.message;throw e}function Y_({api:e,documentRef:t=document,windowRef:n=window,nowLabel:r}){return(0,B.jsx)(D_,{children:(0,B.jsx)(X_,{api:e,documentRef:t,windowRef:n,nowLabel:r})})}function X_({api:e,documentRef:t,windowRef:n,nowLabel:r}){return(0,B.jsx)(v_,{session:Z_({api:e,documentRef:t,windowRef:n,nowLabel:r,confirm:O_()})})}function Z_({api:e,documentRef:t,windowRef:n,nowLabel:r,confirm:i}){let[a,o]=(0,y.useState)(k_),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(()=>$_(n.location?.pathname??`/admin`)),[d,f]=(0,y.useState)(null),[p]=(0,y.useState)(()=>{let e=tv(n.location?.search??``);return e&&n.history?.replaceState(null,``,`/admin/oauth`),e}),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)([]),[v,b]=(0,y.useState)([]),[x,S]=(0,y.useState)(``),[C,w]=(0,y.useState)(!1),T=(0,y.useRef)(a),E=(0,y.useRef)(null),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=A_(T.current,e);T.current=t,o(t)},[]);(0,y.useEffect)(()=>{T.current=a},[a]);let P=(0,y.useCallback)(()=>{E.current!==null&&(n.clearTimeout(E.current),E.current=null)},[n]),F=(0,y.useCallback)(()=>{j.current+=1,A.current=!1,f(null),h(null)},[]),ee=(0,y.useCallback)(e=>{P(),F(),N({type:`sessionUnauthenticated`,adminStatus:e})},[P,N,F]),I=(0,y.useCallback)(e=>{let t=e instanceof Vm?e.failure:null;return t?.kind===`unauthenticated`?(ee(t.adminStatus),!0):!1},[ee]),L=(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]),te=(0,y.useCallback)(e=>{u($_(e))},[]),ne=Mg({api:e,session:a.session,browser:L,onUnauthenticated:ee,onApplied:()=>D.current?.(),onPathCommitted:te}),re=z_({api:e,active:l===`logs`,authenticated:!!a.session,onUnauthenticated:()=>ee(`loginRequired`)}),ie=(0,y.useCallback)(e=>T.current.session?.csrfToken===e,[]),ae=(0,y.useCallback)(async()=>{if(T.current.session){w(!0);try{let t=await e.listPresets();_(t.presets),b(t.targets??[]),S(t.revision)}finally{w(!1)}}},[e]);(0,y.useEffect)(()=>{l===`presets`&&a.session&&ae()},[ae,l,a.session]);let R=(0,y.useCallback)(async(t,n)=>{let r=T.current.session?.csrfToken;if(!r)throw Error(`admin_session_required`);return e.previewPreset({draft:t,sourceName:n,csrfToken:r})},[e]),oe=(0,y.useCallback)(async t=>{if(O.current)return!1;O.current=!0;try{let n=T.current.session?.csrfToken;return!n||!await i({title:`${Q_(t.action)} ${t.preview.draft.name}?`,message:`The preview must still match the current preset store when this change is saved.`,confirmLabel:`${Q_(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 ae(),!0)}finally{O.current=!1}},[e,i,ae]),se=(0,y.useCallback)(async t=>{if(!k.current){k.current=!0;try{let n=T.current.session?.csrfToken;if(!n)return;let r=await e.previewPresetDelete({name:t,revision:x,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:x,previewFingerprint:r.previewFingerprint,csrfToken:n}),await ae()}finally{k.current=!1}}},[e,i,ae,x]),ce=(0,y.useCallback)(async e=>{let t=ev(e);await ne.close(t)&&u(e)},[ne]),le=(0,y.useCallback)(async(t,n)=>{let r=n??T.current.session;if(!r)return;let i=r.csrfToken;try{let[t,n]=await Promise.all([e.getStatus(),e.listConfiguredServers()]);if(!ie(i))return;N({type:`refreshSucceeded`,status:t,configuredServers:n,updatedAt:M()})}catch(e){if(!ie(i))return;I(e)||N({type:`refreshFailed`,message:`${t}${J_(e)}`})}},[e,N,M,I,ie]);D.current=()=>le(``);let ue=(0,y.useCallback)(()=>{P(),F_(T.current)&&(E.current=n.setTimeout(()=>{le(``).finally(ue)},P_(t.visibilityState)))},[P,t,le,n]),de=(0,y.useCallback)(async()=>{try{let t=await e.getSession();N({type:`sessionLoaded`,session:t}),await le(`Session loaded, but refresh failed: `,t)}catch(e){I(e)||N({type:`refreshFailed`,message:`Session check failed: ${J_(e)}`})}finally{ue()}},[e,N,I,le,ue]),fe=(0,y.useCallback)(async t=>{if(!s){c(!0);try{let n=await e.login(t);N({type:`sessionLoaded`,session:n}),await le(`Login succeeded, but refresh failed: `,n)}catch(e){N({type:`loginFailed`,message:`Login failed: ${J_(e)}`})}finally{c(!1),ue()}}},[e,N,s,le,ue]),pe=(0,y.useCallback)(async(t,n)=>{let r=T.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}),!ie(i))return;N({type:`mutationSucceeded`,serverId:t,action:n}),await le(``)}catch(e){if(!ie(i))return;I(e)||N({type:`mutationFailed`,serverId:t,action:n,message:`Server ${n} failed: ${J_(e)}`})}},[e,N,I,ie,le]),me=(0,y.useCallback)(async(t,r)=>{if(A.current)return;let i=T.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(!ie(o))return;h({kind:`success`,message:`${r===`authorize`?`Authorization`:`Authorization restart`} started. Opening the provider.`}),n.location?.assign(i.redirectUrl)}catch(e){if(!ie(o))return;I(e)||h({kind:`error`,message:J_(e)})}finally{j.current===a&&(A.current=!1,ie(o)&&f(null))}},[e,I,ie,n]),he=(0,y.useCallback)(async()=>{let t=T.current.session?.csrfToken;try{t&&await e.logout(t)}finally{P(),F(),N({type:`logoutSucceeded`})}},[e,P,N,F]),ge=(0,y.useCallback)(async(e,t)=>{if(!navigator.clipboard?.writeText)throw Error(`clipboard_unavailable`);await navigator.clipboard.writeText(t)},[]);return(0,y.useEffect)(()=>(de(),P),[P,de]),(0,y.useEffect)(()=>{let e=()=>ue();return t.addEventListener?.(`visibilitychange`,e),()=>t.removeEventListener?.(`visibilitychange`,e)},[t,ue]),{state:a,loginBusy:s,login:fe,logout:he,refresh:()=>le(`Manual refresh failed: `),navigation:{route:l,navigate:ce},configuredServers:{edit:ne,mutate:pe,copy:ge},oauth:{busy:d,callbackFeedback:p,operationFeedback:m,operate:me},logs:re,presets:{items:g,targets:v,revision:x,busy:C,load:ae,preview:R,save:oe,delete:se}}}function Q_(e){return e===`create`?`Create`:e===`duplicate`?`Duplicate`:`Update`}function $_(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/logs`)?`logs`:e.startsWith(`/admin/about`)?`about`:`dashboard`}function ev(e){return e===`dashboard`?`/admin`:`/admin/${e}`}function tv(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(q_,n)?q_[n]:`OAuth authorization did not complete.`}:null}var nv=kr({primaryColor:`conduit`,defaultRadius:`sm`,fontFamily:`Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,headings:{fontFamily:`Inter, 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`]}}),rv=document.querySelector(`#admin-root`);if(!rv)throw Error(`Admin Console root element was not found`);(0,Bm.createRoot)(rv).render((0,B.jsx)(lr,{theme:nv,children:(0,B.jsx)(Y_,{api:Um()})}));