@samanhappy/mcphub 1.2.1 → 1.2.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 (125) hide show
  1. package/dist/constants/oauthServerDefaults.js +2 -0
  2. package/dist/constants/oauthServerDefaults.js.map +1 -1
  3. package/dist/controllers/bearerKeyController.js +50 -2
  4. package/dist/controllers/bearerKeyController.js.map +1 -1
  5. package/dist/controllers/credentialBindingController.js +30 -1
  6. package/dist/controllers/credentialBindingController.js.map +1 -1
  7. package/dist/controllers/oauthApprovalController.js +63 -0
  8. package/dist/controllers/oauthApprovalController.js.map +1 -0
  9. package/dist/controllers/oauthServerController.js +55 -20
  10. package/dist/controllers/oauthServerController.js.map +1 -1
  11. package/dist/controllers/serverController.js +19 -1
  12. package/dist/controllers/serverController.js.map +1 -1
  13. package/dist/dao/DaoFactory.js +7 -0
  14. package/dist/dao/DaoFactory.js.map +1 -1
  15. package/dist/dao/DatabaseDaoFactory.js +4 -0
  16. package/dist/dao/DatabaseDaoFactory.js.map +1 -1
  17. package/dist/dao/OAuthApprovalDao.js +52 -0
  18. package/dist/dao/OAuthApprovalDao.js.map +1 -0
  19. package/dist/dao/OAuthApprovalDaoDbImpl.js +26 -0
  20. package/dist/dao/OAuthApprovalDaoDbImpl.js.map +1 -0
  21. package/dist/dao/OAuthTokenDaoDbImpl.js +2 -0
  22. package/dist/dao/OAuthTokenDaoDbImpl.js.map +1 -1
  23. package/dist/dao/index.js +1 -0
  24. package/dist/dao/index.js.map +1 -1
  25. package/dist/db/entities/OAuthApproval.js +58 -0
  26. package/dist/db/entities/OAuthApproval.js.map +1 -0
  27. package/dist/db/entities/OAuthToken.js +4 -0
  28. package/dist/db/entities/OAuthToken.js.map +1 -1
  29. package/dist/db/entities/index.js +3 -1
  30. package/dist/db/entities/index.js.map +1 -1
  31. package/dist/middlewares/auth.js +2 -2
  32. package/dist/middlewares/auth.js.map +1 -1
  33. package/dist/middlewares/userContext.js +26 -5
  34. package/dist/middlewares/userContext.js.map +1 -1
  35. package/dist/models/OAuth.js +19 -3
  36. package/dist/models/OAuth.js.map +1 -1
  37. package/dist/routes/index.js +6 -1
  38. package/dist/routes/index.js.map +1 -1
  39. package/dist/services/credentialBindingService.js +39 -3
  40. package/dist/services/credentialBindingService.js.map +1 -1
  41. package/dist/services/forwardAuthService.js +27 -11
  42. package/dist/services/forwardAuthService.js.map +1 -1
  43. package/dist/services/mcpService.js +131 -5
  44. package/dist/services/mcpService.js.map +1 -1
  45. package/dist/services/oauthApprovalService.js +74 -0
  46. package/dist/services/oauthApprovalService.js.map +1 -0
  47. package/dist/services/oauthClientRegistration.js +9 -4
  48. package/dist/services/oauthClientRegistration.js.map +1 -1
  49. package/dist/services/oauthServerService.js +24 -7
  50. package/dist/services/oauthServerService.js.map +1 -1
  51. package/dist/services/personalOAuthService.js +3 -1
  52. package/dist/services/personalOAuthService.js.map +1 -1
  53. package/dist/services/sseService.js +23 -11
  54. package/dist/services/sseService.js.map +1 -1
  55. package/dist/services/userService.js +2 -0
  56. package/dist/services/userService.js.map +1 -1
  57. package/dist/services/vectorSearchService.js +139 -73
  58. package/dist/services/vectorSearchService.js.map +1 -1
  59. package/dist/utils/bearerAuth.js +23 -0
  60. package/dist/utils/bearerAuth.js.map +1 -1
  61. package/dist/utils/migration.js +1 -0
  62. package/dist/utils/migration.js.map +1 -1
  63. package/dist/utils/passthroughHeaders.js +4 -3
  64. package/dist/utils/passthroughHeaders.js.map +1 -1
  65. package/dist/utils/resourceTemplateMatch.js +229 -0
  66. package/dist/utils/resourceTemplateMatch.js.map +1 -0
  67. package/dist/utils/upstreamError.js +10 -1
  68. package/dist/utils/upstreamError.js.map +1 -1
  69. package/frontend/dist/assets/{ActivityPage-DZFLY-Um.js → ActivityPage-DhNQ7kmd.js} +2 -2
  70. package/frontend/dist/assets/{ActivityPage-DZFLY-Um.js.map → ActivityPage-DhNQ7kmd.js.map} +1 -1
  71. package/frontend/dist/assets/CredentialsPage-DysT6EhJ.js +2 -0
  72. package/frontend/dist/assets/CredentialsPage-DysT6EhJ.js.map +1 -0
  73. package/frontend/dist/assets/{Dashboard-BRU2Gk9z.js → Dashboard-CIkS2wIr.js} +2 -2
  74. package/frontend/dist/assets/{Dashboard-BRU2Gk9z.js.map → Dashboard-CIkS2wIr.js.map} +1 -1
  75. package/frontend/dist/assets/{EndpointCopy-3f1Uw-gu.js → EndpointCopy-zuPM6wTV.js} +2 -2
  76. package/frontend/dist/assets/{EndpointCopy-3f1Uw-gu.js.map → EndpointCopy-zuPM6wTV.js.map} +1 -1
  77. package/frontend/dist/assets/{GroupsPage-D_E7QL_o.js → GroupsPage-DXE8on9r.js} +2 -2
  78. package/frontend/dist/assets/{GroupsPage-D_E7QL_o.js.map → GroupsPage-DXE8on9r.js.map} +1 -1
  79. package/frontend/dist/assets/{LoginPage-Bsfdp4yD.js → LoginPage-DP5A-fpr.js} +2 -2
  80. package/frontend/dist/assets/{LoginPage-Bsfdp4yD.js.map → LoginPage-DP5A-fpr.js.map} +1 -1
  81. package/frontend/dist/assets/{LogsPage-CCHmA5cZ.js → LogsPage-kFZF0A3x.js} +2 -2
  82. package/frontend/dist/assets/{LogsPage-CCHmA5cZ.js.map → LogsPage-kFZF0A3x.js.map} +1 -1
  83. package/frontend/dist/assets/{MarketPage-DrQQT14y.js → MarketPage-DaodfOD8.js} +2 -2
  84. package/frontend/dist/assets/{MarketPage-DrQQT14y.js.map → MarketPage-DaodfOD8.js.map} +1 -1
  85. package/frontend/dist/assets/OAuthApprovalsPage-BbkfaOs3.js +2 -0
  86. package/frontend/dist/assets/OAuthApprovalsPage-BbkfaOs3.js.map +1 -0
  87. package/frontend/dist/assets/{OAuthConsentPage-934ieVvL.js → OAuthConsentPage-BX5MIl4y.js} +2 -2
  88. package/frontend/dist/assets/{OAuthConsentPage-934ieVvL.js.map → OAuthConsentPage-BX5MIl4y.js.map} +1 -1
  89. package/frontend/dist/assets/{PromptsPage-QAI8kF63.js → PromptsPage-DEIMpdNn.js} +2 -2
  90. package/frontend/dist/assets/{PromptsPage-QAI8kF63.js.map → PromptsPage-DEIMpdNn.js.map} +1 -1
  91. package/frontend/dist/assets/{ResourcesPage-TclV1l2q.js → ResourcesPage-CjkaRPQd.js} +2 -2
  92. package/frontend/dist/assets/{ResourcesPage-TclV1l2q.js.map → ResourcesPage-CjkaRPQd.js.map} +1 -1
  93. package/frontend/dist/assets/{ServersPage-Bc0tS2uo.js → ServersPage-LpIlO6by.js} +4 -4
  94. package/frontend/dist/assets/{ServersPage-Bc0tS2uo.js.map → ServersPage-LpIlO6by.js.map} +1 -1
  95. package/frontend/dist/assets/SettingsPage-fL5-63Ve.js +14 -0
  96. package/frontend/dist/assets/SettingsPage-fL5-63Ve.js.map +1 -0
  97. package/frontend/dist/assets/{StatusDot-C_UTW6B7.js → StatusDot-DyEnhqJV.js} +2 -2
  98. package/frontend/dist/assets/{StatusDot-C_UTW6B7.js.map → StatusDot-DyEnhqJV.js.map} +1 -1
  99. package/frontend/dist/assets/{ToggleGroup-CUUsTJDm.js → ToggleGroup-CNkUGOeP.js} +2 -2
  100. package/frontend/dist/assets/{ToggleGroup-CUUsTJDm.js.map → ToggleGroup-CNkUGOeP.js.map} +1 -1
  101. package/frontend/dist/assets/{UsersPage-MpTb3xJ-.js → UsersPage-DeGScomQ.js} +2 -2
  102. package/frontend/dist/assets/{UsersPage-MpTb3xJ-.js.map → UsersPage-DeGScomQ.js.map} +1 -1
  103. package/frontend/dist/assets/{clipboard-DVbqnePj.js → clipboard-PC3TyCTa.js} +2 -2
  104. package/frontend/dist/assets/{clipboard-DVbqnePj.js.map → clipboard-PC3TyCTa.js.map} +1 -1
  105. package/frontend/dist/assets/{costRevision-DXEYAFUy.js → costRevision-DkLRM8DI.js} +2 -2
  106. package/frontend/dist/assets/{costRevision-DXEYAFUy.js.map → costRevision-DkLRM8DI.js.map} +1 -1
  107. package/frontend/dist/assets/index-8GliUQTA.js +3 -0
  108. package/frontend/dist/assets/index-8GliUQTA.js.map +1 -0
  109. package/frontend/dist/assets/index-CyD60EHI.css +1 -0
  110. package/frontend/dist/assets/{resourceService-DPjgql8Z.js → resourceService-BN-FT_uq.js} +2 -2
  111. package/frontend/dist/assets/{resourceService-DPjgql8Z.js.map → resourceService-BN-FT_uq.js.map} +1 -1
  112. package/frontend/dist/assets/{useCostData-CDNXYHZf.js → useCostData-DNk0WL-a.js} +2 -2
  113. package/frontend/dist/assets/{useCostData-CDNXYHZf.js.map → useCostData-DNk0WL-a.js.map} +1 -1
  114. package/frontend/dist/assets/{variableDetection-DGr_LErx.js → variableDetection-DQg-vRNn.js} +2 -2
  115. package/frontend/dist/assets/{variableDetection-DGr_LErx.js.map → variableDetection-DQg-vRNn.js.map} +1 -1
  116. package/frontend/dist/index.html +2 -2
  117. package/mcp_settings.json +2 -0
  118. package/package.json +1 -1
  119. package/frontend/dist/assets/CredentialsPage-BqEsnkMx.js +0 -2
  120. package/frontend/dist/assets/CredentialsPage-BqEsnkMx.js.map +0 -1
  121. package/frontend/dist/assets/SettingsPage-Dfhl51E1.js +0 -14
  122. package/frontend/dist/assets/SettingsPage-Dfhl51E1.js.map +0 -1
  123. package/frontend/dist/assets/index-BNm-68Gn.js +0 -3
  124. package/frontend/dist/assets/index-BNm-68Gn.js.map +0 -1
  125. package/frontend/dist/assets/index-C33aH9Y7.css +0 -1
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-orange-900:oklch(40.8% .123 38.172);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-yellow-950:oklch(28.6% .066 53.813);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing)*-.5)}.-right-1{right:calc(var(--spacing)*-1)}.right-0{right:calc(var(--spacing)*0)}.right-1\.5{right:calc(var(--spacing)*1.5)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.-bottom-0\.5{bottom:calc(var(--spacing)*-.5)}.left-0{left:calc(var(--spacing)*0)}.-z-10{z-index:-10}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[100\]{z-index:100}.m-0{margin:calc(var(--spacing)*0)}.-mx-1\.5{margin-inline:calc(var(--spacing)*-1.5)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.-my-1\.5{margin-block:calc(var(--spacing)*-1.5)}.my-4{margin-block:calc(var(--spacing)*4)}.my-6{margin-block:calc(var(--spacing)*6)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-1\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-1\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-6{margin-left:calc(var(--spacing)*6)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.\!h-7{height:calc(var(--spacing)*7)!important}.\!h-\[30px\]{height:30px!important}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-20{height:calc(var(--spacing)*20)}.h-64{height:calc(var(--spacing)*64)}.h-96{height:calc(var(--spacing)*96)}.h-\[6px\]{height:6px}.h-\[18px\]{height:18px}.h-\[26px\]{height:26px}.h-\[38px\]{height:38px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:calc(var(--spacing)*40)}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[60vh\]{max-height:60vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-120px\)\]{max-height:calc(90vh - 120px)}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.max-h-screen{max-height:100vh}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-\[30px\]{min-height:30px}.min-h-\[38px\]{min-height:38px}.min-h-\[240px\]{min-height:240px}.min-h-screen{min-height:100vh}.\!w-\[30px\]{width:30px!important}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-56{width:calc(var(--spacing)*56)}.w-\[6px\]{width:6px}.w-\[30px\]{width:30px}.w-\[232px\]{width:232px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[520px\]{max-width:520px}.max-w-\[1680px\]{max-width:1680px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-48{min-width:calc(var(--spacing)*48)}.min-w-\[30px\]{min-width:30px}.min-w-\[100px\]{min-width:100px}.min-w-\[140px\]{min-width:140px}.min-w-\[200px\]{min-width:200px}.min-w-full{min-width:100%}.min-w-max{min-width:-moz-max-content;min-width:max-content}.flex-1{flex:1}.flex-\[2\]{flex:2}.flex-\[4\]{flex:4}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.basis-48{flex-basis:calc(var(--spacing)*48)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-0{rotate:none}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-y{resize:vertical}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-3\.5{gap:calc(var(--spacing)*3.5)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-1\.5{-moz-column-gap:calc(var(--spacing)*1.5);column-gap:calc(var(--spacing)*1.5)}.gap-x-2{-moz-column-gap:calc(var(--spacing)*2);column-gap:calc(var(--spacing)*2)}.gap-x-3{-moz-column-gap:calc(var(--spacing)*3);column-gap:calc(var(--spacing)*3)}.gap-x-4{-moz-column-gap:calc(var(--spacing)*4);column-gap:calc(var(--spacing)*4)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:calc(var(--spacing)*1)}.gap-y-2{row-gap:calc(var(--spacing)*2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-\[var\(--hub-line-2\)\]>:not(:last-child)){border-color:var(--hub-line-2)}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-\[9px\]{border-top-left-radius:9px;border-top-right-radius:9px}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-md{border-bottom-right-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[oklch\(0\.88_0\.04_85\)\]{border-color:#e4d6ba}.border-\[oklch\(0\.88_0\.04_145\)\]{border-color:#c8dfc8}.border-\[var\(--hub-line\)\]{border-color:var(--hub-line)}.border-\[var\(--hub-line-2\)\]{border-color:var(--hub-line-2)}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-300{border-color:var(--color-amber-300)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-300{border-color:var(--color-blue-300)}.border-blue-500{border-color:var(--color-blue-500)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-500{border-color:var(--color-gray-500)}.border-green-200{border-color:var(--color-green-200)}.border-green-400{border-color:var(--color-green-400)}.border-green-500{border-color:var(--color-green-500)}.border-orange-200{border-color:var(--color-orange-200)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-red-400{border-color:var(--color-red-400)}.border-red-500{border-color:var(--color-red-500)}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-yellow-500{border-color:var(--color-yellow-500)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-red-600{border-left-color:var(--color-red-600)}.border-l-yellow-500{border-left-color:var(--color-yellow-500)}.bg-\[\#13C3FF\]{background-color:#13c3ff}.bg-\[oklch\(0\.97_0\.02_85\)\]{background-color:#fbf4e6}.bg-\[oklch\(0\.97_0\.03_145\)\]{background-color:#e9fbe9}.bg-\[var\(--hub-bg-2\)\]{background-color:var(--hub-bg-2)}.bg-\[var\(--hub-surface\)\]{background-color:var(--hub-surface)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-400\/80{background-color:#54a2ffcc}@supports (color:color-mix(in lab,red,red)){.bg-blue-400\/80{background-color:color-mix(in oklab,var(--color-blue-400)80%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-400\/80{background-color:#99a1afcc}@supports (color:color-mix(in lab,red,red)){.bg-gray-400\/80{background-color:color-mix(in oklab,var(--color-gray-400)80%,transparent)}}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-400\/80{background-color:#05df72cc}@supports (color:color-mix(in lab,red,red)){.bg-green-400\/80{background-color:color-mix(in oklab,var(--color-green-400)80%,transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-400\/80{background-color:#ff8b1acc}@supports (color:color-mix(in lab,red,red)){.bg-orange-400\/80{background-color:color-mix(in oklab,var(--color-orange-400)80%,transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-400\/80{background-color:#c07effcc}@supports (color:color-mix(in lab,red,red)){.bg-purple-400\/80{background-color:color-mix(in oklab,var(--color-purple-400)80%,transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-400\/80{background-color:#ff6568cc}@supports (color:color-mix(in lab,red,red)){.bg-red-400\/80{background-color:color-mix(in oklab,var(--color-red-400)80%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.bg-white\/60{background-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-400\/80{background-color:#fac800cc}@supports (color:color-mix(in lab,red,red)){.bg-yellow-400\/80{background-color:color-mix(in oklab,var(--color-yellow-400)80%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-gray-100{--tw-gradient-from:var(--color-gray-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-gray-200{--tw-gradient-to:var(--color-gray-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.object-cover{-o-object-fit:cover;object-fit:cover}.\!p-0{padding:calc(var(--spacing)*0)!important}.p-0{padding:calc(var(--spacing)*0)}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-3\.5{padding:calc(var(--spacing)*3.5)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-10{padding:calc(var(--spacing)*10)}.p-12{padding:calc(var(--spacing)*12)}.\!px-2{padding-inline:calc(var(--spacing)*2)!important}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-3\.5{padding-inline:calc(var(--spacing)*3.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-12{padding-block:calc(var(--spacing)*12)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-7{padding-right:calc(var(--spacing)*7)}.pr-8{padding-right:calc(var(--spacing)*8)}.pr-9{padding-right:calc(var(--spacing)*9)}.pb-1\.5{padding-bottom:calc(var(--spacing)*1.5)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.pb-16{padding-bottom:calc(var(--spacing)*16)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-5{padding-left:calc(var(--spacing)*5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[oklch\(0\.42_0\.12_145\)\]{color:#135d1d}.text-\[oklch\(0\.45_0\.07_85\)\]{color:#675223}.text-\[var\(--hub-err\)\]{color:var(--hub-err)}.text-\[var\(--hub-ink\)\]{color:var(--hub-ink)}.text-\[var\(--hub-ink-2\)\]{color:var(--hub-ink-2)}.text-\[var\(--hub-ink-3\)\]{color:var(--hub-ink-3)}.text-\[var\(--hub-ok\)\]{color:var(--hub-ok)}.text-amber-400{color:var(--color-amber-400)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-blue-900{color:var(--color-blue-900)}.text-gray-100{color:var(--color-gray-100)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-200{color:var(--color-green-200)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-orange-700{color:var(--color-orange-700)}.text-orange-800{color:var(--color-orange-800)}.text-purple-800{color:var(--color-purple-800)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-600{color:var(--color-yellow-600)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline-offset-4{text-underline-offset:4px}.accent-\[var\(--hub-accent\)\]{accent-color:var(--hub-accent)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\[var\(--hub-line\)\]{--tw-ring-color:var(--hub-line)}.ring-blue-500{--tw-ring-color:var(--color-blue-500)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media(hover:hover){.group-hover\:-translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:text-\[var\(--hub-ink-2\)\]:is(:where(.group):hover *){color:var(--hub-ink-2)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.file\:mr-4::file-selector-button{margin-right:calc(var(--spacing)*4)}.file\:rounded-md::file-selector-button{border-radius:var(--radius-md)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-blue-50::file-selector-button{background-color:var(--color-blue-50)}.file\:px-4::file-selector-button{padding-inline:calc(var(--spacing)*4)}.file\:py-2::file-selector-button{padding-block:calc(var(--spacing)*2)}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-semibold::file-selector-button{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.file\:text-blue-700::file-selector-button{color:var(--color-blue-700)}.placeholder\:text-\[var\(--hub-ink-3\)\]::-moz-placeholder{color:var(--hub-ink-3)}.placeholder\:text-\[var\(--hub-ink-3\)\]::placeholder{color:var(--hub-ink-3)}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}@media(hover:hover){.hover\:border-\[var\(--hub-ink-3\)\]:hover{border-color:var(--hub-ink-3)}.hover\:border-blue-400:hover{border-color:var(--color-blue-400)}.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:bg-\[\#00A5E5\]:hover{background-color:#00a5e5}.hover\:bg-\[var\(--hub-surface-hover\)\]:hover{background-color:var(--hub-surface-hover)}.hover\:bg-amber-200:hover{background-color:var(--color-amber-200)}.hover\:bg-blue-50:hover{background-color:var(--color-blue-50)}.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-blue-200:hover{background-color:var(--color-blue-200)}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-green-100:hover{background-color:var(--color-green-100)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-yellow-100:hover{background-color:var(--color-yellow-100)}.hover\:text-\[var\(--hub-ink\)\]:hover{color:var(--hub-ink)}.hover\:text-\[var\(--hub-ink-2\)\]:hover{color:var(--hub-ink-2)}.hover\:text-amber-700:hover{color:var(--color-amber-700)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:text-blue-900:hover{color:var(--color-blue-900)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-red-900:hover{color:var(--color-red-900)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:file\:bg-blue-100:hover::file-selector-button{background-color:var(--color-blue-100)}}.focus\:border-\[var\(--hub-ink-2\)\]:focus{border-color:var(--hub-ink-2)}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-transparent:focus{border-color:#0000}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-amber-500:focus{--tw-ring-color:var(--color-amber-500)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-green-500:focus{--tw-ring-color:var(--color-green-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-yellow-500:focus{--tw-ring-color:var(--color-yellow-500)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media(min-width:40rem){.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-\[1fr_1fr_auto\]{grid-template-columns:1fr 1fr auto}.sm\:flex-row{flex-direction:row}.sm\:justify-between{justify-content:space-between}.sm\:gap-3{gap:calc(var(--spacing)*3)}.sm\:p-6{padding:calc(var(--spacing)*6)}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:48rem){.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-9{grid-column:span 9/span 9}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media(min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:px-8{padding-inline:calc(var(--spacing)*8)}}@media(min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:px-10{padding-inline:calc(var(--spacing)*10)}}:where(.dark\:divide-gray-700:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-gray-700)}.dark\:border-amber-700:where(.dark,.dark *){border-color:var(--color-amber-700)}.dark\:border-amber-700\/60:where(.dark,.dark *){border-color:#b7500099}@supports (color:color-mix(in lab,red,red)){.dark\:border-amber-700\/60:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-amber-700)60%,transparent)}}.dark\:border-amber-900\/50:where(.dark,.dark *){border-color:#7b330680}@supports (color:color-mix(in lab,red,red)){.dark\:border-amber-900\/50:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-amber-900)50%,transparent)}}.dark\:border-blue-700\/60:where(.dark,.dark *){border-color:#1447e699}@supports (color:color-mix(in lab,red,red)){.dark\:border-blue-700\/60:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-blue-700)60%,transparent)}}.dark\:border-blue-800:where(.dark,.dark *){border-color:var(--color-blue-800)}.dark\:border-blue-900:where(.dark,.dark *){border-color:var(--color-blue-900)}.dark\:border-gray-600:where(.dark,.dark *){border-color:var(--color-gray-600)}.dark\:border-gray-700:where(.dark,.dark *){border-color:var(--color-gray-700)}.dark\:border-green-800:where(.dark,.dark *){border-color:var(--color-green-800)}.dark\:border-orange-700\/60:where(.dark,.dark *){border-color:#c53c0099}@supports (color:color-mix(in lab,red,red)){.dark\:border-orange-700\/60:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-orange-700)60%,transparent)}}.dark\:border-red-700\/60:where(.dark,.dark *){border-color:#bf000f99}@supports (color:color-mix(in lab,red,red)){.dark\:border-red-700\/60:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-red-700)60%,transparent)}}.dark\:border-red-800:where(.dark,.dark *){border-color:var(--color-red-800)}.dark\:border-red-900\/50:where(.dark,.dark *){border-color:#82181a80}@supports (color:color-mix(in lab,red,red)){.dark\:border-red-900\/50:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-red-900)50%,transparent)}}.dark\:border-yellow-700\/60:where(.dark,.dark *){border-color:#a3610099}@supports (color:color-mix(in lab,red,red)){.dark\:border-yellow-700\/60:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-yellow-700)60%,transparent)}}.dark\:border-yellow-800:where(.dark,.dark *){border-color:var(--color-yellow-800)}.dark\:bg-amber-900\/20:where(.dark,.dark *){background-color:#7b330633}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-900)20%,transparent)}}.dark\:bg-amber-900\/40:where(.dark,.dark *){background-color:#7b330666}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-900\/40:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-900)40%,transparent)}}.dark\:bg-amber-950:where(.dark,.dark *){background-color:var(--color-amber-950)}.dark\:bg-blue-900\/20:where(.dark,.dark *){background-color:#1c398e33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-900)20%,transparent)}}.dark\:bg-blue-900\/40:where(.dark,.dark *){background-color:#1c398e66}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/40:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-900)40%,transparent)}}.dark\:bg-blue-950:where(.dark,.dark *){background-color:var(--color-blue-950)}.dark\:bg-blue-950\/30:where(.dark,.dark *){background-color:#1624564d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-950\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-950)30%,transparent)}}.dark\:bg-gray-700:where(.dark,.dark *){background-color:var(--color-gray-700)}.dark\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-800\/60:where(.dark,.dark *){background-color:#1e293999}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-800\/60:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-gray-800)60%,transparent)}}.dark\:bg-gray-900:where(.dark,.dark *){background-color:var(--color-gray-900)}.dark\:bg-green-900:where(.dark,.dark *){background-color:var(--color-green-900)}.dark\:bg-green-900\/20:where(.dark,.dark *){background-color:#0d542b33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-green-900)20%,transparent)}}.dark\:bg-green-950:where(.dark,.dark *){background-color:var(--color-green-950)}.dark\:bg-orange-900\/20:where(.dark,.dark *){background-color:#7e2a0c33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-orange-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-orange-900)20%,transparent)}}.dark\:bg-purple-900\/40:where(.dark,.dark *){background-color:#59168b66}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-900\/40:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-purple-900)40%,transparent)}}.dark\:bg-red-900:where(.dark,.dark *){background-color:var(--color-red-900)}.dark\:bg-red-900\/20:where(.dark,.dark *){background-color:#82181a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-900)20%,transparent)}}.dark\:bg-red-950:where(.dark,.dark *){background-color:var(--color-red-950)}.dark\:bg-yellow-900\/20:where(.dark,.dark *){background-color:#733e0a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-yellow-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-yellow-900)20%,transparent)}}.dark\:bg-yellow-950:where(.dark,.dark *){background-color:var(--color-yellow-950)}.dark\:from-gray-800:where(.dark,.dark *){--tw-gradient-from:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-gray-700:where(.dark,.dark *){--tw-gradient-to:var(--color-gray-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:text-amber-200:where(.dark,.dark *){color:var(--color-amber-200)}.dark\:text-amber-300:where(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:where(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-amber-500:where(.dark,.dark *){color:var(--color-amber-500)}.dark\:text-blue-100:where(.dark,.dark *){color:var(--color-blue-100)}.dark\:text-blue-200:where(.dark,.dark *){color:var(--color-blue-200)}.dark\:text-blue-300:where(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-blue-400:where(.dark,.dark *){color:var(--color-blue-400)}.dark\:text-gray-100:where(.dark,.dark *){color:var(--color-gray-100)}.dark\:text-gray-300:where(.dark,.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:where(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-gray-500:where(.dark,.dark *){color:var(--color-gray-500)}.dark\:text-green-200:where(.dark,.dark *){color:var(--color-green-200)}.dark\:text-green-300:where(.dark,.dark *){color:var(--color-green-300)}.dark\:text-green-400:where(.dark,.dark *){color:var(--color-green-400)}.dark\:text-orange-300:where(.dark,.dark *){color:var(--color-orange-300)}.dark\:text-purple-300:where(.dark,.dark *){color:var(--color-purple-300)}.dark\:text-red-200:where(.dark,.dark *){color:var(--color-red-200)}.dark\:text-red-300:where(.dark,.dark *){color:var(--color-red-300)}.dark\:text-red-400:where(.dark,.dark *){color:var(--color-red-400)}.dark\:text-red-500:where(.dark,.dark *){color:var(--color-red-500)}.dark\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\:text-yellow-200:where(.dark,.dark *){color:var(--color-yellow-200)}.dark\:text-yellow-300:where(.dark,.dark *){color:var(--color-yellow-300)}.dark\:text-yellow-400:where(.dark,.dark *){color:var(--color-yellow-400)}@media(hover:hover){.dark\:hover\:bg-amber-900\/60:where(.dark,.dark *):hover{background-color:#7b330699}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-amber-900\/60:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-amber-900)60%,transparent)}}.dark\:hover\:bg-blue-900:where(.dark,.dark *):hover{background-color:var(--color-blue-900)}.dark\:hover\:bg-gray-100:where(.dark,.dark *):hover{background-color:var(--color-gray-100)}.dark\:hover\:bg-gray-600:where(.dark,.dark *):hover{background-color:var(--color-gray-600)}.dark\:hover\:bg-gray-700:where(.dark,.dark *):hover{background-color:var(--color-gray-700)}.dark\:hover\:bg-gray-800:where(.dark,.dark *):hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-green-900:where(.dark,.dark *):hover{background-color:var(--color-green-900)}.dark\:hover\:bg-red-900:where(.dark,.dark *):hover{background-color:var(--color-red-900)}.dark\:hover\:bg-yellow-900:where(.dark,.dark *):hover{background-color:var(--color-yellow-900)}.dark\:hover\:text-gray-200:where(.dark,.dark *):hover{color:var(--color-gray-200)}.dark\:hover\:text-gray-300:where(.dark,.dark *):hover{color:var(--color-gray-300)}.dark\:hover\:text-gray-400:where(.dark,.dark *):hover{color:var(--color-gray-400)}}.dark\:focus\:ring-amber-400:where(.dark,.dark *):focus{--tw-ring-color:var(--color-amber-400)}.dark\:focus\:ring-offset-gray-900:where(.dark,.dark *):focus{--tw-ring-offset-color:var(--color-gray-900)}}:root{color-scheme:light;--hub-bg:oklch(98.5% .002 250);--hub-bg-2:oklch(97.5% .002 250);--hub-surface:#fff;--hub-surface-hover:oklch(97% .003 250);--hub-switch-track-on:oklch(30% .004 250);--hub-ink:oklch(18% .01 250);--hub-ink-2:oklch(42% .01 250);--hub-ink-3:oklch(60% .01 250);--hub-line:oklch(92% .004 250);--hub-line-2:oklch(96% .003 250);--hub-accent:oklch(55% .15 250);--hub-accent-soft:oklch(95% .04 250);--hub-ok:oklch(66% .15 145);--hub-warn:oklch(78% .13 80);--hub-err:oklch(62% .18 25);--hub-mono:"Geist Mono","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}.dark{color-scheme:dark;--hub-bg:oklch(18% .005 250);--hub-bg-2:oklch(21% .005 250);--hub-surface:oklch(22% .005 250);--hub-surface-hover:oklch(25% .005 250);--hub-switch-track-on:oklch(86% .004 250);--hub-ink:oklch(97% .005 250);--hub-ink-2:oklch(78% .005 250);--hub-ink-3:oklch(55% .005 250);--hub-line:oklch(30% .005 250);--hub-line-2:oklch(26% .005 250);--hub-accent-soft:oklch(32% .06 250)}.hub-card{background:var(--hub-surface);border:1px solid var(--hub-line);border-radius:10px}.hub-card-pad{padding:16px}.hub-surface{background:var(--hub-surface)}.hub-bg-2{background:var(--hub-bg-2)}.hub-border{border:1px solid var(--hub-line)}.hub-border-b{border-bottom:1px solid var(--hub-line-2)}.hub-border-t,.hub-divider>*+*{border-top:1px solid var(--hub-line-2)}.hub-mono{font-family:var(--hub-mono);font-feature-settings:"ss01";letter-spacing:-.01em}.hub-num{font-variant-numeric:tabular-nums}.hub-h1{letter-spacing:-.018em;color:var(--hub-ink);margin:0;font-size:22px;font-weight:600}.hub-sub{color:var(--hub-ink-3);margin:4px 0 0;font-size:13px}.hub-sect{color:var(--hub-ink-3);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:500}.hub-card-title{color:var(--hub-ink);margin:0;font-size:13px;font-weight:500}.hub-status{color:var(--hub-ink-2);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.hub-status-label{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.hub-dot{background:var(--hub-ink-3);border-radius:50%;flex-shrink:0;width:6px;height:6px}.hub-status.ok{color:#005813;color:oklch(40% .13 145)}.hub-status.ok .hub-dot{background:var(--hub-ok);box-shadow:0 0 0 3px #4ea95426}.hub-status.warn{color:#704e00;color:oklch(45% .13 80)}.hub-status.warn .hub-dot{background:var(--hub-warn);box-shadow:0 0 0 3px #e3ad4b2e}.hub-status.err{color:#a20519}.hub-status.err .hub-dot{background:var(--hub-err);box-shadow:0 0 0 3px #de4e4b26}.hub-status.muted{color:var(--hub-ink-3)}.hub-status.muted .hub-dot{background:var(--hub-ink-3)}.dark .hub-status.ok{color:#80cd82}.dark .hub-status.warn{color:#edbb64}.dark .hub-status.err{color:#ff958d;color:oklch(78% .15 25)}.hub-tag{color:var(--hub-ink-2);background:var(--hub-bg-2);border:1px solid var(--hub-line);font-size:11px;font-family:var(--hub-mono);white-space:nowrap;text-overflow:ellipsis;border-radius:5px;align-items:center;max-width:100%;padding:1px 7px;display:inline-flex;overflow:hidden}.hub-tag.accent{color:var(--hub-accent);background:var(--hub-accent-soft);border-color:#0000}.hub-tag.muted{color:var(--hub-ink-3)}.hub-kbd{font-family:var(--hub-mono);border:1px solid var(--hub-line);color:var(--hub-ink-3);background:var(--hub-surface);border-radius:4px;padding:1px 5px;font-size:11px}.hub-row{border-top:1px solid var(--hub-line-2);align-items:center;gap:12px;padding:11px 14px;display:grid}.hub-row:first-child{border-top:0}.hub-row.head{color:var(--hub-ink-3);text-transform:uppercase;letter-spacing:.08em;background:var(--hub-bg-2);padding:9px 14px;font-size:11px}.hub-row.hover:hover{background:var(--hub-surface-hover)}.hub-btn{border:1px solid var(--hub-line);background:var(--hub-surface);height:30px;color:var(--hub-ink);border-radius:7px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.hub-btn:hover{background:var(--hub-surface-hover)}.hub-btn:disabled{opacity:.5;cursor:not-allowed}.hub-btn.primary{background:var(--hub-ink);color:var(--hub-bg);border-color:var(--hub-ink)}.hub-btn.primary:hover{background:#25292e}.dark .hub-btn.primary{color:#101214}.dark .hub-btn.primary:hover{background:#e2e5e8}.hub-btn.ghost{border-color:#0000}.hub-btn.ghost:hover{background:var(--hub-surface-hover);border-color:var(--hub-line)}.hub-btn.danger{color:var(--hub-err)}.hub-btn.danger:hover{background:#ffedeb;background:oklch(96% .04 25);border-color:#ffbab3;border-color:oklch(85% .1 25)}.dark .hub-btn.danger:hover{background:#4f1a18}.hub-btn.sm{height:26px;padding:0 9px;font-size:12px}.hub-icon-btn{width:30px;height:30px;color:var(--hub-ink-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;place-items:center;transition:background .15s,border-color .15s;display:inline-grid}.hub-icon-btn:hover{background:var(--hub-surface-hover);border-color:var(--hub-line)}.hub-icon-btn.sm{border-radius:6px;width:26px;height:26px}.hub-input{border:1px solid var(--hub-line);background:var(--hub-surface);height:32px;color:var(--hub-ink);border-radius:7px;outline:0;width:100%;padding:0 10px;font-size:13px}.hub-input:focus{border-color:var(--hub-ink-2)}.hub-input::-moz-placeholder{color:var(--hub-ink-3)}.hub-input::placeholder{color:var(--hub-ink-3)}.hub-input.mono{font-family:var(--hub-mono);font-size:12.5px}.hub-switch{--hub-switch-width:44px;--hub-switch-height:24px;--hub-switch-thumb-size:18px;--hub-switch-thumb-offset:3px;--hub-switch-thumb-translate:20px;width:var(--hub-switch-width);height:var(--hub-switch-height);background:var(--hub-surface);box-shadow:inset 0 0 0 1px var(--hub-line);flex:0 0 var(--hub-switch-width);cursor:pointer;border:0;border-radius:999px;padding:0;transition:background .15s,box-shadow .15s;position:relative}.hub-switch.compact{--hub-switch-width:30px;--hub-switch-height:18px;--hub-switch-thumb-size:14px;--hub-switch-thumb-offset:2px;--hub-switch-thumb-translate:12px}.hub-switch.card{--hub-switch-width:32px;--hub-switch-height:18px;--hub-switch-thumb-size:14px;--hub-switch-thumb-offset:2px;--hub-switch-thumb-translate:14px}.hub-switch:after{content:"";top:var(--hub-switch-thumb-offset);left:var(--hub-switch-thumb-offset);width:var(--hub-switch-thumb-size);height:var(--hub-switch-thumb-size);background:#fff;border-radius:50%;transition:transform .15s,background .15s,box-shadow .15s;position:absolute;box-shadow:0 1px 2px #0000001f}.hub-switch.on{background:var(--hub-switch-track-on);box-shadow:inset 0 0 0 1px var(--hub-switch-track-on)}.hub-switch.on:after{transform:translate(var(--hub-switch-thumb-translate))}.hub-switch:focus-visible{outline:2px solid var(--hub-ink-2);outline-offset:2px}.hub-switch:disabled{opacity:.5;cursor:not-allowed}.dark .hub-switch:after{background:#f3f5f8;box-shadow:0 1px 2px #00000047}.dark .hub-switch.on:after{background:#101214}.hub-server-card-row{grid-template-columns:minmax(180px,1.6fr) minmax(96px,.4fr) minmax(max-content,.45fr) minmax(100px,.5fr) repeat(3,minmax(76px,.36fr)) minmax(112px,.5fr) 44px 28px;align-items:center;gap:10px;display:grid}.hub-server-card-row>*{min-width:0}.hub-server-card-visibility{justify-self:start;width:100%}.hub-server-card-status-cell,.hub-server-card-transport-cell{justify-self:start;align-items:center;height:30px;display:flex}.hub-server-card-status-cell.hub-server-card-recovering{flex-direction:column;align-items:flex-start;height:auto}.hub-status.hub-server-card-status{gap:5px;min-height:24px;font-size:11.5px}.hub-status.hub-server-card-status .hub-dot{width:5px;height:5px}.hub-status.hub-server-card-status.ok .hub-dot{box-shadow:0 0 0 2px #4ea9541f}.hub-status.hub-server-card-status.warn .hub-dot{box-shadow:0 0 0 2px #e3ad4b24}.hub-status.hub-server-card-status.err .hub-dot{box-shadow:0 0 0 2px #de4e4b1f}.hub-server-card-transport-tag{letter-spacing:.02em;border-radius:999px;justify-content:center;min-width:-moz-max-content;min-width:max-content;height:24px;padding:0 7px;font-size:10.5px}.hub-server-card-select,.hub-server-card-visibility-badge{height:30px}.hub-server-card-select{border-radius:7px;padding:0 26px 0 9px!important;font-size:11px!important}.hub-server-card-visibility-badge{border-radius:7px;padding:0 9px;font-size:11px}.hub-server-capability-stat{border:1px solid var(--hub-line-2);background:var(--hub-bg-2);min-width:0;height:26px;color:var(--hub-ink-2);border-radius:6px;grid-template-columns:14px minmax(0,1fr);justify-self:stretch;align-items:center;gap:5px;padding:0 6px;font-size:11px;line-height:1;display:grid}.hub-server-capability-stat.is-empty{border-color:var(--hub-line-2);color:var(--hub-ink-3);opacity:.6;background:0 0}.hub-server-capability-icon{flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;line-height:0;display:inline-flex}.hub-server-capability-icon svg{display:block}.hub-server-capability-value{white-space:nowrap;text-overflow:clip;min-width:-moz-max-content;min-width:max-content;overflow:visible}@media(max-width:1440px){.hub-server-card-row{grid-template-columns:minmax(150px,1.5fr) minmax(84px,.4fr) minmax(max-content,.42fr) minmax(88px,.5fr) repeat(3,minmax(66px,.34fr)) minmax(100px,.46fr) 44px 28px;gap:9px}.hub-server-capability-stat{gap:5px;padding:0 6px}}.hub-endpoint{border:1px solid var(--hub-line);background:var(--hub-bg-2);border-radius:8px;align-items:center;gap:0;min-width:0;height:32px;display:flex;overflow:hidden}.hub-endpoint .hub-endpoint-label{border-right:1px solid var(--hub-line);height:100%;color:var(--hub-ink-3);font-size:11px;font-family:var(--hub-mono);text-transform:uppercase;letter-spacing:.05em;flex:none;align-items:center;padding:0 10px;display:flex}.hub-endpoint .hub-endpoint-url{font-family:var(--hub-mono);color:var(--hub-ink-2);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;flex:1;min-width:0;padding:0 10px;font-size:12.5px;overflow:hidden}.hub-endpoint .hub-endpoint-copy{border-left:1px solid var(--hub-line);width:32px;height:100%;color:var(--hub-ink-3);cursor:pointer;background:0 0;border-top:0;border-bottom:0;border-right:0;border-radius:0;place-items:center;transition:background .15s;display:inline-grid}.hub-endpoint .hub-endpoint-copy:hover{background:var(--hub-surface-hover)}.hub-endpoint .hub-endpoint-copy.copied{color:var(--hub-ok)}.page-card .bg-gray-50,.page-card .dark\:bg-gray-800.rounded-md{background:var(--hub-bg-2)!important}.hub-sr-fields>div{border:1px solid var(--hub-line)!important;background:var(--hub-bg-2)!important;box-shadow:none!important;border-radius:8px!important;padding:12px 14px!important}.hub-sr-fields h3{color:var(--hub-ink)!important;font-size:12.5px!important;font-weight:500!important}.hub-sr-fields h3 .text-red-500{color:var(--hub-err)!important}.hub-sr-fields p{color:var(--hub-ink-3)!important}.hub-sr-fields input,.hub-sr-fields select{border:1px solid var(--hub-line)!important;background:var(--hub-surface)!important;height:32px!important;color:var(--hub-ink)!important;box-shadow:none!important;border-radius:7px!important;outline:0!important;margin-top:0!important;padding:0 10px!important;font-size:13px!important}.hub-sr-fields input.mono,.hub-sr-fields select.mono{font-family:var(--hub-mono)!important}.hub-sr-fields input:focus,.hub-sr-fields select:focus{border-color:var(--hub-ink-2)!important;box-shadow:none!important}.page-card,.dashboard-card{background:var(--hub-surface)!important;border:1px solid var(--hub-line)!important;box-shadow:none!important;border-radius:10px!important;transition:background .15s,border-color .15s!important}.page-card:hover,.dashboard-card:hover{box-shadow:none!important;transform:none!important}.dark .page-card,.dark .dashboard-card{background:var(--hub-surface)!important;border-color:var(--hub-line)!important;box-shadow:none!important}.dark .bg-white,.dark .dark\:bg-gray-800{background:var(--hub-surface)!important}.loading-container{background:var(--hub-surface)!important;border:1px solid var(--hub-line)!important;box-shadow:none!important;border-radius:10px!important}.empty-state{background:var(--hub-surface)!important;border:1px solid var(--hub-line)!important;text-align:center!important;border-radius:10px!important;padding:2.5rem 1.5rem!important}.empty-state p{color:var(--hub-ink-3)!important}.error-box{color:#8a0012!important;color:oklch(40% .18 25)!important;box-shadow:none!important;background:#fff1f0!important;background:oklch(97% .03 25)!important;border:1px solid oklch(85% .1 25)!important;border-radius:8px!important}.dark .error-box{background:#4f1a18!important;border-color:#972527!important}.error-box h3{color:#8a0012!important;color:oklch(40% .18 25)!important}.btn-primary{background:var(--hub-ink)!important;color:var(--hub-bg)!important;box-shadow:none!important;border:1px solid #0000!important;border-radius:7px!important;font-weight:500!important;transition:background .15s!important}.btn-primary:hover{color:var(--hub-bg)!important;box-shadow:none!important;background:#25292e!important;transform:none!important}.dark .btn-primary{background:var(--hub-ink)!important;color:#101214!important;border-color:#0000!important}.dark .btn-primary:hover{color:#101214!important;box-shadow:none!important;background:#e2e5e8!important;transform:none!important}.btn-secondary{font-size:.875rem;background:var(--hub-surface)!important;color:var(--hub-ink)!important;border:1px solid var(--hub-line)!important;border-radius:7px!important;font-weight:500!important}.btn-secondary:hover{background:var(--hub-surface-hover)!important;color:var(--hub-ink)!important;border-color:var(--hub-line)!important;box-shadow:none!important;transform:none!important}.dark .btn-secondary,.dark .btn-secondary:hover{background:var(--hub-surface)!important;color:var(--hub-ink)!important;border-color:var(--hub-line)!important}.dark .btn-secondary:hover{background:var(--hub-surface-hover)!important}.btn-warning{color:#704e00!important;color:oklch(45% .13 80)!important;background:#fff0d7!important;background:oklch(96% .06 80)!important;border:1px solid oklch(85% .12 80)!important;border-radius:7px!important}.btn-warning:hover{color:#5f4200!important;color:oklch(40% .13 80)!important;background:#ffe4b7!important;background:oklch(93% .08 80)!important}.dark .btn-warning{color:#edbb64!important;background:#3e2a00!important;background:oklch(30% .08 80)!important;border-color:#704e00!important;border-color:oklch(45% .1 80)!important}.btn-danger{background:var(--hub-surface)!important;color:var(--hub-err)!important;border:1px solid var(--hub-line)!important;border-radius:7px!important}.btn-danger:hover{color:#8a0012!important;color:oklch(40% .18 25)!important;box-shadow:none!important;background:#fff1f0!important;background:oklch(97% .03 25)!important;border-color:#ffbab3!important;border-color:oklch(85% .1 25)!important;transform:none!important}.dark .btn-danger{background:var(--hub-surface)!important;color:#ff958d!important;color:oklch(78% .15 25)!important;border-color:var(--hub-line)!important}.dark .btn-danger:hover{background:#4f1a18!important;border-color:#972527!important}.form-input,input.form-input,select.form-input,textarea.form-input{background:var(--hub-surface)!important;border:1px solid var(--hub-line)!important;color:var(--hub-ink)!important;box-shadow:none!important;border-radius:7px!important;transition:border-color .15s!important}.form-input:focus,input.form-input:focus,select.form-input:focus,textarea.form-input:focus{border-color:var(--hub-ink-2)!important;box-shadow:none!important;outline:none!important}.dark .form-input,.dark input.form-input,.dark select.form-input,.dark textarea.form-input{background:var(--hub-surface)!important;border-color:var(--hub-line)!important;color:var(--hub-ink)!important}.dark .form-input::-moz-placeholder{color:var(--hub-ink-3)!important}.dark .form-input::placeholder{color:var(--hub-ink-3)!important}.status-badge-online,.status-badge-offline,.status-badge-connecting,.status-badge-oauth-required{background:0 0!important;border:0!important;border-radius:0!important;align-items:center!important;gap:6px!important;padding:0!important;font-size:12px!important;font-weight:500!important;line-height:1.4!important;display:inline-flex!important}.status-badge-online:before,.status-badge-offline:before,.status-badge-connecting:before,.status-badge-oauth-required:before{content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-badge-online{color:#005813!important;color:oklch(40% .13 145)!important}.status-badge-online:before{background:var(--hub-ok);box-shadow:0 0 0 3px #4ea95426}.status-badge-offline{color:#a20519!important}.status-badge-offline:before{background:var(--hub-err);box-shadow:0 0 0 3px #de4e4b26}.status-badge-connecting{color:#704e00!important;color:oklch(45% .13 80)!important}.status-badge-connecting:before{background:var(--hub-warn);box-shadow:0 0 0 3px #e3ad4b2e}.status-badge-oauth-required{color:var(--hub-accent)!important}.status-badge-oauth-required:before{background:var(--hub-accent);box-shadow:0 0 0 3px #0f74c52e}.dark .status-badge-online,.dark .status-badge-offline,.dark .status-badge-connecting,.dark .status-badge-oauth-required{background:0 0!important;border:0!important}.dark .status-badge-online{color:#80cd82!important}.dark .status-badge-offline{color:#ff958d!important;color:oklch(78% .15 25)!important}.dark .status-badge-connecting{color:#edbb64!important}.status-icon-blue{background:var(--hub-accent-soft)!important;color:var(--hub-accent)!important}.status-icon-green{color:#005813!important;color:oklch(40% .13 145)!important;background:#dbf8da!important}.status-icon-red{color:#a20519!important;background:#ffedeb!important;background:oklch(96% .04 25)!important}.status-icon-yellow{color:#704e00!important;color:oklch(45% .13 80)!important;background:#fff0d7!important;background:oklch(96% .06 80)!important}.dark .status-icon-blue{color:#95c9ff!important;color:oklch(82% .1 250)!important;background:#193550!important}.dark .status-icon-green{color:#9bd69c!important;background:#1d341e!important}.dark .status-icon-red{color:#ff958d!important;color:oklch(78% .15 25)!important;background:#4f1a18!important}.dark .status-icon-yellow{color:#edbb64!important;background:#3d2a02!important}.table-container{overflow:hidden;box-shadow:none!important;border:1px solid var(--hub-line)!important;border-radius:10px!important}.dark .table-container{background:var(--hub-surface)!important;border-color:var(--hub-line)!important;box-shadow:none!important}.dark thead{background:var(--hub-bg-2)!important}.login-card{box-shadow:none!important}.hub-topbar{border-bottom:1px solid var(--hub-line);background:var(--hub-bg);align-items:center;gap:14px;height:48px;padding:0 22px;display:flex}.hub-crumb{color:var(--hub-ink-3);font-size:13px}.hub-crumb b{color:var(--hub-ink);font-weight:500}.hub-crumb .sep{color:var(--hub-ink-3);opacity:.5;margin:0 6px}body{background:var(--hub-bg);color:var(--hub-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:system-ui,PingFang SC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.dark .text-gray-900,.dark .text-gray-800,.dark .dark\:text-gray-100,.dark .dark\:text-gray-200{color:var(--hub-ink)!important}.dark .text-gray-700,.dark .text-gray-600,.dark .dark\:text-gray-300{color:var(--hub-ink-2)!important}.dark .text-gray-500,.dark .text-gray-400,.dark .dark\:text-gray-400,.dark .dark\:text-gray-500{color:var(--hub-ink-3)!important}.dark .border-gray-100,.dark .border-gray-200,.dark .border-gray-300,.dark .dark\:border-gray-600,.dark .dark\:border-gray-700{border-color:var(--hub-line)!important}.dark .divide-gray-200>:not([hidden])~:not([hidden]),.dark .dark\:divide-gray-700>:not([hidden])~:not([hidden]){border-color:var(--hub-line-2)!important}.dark .bg-gray-50,.dark .bg-gray-100,.dark .dark\:bg-gray-700{background:var(--hub-bg-2)!important}.dark .dark\:bg-gray-800\/60{background:var(--hub-surface)!important}@supports (color:color-mix(in lab,red,red)){.dark .dark\:bg-gray-800\/60{background:color-mix(in oklab,var(--hub-surface)60%,transparent)!important}}.dark .dark\:bg-gray-900{background:var(--hub-bg)!important}.dark .hover\:bg-gray-50:hover,.dark .hover\:bg-gray-100:hover,.dark .hover\:bg-gray-200:hover,.dark .dark\:hover\:bg-gray-600:hover,.dark .dark\:hover\:bg-gray-700:hover,.dark .dark\:hover\:bg-gray-800:hover{background:var(--hub-surface-hover)!important}.dark .hover\:text-gray-900:hover{color:var(--hub-ink)!important}.dark :is(input,select,textarea):not([type=checkbox],[type=radio],[type=range],[type=file],[type=submit],[type=button],[type=reset],[type=color]){background:var(--hub-surface)!important;border-color:var(--hub-line)!important;color:var(--hub-ink)!important}.dark :is(input,select,textarea):focus{border-color:var(--hub-ink-2)!important}.dark input::-moz-placeholder,.dark textarea::-moz-placeholder{color:var(--hub-ink-3)!important}.dark input::placeholder,.dark textarea::placeholder{color:var(--hub-ink-3)!important}.bg-blue-300{background-color:var(--color-blue-300)}.bg-custom-blue{background-color:#4a90e2}.text-custom-white{color:#fff}.icon-container{transition:all .3s}.icon-container:hover{filter:brightness(1.1);transform:scale(1.05)}.progress-bar-online{background:linear-gradient(90deg,#4caf50cc,#81c78499)}.progress-bar-offline{background:linear-gradient(90deg,#f44336cc,#ef9a9a99)}.progress-bar-connecting{background:linear-gradient(90deg,#ffc107cc,#ffd54f99)}.dark tbody tr{border-bottom:1px solid var(--hub-line-2)}tbody tr:hover{transition:background-color .2s;background-color:var(--hub-surface-hover)!important}.dark .error-box h3{color:#ef9a9ae6!important}.dark .error-box p{color:var(--hub-ink-2)!important}.label-primary{background-color:var(--color-blue-50)!important;color:var(--color-blue-500)!important}.dark .label-primary{color:#60a5fae6!important;background-color:#3b82f626!important}.label-secondary{background-color:var(--color-green-50)!important;color:var(--color-green-500)!important}.dark .label-secondary{color:#81c784e6!important;background-color:#4caf5026!important}.dark .btn-warning:hover{transform:translateY(-1px);color:#facc15!important;background-color:#eab30840!important}.text-status-red{color:#991b1b}.dark .text-status-red{color:#ef9a9ae6!important}.external-link{cursor:pointer;border-bottom:1px solid #0000;text-decoration:none;transition:all .2s ease-in-out;color:#2563eb!important}.external-link:hover{border-bottom-color:#1d4ed8;text-decoration:none;color:#1d4ed8!important}.dark .external-link{color:#60a5fa!important}.dark .external-link:hover{border-bottom-color:#93c5fd;color:#93c5fd!important}.border-red{border-color:#937d7d}.dark .border-red{border-color:#bca1a1e6!important}.dark .text-status-green{color:#81c784e6!important}.dark .login-container{background-color:var(--hub-bg)!important}.dark .login-card{border:1px solid var(--hub-line);border-radius:12px;box-shadow:0 8px 25px #0003,0 4px 12px #00000026;background-color:var(--hub-surface)!important}button{transition:transform .15s,opacity .15s}button:not(:disabled):active{transform:scale(.96)}button.is-loading,button.is-loading:hover,.dark button.is-loading,.dark button.is-loading:hover{color:#0000!important;pointer-events:none!important;position:relative!important}button.is-loading>*{opacity:0!important}button.is-loading:after{content:"";border:2px solid #80808066;border-top-color:#666;border-radius:50%;width:1.2rem;height:1.2rem;margin-top:-.6rem;margin-left:-.6rem;animation:.6s linear infinite button-spinner;position:absolute;top:50%;left:50%;visibility:visible!important}button.bg-blue-600.is-loading:after,button.bg-blue-500.is-loading:after,button.bg-red-500.is-loading:after,button.bg-red-600.is-loading:after,button.text-white.is-loading:after{border:2px solid #ffffff4d!important;border-top-color:#fff!important}button.btn-primary.is-loading:after,button.hub-btn.primary.is-loading:after{border-color:var(--hub-bg)!important}@supports (color:color-mix(in lab,red,red)){button.btn-primary.is-loading:after,button.hub-btn.primary.is-loading:after{border-color:color-mix(in oklab,var(--hub-bg)35%,transparent)!important}}button.btn-primary.is-loading:after,button.hub-btn.primary.is-loading:after{border-top-color:var(--hub-bg)!important}@keyframes button-spinner{to{transform:rotate(360deg)}}@media(max-width:1200px){.hub-server-card-row{grid-template-columns:minmax(120px,1.4fr) minmax(72px,.4fr) minmax(max-content,.4fr) minmax(80px,.45fr) repeat(3,minmax(58px,.3fr)) minmax(92px,.42fr) 40px 24px;gap:8px}.hub-server-capability-stat{gap:4px;padding:0 5px}}.hub-server-card-transport-cell{flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;height:auto;min-height:30px}.hub-server-card-protocol{color:var(--hub-ink-3);white-space:nowrap;font-size:10.5px;line-height:1.4}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
@@ -1,2 +1,2 @@
1
- import{i as c,l as t,j as n}from"./index-BNm-68Gn.js";import"./framework-vendor-D0S_ys6r.js";import"./i18n-vendor-CPneThYa.js";import"./icons-vendor-DZjjGrOu.js";const d=async(r,o,s)=>{try{const e=await t(`/servers/${encodeURIComponent(r)}/resources/${encodeURIComponent(o)}/toggle`,{enabled:s},{headers:{Authorization:`Bearer ${localStorage.getItem("mcphub_token")}`}});return{success:e.success,error:e.success?void 0:e.message}}catch(e){return console.error("Error toggling resource",{serverName:r,resourceUri:o,enabled:s,error:e}),{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}},g=async(r,o,s)=>{try{const e=await n(`/servers/${encodeURIComponent(r)}/resources/${encodeURIComponent(o)}/description`,{description:s},{headers:{Authorization:`Bearer ${localStorage.getItem("mcphub_token")}`}});return{success:e.success,error:e.success?void 0:e.message}}catch(e){return console.error("Error updating resource description",{serverName:r,resourceUri:o,error:e}),{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}},m=async(r,o)=>{var s;try{const e=await c(`/servers/${encodeURIComponent(r)}/resources/${encodeURIComponent(o)}/description`,{headers:{Authorization:`Bearer ${localStorage.getItem("mcphub_token")}`}});return{success:e.success,error:e.success?void 0:e.message,description:(s=e.data)==null?void 0:s.description}}catch(e){return console.error("Error resetting resource description",{serverName:r,resourceUri:o,error:e}),{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}};export{m as resetResourceDescription,d as toggleResource,g as updateResourceDescription};
2
- //# sourceMappingURL=resourceService-DPjgql8Z.js.map
1
+ import{i as c,j as t,k as n}from"./index-8GliUQTA.js";import"./framework-vendor-D0S_ys6r.js";import"./i18n-vendor-CPneThYa.js";import"./icons-vendor-DZjjGrOu.js";const d=async(r,o,s)=>{try{const e=await t(`/servers/${encodeURIComponent(r)}/resources/${encodeURIComponent(o)}/toggle`,{enabled:s},{headers:{Authorization:`Bearer ${localStorage.getItem("mcphub_token")}`}});return{success:e.success,error:e.success?void 0:e.message}}catch(e){return console.error("Error toggling resource",{serverName:r,resourceUri:o,enabled:s,error:e}),{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}},g=async(r,o,s)=>{try{const e=await n(`/servers/${encodeURIComponent(r)}/resources/${encodeURIComponent(o)}/description`,{description:s},{headers:{Authorization:`Bearer ${localStorage.getItem("mcphub_token")}`}});return{success:e.success,error:e.success?void 0:e.message}}catch(e){return console.error("Error updating resource description",{serverName:r,resourceUri:o,error:e}),{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}},m=async(r,o)=>{var s;try{const e=await c(`/servers/${encodeURIComponent(r)}/resources/${encodeURIComponent(o)}/description`,{headers:{Authorization:`Bearer ${localStorage.getItem("mcphub_token")}`}});return{success:e.success,error:e.success?void 0:e.message,description:(s=e.data)==null?void 0:s.description}}catch(e){return console.error("Error resetting resource description",{serverName:r,resourceUri:o,error:e}),{success:!1,error:e instanceof Error?e.message:"Unknown error occurred"}}};export{m as resetResourceDescription,d as toggleResource,g as updateResourceDescription};
2
+ //# sourceMappingURL=resourceService-BN-FT_uq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resourceService-DPjgql8Z.js","sources":["../../src/services/resourceService.ts"],"sourcesContent":["import { apiDelete, apiPost, apiPut } from '../utils/fetchInterceptor';\n\n/**\n * Toggle a resource's enabled state for a specific server\n */\nexport const toggleResource = async (\n serverName: string,\n resourceUri: string,\n enabled: boolean,\n): Promise<{ success: boolean; error?: string }> => {\n try {\n const response = await apiPost<any>(\n `/servers/${encodeURIComponent(serverName)}/resources/${encodeURIComponent(resourceUri)}/toggle`,\n { enabled },\n {\n headers: {\n Authorization: `Bearer ${localStorage.getItem('mcphub_token')}`,\n },\n },\n );\n\n return {\n success: response.success,\n error: response.success ? undefined : response.message,\n };\n } catch (error) {\n console.error('Error toggling resource', { serverName, resourceUri, enabled, error });\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n};\n\n/**\n * Update a resource's description for a specific server\n */\nexport const updateResourceDescription = async (\n serverName: string,\n resourceUri: string,\n description: string,\n): Promise<{ success: boolean; error?: string }> => {\n try {\n const response = await apiPut<any>(\n `/servers/${encodeURIComponent(serverName)}/resources/${encodeURIComponent(resourceUri)}/description`,\n { description },\n {\n headers: {\n Authorization: `Bearer ${localStorage.getItem('mcphub_token')}`,\n },\n },\n );\n\n return {\n success: response.success,\n error: response.success ? undefined : response.message,\n };\n } catch (error) {\n console.error('Error updating resource description', { serverName, resourceUri, error });\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n};\n\nexport const resetResourceDescription = async (\n serverName: string,\n resourceUri: string,\n): Promise<{ success: boolean; error?: string; description?: string }> => {\n try {\n const response = await apiDelete<any>(\n `/servers/${encodeURIComponent(serverName)}/resources/${encodeURIComponent(resourceUri)}/description`,\n {\n headers: {\n Authorization: `Bearer ${localStorage.getItem('mcphub_token')}`,\n },\n },\n );\n\n return {\n success: response.success,\n error: response.success ? undefined : response.message,\n description: response.data?.description,\n };\n } catch (error) {\n console.error('Error resetting resource description', { serverName, resourceUri, error });\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n};\n"],"names":["toggleResource","serverName","resourceUri","enabled","response","apiPost","error","updateResourceDescription","description","apiPut","resetResourceDescription","apiDelete","_a"],"mappings":"kKAKO,MAAMA,EAAiB,MAC5BC,EACAC,EACAC,IACkD,CAClD,GAAI,CACF,MAAMC,EAAW,MAAMC,EACrB,YAAY,mBAAmBJ,CAAU,CAAC,cAAc,mBAAmBC,CAAW,CAAC,UACvF,CAAE,QAAAC,CAAA,EACF,CACE,QAAS,CACP,cAAe,UAAU,aAAa,QAAQ,cAAc,CAAC,EAAA,CAC/D,CACF,EAGF,MAAO,CACL,QAASC,EAAS,QAClB,MAAOA,EAAS,QAAU,OAAYA,EAAS,OAAA,CAEnD,OAASE,EAAO,CACd,eAAQ,MAAM,0BAA2B,CAAE,WAAAL,EAAY,YAAAC,EAAa,QAAAC,EAAS,MAAAG,EAAO,EAC7E,CACL,QAAS,GACT,MAAOA,aAAiB,MAAQA,EAAM,QAAU,wBAAA,CAEpD,CACF,EAKaC,EAA4B,MACvCN,EACAC,EACAM,IACkD,CAClD,GAAI,CACF,MAAMJ,EAAW,MAAMK,EACrB,YAAY,mBAAmBR,CAAU,CAAC,cAAc,mBAAmBC,CAAW,CAAC,eACvF,CAAE,YAAAM,CAAA,EACF,CACE,QAAS,CACP,cAAe,UAAU,aAAa,QAAQ,cAAc,CAAC,EAAA,CAC/D,CACF,EAGF,MAAO,CACL,QAASJ,EAAS,QAClB,MAAOA,EAAS,QAAU,OAAYA,EAAS,OAAA,CAEnD,OAASE,EAAO,CACd,eAAQ,MAAM,sCAAuC,CAAE,WAAAL,EAAY,YAAAC,EAAa,MAAAI,EAAO,EAChF,CACL,QAAS,GACT,MAAOA,aAAiB,MAAQA,EAAM,QAAU,wBAAA,CAEpD,CACF,EAEaI,EAA2B,MACtCT,EACAC,IACwE,OACxE,GAAI,CACF,MAAME,EAAW,MAAMO,EACrB,YAAY,mBAAmBV,CAAU,CAAC,cAAc,mBAAmBC,CAAW,CAAC,eACvF,CACE,QAAS,CACP,cAAe,UAAU,aAAa,QAAQ,cAAc,CAAC,EAAA,CAC/D,CACF,EAGF,MAAO,CACL,QAASE,EAAS,QAClB,MAAOA,EAAS,QAAU,OAAYA,EAAS,QAC/C,aAAaQ,EAAAR,EAAS,OAAT,YAAAQ,EAAe,WAAA,CAEhC,OAASN,EAAO,CACd,eAAQ,MAAM,uCAAwC,CAAE,WAAAL,EAAY,YAAAC,EAAa,MAAAI,EAAO,EACjF,CACL,QAAS,GACT,MAAOA,aAAiB,MAAQA,EAAM,QAAU,wBAAA,CAEpD,CACF"}
1
+ {"version":3,"file":"resourceService-BN-FT_uq.js","sources":["../../src/services/resourceService.ts"],"sourcesContent":["import { apiDelete, apiPost, apiPut } from '../utils/fetchInterceptor';\n\n/**\n * Toggle a resource's enabled state for a specific server\n */\nexport const toggleResource = async (\n serverName: string,\n resourceUri: string,\n enabled: boolean,\n): Promise<{ success: boolean; error?: string }> => {\n try {\n const response = await apiPost<any>(\n `/servers/${encodeURIComponent(serverName)}/resources/${encodeURIComponent(resourceUri)}/toggle`,\n { enabled },\n {\n headers: {\n Authorization: `Bearer ${localStorage.getItem('mcphub_token')}`,\n },\n },\n );\n\n return {\n success: response.success,\n error: response.success ? undefined : response.message,\n };\n } catch (error) {\n console.error('Error toggling resource', { serverName, resourceUri, enabled, error });\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n};\n\n/**\n * Update a resource's description for a specific server\n */\nexport const updateResourceDescription = async (\n serverName: string,\n resourceUri: string,\n description: string,\n): Promise<{ success: boolean; error?: string }> => {\n try {\n const response = await apiPut<any>(\n `/servers/${encodeURIComponent(serverName)}/resources/${encodeURIComponent(resourceUri)}/description`,\n { description },\n {\n headers: {\n Authorization: `Bearer ${localStorage.getItem('mcphub_token')}`,\n },\n },\n );\n\n return {\n success: response.success,\n error: response.success ? undefined : response.message,\n };\n } catch (error) {\n console.error('Error updating resource description', { serverName, resourceUri, error });\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n};\n\nexport const resetResourceDescription = async (\n serverName: string,\n resourceUri: string,\n): Promise<{ success: boolean; error?: string; description?: string }> => {\n try {\n const response = await apiDelete<any>(\n `/servers/${encodeURIComponent(serverName)}/resources/${encodeURIComponent(resourceUri)}/description`,\n {\n headers: {\n Authorization: `Bearer ${localStorage.getItem('mcphub_token')}`,\n },\n },\n );\n\n return {\n success: response.success,\n error: response.success ? undefined : response.message,\n description: response.data?.description,\n };\n } catch (error) {\n console.error('Error resetting resource description', { serverName, resourceUri, error });\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Unknown error occurred',\n };\n }\n};\n"],"names":["toggleResource","serverName","resourceUri","enabled","response","apiPost","error","updateResourceDescription","description","apiPut","resetResourceDescription","apiDelete","_a"],"mappings":"kKAKO,MAAMA,EAAiB,MAC5BC,EACAC,EACAC,IACkD,CAClD,GAAI,CACF,MAAMC,EAAW,MAAMC,EACrB,YAAY,mBAAmBJ,CAAU,CAAC,cAAc,mBAAmBC,CAAW,CAAC,UACvF,CAAE,QAAAC,CAAA,EACF,CACE,QAAS,CACP,cAAe,UAAU,aAAa,QAAQ,cAAc,CAAC,EAAA,CAC/D,CACF,EAGF,MAAO,CACL,QAASC,EAAS,QAClB,MAAOA,EAAS,QAAU,OAAYA,EAAS,OAAA,CAEnD,OAASE,EAAO,CACd,eAAQ,MAAM,0BAA2B,CAAE,WAAAL,EAAY,YAAAC,EAAa,QAAAC,EAAS,MAAAG,EAAO,EAC7E,CACL,QAAS,GACT,MAAOA,aAAiB,MAAQA,EAAM,QAAU,wBAAA,CAEpD,CACF,EAKaC,EAA4B,MACvCN,EACAC,EACAM,IACkD,CAClD,GAAI,CACF,MAAMJ,EAAW,MAAMK,EACrB,YAAY,mBAAmBR,CAAU,CAAC,cAAc,mBAAmBC,CAAW,CAAC,eACvF,CAAE,YAAAM,CAAA,EACF,CACE,QAAS,CACP,cAAe,UAAU,aAAa,QAAQ,cAAc,CAAC,EAAA,CAC/D,CACF,EAGF,MAAO,CACL,QAASJ,EAAS,QAClB,MAAOA,EAAS,QAAU,OAAYA,EAAS,OAAA,CAEnD,OAASE,EAAO,CACd,eAAQ,MAAM,sCAAuC,CAAE,WAAAL,EAAY,YAAAC,EAAa,MAAAI,EAAO,EAChF,CACL,QAAS,GACT,MAAOA,aAAiB,MAAQA,EAAM,QAAU,wBAAA,CAEpD,CACF,EAEaI,EAA2B,MACtCT,EACAC,IACwE,OACxE,GAAI,CACF,MAAME,EAAW,MAAMO,EACrB,YAAY,mBAAmBV,CAAU,CAAC,cAAc,mBAAmBC,CAAW,CAAC,eACvF,CACE,QAAS,CACP,cAAe,UAAU,aAAa,QAAQ,cAAc,CAAC,EAAA,CAC/D,CACF,EAGF,MAAO,CACL,QAASE,EAAS,QAClB,MAAOA,EAAS,QAAU,OAAYA,EAAS,QAC/C,aAAaQ,EAAAR,EAAS,OAAT,YAAAQ,EAAe,WAAA,CAEhC,OAASN,EAAO,CACd,eAAQ,MAAM,uCAAwC,CAAE,WAAAL,EAAY,YAAAC,EAAa,MAAAI,EAAO,EACjF,CACL,QAAS,GACT,MAAOA,aAAiB,MAAQA,EAAM,QAAU,wBAAA,CAEpD,CACF"}
@@ -1,2 +1,2 @@
1
- import{p as v,h as d}from"./index-BNm-68Gn.js";import{r as s}from"./framework-vendor-D0S_ys6r.js";const w=r=>{const c=v(),{refreshIfNeeded:u}=c;return s.useEffect(()=>{r!=null&&r.refreshOnMount&&u()},[r==null?void 0:r.refreshOnMount,u]),c},E=(r="")=>{const[c,u]=s.useState([]),[h,C]=s.useState([]),[m,o]=s.useState(!0),a=s.useRef(null),f=s.useCallback(async()=>{try{o(!0);const[e,t]=await Promise.all([d("/cost/servers"),d("/cost/groups")]);return e!=null&&e.success&&Array.isArray(e.data)&&u(e.data),t!=null&&t.success&&Array.isArray(t.data)&&C(t.data),!!(e!=null&&e.success&&Array.isArray(e.data)&&(t!=null&&t.success)&&Array.isArray(t.data))}catch(e){return console.error("Error fetching context footprint:",e),!1}finally{o(!1)}},[]),n=s.useCallback(()=>(a.current||(a.current=f().finally(()=>{a.current=null})),a.current),[f]);return s.useEffect(()=>{let e=!0,t,i=0;const l=async()=>{const A=await n();e&&!A&&i<3&&(t=setTimeout(()=>void l(),2e3*2**i++))},y=a.current;return(async()=>(y&&await y,e&&await l()))(),()=>{e=!1,clearTimeout(t)}},[n,r]),{serverCosts:c,groupCosts:h,loading:m,refetch:n}};export{E as a,w as u};
2
- //# sourceMappingURL=useCostData-CDNXYHZf.js.map
1
+ import{p as v,h as d}from"./index-8GliUQTA.js";import{r as s}from"./framework-vendor-D0S_ys6r.js";const w=r=>{const c=v(),{refreshIfNeeded:u}=c;return s.useEffect(()=>{r!=null&&r.refreshOnMount&&u()},[r==null?void 0:r.refreshOnMount,u]),c},E=(r="")=>{const[c,u]=s.useState([]),[h,C]=s.useState([]),[m,o]=s.useState(!0),a=s.useRef(null),f=s.useCallback(async()=>{try{o(!0);const[e,t]=await Promise.all([d("/cost/servers"),d("/cost/groups")]);return e!=null&&e.success&&Array.isArray(e.data)&&u(e.data),t!=null&&t.success&&Array.isArray(t.data)&&C(t.data),!!(e!=null&&e.success&&Array.isArray(e.data)&&(t!=null&&t.success)&&Array.isArray(t.data))}catch(e){return console.error("Error fetching context footprint:",e),!1}finally{o(!1)}},[]),n=s.useCallback(()=>(a.current||(a.current=f().finally(()=>{a.current=null})),a.current),[f]);return s.useEffect(()=>{let e=!0,t,i=0;const l=async()=>{const A=await n();e&&!A&&i<3&&(t=setTimeout(()=>void l(),2e3*2**i++))},y=a.current;return(async()=>(y&&await y,e&&await l()))(),()=>{e=!1,clearTimeout(t)}},[n,r]),{serverCosts:c,groupCosts:h,loading:m,refetch:n}};export{E as a,w as u};
2
+ //# sourceMappingURL=useCostData-DNk0WL-a.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCostData-CDNXYHZf.js","sources":["../../src/hooks/useServerData.ts","../../src/hooks/useCostData.ts"],"sourcesContent":["// This hook now delegates to the ServerContext to avoid duplicate requests\n// All components will share the same server data and polling mechanism\nimport { useServerContext } from '@/contexts/ServerContext';\nimport { useEffect } from 'react';\n\nexport const useServerData = (options?: { refreshOnMount?: boolean }) => {\n const context = useServerContext();\n const { refreshIfNeeded } = context;\n\n // Optionally refresh on mount for pages that need fresh data\n useEffect(() => {\n if (options?.refreshOnMount) {\n refreshIfNeeded();\n }\n }, [options?.refreshOnMount, refreshIfNeeded]);\n\n return context;\n};\n\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { apiGet } from '../utils/fetchInterceptor';\nimport type { ApiResponse, ServerCost, GroupCost } from '@/types';\n\nexport const useCostData = (revision = '') => {\n const [serverCosts, setServerCosts] = useState<ServerCost[]>([]);\n const [groupCosts, setGroupCosts] = useState<GroupCost[]>([]);\n const [loading, setLoading] = useState(true);\n\n const inFlight = useRef<Promise<boolean> | null>(null);\n\n const loadCosts = useCallback(async () => {\n try {\n setLoading(true);\n const [servers, groups] = await Promise.all([\n apiGet('/cost/servers') as Promise<ApiResponse<ServerCost[]>>,\n apiGet('/cost/groups') as Promise<ApiResponse<GroupCost[]>>,\n ]);\n if (servers?.success && Array.isArray(servers.data)) setServerCosts(servers.data);\n if (groups?.success && Array.isArray(groups.data)) setGroupCosts(groups.data);\n return Boolean(\n servers?.success &&\n Array.isArray(servers.data) &&\n groups?.success &&\n Array.isArray(groups.data),\n );\n } catch (err) {\n console.error('Error fetching context footprint:', err);\n return false;\n } finally {\n setLoading(false);\n }\n }, []);\n\n const fetchCosts = useCallback(() => {\n if (!inFlight.current) {\n inFlight.current = loadCosts().finally(() => {\n inFlight.current = null;\n });\n }\n return inFlight.current;\n }, [loadCosts]);\n\n useEffect(() => {\n // A revision change during an active request must still fetch the new state.\n let active = true;\n let timer: ReturnType<typeof setTimeout> | undefined;\n let retries = 0;\n const refresh = async () => {\n const success = await fetchCosts();\n if (active && !success && retries < 3) {\n // Retry transient failures even when catalog revisions stay unchanged.\n timer = setTimeout(() => void refresh(), 2000 * 2 ** retries++);\n }\n };\n const previous = inFlight.current;\n void (async () => {\n if (previous) await previous;\n if (active) await refresh();\n })();\n return () => {\n active = false;\n clearTimeout(timer);\n };\n }, [fetchCosts, revision]);\n\n return { serverCosts, groupCosts, loading, refetch: fetchCosts };\n};\n"],"names":["useServerData","options","context","useServerContext","refreshIfNeeded","useEffect","useCostData","revision","serverCosts","setServerCosts","useState","groupCosts","setGroupCosts","loading","setLoading","inFlight","useRef","loadCosts","useCallback","servers","groups","apiGet","err","fetchCosts","active","timer","retries","refresh","success","previous"],"mappings":"kGAKO,MAAMA,EAAiBC,GAA2C,CACvE,MAAMC,EAAUC,EAAA,EACV,CAAE,gBAAAC,GAAoBF,EAG5BG,OAAAA,EAAAA,UAAU,IAAM,CACVJ,GAAA,MAAAA,EAAS,gBACXG,EAAA,CAEJ,EAAG,CAACH,GAAA,YAAAA,EAAS,eAAgBG,CAAe,CAAC,EAEtCF,CACT,ECbaI,EAAc,CAACC,EAAW,KAAO,CAC5C,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAAA,SAAuB,CAAA,CAAE,EACzD,CAACC,EAAYC,CAAa,EAAIF,EAAAA,SAAsB,CAAA,CAAE,EACtD,CAACG,EAASC,CAAU,EAAIJ,EAAAA,SAAS,EAAI,EAErCK,EAAWC,EAAAA,OAAgC,IAAI,EAE/CC,EAAYC,EAAAA,YAAY,SAAY,CACxC,GAAI,CACFJ,EAAW,EAAI,EACf,KAAM,CAACK,EAASC,CAAM,EAAI,MAAM,QAAQ,IAAI,CAC1CC,EAAO,eAAe,EACtBA,EAAO,cAAc,CAAA,CACtB,EACD,OAAIF,GAAA,MAAAA,EAAS,SAAW,MAAM,QAAQA,EAAQ,IAAI,GAAGV,EAAeU,EAAQ,IAAI,EAC5EC,GAAA,MAAAA,EAAQ,SAAW,MAAM,QAAQA,EAAO,IAAI,GAAGR,EAAcQ,EAAO,IAAI,EACrE,GACLD,GAAA,MAAAA,EAAS,SACP,MAAM,QAAQA,EAAQ,IAAI,IAC1BC,GAAA,MAAAA,EAAQ,UACR,MAAM,QAAQA,EAAO,IAAI,EAE/B,OAASE,EAAK,CACZ,eAAQ,MAAM,oCAAqCA,CAAG,EAC/C,EACT,QAAA,CACER,EAAW,EAAK,CAClB,CACF,EAAG,CAAA,CAAE,EAECS,EAAaL,EAAAA,YAAY,KACxBH,EAAS,UACZA,EAAS,QAAUE,EAAA,EAAY,QAAQ,IAAM,CAC3CF,EAAS,QAAU,IACrB,CAAC,GAEIA,EAAS,SACf,CAACE,CAAS,CAAC,EAEdZ,OAAAA,EAAAA,UAAU,IAAM,CAEd,IAAImB,EAAS,GACTC,EACAC,EAAU,EACd,MAAMC,EAAU,SAAY,CAC1B,MAAMC,EAAU,MAAML,EAAA,EAClBC,GAAU,CAACI,GAAWF,EAAU,IAElCD,EAAQ,WAAW,IAAM,KAAKE,IAAW,IAAO,GAAKD,GAAS,EAElE,EACMG,EAAWd,EAAS,QAC1B,OAAM,UACAc,GAAU,MAAMA,EAChBL,SAAcG,EAAA,MAEb,IAAM,CACXH,EAAS,GACT,aAAaC,CAAK,CACpB,CACF,EAAG,CAACF,EAAYhB,CAAQ,CAAC,EAElB,CAAE,YAAAC,EAAa,WAAAG,EAAY,QAAAE,EAAS,QAASU,CAAA,CACtD"}
1
+ {"version":3,"file":"useCostData-DNk0WL-a.js","sources":["../../src/hooks/useServerData.ts","../../src/hooks/useCostData.ts"],"sourcesContent":["// This hook now delegates to the ServerContext to avoid duplicate requests\n// All components will share the same server data and polling mechanism\nimport { useServerContext } from '@/contexts/ServerContext';\nimport { useEffect } from 'react';\n\nexport const useServerData = (options?: { refreshOnMount?: boolean }) => {\n const context = useServerContext();\n const { refreshIfNeeded } = context;\n\n // Optionally refresh on mount for pages that need fresh data\n useEffect(() => {\n if (options?.refreshOnMount) {\n refreshIfNeeded();\n }\n }, [options?.refreshOnMount, refreshIfNeeded]);\n\n return context;\n};\n\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { apiGet } from '../utils/fetchInterceptor';\nimport type { ApiResponse, ServerCost, GroupCost } from '@/types';\n\nexport const useCostData = (revision = '') => {\n const [serverCosts, setServerCosts] = useState<ServerCost[]>([]);\n const [groupCosts, setGroupCosts] = useState<GroupCost[]>([]);\n const [loading, setLoading] = useState(true);\n\n const inFlight = useRef<Promise<boolean> | null>(null);\n\n const loadCosts = useCallback(async () => {\n try {\n setLoading(true);\n const [servers, groups] = await Promise.all([\n apiGet('/cost/servers') as Promise<ApiResponse<ServerCost[]>>,\n apiGet('/cost/groups') as Promise<ApiResponse<GroupCost[]>>,\n ]);\n if (servers?.success && Array.isArray(servers.data)) setServerCosts(servers.data);\n if (groups?.success && Array.isArray(groups.data)) setGroupCosts(groups.data);\n return Boolean(\n servers?.success &&\n Array.isArray(servers.data) &&\n groups?.success &&\n Array.isArray(groups.data),\n );\n } catch (err) {\n console.error('Error fetching context footprint:', err);\n return false;\n } finally {\n setLoading(false);\n }\n }, []);\n\n const fetchCosts = useCallback(() => {\n if (!inFlight.current) {\n inFlight.current = loadCosts().finally(() => {\n inFlight.current = null;\n });\n }\n return inFlight.current;\n }, [loadCosts]);\n\n useEffect(() => {\n // A revision change during an active request must still fetch the new state.\n let active = true;\n let timer: ReturnType<typeof setTimeout> | undefined;\n let retries = 0;\n const refresh = async () => {\n const success = await fetchCosts();\n if (active && !success && retries < 3) {\n // Retry transient failures even when catalog revisions stay unchanged.\n timer = setTimeout(() => void refresh(), 2000 * 2 ** retries++);\n }\n };\n const previous = inFlight.current;\n void (async () => {\n if (previous) await previous;\n if (active) await refresh();\n })();\n return () => {\n active = false;\n clearTimeout(timer);\n };\n }, [fetchCosts, revision]);\n\n return { serverCosts, groupCosts, loading, refetch: fetchCosts };\n};\n"],"names":["useServerData","options","context","useServerContext","refreshIfNeeded","useEffect","useCostData","revision","serverCosts","setServerCosts","useState","groupCosts","setGroupCosts","loading","setLoading","inFlight","useRef","loadCosts","useCallback","servers","groups","apiGet","err","fetchCosts","active","timer","retries","refresh","success","previous"],"mappings":"kGAKO,MAAMA,EAAiBC,GAA2C,CACvE,MAAMC,EAAUC,EAAA,EACV,CAAE,gBAAAC,GAAoBF,EAG5BG,OAAAA,EAAAA,UAAU,IAAM,CACVJ,GAAA,MAAAA,EAAS,gBACXG,EAAA,CAEJ,EAAG,CAACH,GAAA,YAAAA,EAAS,eAAgBG,CAAe,CAAC,EAEtCF,CACT,ECbaI,EAAc,CAACC,EAAW,KAAO,CAC5C,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAAA,SAAuB,CAAA,CAAE,EACzD,CAACC,EAAYC,CAAa,EAAIF,EAAAA,SAAsB,CAAA,CAAE,EACtD,CAACG,EAASC,CAAU,EAAIJ,EAAAA,SAAS,EAAI,EAErCK,EAAWC,EAAAA,OAAgC,IAAI,EAE/CC,EAAYC,EAAAA,YAAY,SAAY,CACxC,GAAI,CACFJ,EAAW,EAAI,EACf,KAAM,CAACK,EAASC,CAAM,EAAI,MAAM,QAAQ,IAAI,CAC1CC,EAAO,eAAe,EACtBA,EAAO,cAAc,CAAA,CACtB,EACD,OAAIF,GAAA,MAAAA,EAAS,SAAW,MAAM,QAAQA,EAAQ,IAAI,GAAGV,EAAeU,EAAQ,IAAI,EAC5EC,GAAA,MAAAA,EAAQ,SAAW,MAAM,QAAQA,EAAO,IAAI,GAAGR,EAAcQ,EAAO,IAAI,EACrE,GACLD,GAAA,MAAAA,EAAS,SACP,MAAM,QAAQA,EAAQ,IAAI,IAC1BC,GAAA,MAAAA,EAAQ,UACR,MAAM,QAAQA,EAAO,IAAI,EAE/B,OAASE,EAAK,CACZ,eAAQ,MAAM,oCAAqCA,CAAG,EAC/C,EACT,QAAA,CACER,EAAW,EAAK,CAClB,CACF,EAAG,CAAA,CAAE,EAECS,EAAaL,EAAAA,YAAY,KACxBH,EAAS,UACZA,EAAS,QAAUE,EAAA,EAAY,QAAQ,IAAM,CAC3CF,EAAS,QAAU,IACrB,CAAC,GAEIA,EAAS,SACf,CAACE,CAAS,CAAC,EAEdZ,OAAAA,EAAAA,UAAU,IAAM,CAEd,IAAImB,EAAS,GACTC,EACAC,EAAU,EACd,MAAMC,EAAU,SAAY,CAC1B,MAAMC,EAAU,MAAML,EAAA,EAClBC,GAAU,CAACI,GAAWF,EAAU,IAElCD,EAAQ,WAAW,IAAM,KAAKE,IAAW,IAAO,GAAKD,GAAS,EAElE,EACMG,EAAWd,EAAS,QAC1B,OAAM,UACAc,GAAU,MAAMA,EAChBL,SAAcG,EAAA,MAEb,IAAM,CACXH,EAAS,GACT,aAAaC,CAAK,CACpB,CACF,EAAG,CAACF,EAAYhB,CAAQ,CAAC,EAElB,CAAE,YAAAC,EAAa,WAAAG,EAAY,QAAAE,EAAS,QAASU,CAAA,CACtD"}
@@ -1,4 +1,4 @@
1
- import{r as O,j as i}from"./framework-vendor-D0S_ys6r.js";import{U as pi}from"./UserGroupSelection-DionUENR.js";import{a as fi,h as hi,l as mi}from"./index-BNm-68Gn.js";import{f as gi,a as yi,O as vi}from"./contextCost-CilWqGWT.js";import{u as bi}from"./i18n-vendor-CPneThYa.js";import{X as pt}from"./icons-vendor-DZjjGrOu.js";const tp=(e,t)=>t?t.isAdmin?!0:!!(e.owner&&e.owner===t.username):!1,xi=(e,t)=>{var n,r,s,o;return t===!0?null:(n=e.oauth)!=null&&n.authorizationRelay?"server.oauth.relayRequiresAdmin":((r=e.oauth)==null?void 0:r.allowInsecureTokenEndpoint)===!0?"server.httpOAuthRequiresAdmin":e.type==="stdio"||e.command||Array.isArray(e.args)&&e.args.length>0||!e.url&&!((s=e.openapi)!=null&&s.url)&&!((o=e.openapi)!=null&&o.schema)?"server.localExecutionRequiresAdmin":null};function xt(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,s])=>t.indexOf(+r)===-1).map(([r,s])=>s)}function xs(e,t="|"){return e.map(n=>io(n)).join(t)}function kt(e,t){return typeof t=="bigint"?t.toString():t}class ki{constructor(t){this._getter=t,this._value=void 0}get value(){const t=this._getter;return t!==void 0&&(this._value=t(),this._getter=void 0),this._value}}function Tt(e){return new ki(e)}function _i(e){return e==null}function $t(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ce(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function to(e){const t=Object.getOwnPropertyDescriptor(e,"shape");return t!=null&&t.get?t.get.raw:t==null?void 0:t.value}function Q(e){return to(e._zod.def)??e._zod.def.shape}function no(e,t,n){Object.defineProperty(e,t,{get(){const r=n();return ce(this,t,r),r},enumerable:!0,configurable:!0})}function ro(e,t,n){t in e?ce(e,t,n):e[t]=n}function ae(e,t,n,r){const s=Q(t);for(const o of n){const c=Object.getOwnPropertyDescriptor(s,o);c.enumerable&&(c.get?no(e,o,()=>{const a=t._zod.def.shape[o];return r?r(a,o):a}):ro(e,o,r?r(c.value,o):c.value))}}function wi(e,t){for(const n of Reflect.ownKeys(t)){const r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?no(e,n,()=>t[n]):ro(e,n,r.value))}}function J(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function ji(e){return JSON.stringify(e)}function Si(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const so="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function He(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const Ni=Tt(()=>{var e;if(W.jitless||typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)!=null&&e.includes("Cloudflare")))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function Se(e){if(He(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(He(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function oo(e){return Se(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}const zi=new Set(["string","number","symbol"]);function Xe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function se(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n!=null&&n.parent)&&(r._zod.parent=e),r}function w(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if((t==null?void 0:t.message)!==void 0){if((t==null?void 0:t.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function io(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function Oi(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}const Ti={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},$i={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Ai(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const o={};return ae(o,e,Ye(e,t)),se(e,J(n,{shape:o,checks:[]}))}function Ye(e,t){var s;const n=Q(e),r=[];for(const o of Reflect.ownKeys(t)){if(!((s=Object.getOwnPropertyDescriptor(n,o))!=null&&s.enumerable))throw new Error(`Unrecognized key: "${String(o)}"`);t[o]&&r.push(o)}return r}function Ci(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const o=new Set(Ye(e,t)),c={};return ae(c,e,Reflect.ownKeys(Q(e)).filter(a=>!o.has(a))),se(e,J(n,{shape:c,checks:[]}))}function Ii(e,t){if(!Se(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const s=Q(e);for(const o of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(s,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return se(e,J(e._zod.def,{shape:ao(e,t)}))}function ao(e,t){const n={};return ae(n,e,Reflect.ownKeys(Q(e))),wi(n,t),n}function Ei(e,t){if(!Se(t))throw new Error("Invalid input to safeExtend: expected a plain object");return se(e,J(e._zod.def,{shape:ao(e,t)}))}function Pi(e,t){var s,o;if(!((s=t==null?void 0:t._zod)!=null&&s.def))throw new Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if((o=e._zod.def.checks)!=null&&o.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");const n={};ae(n,e,Reflect.ownKeys(Q(e))),ae(n,t,Reflect.ownKeys(Q(t)));const r=J(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return se(e,r)}function ks(e,t,n,r="partial"){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(`.${r}() cannot be used on object schemas containing refinements`);const a=n?new Set(Ye(t,n)):void 0,l={};return ae(l,t,Reflect.ownKeys(Q(t)),e&&((g,f)=>a&&!a.has(f)?g:new e({type:"optional",innerType:g}))),se(t,J(t._zod.def,{shape:l,checks:[]}))}function Zi(e,t,n){const r=n?new Set(Ye(t,n)):void 0,s={};return ae(s,t,Reflect.ownKeys(Q(t)),(o,c)=>r&&!r.has(c)?o:new e({type:"nonoptional",innerType:o})),se(t,J(t._zod.def,{shape:s}))}function Y(e,t=0){var n;if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(((n=e.issues[r])==null?void 0:n.continue)!==!0)return!0;return!1}function Ri(e,t=0){var n;if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(((n=e.issues[r])==null?void 0:n.continue)===!1)return!0;return!1}function co(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function be(e){return typeof e=="string"?e:e==null?void 0:e.message}function _s(e){const t=[];for(const n of e??[]){const r=n._zod.def;if(!/_(length|size)$|_equals$/.test(r.check))break;const s=r.maximum??r.length??r.size;s>=0&&t.push([s,n])}return t}function _t(e,t,n){var r;for(let s=t;s<e.length;s++)(r=e[s]).schema??(r.schema=n)}function fe(e,t,n){var l,g,f,m,v,h,k,p,b,_;var r;const s=(g=(l=e.inst)==null?void 0:l._zod)==null?void 0:g.traits;s!=null&&s.has("$ZodType")&&(s.has("$ZodCheck")?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);const o=e.schema!==e.inst?(m=(f=e.schema)==null?void 0:f._zod.def)==null?void 0:m.error:void 0,c=e.message?e.message:be((k=(h=(v=e.inst)==null?void 0:v._zod.def)==null?void 0:h.error)==null?void 0:k.call(h,e))??be(o==null?void 0:o(e))??be((p=t==null?void 0:t.error)==null?void 0:p.call(t,e))??be((b=n.customError)==null?void 0:b.call(n,e))??be((_=n.localeError)==null?void 0:_.call(n,e))??"Invalid input",a={};for(const j of Object.keys(e))j==="inst"||j==="schema"||j==="continue"||j==="input"||j==="__proto__"||(a[j]=e[j]);return a.path??(a.path=[]),a.message=c,t!=null&&t.reportInput&&(a.input=e.input),a}const Ui=/[\uD800-\uDBFF]/;function At(e){const t=e.length;if(!Ui.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)===55296&&(e.charCodeAt(r+1)&64512)===56320&&(n--,r++);return n}function Ct(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Fi(e){const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";const n=e;if(n&&Object.getPrototypeOf(n)!==Object.prototype&&"constructor"in n&&n.constructor)return n.constructor.name}}return t}function Ne(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Ki(e,t){for(const n in t){const r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):Li(e,n,r.value)}}function re(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function uo(e,t,n){return re(e,t,n,!1)}function Mi(e,t){for(const n in e){const r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return re(this,n,r(this))},set(s){re(this,n,s)}})}return t}function Li(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:re(this,t,n.bind(this))},set(r){re(this,t,r)}})}function Ji(e,t){const n=Object.getPrototypeOf(e);return t in n?void 0:n}let ft,ne=!1;const Vi={configurable:!0,get(){ne=!0}};function T(e,t,n){const r=Object.getPrototypeOf(e._zod);if(t in r&&ft!==e._zod){ft=void 0;return}ft=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,Vi);const s=ne;ne=!1;try{const o=n(this);return ne?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:o}),ne=ne||s,o}catch(o){throw delete this[t],ne=ne||s,o}},set(s){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:s})}})}function Hi(e,t,n,r){const s=Ji(e,t);s&&Object.defineProperty(s,t,{configurable:!0,get(){const o={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,o),o.value=n(this),Object.defineProperty(this,t,o),o.value},set(o){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:o})}})}const Bi="~constantCatch";function Wi(e){const t=()=>e;return t[Bi]=!0,t}var ws;const ht={value:void 0,enumerable:!1};let js="captureStackTrace"in Error?Error:null;function qi(e){const t=js;if(t){const n=t.stackTraceLimit;if(typeof n=="number"){try{t.stackTraceLimit=0}catch{return js=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function x(e,t,n,r){const s={};function o(v){this.def=v,this.constr=m,this.traits=new Set}o.prototype=s;const c=n,a=c&&new WeakSet;function l(v,h){if(v._zod){if(v._zod.traits.has(e))return}else{ht.value=new o(h);try{Object.defineProperty(v,"_zod",ht)}finally{ht.value=void 0}}if(v._zod.traits.add(e),t(v,h),a){const p=Object.getPrototypeOf(v),b=v._zod.constr.prototype;let _=p;for(;_&&_!==b;)_=Object.getPrototypeOf(_);const j=_??p;a.has(j)||(a.add(j),Ki(j,c))}const k=m.prototype;for(const p in k)Object.prototype.hasOwnProperty.call(k,p)&&(p in v||(v[p]=k[p].bind(v)))}const g=(r==null?void 0:r.Parent)??Object;class f extends g{}Object.defineProperty(f,"name",{value:e});function m(v){var b;const h=r!=null&&r.Parent?qi(f):this;l(h,v);const k=h._zod.deferred;if(k){for(const _ of k)_();h._zod.deferred=void 0}const p=(b=globalThis.__zod_globalConfig)==null?void 0:b.postProcessor;return p&&p(h),h}return Object.defineProperty(m,"init",{value:l}),Object.defineProperty(m,Symbol.hasInstance,{value:v=>{var h,k;return r!=null&&r.Parent&&v instanceof r.Parent?!0:(k=(h=v==null?void 0:v._zod)==null?void 0:h.traits)==null?void 0:k.has(e)}}),Object.defineProperty(m,"name",{value:e}),m}class ie extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class lo extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}(ws=globalThis).__zod_globalConfig??(ws.__zod_globalConfig={});const W=globalThis.__zod_globalConfig;function oe(e){return e&&Object.assign(W,e),W}function Gi(){const e=this._zod;return e.message??(e.message=JSON.stringify(e.def,kt,2)),e.message}function Xi(e){this._zod.message=e}const Yi={get:Gi,set:Xi,enumerable:!0,configurable:!0},mt={value:void 0,enumerable:!1},Ss=new WeakSet([Object.prototype,Error.prototype]),Qi=(e,t)=>{e.name="$ZodError",mt.value=t,Object.defineProperty(e,"issues",mt),mt.value=void 0,Object.defineProperty(e,"message",Yi);const n=Object.getPrototypeOf(e);Ss.has(n)||(Ss.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){const r=()=>this.message;return Object.defineProperty(this,"toString",{value:r,configurable:!0,writable:!0}),r},set(r){Object.defineProperty(this,"toString",{value:r,configurable:!0,writable:!0})}}))},Di=x("$ZodError",Qi);function ea(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t==="__proto__"?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function ta(e,t=n=>n.message){const n={},r=[];for(const s of e.issues)s.path.length>0?ea(n,s.path[0],()=>[]).push(t(s)):r.push(t(s));return{formErrors:r,fieldErrors:n}}function na(e,t=n=>n.message){const n={_errors:[]},r=(s,o=[])=>{for(const c of s.issues)if(c.code==="invalid_union"&&c.errors.length)c.errors.map(a=>r({issues:a},[...o,...c.path]));else if(c.code==="invalid_key")r({issues:c.issues},[...o,...c.path]);else if(c.code==="invalid_element")r({issues:c.issues},[...o,...c.path]);else{const a=[...o,...c.path];if(a.length===0)n._errors.push(t(c));else{let l=n,g=0;for(;g<a.length;){const f=a[g],m=g===a.length-1;if(f==="_errors"){m&&l._errors.push(t(c)),g++;continue}Object.prototype.hasOwnProperty.call(l,f)||Object.defineProperty(l,f,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});const v=l[f];m&&v._errors.push(t(c)),l=v,g++}}}};return r(e),n}function Qe(e,t){return{callee:(t==null?void 0:t.callee)??e,Err:t==null?void 0:t.Err}}const It=e=>{const t=(n,r,s,o)=>{const c=s?{...s,async:!1}:{async:!1},a=n._zod.run({value:r,issues:[]},c);if(a instanceof Promise)throw new ie;if(a.issues.length){const l=new((o==null?void 0:o.Err)??e)(a.issues.map(g=>fe(g,c,oe())));throw so(l,(o==null?void 0:o.callee)??t),l}return a.value};return t},Et=e=>{const t=async(n,r,s,o)=>{const c=s?{...s,async:!0}:{async:!0};let a=n._zod.run({value:r,issues:[]},c);if(a instanceof Promise&&(a=await a),a.issues.length){const l=new((o==null?void 0:o.Err)??e)(a.issues.map(g=>fe(g,c,oe())));throw so(l,(o==null?void 0:o.callee)??t),l}return a.value};return t},Pt=e=>(t,n,r)=>{const s=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise)throw new ie;return o.issues.length?po(e,o.issues,s):{success:!0,data:o.value}};function po(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(s=>fe(s,n,oe()))),t=void 0,n=void 0),r},set error(s){r=s,t=void 0,n=void 0}}}const Zt=e=>async(t,n,r)=>{const s=r?{...r,async:!0}:{async:!0};let o=t._zod.run({value:n,issues:[]},s);return o instanceof Promise&&(o=await o),o.issues.length?po(e,o.issues,s):{success:!0,data:o.value}},ra=Symbol.for("zod.compile.invalid"),sa=Symbol.for("zod.compile.fallback"),oa=((e,t,n)=>{const r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==ra)return!0;if(r.definite===!0&&n===void 0)return!1}return ia(e,t,n)});function ia(e,t,n){const r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},s=e._zod.bag.fallbackRun;let o;if(s?(r[sa]=!0,o=s({value:t,issues:[]},r)):o=e._zod.run({value:t,issues:[]},r),o instanceof Promise)throw new ie;return o.issues.length===0}const aa=async(e,t,n)=>{const r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0};let s=e._zod.run({value:t,issues:[]},r);return s instanceof Promise&&(s=await s),s.issues.length===0},ca=e=>{const t=It(e),n=(r,s,o,c)=>{const a=o?{...o,direction:"backward"}:{direction:"backward"};return t(r,s,a,Qe(n,c))};return n},ua=e=>{const t=It(e),n=(r,s,o,c)=>t(r,s,o,Qe(n,c));return n},la=e=>{const t=Et(e),n=async(r,s,o,c)=>{const a=o?{...o,direction:"backward"}:{direction:"backward"};return await t(r,s,a,Qe(n,c))};return n},da=e=>{const t=Et(e),n=async(r,s,o,c)=>await t(r,s,o,Qe(n,c));return n},pa=e=>(t,n,r)=>{const s=r?{...r,direction:"backward"}:{direction:"backward"};return Pt(e)(t,n,s)},fa=e=>(t,n,r)=>Pt(e)(t,n,r),ha=e=>async(t,n,r)=>{const s=r?{...r,direction:"backward"}:{direction:"backward"};return Zt(e)(t,n,s)},ma=e=>async(t,n,r)=>Zt(e)(t,n,r),ga=/^[cC][0-9a-z]{6,}$/,ya=/^[0-9a-z]+$/,va=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,ba=/^[0-9a-vA-V]{20}$/,xa=/^[A-Za-z0-9]{27}$/,ka=/^[a-zA-Z0-9_-]{21}$/;function _a(e){return new RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}const wa=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ja=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Ns=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Sa=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Na="^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$";function za(){return new RegExp(Na,"u")}const Oa=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ta=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,$a=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Aa=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ca=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ia=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,Ea=/^https?$/,Pa=/^\+[1-9]\d{6,14}$/,fo="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))";function Za(e){return new RegExp(`^${e}$`)}const Ra=Za(fo);function wt(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Ua(e){return new RegExp(`^${wt(e)}$`)}function Fa(e){const t=["Z"];e.offset&&t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${wt({precision:e.precision,seconds:!0})}(?:${t.join("|")})`,r=e.local?`${n}|${wt({precision:e.precision})}`:n;return new RegExp(`^${fo}T(?:${r})$`)}const Ka=/^[\s\S]{0,}$/,Ma=/^[^A-Z]*$/,La=/^[^a-z]*$/,q=x("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Rt=e=>{const t=e.value;return!_i(t)&&t.length!==void 0},Ja=x("$ZodCheckMaxLength",(e,t)=>{var n;q.init(e,t),(n=e._zod.def).when??(n.when=Rt),e._zod.check=r=>{const s=r.value,o=s.length;if((typeof s=="string"&&o>t.maximum?At(s):o)<=t.maximum)return;const a=Ct(s);r.issues.push({origin:a,code:"too_big",maximum:t.maximum,inclusive:!0,input:s,inst:e,continue:!t.abort})}}),Va=x("$ZodCheckMinLength",(e,t)=>{var n;q.init(e,t),(n=e._zod.def).when??(n.when=Rt),e._zod.check=r=>{const s=r.value,o=s.length;if((typeof s=="string"&&o>=t.minimum&&o<t.minimum*2?At(s):o)>=t.minimum)return;const a=Ct(s);r.issues.push({origin:a,code:"too_small",minimum:t.minimum,inclusive:!0,input:s,inst:e,continue:!t.abort})}}),Ha=x("$ZodCheckLengthEquals",(e,t)=>{var n;q.init(e,t),(n=e._zod.def).when??(n.when=Rt),e._zod.check=r=>{const s=r.value,o=s.length,c=typeof s=="string"&&o>=t.length&&o<=t.length*2?At(s):o;if(c===t.length)return;const a=Ct(s),l=c>t.length;r.issues.push({origin:a,...l?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),De=x("$ZodCheckStringFormat",(e,t)=>{var n,r;q.init(e,t),t.pattern?(n=e._zod).check??(n.check=s=>{t.pattern.lastIndex=0,!t.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:t.format,input:s.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Ba=x("$ZodCheckRegex",(e,t)=>{De.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Wa=x("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Ma),De.init(e,t)}),qa=x("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=La),De.init(e,t)}),Ga=x("$ZodCheckIncludes",(e,t)=>{q.init(e,t);const n=Xe(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position},}${n}`:n);t.pattern=r,e._zod.check=s=>{s.value.includes(t.includes,t.position)||s.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:s.value,inst:e,continue:!t.abort})}}),Xa=x("$ZodCheckStartsWith",(e,t)=>{q.init(e,t);const n=new RegExp(`^${Xe(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),Ya=x("$ZodCheckEndsWith",(e,t)=>{q.init(e,t);const n=new RegExp(`.*${Xe(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),Qa=x("$ZodCheckOverwrite",(e,t)=>{q.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class Da{constructor(t=[],n={}){this.content=[],this.indent=0,this.args=t,this.closed=n}indented(t){this.indent+=1;try{t(this)}finally{this.indent-=1}}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const r=t.split(`
1
+ import{r as O,j as i}from"./framework-vendor-D0S_ys6r.js";import{U as pi}from"./UserGroupSelection-DionUENR.js";import{a as fi,h as hi,j as mi}from"./index-8GliUQTA.js";import{f as gi,a as yi,O as vi}from"./contextCost-CilWqGWT.js";import{u as bi}from"./i18n-vendor-CPneThYa.js";import{X as pt}from"./icons-vendor-DZjjGrOu.js";const tp=(e,t)=>t?t.isAdmin?!0:!!(e.owner&&e.owner===t.username):!1,xi=(e,t)=>{var n,r,s,o;return t===!0?null:(n=e.oauth)!=null&&n.authorizationRelay?"server.oauth.relayRequiresAdmin":((r=e.oauth)==null?void 0:r.allowInsecureTokenEndpoint)===!0?"server.httpOAuthRequiresAdmin":e.type==="stdio"||e.command||Array.isArray(e.args)&&e.args.length>0||!e.url&&!((s=e.openapi)!=null&&s.url)&&!((o=e.openapi)!=null&&o.schema)?"server.localExecutionRequiresAdmin":null};function xt(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,s])=>t.indexOf(+r)===-1).map(([r,s])=>s)}function xs(e,t="|"){return e.map(n=>io(n)).join(t)}function kt(e,t){return typeof t=="bigint"?t.toString():t}class ki{constructor(t){this._getter=t,this._value=void 0}get value(){const t=this._getter;return t!==void 0&&(this._value=t(),this._getter=void 0),this._value}}function Tt(e){return new ki(e)}function _i(e){return e==null}function $t(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ce(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function to(e){const t=Object.getOwnPropertyDescriptor(e,"shape");return t!=null&&t.get?t.get.raw:t==null?void 0:t.value}function Q(e){return to(e._zod.def)??e._zod.def.shape}function no(e,t,n){Object.defineProperty(e,t,{get(){const r=n();return ce(this,t,r),r},enumerable:!0,configurable:!0})}function ro(e,t,n){t in e?ce(e,t,n):e[t]=n}function ae(e,t,n,r){const s=Q(t);for(const o of n){const c=Object.getOwnPropertyDescriptor(s,o);c.enumerable&&(c.get?no(e,o,()=>{const a=t._zod.def.shape[o];return r?r(a,o):a}):ro(e,o,r?r(c.value,o):c.value))}}function wi(e,t){for(const n of Reflect.ownKeys(t)){const r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?no(e,n,()=>t[n]):ro(e,n,r.value))}}function J(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function ji(e){return JSON.stringify(e)}function Si(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const so="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function He(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const Ni=Tt(()=>{var e;if(W.jitless||typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)!=null&&e.includes("Cloudflare")))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function Se(e){if(He(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(He(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function oo(e){return Se(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}const zi=new Set(["string","number","symbol"]);function Xe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function se(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n!=null&&n.parent)&&(r._zod.parent=e),r}function w(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if((t==null?void 0:t.message)!==void 0){if((t==null?void 0:t.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function io(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function Oi(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}const Ti={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},$i={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Ai(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const o={};return ae(o,e,Ye(e,t)),se(e,J(n,{shape:o,checks:[]}))}function Ye(e,t){var s;const n=Q(e),r=[];for(const o of Reflect.ownKeys(t)){if(!((s=Object.getOwnPropertyDescriptor(n,o))!=null&&s.enumerable))throw new Error(`Unrecognized key: "${String(o)}"`);t[o]&&r.push(o)}return r}function Ci(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const o=new Set(Ye(e,t)),c={};return ae(c,e,Reflect.ownKeys(Q(e)).filter(a=>!o.has(a))),se(e,J(n,{shape:c,checks:[]}))}function Ii(e,t){if(!Se(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const s=Q(e);for(const o of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(s,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return se(e,J(e._zod.def,{shape:ao(e,t)}))}function ao(e,t){const n={};return ae(n,e,Reflect.ownKeys(Q(e))),wi(n,t),n}function Ei(e,t){if(!Se(t))throw new Error("Invalid input to safeExtend: expected a plain object");return se(e,J(e._zod.def,{shape:ao(e,t)}))}function Pi(e,t){var s,o;if(!((s=t==null?void 0:t._zod)!=null&&s.def))throw new Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if((o=e._zod.def.checks)!=null&&o.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");const n={};ae(n,e,Reflect.ownKeys(Q(e))),ae(n,t,Reflect.ownKeys(Q(t)));const r=J(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return se(e,r)}function ks(e,t,n,r="partial"){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(`.${r}() cannot be used on object schemas containing refinements`);const a=n?new Set(Ye(t,n)):void 0,l={};return ae(l,t,Reflect.ownKeys(Q(t)),e&&((g,f)=>a&&!a.has(f)?g:new e({type:"optional",innerType:g}))),se(t,J(t._zod.def,{shape:l,checks:[]}))}function Zi(e,t,n){const r=n?new Set(Ye(t,n)):void 0,s={};return ae(s,t,Reflect.ownKeys(Q(t)),(o,c)=>r&&!r.has(c)?o:new e({type:"nonoptional",innerType:o})),se(t,J(t._zod.def,{shape:s}))}function Y(e,t=0){var n;if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(((n=e.issues[r])==null?void 0:n.continue)!==!0)return!0;return!1}function Ri(e,t=0){var n;if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(((n=e.issues[r])==null?void 0:n.continue)===!1)return!0;return!1}function co(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function be(e){return typeof e=="string"?e:e==null?void 0:e.message}function _s(e){const t=[];for(const n of e??[]){const r=n._zod.def;if(!/_(length|size)$|_equals$/.test(r.check))break;const s=r.maximum??r.length??r.size;s>=0&&t.push([s,n])}return t}function _t(e,t,n){var r;for(let s=t;s<e.length;s++)(r=e[s]).schema??(r.schema=n)}function fe(e,t,n){var l,g,f,m,v,h,k,p,b,_;var r;const s=(g=(l=e.inst)==null?void 0:l._zod)==null?void 0:g.traits;s!=null&&s.has("$ZodType")&&(s.has("$ZodCheck")?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);const o=e.schema!==e.inst?(m=(f=e.schema)==null?void 0:f._zod.def)==null?void 0:m.error:void 0,c=e.message?e.message:be((k=(h=(v=e.inst)==null?void 0:v._zod.def)==null?void 0:h.error)==null?void 0:k.call(h,e))??be(o==null?void 0:o(e))??be((p=t==null?void 0:t.error)==null?void 0:p.call(t,e))??be((b=n.customError)==null?void 0:b.call(n,e))??be((_=n.localeError)==null?void 0:_.call(n,e))??"Invalid input",a={};for(const j of Object.keys(e))j==="inst"||j==="schema"||j==="continue"||j==="input"||j==="__proto__"||(a[j]=e[j]);return a.path??(a.path=[]),a.message=c,t!=null&&t.reportInput&&(a.input=e.input),a}const Ui=/[\uD800-\uDBFF]/;function At(e){const t=e.length;if(!Ui.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)===55296&&(e.charCodeAt(r+1)&64512)===56320&&(n--,r++);return n}function Ct(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Fi(e){const t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";const n=e;if(n&&Object.getPrototypeOf(n)!==Object.prototype&&"constructor"in n&&n.constructor)return n.constructor.name}}return t}function Ne(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function Ki(e,t){for(const n in t){const r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):Li(e,n,r.value)}}function re(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function uo(e,t,n){return re(e,t,n,!1)}function Mi(e,t){for(const n in e){const r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return re(this,n,r(this))},set(s){re(this,n,s)}})}return t}function Li(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:re(this,t,n.bind(this))},set(r){re(this,t,r)}})}function Ji(e,t){const n=Object.getPrototypeOf(e);return t in n?void 0:n}let ft,ne=!1;const Vi={configurable:!0,get(){ne=!0}};function T(e,t,n){const r=Object.getPrototypeOf(e._zod);if(t in r&&ft!==e._zod){ft=void 0;return}ft=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,Vi);const s=ne;ne=!1;try{const o=n(this);return ne?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:o}),ne=ne||s,o}catch(o){throw delete this[t],ne=ne||s,o}},set(s){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:s})}})}function Hi(e,t,n,r){const s=Ji(e,t);s&&Object.defineProperty(s,t,{configurable:!0,get(){const o={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,o),o.value=n(this),Object.defineProperty(this,t,o),o.value},set(o){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:o})}})}const Bi="~constantCatch";function Wi(e){const t=()=>e;return t[Bi]=!0,t}var ws;const ht={value:void 0,enumerable:!1};let js="captureStackTrace"in Error?Error:null;function qi(e){const t=js;if(t){const n=t.stackTraceLimit;if(typeof n=="number"){try{t.stackTraceLimit=0}catch{return js=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function x(e,t,n,r){const s={};function o(v){this.def=v,this.constr=m,this.traits=new Set}o.prototype=s;const c=n,a=c&&new WeakSet;function l(v,h){if(v._zod){if(v._zod.traits.has(e))return}else{ht.value=new o(h);try{Object.defineProperty(v,"_zod",ht)}finally{ht.value=void 0}}if(v._zod.traits.add(e),t(v,h),a){const p=Object.getPrototypeOf(v),b=v._zod.constr.prototype;let _=p;for(;_&&_!==b;)_=Object.getPrototypeOf(_);const j=_??p;a.has(j)||(a.add(j),Ki(j,c))}const k=m.prototype;for(const p in k)Object.prototype.hasOwnProperty.call(k,p)&&(p in v||(v[p]=k[p].bind(v)))}const g=(r==null?void 0:r.Parent)??Object;class f extends g{}Object.defineProperty(f,"name",{value:e});function m(v){var b;const h=r!=null&&r.Parent?qi(f):this;l(h,v);const k=h._zod.deferred;if(k){for(const _ of k)_();h._zod.deferred=void 0}const p=(b=globalThis.__zod_globalConfig)==null?void 0:b.postProcessor;return p&&p(h),h}return Object.defineProperty(m,"init",{value:l}),Object.defineProperty(m,Symbol.hasInstance,{value:v=>{var h,k;return r!=null&&r.Parent&&v instanceof r.Parent?!0:(k=(h=v==null?void 0:v._zod)==null?void 0:h.traits)==null?void 0:k.has(e)}}),Object.defineProperty(m,"name",{value:e}),m}class ie extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class lo extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}(ws=globalThis).__zod_globalConfig??(ws.__zod_globalConfig={});const W=globalThis.__zod_globalConfig;function oe(e){return e&&Object.assign(W,e),W}function Gi(){const e=this._zod;return e.message??(e.message=JSON.stringify(e.def,kt,2)),e.message}function Xi(e){this._zod.message=e}const Yi={get:Gi,set:Xi,enumerable:!0,configurable:!0},mt={value:void 0,enumerable:!1},Ss=new WeakSet([Object.prototype,Error.prototype]),Qi=(e,t)=>{e.name="$ZodError",mt.value=t,Object.defineProperty(e,"issues",mt),mt.value=void 0,Object.defineProperty(e,"message",Yi);const n=Object.getPrototypeOf(e);Ss.has(n)||(Ss.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){const r=()=>this.message;return Object.defineProperty(this,"toString",{value:r,configurable:!0,writable:!0}),r},set(r){Object.defineProperty(this,"toString",{value:r,configurable:!0,writable:!0})}}))},Di=x("$ZodError",Qi);function ea(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t==="__proto__"?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function ta(e,t=n=>n.message){const n={},r=[];for(const s of e.issues)s.path.length>0?ea(n,s.path[0],()=>[]).push(t(s)):r.push(t(s));return{formErrors:r,fieldErrors:n}}function na(e,t=n=>n.message){const n={_errors:[]},r=(s,o=[])=>{for(const c of s.issues)if(c.code==="invalid_union"&&c.errors.length)c.errors.map(a=>r({issues:a},[...o,...c.path]));else if(c.code==="invalid_key")r({issues:c.issues},[...o,...c.path]);else if(c.code==="invalid_element")r({issues:c.issues},[...o,...c.path]);else{const a=[...o,...c.path];if(a.length===0)n._errors.push(t(c));else{let l=n,g=0;for(;g<a.length;){const f=a[g],m=g===a.length-1;if(f==="_errors"){m&&l._errors.push(t(c)),g++;continue}Object.prototype.hasOwnProperty.call(l,f)||Object.defineProperty(l,f,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});const v=l[f];m&&v._errors.push(t(c)),l=v,g++}}}};return r(e),n}function Qe(e,t){return{callee:(t==null?void 0:t.callee)??e,Err:t==null?void 0:t.Err}}const It=e=>{const t=(n,r,s,o)=>{const c=s?{...s,async:!1}:{async:!1},a=n._zod.run({value:r,issues:[]},c);if(a instanceof Promise)throw new ie;if(a.issues.length){const l=new((o==null?void 0:o.Err)??e)(a.issues.map(g=>fe(g,c,oe())));throw so(l,(o==null?void 0:o.callee)??t),l}return a.value};return t},Et=e=>{const t=async(n,r,s,o)=>{const c=s?{...s,async:!0}:{async:!0};let a=n._zod.run({value:r,issues:[]},c);if(a instanceof Promise&&(a=await a),a.issues.length){const l=new((o==null?void 0:o.Err)??e)(a.issues.map(g=>fe(g,c,oe())));throw so(l,(o==null?void 0:o.callee)??t),l}return a.value};return t},Pt=e=>(t,n,r)=>{const s=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},s);if(o instanceof Promise)throw new ie;return o.issues.length?po(e,o.issues,s):{success:!0,data:o.value}};function po(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(s=>fe(s,n,oe()))),t=void 0,n=void 0),r},set error(s){r=s,t=void 0,n=void 0}}}const Zt=e=>async(t,n,r)=>{const s=r?{...r,async:!0}:{async:!0};let o=t._zod.run({value:n,issues:[]},s);return o instanceof Promise&&(o=await o),o.issues.length?po(e,o.issues,s):{success:!0,data:o.value}},ra=Symbol.for("zod.compile.invalid"),sa=Symbol.for("zod.compile.fallback"),oa=((e,t,n)=>{const r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==ra)return!0;if(r.definite===!0&&n===void 0)return!1}return ia(e,t,n)});function ia(e,t,n){const r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},s=e._zod.bag.fallbackRun;let o;if(s?(r[sa]=!0,o=s({value:t,issues:[]},r)):o=e._zod.run({value:t,issues:[]},r),o instanceof Promise)throw new ie;return o.issues.length===0}const aa=async(e,t,n)=>{const r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0};let s=e._zod.run({value:t,issues:[]},r);return s instanceof Promise&&(s=await s),s.issues.length===0},ca=e=>{const t=It(e),n=(r,s,o,c)=>{const a=o?{...o,direction:"backward"}:{direction:"backward"};return t(r,s,a,Qe(n,c))};return n},ua=e=>{const t=It(e),n=(r,s,o,c)=>t(r,s,o,Qe(n,c));return n},la=e=>{const t=Et(e),n=async(r,s,o,c)=>{const a=o?{...o,direction:"backward"}:{direction:"backward"};return await t(r,s,a,Qe(n,c))};return n},da=e=>{const t=Et(e),n=async(r,s,o,c)=>await t(r,s,o,Qe(n,c));return n},pa=e=>(t,n,r)=>{const s=r?{...r,direction:"backward"}:{direction:"backward"};return Pt(e)(t,n,s)},fa=e=>(t,n,r)=>Pt(e)(t,n,r),ha=e=>async(t,n,r)=>{const s=r?{...r,direction:"backward"}:{direction:"backward"};return Zt(e)(t,n,s)},ma=e=>async(t,n,r)=>Zt(e)(t,n,r),ga=/^[cC][0-9a-z]{6,}$/,ya=/^[0-9a-z]+$/,va=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,ba=/^[0-9a-vA-V]{20}$/,xa=/^[A-Za-z0-9]{27}$/,ka=/^[a-zA-Z0-9_-]{21}$/;function _a(e){return new RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}const wa=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ja=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Ns=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Sa=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Na="^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$";function za(){return new RegExp(Na,"u")}const Oa=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ta=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,$a=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Aa=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ca=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ia=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,Ea=/^https?$/,Pa=/^\+[1-9]\d{6,14}$/,fo="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))";function Za(e){return new RegExp(`^${e}$`)}const Ra=Za(fo);function wt(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Ua(e){return new RegExp(`^${wt(e)}$`)}function Fa(e){const t=["Z"];e.offset&&t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${wt({precision:e.precision,seconds:!0})}(?:${t.join("|")})`,r=e.local?`${n}|${wt({precision:e.precision})}`:n;return new RegExp(`^${fo}T(?:${r})$`)}const Ka=/^[\s\S]{0,}$/,Ma=/^[^A-Z]*$/,La=/^[^a-z]*$/,q=x("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Rt=e=>{const t=e.value;return!_i(t)&&t.length!==void 0},Ja=x("$ZodCheckMaxLength",(e,t)=>{var n;q.init(e,t),(n=e._zod.def).when??(n.when=Rt),e._zod.check=r=>{const s=r.value,o=s.length;if((typeof s=="string"&&o>t.maximum?At(s):o)<=t.maximum)return;const a=Ct(s);r.issues.push({origin:a,code:"too_big",maximum:t.maximum,inclusive:!0,input:s,inst:e,continue:!t.abort})}}),Va=x("$ZodCheckMinLength",(e,t)=>{var n;q.init(e,t),(n=e._zod.def).when??(n.when=Rt),e._zod.check=r=>{const s=r.value,o=s.length;if((typeof s=="string"&&o>=t.minimum&&o<t.minimum*2?At(s):o)>=t.minimum)return;const a=Ct(s);r.issues.push({origin:a,code:"too_small",minimum:t.minimum,inclusive:!0,input:s,inst:e,continue:!t.abort})}}),Ha=x("$ZodCheckLengthEquals",(e,t)=>{var n;q.init(e,t),(n=e._zod.def).when??(n.when=Rt),e._zod.check=r=>{const s=r.value,o=s.length,c=typeof s=="string"&&o>=t.length&&o<=t.length*2?At(s):o;if(c===t.length)return;const a=Ct(s),l=c>t.length;r.issues.push({origin:a,...l?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),De=x("$ZodCheckStringFormat",(e,t)=>{var n,r;q.init(e,t),t.pattern?(n=e._zod).check??(n.check=s=>{t.pattern.lastIndex=0,!t.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:t.format,input:s.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Ba=x("$ZodCheckRegex",(e,t)=>{De.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Wa=x("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Ma),De.init(e,t)}),qa=x("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=La),De.init(e,t)}),Ga=x("$ZodCheckIncludes",(e,t)=>{q.init(e,t);const n=Xe(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position},}${n}`:n);t.pattern=r,e._zod.check=s=>{s.value.includes(t.includes,t.position)||s.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:s.value,inst:e,continue:!t.abort})}}),Xa=x("$ZodCheckStartsWith",(e,t)=>{q.init(e,t);const n=new RegExp(`^${Xe(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),Ya=x("$ZodCheckEndsWith",(e,t)=>{q.init(e,t);const n=new RegExp(`.*${Xe(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),Qa=x("$ZodCheckOverwrite",(e,t)=>{q.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class Da{constructor(t=[],n={}){this.content=[],this.indent=0,this.args=t,this.closed=n}indented(t){this.indent+=1;try{t(this)}finally{this.indent-=1}}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const r=t.split(`
2
2
  `).filter(c=>c),s=Math.min(...r.map(c=>c.length-c.trimStart().length)),o=r.map(c=>c.slice(s)).map(c=>" ".repeat(this.indent*2)+c);for(const c of o)this.content.push(c)}compile(){const t=Function,n=(this==null?void 0:this.content)??[""];return new t(...Object.keys(this.closed),`return function (${this.args.join(", ")}) {
3
3
  ${n.join(`
4
4
  `)}
@@ -77,4 +77,4 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
77
77
  "token_endpoint": "http://broker.internal:3000/token",
78
78
  "response_types_supported": ["code"]
79
79
  }`,className:"w-full py-2 px-3 form-input font-mono text-xs"}),i.jsx("p",{className:"text-xs text-gray-500 mt-1",children:a("server.oauth.relayMetadataHelp")})]})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs text-gray-600 mb-1",children:a("server.oauth.clientId")}),i.jsx("input",{type:"text",value:((ds=p.oauth)==null?void 0:ds.clientId)||"",onChange:d=>le("clientId",d.target.value),className:"w-full py-2 px-3 form-input",placeholder:"client id",autoComplete:"off"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-xs text-gray-600 mb-1",children:a("server.oauth.clientSecret")}),i.jsx("input",{type:"password",value:((ps=p.oauth)==null?void 0:ps.clientSecret)||"",onChange:d=>le("clientSecret",d.target.value),className:"w-full py-2 px-3 form-input",placeholder:"client secret",autoComplete:"off"})]})]})]})]}),h!=="openapi"&&i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between cursor-pointer bg-gray-50 dark:bg-gray-800 hover:bg-gray-100 p-3 rounded border border-gray-200 dark:border-gray-700",onClick:()=>ti(!at),children:[i.jsx("label",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:a("server.requestOptions")}),i.jsx("span",{className:"text-gray-500 text-sm",children:at?"▼":"▶"})]}),at&&i.jsxs("div",{className:"border border-gray-200 dark:border-gray-700 rounded-b p-4 bg-gray-50 dark:bg-gray-800 border-t-0",children:[i.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[h==="stdio"&&i.jsxs("div",{children:[i.jsx("label",{className:"block text-gray-600 text-sm font-medium mb-1",htmlFor:"maxBufferSize",children:a("server.maxBufferSize")}),i.jsx("input",{type:"number",id:"maxBufferSize",value:((fs=p.options)==null?void 0:fs.maxBufferSize)??"",onChange:d=>Ze("maxBufferSize",d.target.value===""?void 0:Number(d.target.value)),className:"w-full py-2 px-3 form-input",placeholder:"10485760",min:"1",step:"1"}),i.jsx("p",{className:"text-xs text-gray-500 mt-1",children:a("server.maxBufferSizeDescription")})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-gray-600 text-sm font-medium mb-1",htmlFor:"timeout",children:a("server.timeout")}),i.jsx("input",{type:"number",id:"timeout",value:((hs=p.options)==null?void 0:hs.timeout)||6e4,onChange:d=>Ze("timeout",parseInt(d.target.value)||6e4),className:"w-full py-2 px-3 form-input",placeholder:"30000",min:"1000",max:"300000"}),i.jsx("p",{className:"text-xs text-gray-500 mt-1",children:a("server.timeoutDescription")})]}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-gray-600 text-sm font-medium mb-1",htmlFor:"maxTotalTimeout",children:a("server.maxTotalTimeout")}),i.jsx("input",{type:"number",id:"maxTotalTimeout",value:((ms=p.options)==null?void 0:ms.maxTotalTimeout)||"",onChange:d=>Ze("maxTotalTimeout",d.target.value?parseInt(d.target.value):void 0),className:"w-full py-2 px-3 form-input",placeholder:"Optional",min:"1000"}),i.jsx("p",{className:"text-xs text-gray-500 mt-1",children:a("server.maxTotalTimeoutDescription")})]})]}),i.jsxs("div",{className:"mt-3",children:[i.jsxs("label",{className:"flex items-center",children:[i.jsx("input",{type:"checkbox",checked:((gs=p.options)==null?void 0:gs.resetTimeoutOnProgress)??!0,onChange:d=>Ze("resetTimeoutOnProgress",d.target.checked),className:"mr-2"}),i.jsx("span",{className:"text-gray-600 text-sm",children:a("server.resetTimeoutOnProgress")})]}),i.jsx("p",{className:"text-xs text-gray-500 mt-1 ml-6",children:a("server.resetTimeoutOnProgressDescription")})]})]})]}),(h==="sse"||h==="streamable-http")&&i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between cursor-pointer bg-gray-50 dark:bg-gray-800 hover:bg-gray-100 p-3 rounded border border-gray-200 dark:border-gray-700",onClick:()=>oi(!ut),children:[i.jsx("label",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:a("server.keepAlive","Connection Health")}),i.jsx("span",{className:"text-gray-500 text-sm",children:ut?"▼":"▶"})]}),ut&&i.jsxs("div",{className:"border border-gray-200 dark:border-gray-700 rounded-b p-4 bg-gray-50 dark:bg-gray-800 border-t-0",children:[i.jsxs("div",{className:"flex items-center mb-3",children:[i.jsx("input",{type:"checkbox",id:"enableKeepAlive",checked:((ys=p.keepAlive)==null?void 0:ys.enabled)||!1,onChange:d=>b(u=>({...u,keepAlive:{...u.keepAlive,enabled:d.target.checked}})),className:"mr-2"}),i.jsx("label",{htmlFor:"enableKeepAlive",className:"text-gray-600 text-sm",children:a("server.enableKeepAlive","Enable Health Checks")})]}),i.jsx("p",{className:"text-xs text-gray-500 mb-3",children:a("server.keepAliveDescription","Run periodic health checks. Disconnected remote servers always reconnect automatically with backoff.")}),i.jsxs("div",{children:[i.jsx("label",{className:"block text-gray-600 text-sm font-medium mb-1",htmlFor:"keepAliveInterval",children:a("server.keepAliveInterval","Check interval (ms)")}),i.jsx("input",{type:"number",id:"keepAliveInterval",value:((vs=p.keepAlive)==null?void 0:vs.interval)||6e4,onChange:d=>b(u=>({...u,keepAlive:{...u.keepAlive,interval:parseInt(d.target.value)||6e4}})),className:"w-full py-2 px-3 form-input",placeholder:"60000",min:"5000",max:"300000"}),i.jsx("p",{className:"text-xs text-gray-500 mt-1",children:a("server.keepAliveIntervalDescription","Time between health checks in milliseconds (default: 60000ms = 1 minute)")})]})]})]}),h!=="openapi"&&i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center mb-1",children:[i.jsx("input",{type:"checkbox",id:"perSessionClient",checked:p.perSessionClient||!1,onChange:d=>b(u=>({...u,perSessionClient:d.target.checked})),className:"mr-2"}),i.jsx("label",{htmlFor:"perSessionClient",className:"text-gray-700 dark:text-gray-300 text-sm font-medium",children:a("server.perSessionClient","Per-Session Client Isolation")})]}),i.jsx("p",{className:"text-xs text-gray-500 ml-6",children:a("server.perSessionClientDescription","Create a dedicated upstream connection per session instead of sharing one across all sessions. Enable for stateful servers like Playwright. Increases upstream connections with concurrent sessions.")})]}),h==="stdio"&&i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center mb-1",children:[i.jsx("input",{type:"checkbox",id:"startOnDemand",checked:p.startOnDemand||!1,onChange:d=>b(u=>({...u,startOnDemand:d.target.checked})),className:"mr-2"}),i.jsx("label",{htmlFor:"startOnDemand",className:"text-gray-700 dark:text-gray-300 text-sm font-medium",children:a("server.startOnDemand","Start On Demand")})]}),i.jsx("p",{className:"text-xs text-gray-500 ml-6",children:a("server.startOnDemandDescription","Skip startup connect and spawn this server only when a tool call arrives. The process is shut down automatically after the idle timeout, then restarted on the next call. Reduces persistent memory usage for rarely-used servers.")}),(p.startOnDemand||!!((bs=p.credentialTemplate)!=null&&bs.length))&&i.jsxs("div",{className:"ml-6 mt-2",children:[i.jsx("label",{htmlFor:"idleTimeoutMs",className:"block text-xs text-gray-600 dark:text-gray-400 mb-1",children:a("server.idleTimeoutMs","Idle shutdown timeout (ms)")}),i.jsx("input",{type:"number",id:"idleTimeoutMs",min:1e4,step:1e3,value:p.idleTimeoutMs??3e5,onChange:d=>b(u=>({...u,idleTimeoutMs:Number(d.target.value)})),className:"hub-input w-40 text-sm"}),i.jsx("p",{className:"text-xs text-gray-500 mt-1",children:a("server.idleTimeoutMsDescription","Shut down the process after this many milliseconds with no tool calls. Default: 300000 (5 minutes).")})]})]})]})]}),i.jsxs("div",{className:"flex justify-end mt-6",children:[i.jsx("button",{type:"button",onClick:t,className:"hub-btn mr-2",children:a("server.cancel")}),i.jsx("button",{type:"submit",className:"hub-btn primary",children:a(ue?"server.save":"server.add")})]})]})]})},sp=e=>{const t=new Set,n=/\$\{([^}]+)\}/g,r=o=>{let c;for(;(c=n.exec(o))!==null;)t.add(c[1])},s=(o,c="")=>{typeof o=="string"?r(o):Array.isArray(o)?o.forEach((a,l)=>s(a,`${c}[${l}]`)):o&&typeof o=="object"&&Object.entries(o).forEach(([a,l])=>{s(l,c?`${c}.${a}`:a)})};return s(e),Array.from(t)};export{Lt as S,rp as a,tp as c,sp as d,xi as g,np as s};
80
- //# sourceMappingURL=variableDetection-DGr_LErx.js.map
80
+ //# sourceMappingURL=variableDetection-DQg-vRNn.js.map