@1mcp/agent 0.35.0-beta.3 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/admin/assets/admin-AboutRuntimeWorkspace-DH2QC2nJ.js +1 -0
- package/build/admin/assets/admin-BackendLogsWorkspace-BKavXT9B.js +1 -0
- package/build/admin/assets/admin-InstructionTemplatesWorkspace-CvG4EPdZ.js +1 -0
- package/build/admin/assets/admin-OAuthServicesWorkspace-B8y2weAX.js +1 -0
- package/build/admin/assets/admin-PresetAuthoringWorkspace-BboJVBFl.js +1 -0
- package/build/admin/assets/admin-console-D6jyI73o.css +1 -0
- package/build/admin/assets/{admin-console-Bbil6BQU.css → admin-console-DmRyrCWD.css} +1 -1
- package/build/admin/assets/admin-console-HJH52xGP.js +3 -0
- package/build/admin/assets/admin-icons-CYGTDZA5.js +1 -0
- package/build/admin/assets/admin-mantine-xwbfu5Gd.js +53 -0
- package/build/admin/assets/admin-react-BSaWeqgv.js +8 -0
- package/build/admin/assets/admin-rolldown-runtime-Bh1tDfsg.js +1 -0
- package/build/admin/favicon.svg +4 -0
- package/build/admin/index.html +8 -2
- package/build/auth/sdkOAuthClientProvider.d.ts +4 -0
- package/build/auth/sdkOAuthClientProvider.d.ts.map +1 -1
- package/build/auth/sdkOAuthClientProvider.js +29 -0
- package/build/auth/sdkOAuthClientProvider.js.map +1 -1
- package/build/auth/sessionTypes.d.ts +2 -0
- package/build/auth/sessionTypes.d.ts.map +1 -1
- package/build/auth/sessionTypes.js.map +1 -1
- package/build/commands/inspect/inspect.d.ts +1 -0
- package/build/commands/inspect/inspect.d.ts.map +1 -1
- package/build/commands/inspect/inspect.js +4 -1
- package/build/commands/inspect/inspect.js.map +1 -1
- package/build/commands/instructions/instructions.d.ts.map +1 -1
- package/build/commands/instructions/instructions.js +56 -1
- package/build/commands/instructions/instructions.js.map +1 -1
- package/build/commands/mcp/add.js +2 -2
- package/build/commands/mcp/add.js.map +1 -1
- package/build/commands/mcp/list.js +1 -1
- package/build/commands/mcp/list.js.map +1 -1
- package/build/commands/mcp/update.js +1 -1
- package/build/commands/mcp/update.js.map +1 -1
- package/build/commands/proxy/proxy.d.ts.map +1 -1
- package/build/commands/proxy/proxy.js +2 -0
- package/build/commands/proxy/proxy.js.map +1 -1
- package/build/commands/run/run.d.ts +1 -0
- package/build/commands/run/run.d.ts.map +1 -1
- package/build/commands/run/run.js +4 -1
- package/build/commands/run/run.js.map +1 -1
- package/build/commands/serve/index.d.ts +10 -0
- package/build/commands/serve/index.d.ts.map +1 -1
- package/build/commands/serve/index.js +10 -0
- package/build/commands/serve/index.js.map +1 -1
- package/build/commands/serve/serve.d.ts +3 -0
- package/build/commands/serve/serve.d.ts.map +1 -1
- package/build/commands/serve/serve.js +20 -0
- package/build/commands/serve/serve.js.map +1 -1
- package/build/commands/serve/serveBackground.d.ts.map +1 -1
- package/build/commands/serve/serveBackground.js +2 -0
- package/build/commands/serve/serveBackground.js.map +1 -1
- package/build/commands/serve/templateContextTrust.d.ts +12 -0
- package/build/commands/serve/templateContextTrust.d.ts.map +1 -0
- package/build/commands/serve/templateContextTrust.js +23 -0
- package/build/commands/serve/templateContextTrust.js.map +1 -0
- package/build/commands/shared/apiClient.d.ts +3 -0
- package/build/commands/shared/apiClient.d.ts.map +1 -1
- package/build/commands/shared/apiClient.js +6 -0
- package/build/commands/shared/apiClient.js.map +1 -1
- package/build/commands/shared/clientSurfaceAttachment.d.ts +11 -0
- package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
- package/build/commands/shared/clientSurfaceAttachment.js +64 -6
- package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
- package/build/commands/shared/inspectApiSchemas.d.ts +8 -8
- package/build/commands/shared/serveClient.d.ts +2 -1
- package/build/commands/shared/serveClient.d.ts.map +1 -1
- package/build/commands/shared/serveClient.js +3 -1
- package/build/commands/shared/serveClient.js.map +1 -1
- package/build/commands/shared/serveTargetResolver.d.ts +4 -0
- package/build/commands/shared/serveTargetResolver.d.ts.map +1 -1
- package/build/commands/shared/serveTargetResolver.js +22 -22
- package/build/commands/shared/serveTargetResolver.js.map +1 -1
- package/build/commands/wait/wait.d.ts.map +1 -1
- package/build/commands/wait/wait.js +1 -0
- package/build/commands/wait/wait.js.map +1 -1
- package/build/config/configManager.d.ts +11 -1
- package/build/config/configManager.d.ts.map +1 -1
- package/build/config/configManager.js +13 -0
- package/build/config/configManager.js.map +1 -1
- package/build/config/configuredServerTargets.d.ts +3 -0
- package/build/config/configuredServerTargets.d.ts.map +1 -0
- package/build/config/configuredServerTargets.js +8 -0
- package/build/config/configuredServerTargets.js.map +1 -0
- package/build/config/mcpConfigManager.d.ts +3 -0
- package/build/config/mcpConfigManager.d.ts.map +1 -1
- package/build/config/mcpConfigManager.js +15 -0
- package/build/config/mcpConfigManager.js.map +1 -1
- package/build/constants/api.d.ts +1 -0
- package/build/constants/api.d.ts.map +1 -1
- package/build/constants/api.js +1 -0
- package/build/constants/api.js.map +1 -1
- package/build/constants/mcp.d.ts +1 -1
- package/build/constants/mcp.d.ts.map +1 -1
- package/build/constants/mcp.js +1 -1
- package/build/constants/mcp.js.map +1 -1
- package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
- package/build/core/capabilities/capabilityAggregator.js +33 -14
- package/build/core/capabilities/capabilityAggregator.js.map +1 -1
- package/build/core/capabilities/capabilityCatalog.d.ts +23 -1
- package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
- package/build/core/capabilities/capabilityCatalog.js +81 -7
- package/build/core/capabilities/capabilityCatalog.js.map +1 -1
- package/build/core/capabilities/capabilityPagination.d.ts +40 -0
- package/build/core/capabilities/capabilityPagination.d.ts.map +1 -0
- package/build/core/capabilities/capabilityPagination.js +287 -0
- package/build/core/capabilities/capabilityPagination.js.map +1 -0
- package/build/core/capabilities/capabilityVisibility.d.ts +2 -1
- package/build/core/capabilities/capabilityVisibility.d.ts.map +1 -1
- package/build/core/capabilities/capabilityVisibility.js +2 -1
- package/build/core/capabilities/capabilityVisibility.js.map +1 -1
- package/build/core/capabilities/configuredToolSnapshot.d.ts +12 -0
- package/build/core/capabilities/configuredToolSnapshot.d.ts.map +1 -0
- package/build/core/capabilities/configuredToolSnapshot.js +98 -0
- package/build/core/capabilities/configuredToolSnapshot.js.map +1 -0
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.js +8 -4
- package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
- package/build/core/capabilities/metaToolProvider.js +3 -3
- package/build/core/capabilities/metaToolProvider.js.map +1 -1
- package/build/core/client/clientManager.d.ts.map +1 -1
- package/build/core/client/clientManager.js +11 -6
- package/build/core/client/clientManager.js.map +1 -1
- package/build/core/client/postAuthOAuthRecovery.d.ts +6 -0
- package/build/core/client/postAuthOAuthRecovery.d.ts.map +1 -0
- package/build/core/client/postAuthOAuthRecovery.js +74 -0
- package/build/core/client/postAuthOAuthRecovery.js.map +1 -0
- package/build/core/configChangeHandler.d.ts +2 -0
- package/build/core/configChangeHandler.d.ts.map +1 -1
- package/build/core/configChangeHandler.js +38 -11
- package/build/core/configChangeHandler.js.map +1 -1
- package/build/core/context/templateContextTrust.d.ts +66 -0
- package/build/core/context/templateContextTrust.d.ts.map +1 -0
- package/build/core/context/templateContextTrust.js +184 -0
- package/build/core/context/templateContextTrust.js.map +1 -0
- package/build/core/instructions/effectiveServerInstructions.d.ts +17 -0
- package/build/core/instructions/effectiveServerInstructions.d.ts.map +1 -0
- package/build/core/instructions/effectiveServerInstructions.js +12 -0
- package/build/core/instructions/effectiveServerInstructions.js.map +1 -0
- package/build/core/instructions/instructionAggregator.d.ts +51 -2
- package/build/core/instructions/instructionAggregator.d.ts.map +1 -1
- package/build/core/instructions/instructionAggregator.js +191 -30
- package/build/core/instructions/instructionAggregator.js.map +1 -1
- package/build/core/instructions/instructionsDistribution.d.ts +53 -0
- package/build/core/instructions/instructionsDistribution.d.ts.map +1 -1
- package/build/core/instructions/instructionsDistribution.js +25 -0
- package/build/core/instructions/instructionsDistribution.js.map +1 -1
- package/build/core/instructions/templateTypes.d.ts +25 -3
- package/build/core/instructions/templateTypes.d.ts.map +1 -1
- package/build/core/instructions/templateTypes.js +45 -0
- package/build/core/instructions/templateTypes.js.map +1 -1
- package/build/core/protocol/notificationHandlers.d.ts.map +1 -1
- package/build/core/protocol/notificationHandlers.js +26 -4
- package/build/core/protocol/notificationHandlers.js.map +1 -1
- package/build/core/protocol/promptRequestHandlers.d.ts.map +1 -1
- package/build/core/protocol/promptRequestHandlers.js +20 -11
- package/build/core/protocol/promptRequestHandlers.js.map +1 -1
- package/build/core/protocol/requestHandlerUtils.d.ts +4 -0
- package/build/core/protocol/requestHandlerUtils.d.ts.map +1 -1
- package/build/core/protocol/requestHandlerUtils.js +24 -4
- package/build/core/protocol/requestHandlerUtils.js.map +1 -1
- package/build/core/protocol/resourceRequestHandlers.d.ts.map +1 -1
- package/build/core/protocol/resourceRequestHandlers.js +38 -18
- package/build/core/protocol/resourceRequestHandlers.js.map +1 -1
- package/build/core/protocol/toolRequestHandlers.d.ts.map +1 -1
- package/build/core/protocol/toolRequestHandlers.js +79 -23
- package/build/core/protocol/toolRequestHandlers.js.map +1 -1
- package/build/core/server/agentConfig.d.ts +4 -0
- package/build/core/server/agentConfig.d.ts.map +1 -1
- package/build/core/server/agentConfig.js +3 -0
- package/build/core/server/agentConfig.js.map +1 -1
- package/build/core/server/clientInstancePool.js +2 -2
- package/build/core/server/clientInstancePool.js.map +1 -1
- package/build/core/server/connectionManager.d.ts.map +1 -1
- package/build/core/server/connectionManager.js +2 -0
- package/build/core/server/connectionManager.js.map +1 -1
- package/build/core/server/disabledTools.d.ts +2 -0
- package/build/core/server/disabledTools.d.ts.map +1 -1
- package/build/core/server/disabledTools.js +7 -4
- package/build/core/server/disabledTools.js.map +1 -1
- package/build/core/server/requestContextPreparation.d.ts +2 -1
- package/build/core/server/requestContextPreparation.d.ts.map +1 -1
- package/build/core/server/requestContextPreparation.js.map +1 -1
- package/build/core/server/runtimeScopeOwnership.js +1 -1
- package/build/core/server/runtimeScopeOwnership.js.map +1 -1
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +1 -0
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/server/templateIdentity.d.ts +1 -0
- package/build/core/server/templateIdentity.d.ts.map +1 -1
- package/build/core/server/templateIdentity.js +11 -1
- package/build/core/server/templateIdentity.js.map +1 -1
- package/build/core/server/templateServerManager.d.ts +5 -1
- package/build/core/server/templateServerManager.d.ts.map +1 -1
- package/build/core/server/templateServerManager.js +27 -9
- package/build/core/server/templateServerManager.js.map +1 -1
- package/build/core/server/toolDescriptionOverrides.d.ts +9 -0
- package/build/core/server/toolDescriptionOverrides.d.ts.map +1 -0
- package/build/core/server/toolDescriptionOverrides.js +44 -0
- package/build/core/server/toolDescriptionOverrides.js.map +1 -0
- package/build/core/tools/handlers/serverManagementHandler.d.ts +15 -1
- package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +2 -0
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
- package/build/core/tools/internal/schemas/discovery.d.ts +2 -2
- package/build/core/tools/internal/schemas/index.d.ts +9 -9
- package/build/core/tools/internal/schemas/installation.d.ts +3 -3
- package/build/core/tools/internal/schemas/management.d.ts +4 -4
- package/build/core/types/server.d.ts +2 -0
- package/build/core/types/server.d.ts.map +1 -1
- package/build/core/types/server.js.map +1 -1
- package/build/core/types/transport.d.ts +43 -0
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +60 -1
- package/build/core/types/transport.js.map +1 -1
- package/build/domains/admin/adminConfiguredServerService.d.ts +131 -4
- package/build/domains/admin/adminConfiguredServerService.d.ts.map +1 -1
- package/build/domains/admin/adminConfiguredServerService.js +766 -39
- package/build/domains/admin/adminConfiguredServerService.js.map +1 -1
- package/build/domains/admin/adminDomain.d.ts +13 -0
- package/build/domains/admin/adminDomain.d.ts.map +1 -1
- package/build/domains/admin/adminDomain.js +16 -0
- package/build/domains/admin/adminDomain.js.map +1 -1
- package/build/domains/admin/adminInstructionPreviewRuntime.d.ts +7 -0
- package/build/domains/admin/adminInstructionPreviewRuntime.d.ts.map +1 -0
- package/build/domains/admin/adminInstructionPreviewRuntime.js +154 -0
- package/build/domains/admin/adminInstructionPreviewRuntime.js.map +1 -0
- package/build/domains/admin/adminInstructionTemplateService.d.ts +169 -0
- package/build/domains/admin/adminInstructionTemplateService.d.ts.map +1 -0
- package/build/domains/admin/adminInstructionTemplateService.js +181 -0
- package/build/domains/admin/adminInstructionTemplateService.js.map +1 -0
- package/build/domains/admin/configuredToolInventory.d.ts +46 -0
- package/build/domains/admin/configuredToolInventory.d.ts.map +1 -0
- package/build/domains/admin/configuredToolInventory.js +135 -0
- package/build/domains/admin/configuredToolInventory.js.map +1 -0
- package/build/domains/backend-logs/backendLogSource.d.ts.map +1 -1
- package/build/domains/backend-logs/backendLogSource.js.map +1 -1
- package/build/domains/config-change/configChange.d.ts +2 -1
- package/build/domains/config-change/configChange.d.ts.map +1 -1
- package/build/domains/config-change/configChange.js +241 -13
- package/build/domains/config-change/configChange.js.map +1 -1
- package/build/domains/config-change/types.d.ts +34 -2
- package/build/domains/config-change/types.d.ts.map +1 -1
- package/build/domains/installation/serverInstallationSourceResolution.js +2 -0
- package/build/domains/installation/serverInstallationSourceResolution.js.map +1 -1
- package/build/domains/installation/serverInstallationTypes.d.ts +8 -0
- package/build/domains/installation/serverInstallationTypes.d.ts.map +1 -1
- package/build/domains/installation/serverInstallationWorkflow.js +16 -3
- package/build/domains/installation/serverInstallationWorkflow.js.map +1 -1
- package/build/domains/instruction-template/instructionTemplateManager.d.ts +58 -0
- package/build/domains/instruction-template/instructionTemplateManager.d.ts.map +1 -0
- package/build/domains/instruction-template/instructionTemplateManager.js +167 -0
- package/build/domains/instruction-template/instructionTemplateManager.js.map +1 -0
- package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts +1 -0
- package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts.map +1 -1
- package/build/domains/runtime-targets/runtimeIdentityVerification.js +6 -5
- package/build/domains/runtime-targets/runtimeIdentityVerification.js.map +1 -1
- package/build/transport/http/middlewares/httpRequestLogger.d.ts.map +1 -1
- package/build/transport/http/middlewares/httpRequestLogger.js +3 -2
- package/build/transport/http/middlewares/httpRequestLogger.js.map +1 -1
- package/build/transport/http/routes/adminRoutes.d.ts +2 -0
- package/build/transport/http/routes/adminRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/adminRoutes.js +422 -23
- package/build/transport/http/routes/adminRoutes.js.map +1 -1
- package/build/transport/http/routes/apiRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/apiRoutes.js +2 -0
- package/build/transport/http/routes/apiRoutes.js.map +1 -1
- package/build/transport/http/routes/inspectRequestContext.d.ts +2 -0
- package/build/transport/http/routes/inspectRequestContext.d.ts.map +1 -1
- package/build/transport/http/routes/inspectRequestContext.js +15 -6
- package/build/transport/http/routes/inspectRequestContext.js.map +1 -1
- package/build/transport/http/routes/inspectRoutes.d.ts +9 -0
- package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/inspectRoutes.js +15 -10
- package/build/transport/http/routes/inspectRoutes.js.map +1 -1
- package/build/transport/http/routes/instructionsRoutes.d.ts +4 -0
- package/build/transport/http/routes/instructionsRoutes.d.ts.map +1 -0
- package/build/transport/http/routes/instructionsRoutes.js +147 -0
- package/build/transport/http/routes/instructionsRoutes.js.map +1 -0
- package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/streamableHttpRoutes.js +13 -4
- package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
- package/build/transport/http/routes/toolRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/toolRoutes.js +5 -4
- package/build/transport/http/routes/toolRoutes.js.map +1 -1
- package/build/transport/http/server.d.ts.map +1 -1
- package/build/transport/http/server.js +17 -0
- package/build/transport/http/server.js.map +1 -1
- package/build/transport/http/storage/streamableSessionRepository.d.ts.map +1 -1
- package/build/transport/http/storage/streamableSessionRepository.js +2 -0
- package/build/transport/http/storage/streamableSessionRepository.js.map +1 -1
- package/build/transport/http/streamableSessionLifecycle.d.ts +3 -1
- package/build/transport/http/streamableSessionLifecycle.d.ts.map +1 -1
- package/build/transport/http/streamableSessionLifecycle.js +23 -6
- package/build/transport/http/streamableSessionLifecycle.js.map +1 -1
- package/build/transport/http/utils/contextExtractor.d.ts +14 -16
- package/build/transport/http/utils/contextExtractor.d.ts.map +1 -1
- package/build/transport/http/utils/contextExtractor.js +124 -33
- package/build/transport/http/utils/contextExtractor.js.map +1 -1
- package/build/transport/http/utils/templateContextAuthority.d.ts +13 -0
- package/build/transport/http/utils/templateContextAuthority.d.ts.map +1 -0
- package/build/transport/http/utils/templateContextAuthority.js +121 -0
- package/build/transport/http/utils/templateContextAuthority.js.map +1 -0
- package/build/transport/stdioProxyTransport.d.ts +3 -0
- package/build/transport/stdioProxyTransport.d.ts.map +1 -1
- package/build/transport/stdioProxyTransport.js +7 -2
- package/build/transport/stdioProxyTransport.js.map +1 -1
- package/build/utils/validation/discoveredServer.d.ts +15 -0
- package/build/utils/validation/discoveredServer.d.ts.map +1 -0
- package/build/utils/validation/discoveredServer.js +2 -0
- package/build/utils/validation/discoveredServer.js.map +1 -0
- package/build/utils/validation/urlDetection.d.ts +4 -5
- package/build/utils/validation/urlDetection.d.ts.map +1 -1
- package/build/utils/validation/urlDetection.js +94 -25
- package/build/utils/validation/urlDetection.js.map +1 -1
- package/package.json +2 -2
- package/build/admin/assets/admin-console-BOl7XR0p.js +0 -61
- package/build/utils/ui/pagination.d.ts +0 -35
- package/build/utils/ui/pagination.d.ts.map +0 -1
- package/build/utils/ui/pagination.js +0 -166
- package/build/utils/ui/pagination.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{E as e,T as t,c as n,j as r,s as i,t as a}from"./admin-mantine-xwbfu5Gd.js";import{r as o}from"./admin-react-BSaWeqgv.js";var s=o();function c({state:o}){let c=o.status?.about;return c?(0,s.jsxs)(`section`,{"aria-labelledby":`about-title`,className:`operations-workspace`,children:[(0,s.jsx)(t,{className:`eyebrow`,size:`xs`,children:`Product and protocol metadata`}),(0,s.jsxs)(a,{id:`about-title`,order:2,children:[`About `,c.productName]}),c.protocolCompatible?null:(0,s.jsxs)(e,{color:`red`,title:`Admin UI protocol incompatibility`,children:[`This Admin UI build expects protocol `,c.adminUiProtocolVersion??`Unavailable`,`, but the runtime exposes`,` `,c.adminApiProtocolVersion,`.`]}),(0,s.jsxs)(n,{cols:{base:1,md:2},mt:`md`,children:[(0,s.jsx)(l,{title:`Versions`,values:[[`Runtime Version`,c.runtimeVersion],[`Admin UI Build Version`,c.adminUiBuildVersion??`Unavailable`],[`Admin API Protocol Version`,c.adminApiProtocolVersion],[`Admin UI Protocol Version`,c.adminUiProtocolVersion??`Unavailable`]]}),(0,s.jsx)(l,{title:`Runtime Scope`,values:[[`Runtime Scope ID`,c.runtime.runtimeScopeId],[`External URL`,c.runtime.externalUrl??`Unavailable`]]}),(0,s.jsx)(l,{title:`Build`,values:[[`Commit`,c.build.commit??`Unavailable`],[`Build timestamp`,c.build.timestamp??`Unavailable`]]}),(0,s.jsxs)(r,{withBorder:!0,p:`md`,children:[(0,s.jsx)(a,{order:3,children:`Project`}),(0,s.jsxs)(i,{gap:`xs`,mt:`sm`,children:[c.project.repository?(0,s.jsx)(u,{label:`Repository`,href:c.project.repository}):(0,s.jsx)(t,{children:`Repository · Unavailable`}),c.project.documentation?(0,s.jsx)(u,{label:`Documentation`,href:c.project.documentation}):(0,s.jsx)(t,{children:`Documentation · Unavailable`}),c.project.issues?(0,s.jsx)(u,{label:`Report an issue`,href:c.project.issues}):(0,s.jsx)(t,{children:`Issue reporting · Unavailable`}),(0,s.jsxs)(t,{children:[`License · `,c.project.license??`Unavailable`]})]})]})]})]}):(0,s.jsx)(e,{children:`About metadata is unavailable.`})}function l({title:e,values:n}){return(0,s.jsxs)(r,{withBorder:!0,p:`md`,children:[(0,s.jsx)(a,{order:3,children:e}),(0,s.jsx)(i,{gap:`xs`,mt:`sm`,children:n.map(([e,n])=>(0,s.jsxs)(`div`,{children:[(0,s.jsx)(t,{size:`xs`,c:`dimmed`,children:e}),(0,s.jsx)(t,{children:n})]},e))})]})}function u({label:e,href:t}){return(0,s.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`${e} (opens in a new tab)`,children:e})}export{c as AboutRuntimeWorkspace};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as e,M as t,S as n,T as r,b as i,s as a,t as o}from"./admin-mantine-xwbfu5Gd.js";import{r as s}from"./admin-react-BSaWeqgv.js";import{h as c}from"./admin-icons-CYGTDZA5.js";var l=s();function u({logs:t,configureServer:s}){let u=t.sources.find(e=>e.id===t.selectedSourceId)??null,p=t.sources.length>0;return(0,l.jsxs)(`section`,{"aria-label":`Backend logs`,className:`operations-workspace backend-logs-workspace`,children:[(0,l.jsx)(`header`,{className:`workspace-heading backend-logs-heading`,children:(0,l.jsxs)(e,{justify:`space-between`,align:`flex-end`,children:[(0,l.jsxs)(`div`,{children:[(0,l.jsx)(r,{className:`eyebrow`,size:`xs`,children:`Runtime diagnostics`}),(0,l.jsx)(o,{order:2,children:`Backend logs`})]}),(0,l.jsx)(n,{color:v(t.connection),variant:`light`,children:_(t.connection,p)})]})}),t.sources.length===0?(0,l.jsx)(`div`,{className:`backend-log-empty`,role:`status`,children:t.connection===`loading`?`Loading backend log sources...`:(0,l.jsxs)(a,{gap:`sm`,align:`center`,className:`actionable-empty-state`,children:[(0,l.jsxs)(`div`,{children:[(0,l.jsx)(r,{fw:800,children:`No backend log sources`}),(0,l.jsx)(r,{c:`dimmed`,size:`sm`,children:`Configure a stdio server to capture and inspect managed stderr here.`})]}),(0,l.jsx)(i,{component:`a`,href:`/admin/servers/new`,leftSection:(0,l.jsx)(c,{size:16}),onClick:e=>{d(e)&&(e.preventDefault(),s())},children:`Configure stdio server`})]})}):(0,l.jsxs)(`div`,{className:`backend-log-layout`,children:[(0,l.jsx)(`nav`,{"aria-label":`Backend log sources`,className:`backend-log-sources`,children:t.sources.map(e=>(0,l.jsx)(f,{source:e,active:e.id===t.selectedSourceId,unread:t.unread[e.id]??0,onSelect:()=>void t.select(e.id)},e.id))}),(0,l.jsx)(`div`,{className:`backend-log-inspector`,children:u?(0,l.jsx)(m,{source:u,logs:t}):null})]})]})}function d(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function f({source:e,active:i,unread:a,onSelect:o}){return(0,l.jsxs)(t,{"aria-label":`${e.displayName}, ${p(e)}`,"aria-current":i?`page`:void 0,className:`backend-log-source${i?` backend-log-source-active`:``}`,onClick:o,children:[(0,l.jsxs)(`span`,{className:`backend-log-source-copy`,children:[(0,l.jsx)(r,{component:`span`,fw:800,size:`sm`,children:e.displayName}),(0,l.jsx)(r,{component:`span`,c:`dimmed`,size:`xs`,children:p(e)})]}),a>0?(0,l.jsx)(n,{size:`xs`,color:`orange`,children:a>99?`99+`:a}):null]})}function p(e){return e.capture===`not-captured`?`Not captured`:e.lifecycle===`ended`?`Ended`:`Managed stderr`}function m({source:t,logs:i}){let a=i.entries;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(e,{className:`backend-log-source-header`,justify:`space-between`,wrap:`nowrap`,children:[(0,l.jsxs)(`div`,{className:`truncate`,children:[(0,l.jsx)(r,{fw:900,children:t.displayName}),(0,l.jsx)(r,{className:`backend-log-canonical truncate`,size:`xs`,children:t.canonicalName})]}),(0,l.jsx)(n,{color:t.capture===`not-captured`?`red`:t.lifecycle===`ended`?`orange`:`teal`,children:t.capture===`not-captured`?`Unavailable`:t.lifecycle===`ended`?`Ended`:`Live`})]}),t.capture===`not-captured`?(0,l.jsx)(`div`,{className:`backend-log-empty`,role:`status`,children:`This server sends stderr to an explicit destination, so the runtime does not capture it.`}):i.selectionLoading?(0,l.jsx)(`div`,{className:`backend-log-empty`,role:`status`,children:`Loading retained log history...`}):i.selectionError?(0,l.jsx)(`div`,{className:`backend-log-empty`,role:`alert`,children:i.selectionError}):a.length===0?(0,l.jsx)(`div`,{className:`backend-log-empty`,role:`status`,children:t.lifecycle===`ended`?`This source ended without retained log entries.`:`No captured stderr in retained runtime history.`}):(0,l.jsx)(`div`,{"aria-label":`${t.displayName} retained log entries`,className:`backend-log-well`,role:`log`,children:a.map(e=>(0,l.jsx)(h,{entry:e},e.sequence))})]})}function h({entry:e}){return(0,l.jsxs)(`div`,{className:`backend-log-row backend-log-row-${e.kind}`,children:[(0,l.jsxs)(`span`,{className:`backend-log-rail`,children:[(0,l.jsxs)(`span`,{children:[`#`,e.sequence]}),(0,l.jsx)(`time`,{dateTime:e.timestamp,children:g(e.timestamp)})]}),(0,l.jsx)(`span`,{className:`backend-log-content`,children:e.content})]})}function g(e){let t=new Date(e);return Number.isNaN(t.valueOf())?e:t.toLocaleTimeString([],{hour12:!1})}function _(e,t){return e===`reconnecting`?`Reconnecting`:e===`active`?t?`Live stream`:`Waiting for sources`:e===`loading`?`Connecting`:`Inactive`}function v(e){return e===`active`?`teal`:e===`reconnecting`?`orange`:`gray`}export{u as BackendLogsWorkspace};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./admin-rolldown-runtime-Bh1tDfsg.js";import{C as t,D as n,E as r,S as i,T as a,b as o,i as s,n as c,s as l,t as u,u as d,v as f,y as p}from"./admin-mantine-xwbfu5Gd.js";import{i as m,r as h}from"./admin-react-BSaWeqgv.js";import{D as g,T as _,c as v,f as y,g as b,k as x,m as S,r as C,w}from"./admin-icons-CYGTDZA5.js";var T=e(m(),1),E=h();function D({model:e,runtimeScopeId:t}){let m=e.items.find(t=>t.identity===e.selectedIdentity),[h,D]=(0,T.useState)(``),[k,N]=(0,T.useState)(`legacy`),P=m?.validation.valid!==!1,F=!!(e.activationValidation&&!e.dirty&&P);return(0,E.jsxs)(`section`,{"aria-labelledby":`instruction-templates-title`,className:`operations-workspace`,children:[(0,E.jsxs)(n,{justify:`space-between`,align:`flex-start`,className:`workspace-heading`,children:[(0,E.jsxs)(`div`,{children:[(0,E.jsxs)(a,{className:`eyebrow`,size:`xs`,children:[`Runtime Scope / `,t??`unavailable`]}),(0,E.jsx)(u,{id:`instruction-templates-title`,order:2,children:`Instruction templates`}),(0,E.jsx)(a,{c:`dimmed`,size:`sm`,children:`Author the initialization and CLI instructions used by new client surfaces.`})]}),(0,E.jsxs)(n,{gap:`xs`,children:[(0,E.jsx)(i,{color:e.selectionExplicit?`teal`:`gray`,variant:`light`,children:e.selectionExplicit?`Active: ${e.activeIdentity??`none`}`:`Legacy selection`}),(0,E.jsx)(o,{"aria-label":`Refresh instruction templates`,leftSection:(0,E.jsx)(S,{size:15}),variant:`default`,loading:e.busy,onClick:()=>void e.load(),children:`Refresh`}),(0,E.jsx)(o,{leftSection:(0,E.jsx)(w,{size:15}),onClick:e.newDraft,children:`New template`})]})]}),e.error?(0,E.jsx)(r,{color:`red`,role:`alert`,mb:`md`,children:e.error}):null,e.reloadWarning?(0,E.jsx)(r,{color:`yellow`,role:`status`,mb:`md`,title:`Runtime reload needs attention`,children:e.reloadWarning}):null,Object.values(e.renderFailures).map(e=>(0,E.jsxs)(r,{color:`yellow`,mb:`sm`,role:`status`,children:[M(e.surface),` rendering fell back to the built-in template for `,e.templateIdentity,`.`,(0,E.jsxs)(a,{component:`span`,size:`xs`,c:`dimmed`,children:[` `,e.code]})]},e.surface)),(0,E.jsxs)(`div`,{className:`instruction-workspace-grid`,children:[(0,E.jsxs)(`aside`,{className:`instruction-template-list`,"aria-label":`Instruction template library`,children:[(0,E.jsxs)(n,{justify:`space-between`,className:`instruction-pane-heading`,children:[(0,E.jsx)(a,{fw:800,children:`Template library`}),(0,E.jsx)(i,{variant:`outline`,children:e.items.length})]}),(0,E.jsxs)(l,{gap:4,className:`instruction-template-scroll`,children:[e.items.map(t=>(0,E.jsxs)(`button`,{type:`button`,className:`instruction-template-row${t.identity===e.selectedIdentity?` instruction-template-row-active`:``}`,"aria-pressed":t.identity===e.selectedIdentity,onClick:()=>e.select(t.identity),children:[(0,E.jsx)(`span`,{className:`instruction-template-identity`,children:t.identity}),(0,E.jsxs)(`span`,{className:`instruction-template-badges`,children:[t.active?(0,E.jsx)(i,{color:`teal`,children:`Active`}):null,t.protected?(0,E.jsx)(i,{variant:`outline`,children:`Built-in`}):null,(0,E.jsx)(i,{color:t.validation.valid?`teal`:`red`,variant:`light`,children:t.validation.valid?`valid`:`invalid`})]})]},t.identity)),!e.busy&&e.items.length===0?(0,E.jsx)(a,{c:`dimmed`,size:`sm`,p:`sm`,children:`No managed templates in this Runtime Scope.`}):null]}),e.selectedIdentity?(0,E.jsxs)(l,{gap:`xs`,className:`instruction-library-actions`,children:[(0,E.jsx)(c,{label:`Clone as`,placeholder:`template-copy`,value:h,onChange:e=>D(e.currentTarget.value)}),(0,E.jsx)(o,{leftSection:(0,E.jsx)(g,{size:14}),variant:`default`,disabled:!h.trim()||e.busy,onClick:()=>void e.clone(h.trim()).then(()=>D(``)),children:`Clone template`})]}):null,e.legacyAvailable?(0,E.jsxs)(l,{gap:`xs`,className:`instruction-library-actions`,children:[(0,E.jsx)(c,{label:`Import legacy as`,value:k,onChange:e=>N(e.currentTarget.value)}),(0,E.jsx)(o,{leftSection:(0,E.jsx)(_,{size:14}),variant:`default`,disabled:!k.trim()||e.busy,onClick:()=>void e.importLegacy(k.trim()),children:`Import legacy template`})]}):null]}),(0,E.jsxs)(`main`,{className:`instruction-editor-pane`,children:[(0,E.jsxs)(n,{justify:`space-between`,align:`flex-start`,className:`instruction-pane-heading`,children:[(0,E.jsxs)(`div`,{children:[(0,E.jsx)(a,{className:`eyebrow`,size:`xs`,children:e.selectedIdentity?`Managed draft`:`New managed draft`}),(0,E.jsx)(u,{order:3,children:e.selectedIdentity??`Untitled template`})]}),(0,E.jsxs)(n,{gap:`xs`,children:[m?.protected?(0,E.jsx)(i,{variant:`outline`,children:`Protected built-in`}):null,m?(0,E.jsx)(i,{color:P?`teal`:`red`,variant:`light`,children:P?`Valid draft`:`Invalid draft`}):null,(0,E.jsx)(i,{color:e.dirty?`yellow`:`gray`,variant:e.dirty?`light`:`outline`,children:e.dirty?`Unsaved changes`:`Saved`})]})]}),(0,E.jsx)(c,{label:`Template name`,value:e.draft.identity,disabled:!!e.selectedIdentity,onChange:t=>e.changeIdentity(t.currentTarget.value)}),(0,E.jsxs)(s,{value:e.surface,onChange:t=>t&&e.changeSurface(t),children:[(0,E.jsxs)(s.List,{grow:!0,children:[(0,E.jsx)(s.Tab,{value:`initialize`,children:`Initialization`}),(0,E.jsx)(s.Tab,{value:`cli`,children:`CLI`})]}),[`initialize`,`cli`].map(t=>(0,E.jsx)(s.Panel,{value:t,pt:`sm`,children:(0,E.jsx)(f,{className:`instruction-template-editor`,"aria-label":`${t===`cli`?`CLI`:`Initialization`} template`,autosize:!0,minRows:12,maxRows:24,disabled:m?.protected,value:e.draft.variants[t===`initialize`?`initialization`:`cli`],onChange:n=>e.changeVariant(t,n.currentTarget.value)})},t))]}),m&&!m.validation.valid?(0,E.jsxs)(r,{color:`red`,title:`Draft validation`,children:[m.validation.initialization.error?(0,E.jsxs)(a,{size:`sm`,children:[`Initialization: `,m.validation.initialization.error]}):null,m.validation.cli.error?(0,E.jsxs)(a,{size:`sm`,children:[`CLI: `,m.validation.cli.error]}):null]}):null,(0,E.jsxs)(n,{justify:`space-between`,className:`instruction-editor-actions`,children:[(0,E.jsx)(o,{"aria-label":`Delete template`,color:`red`,leftSection:(0,E.jsx)(C,{size:15}),variant:`light`,disabled:!e.selectedIdentity||m?.protected||e.busy,onClick:()=>void e.deleteSelected(),children:`Delete`}),(0,E.jsx)(o,{leftSection:(0,E.jsx)(y,{size:15}),disabled:!e.draft.identity.trim()||!e.dirty||m?.protected||e.busy,loading:e.busy,onClick:()=>void e.saveDraft(),children:`Save draft`})]})]}),(0,E.jsxs)(`aside`,{className:`instruction-preview-pane`,"aria-label":`Template preview`,children:[(0,E.jsxs)(n,{justify:`space-between`,className:`instruction-pane-heading`,children:[(0,E.jsxs)(`div`,{children:[(0,E.jsx)(a,{fw:800,children:`Effective preview`}),(0,E.jsxs)(a,{size:`xs`,c:`dimmed`,children:[M(e.surface),` surface`]})]}),e.previewStale?(0,E.jsx)(i,{color:`yellow`,children:`Preview is stale`}):null]}),(0,E.jsx)(d,{fullWidth:!0,"aria-label":`Preview target selection`,value:e.selection.mode,onChange:t=>e.changeSelection(j(t)),data:[{value:`all`,label:`All`},{value:`preset`,label:`Preset`},{value:`tags`,label:`Tags`},{value:`tag-filter`,label:`Filter`}]}),(0,E.jsx)(A,{selection:e.selection,onChange:e.changeSelection}),(0,E.jsx)(O,{value:e.requestContext,onChange:e.changeRequestContext}),(0,E.jsxs)(o,{leftSection:(0,E.jsx)(b,{size:15}),disabled:!e.selectedIdentity||e.dirty||e.busy,loading:e.busy,onClick:()=>void e.previewDraft(),children:[`Preview `,e.surface]}),(0,E.jsx)(`div`,{className:`instruction-preview-output`,"aria-live":`polite`,children:e.preview?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)(n,{justify:`space-between`,children:[(0,E.jsx)(i,{color:e.preview.validation?`yellow`:`teal`,variant:`light`,children:e.preview.validation?`Preview failed`:`Rendered`}),(0,E.jsx)(a,{size:`xs`,c:`dimmed`,children:`One-shot preview`})]}),(0,E.jsx)(p,{block:!0,children:e.preview.rendered??e.preview.validation?.message??`(suppressed)`}),e.preview.unresolvedTemplates.length>0?(0,E.jsxs)(r,{color:`yellow`,title:`Context required`,role:`status`,children:[`Unresolved Template Servers: `,e.preview.unresolvedTemplates.join(`, `)]}):null,(0,E.jsxs)(l,{gap:4,"aria-label":`Effective servers`,children:[(0,E.jsxs)(n,{justify:`space-between`,children:[(0,E.jsx)(a,{size:`xs`,fw:800,children:`Effective servers`}),(0,E.jsx)(i,{variant:`outline`,children:e.preview.effectiveServers.length})]}),e.preview.effectiveServers.map(e=>(0,E.jsxs)(n,{justify:`space-between`,wrap:`nowrap`,children:[(0,E.jsxs)(a,{size:`xs`,children:[(0,E.jsxs)(a,{component:`span`,c:`dimmed`,inherit:!0,children:[e.target.source,` /`]}),` `,e.target.name]}),(0,E.jsx)(i,{color:e.hasInstructions?`teal`:`gray`,variant:`light`,children:e.hasInstructions?`Instructions`:`No instructions`})]},`${e.target.source}:${e.target.name}`)),e.preview.effectiveServers.length===0?(0,E.jsx)(a,{size:`xs`,c:`dimmed`,children:`No effective servers matched this selection.`}):null]})]}):(0,E.jsxs)(l,{align:`center`,gap:4,className:`instruction-preview-empty`,children:[(0,E.jsx)(x,{size:20}),(0,E.jsx)(a,{size:`sm`,fw:700,children:`Save, then preview this surface`}),(0,E.jsx)(a,{size:`xs`,c:`dimmed`,ta:`center`,children:`Changing the draft, surface, target selection, or request context expires the preview.`})]})}),(0,E.jsx)(o,{variant:`default`,disabled:!e.selectedIdentity||e.dirty||e.busy,onClick:()=>void e.validateDraft(),children:`Validate both surfaces`}),(0,E.jsx)(o,{leftSection:(0,E.jsx)(v,{size:15}),disabled:!F||e.busy,onClick:()=>void e.activate(),children:`Activate template`})]})]})]})}function O({value:e,onChange:n}){let r=k(e),i=e.trim().length>0,a=e=>n(JSON.stringify({...r,...e}));return(0,E.jsxs)(l,{gap:`xs`,children:[(0,E.jsx)(t,{label:`Use explicit request context`,checked:i,onChange:e=>n(e.currentTarget.checked?JSON.stringify({project:{},user:{},environment:{}}):``)}),i?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(c,{label:`Project name`,value:r.project.name??``,onChange:e=>a({project:{name:e.currentTarget.value}})}),(0,E.jsx)(c,{label:`User name`,value:r.user.name??``,onChange:e=>a({user:{name:e.currentTarget.value}})}),(0,E.jsx)(c,{label:`Environment prefixes`,description:`Comma-separated`,value:(r.environment.prefixes??[]).join(`, `),onChange:e=>a({environment:{prefixes:e.currentTarget.value.split(`,`).map(e=>e.trim()).filter(Boolean)}})})]}):null]})}function k(e){if(!e.trim())return{project:{},user:{},environment:{}};try{let t=JSON.parse(e);return{project:t.project??{},user:t.user??{},environment:t.environment??{}}}catch{return{project:{},user:{},environment:{}}}}function A({selection:e,onChange:t}){return e.mode===`all`?null:e.mode===`preset`?(0,E.jsx)(c,{label:`Preset`,value:e.preset,onChange:e=>t({mode:`preset`,preset:e.currentTarget.value})}):e.mode===`tags`?(0,E.jsx)(c,{label:`Tags`,description:`Comma-separated`,value:e.tags.join(`, `),onChange:e=>t({mode:`tags`,tags:e.currentTarget.value.split(`,`).map(e=>e.trim()).filter(Boolean)})}):(0,E.jsx)(c,{label:`Tag filter`,value:e.expression,onChange:e=>t({mode:`tag-filter`,expression:e.currentTarget.value})})}function j(e){return e===`preset`?{mode:e,preset:``}:e===`tags`?{mode:e,tags:[]}:e===`tag-filter`?{mode:e,expression:``}:{mode:`all`}}function M(e){return e===`cli`?`CLI`:`Initialization`}export{D as InstructionTemplatesWorkspace};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./admin-rolldown-runtime-Bh1tDfsg.js";import{D as t,E as n,S as r,T as i,b as a,j as o,s,y as c}from"./admin-mantine-xwbfu5Gd.js";import{i as l,r as u}from"./admin-react-BSaWeqgv.js";import{O as d,h as f,p,x as m}from"./admin-icons-CYGTDZA5.js";import{t as h}from"./admin-console-HJH52xGP.js";var g=e(l(),1),_=u();function v({model:e,oauth:t,configureServer:r}){let{state:c,configuredServers:l}=e,u=c.status?.oauth.services??[],[d,p]=(0,g.useState)(null);async function m(e){try{await l.copy(`serviceId`,e.id),p(`Service id copied.`)}catch{p(`Could not copy service id. Select the value manually.`)}}return(0,_.jsxs)(`section`,{"aria-label":`OAuth services`,className:`operations-workspace`,children:[(0,_.jsx)(h,{title:`OAuth services`,description:`${u.length} reported services · runtime status ${c.status?.oauth.status??`unavailable`}`}),t.callbackFeedback?(0,_.jsx)(S,{feedback:t.callbackFeedback}):null,t.operationFeedback?(0,_.jsx)(S,{feedback:t.operationFeedback}):null,u.length===0?(0,_.jsx)(o,{className:`operations-panel`,withBorder:!0,children:(0,_.jsxs)(s,{gap:`sm`,className:`actionable-empty-state`,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(i,{fw:800,children:`No OAuth services reported`}),(0,_.jsx)(i,{c:`dimmed`,size:`sm`,children:`OAuth services appear when a configured server requires provider authorization.`})]}),(0,_.jsx)(a,{component:`a`,href:`/admin/servers/new`,leftSection:(0,_.jsx)(f,{size:16}),onClick:e=>{y(e)&&(e.preventDefault(),r())},children:`Configure server`})]})}):(0,_.jsx)(s,{gap:`sm`,children:u.map(e=>(0,_.jsx)(b,{service:e,busy:t.busy?.serviceId===e.id?t.busy.action:null,operationBlocked:t.busy!==null,onCopy:()=>void m(e),onOperate:n=>void t.operate(e.id,n)},e.id))}),d?(0,_.jsx)(n,{"aria-live":`polite`,color:d.startsWith(`Could not`)?`red`:`teal`,mt:`sm`,children:d}):null]})}function y(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function b({service:e,busy:n,operationBlocked:l,onCopy:u,onOperate:f}){let h=x(e),g=h===`authorize`?`Authorize`:`Restart`;return(0,_.jsx)(o,{component:`article`,className:`oauth-service-row`,withBorder:!0,children:(0,_.jsxs)(t,{justify:`space-between`,align:`flex-start`,wrap:`nowrap`,children:[(0,_.jsxs)(`div`,{className:`oauth-service-main`,children:[(0,_.jsxs)(t,{gap:`xs`,children:[(0,_.jsx)(i,{fw:800,children:e.displayName}),(0,_.jsx)(r,{color:e.status===`connected`?`teal`:`yellow`,variant:`light`,children:e.status})]}),(0,_.jsx)(i,{size:`xs`,c:`dimmed`,children:e.requiresOAuth?`OAuth required`:`No OAuth action required`}),e.lastError?(0,_.jsx)(i,{size:`sm`,c:`red`,children:e.lastError}):null,(0,_.jsxs)(`details`,{className:`oauth-service-identity`,children:[(0,_.jsx)(`summary`,{children:`Full service ID`}),(0,_.jsxs)(t,{gap:`xs`,wrap:`nowrap`,children:[(0,_.jsx)(c,{className:`oauth-service-id`,children:e.id}),(0,_.jsx)(a,{"aria-label":`Copy full service ID for ${e.displayName}`,size:`compact-xs`,variant:`subtle`,onClick:u,children:(0,_.jsx)(d,{size:14,"aria-hidden":`true`})})]})]})]}),h?(0,_.jsxs)(s,{gap:4,align:`flex-end`,className:`oauth-service-action`,children:[(0,_.jsx)(a,{"aria-label":`${g} ${e.displayName}`,leftSection:h===`authorize`?(0,_.jsx)(m,{size:15}):(0,_.jsx)(p,{size:15}),loading:n===h,disabled:l,onClick:()=>f(h),children:g}),(0,_.jsx)(i,{size:`xs`,c:`dimmed`,"aria-live":`polite`,children:n?n===`authorize`?`Starting authorization...`:`Restarting authorization...`:``})]}):null]})})}function x(e){return e.requiresOAuth?e.status===`awaiting_oauth`?`authorize`:`restart`:null}function S({feedback:e}){return(0,_.jsx)(n,{color:e.kind===`success`?`teal`:`red`,role:e.kind===`success`?`status`:`alert`,mb:`sm`,children:e.message})}export{v as OAuthServicesWorkspace};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./admin-rolldown-runtime-Bh1tDfsg.js";import{D as t,E as n,S as r,T as i,b as a,j as o,n as s,s as c,t as l,u,v as d}from"./admin-mantine-xwbfu5Gd.js";import{i as f,r as p}from"./admin-react-BSaWeqgv.js";import{A as m,d as h,f as g,r as _,s as v}from"./admin-icons-CYGTDZA5.js";var y=e(f(),1);function b(e,t){let n=E(e,`include`),r=E(e,`exclude`),i=[];return n.length===1&&i.push({tag:n[0]}),n.length>1&&i.push({[t===`or`?`$or`:`$and`]:n.map(e=>({tag:e}))}),i.push(...r.map(e=>({$not:{tag:e}}))),i.length===0?{}:i.length===1?i[0]:{$and:i}}function x(e,t){return e.tag?t.includes(e.tag):e.$or?e.$or.some(e=>x(e,t)):e.$and?e.$and.every(e=>x(e,t)):e.$not?!x(e.$not,t):e.$in?e.$in.some(e=>t.includes(e)):!1}function S(e){let t={},n=C(e,t);return n?{strategy:n,states:t}:null}function C(e,t){if(typeof e.tag==`string`&&Object.keys(e).length===1)return t[e.tag]=`include`,`or`;if(e.$not&&Object.keys(e).length===1&&T(e.$not))return t[T(e.$not)]=`exclude`,`or`;if(e.$or&&Object.keys(e).length===1&&w(e.$or,t))return`or`;if(e.$and&&Object.keys(e).length===1){let n=e.$and,r=n.filter(e=>e.tag||e.$or||e.$and),i=n.filter(e=>e.$not);if(n.length!==r.length+i.length)return null;let a=`and`;if(r.length>1){if(!w(r,t))return null}else{let e=r[0];if(e?.tag)t[e.tag]=`include`;else if(e?.$or&&w(e.$or,t))a=`or`;else if(e?.$and&&w(e.$and,t))a=`and`;else if(e)return null}for(let e of i){let n=e.$not?T(e.$not):null;if(!n)return null;t[n]=`exclude`}return a}return Object.keys(e).length===0?`or`:null}function w(e,t){for(let n of e){let e=T(n);if(!e)return!1;t[e]=`include`}return!0}function T(e){return typeof e.tag==`string`&&Object.keys(e).length===1?e.tag:null}function E(e,t){return Object.entries(e).filter(([,e])=>e===t).map(([e])=>e)}var D=p();function O({model:e,runtimeScopeId:r}){let{items:u,targets:f,busy:p,load:m,preview:h,save:x,delete:C}=e,[w,T]=(0,y.useState)(),[E,O]=(0,y.useState)(``),[N,F]=(0,y.useState)(``),[I,L]=(0,y.useState)(`or`),[R,z]=(0,y.useState)({}),[B,V]=(0,y.useState)(`{}`),[H,U]=(0,y.useState)(null),[W,G]=(0,y.useState)(null),[K,q]=(0,y.useState)({lossless:!0}),J=k(E),Y=I!==`advanced`||A(B),X=!!J||!Y||p;function Z(e,t=!1){T(e.name),O(t?`${e.name}-copy`:e.name),F(e.description??``);let n=S(e.tagQuery);L(n?n.strategy:`advanced`),V(JSON.stringify(e.tagQuery,null,2));let r=n?{tags:Object.keys(n.states)}:null;z(n?.states??{}),q(r?{lossless:!0,strategy:n?.strategy,tags:r.tags,states:n?.states}:{lossless:!1,reason:`This advanced query cannot be represented losslessly in structured mode.`}),U(null)}function Q(){let e;if(I===`advanced`){let t=JSON.parse(B);if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`Advanced JSON must be an object.`);e=t}else e=b(R,I);return{name:E,description:N||void 0,strategy:I,tagQuery:e}}async function $(){try{let e=await h(Q(),w);U(e),q(e.structuredConversion),G(null)}catch(e){G(e instanceof Error?e.message:`Preset preview failed.`)}}async function ee(){if(!H)return;let e=w?w===H.draft.name?`update`:`duplicate`:`create`;await x({action:e,sourceName:w,preview:H})&&(U(null),G(`Preset ${H.draft.name} saved.`))}return(0,D.jsxs)(`section`,{"aria-labelledby":`presets-title`,className:`operations-workspace`,children:[(0,D.jsxs)(t,{justify:`space-between`,align:`flex-start`,className:`workspace-heading`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(i,{className:`eyebrow`,size:`xs`,children:[`Runtime Scope / `,r??`unavailable`]}),(0,D.jsx)(l,{id:`presets-title`,order:2,children:`Presets`}),(0,D.jsx)(i,{c:`dimmed`,size:`sm`,children:`Manage the preset store owned by this running Runtime Scope.`})]}),(0,D.jsxs)(t,{children:[(0,D.jsx)(a,{variant:`default`,onClick:()=>void m(),loading:p,children:`Refresh`}),u.length>0?(0,D.jsx)(a,{onClick:()=>{T(void 0),O(``),F(``),L(`or`),z({}),V(`{}`),U(null)},children:`New preset`}):null]})]}),(0,D.jsxs)(`div`,{className:`workspace-grid preset-workspace-grid${u.length===0?` preset-workspace-grid-empty`:``}`,children:[u.length>0?(0,D.jsx)(o,{withBorder:!0,p:`md`,children:(0,D.jsx)(c,{gap:`sm`,children:u.map(e=>(0,D.jsx)(o,{withBorder:!0,p:`sm`,children:(0,D.jsxs)(t,{justify:`space-between`,align:`flex-start`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(i,{fw:800,children:e.name}),(0,D.jsx)(i,{size:`sm`,c:`dimmed`,children:e.description||`No description`}),(0,D.jsxs)(i,{size:`xs`,children:[e.strategy.toUpperCase(),` · `,e.querySummary||`empty query`,` · `,e.matchCount,` `,`matches`]})]}),(0,D.jsxs)(t,{gap:`xs`,children:[(0,D.jsx)(a,{size:`xs`,variant:`default`,onClick:()=>Z(e),children:`Edit`}),(0,D.jsx)(a,{size:`xs`,variant:`default`,onClick:()=>Z(e,!0),children:`Duplicate`}),(0,D.jsx)(a,{size:`xs`,color:`red`,variant:`light`,leftSection:(0,D.jsx)(_,{size:14}),onClick:()=>void C(e.name),children:`Delete`})]})]})},e.name))})}):null,(0,D.jsx)(o,{withBorder:!0,p:`md`,children:(0,D.jsxs)(c,{gap:`sm`,children:[(0,D.jsx)(l,{order:3,children:w?`Edit ${w}`:`Create preset`}),(0,D.jsx)(s,{label:`Preset name`,value:E,disabled:!!(w&&w===E),onChange:e=>{O(e.currentTarget.value),U(null)},error:J??void 0,description:`Use letters, numbers, hyphens, or underscores; maximum 50 characters.`}),(0,D.jsx)(s,{label:`Description`,value:N,onChange:e=>{F(e.currentTarget.value),U(null)}}),(0,D.jsxs)(t,{children:[(0,D.jsx)(a,{variant:I===`or`?`filled`:`default`,"aria-pressed":I===`or`,disabled:I===`advanced`&&!K.lossless,title:I===`advanced`&&!K.lossless?K.reason:void 0,onClick:()=>{L(`or`),K.states?z(K.states):K.tags&&z(P(K.tags)),U(null)},children:`Match any included tag`}),(0,D.jsx)(a,{variant:I===`and`?`filled`:`default`,"aria-pressed":I===`and`,disabled:I===`advanced`&&!K.lossless,title:I===`advanced`&&!K.lossless?K.reason:void 0,onClick:()=>{L(`and`),K.states?z(K.states):K.tags&&z(P(K.tags)),U(null)},children:`Match all included tags`}),(0,D.jsx)(a,{variant:I===`advanced`?`filled`:`default`,"aria-pressed":I===`advanced`,onClick:()=>{V(JSON.stringify(b(R,I===`and`?`and`:`or`),null,2)),L(`advanced`),U(null)},children:`Advanced JSON`})]}),I===`advanced`?(0,D.jsx)(d,{label:`Advanced JSON`,minRows:8,error:Y?void 0:`Advanced JSON must be a valid object before previewing matches.`,value:B,onChange:e=>{let t=e.currentTarget.value;V(t);try{let e=JSON.parse(t);if(e&&typeof e==`object`&&!Array.isArray(e)){let t=S(e);q(t?{lossless:!0,strategy:t.strategy,tags:Object.keys(t.states),states:t.states}:{lossless:!1,reason:`This advanced query cannot be represented losslessly.`})}else q({lossless:!1,reason:`Advanced JSON must be an object.`})}catch{q({lossless:!1,reason:`Advanced JSON must be valid before conversion.`})}U(null)}}):(0,D.jsx)(M,{targets:f,strategy:I,states:R,onChange:e=>{z(e),U(null)}}),u.length===0?(0,D.jsx)(n,{color:`blue`,variant:`light`,children:`Create the first preset for this Runtime Scope. An empty tag query is allowed and will be shown as a warning.`}):null,(0,D.jsx)(a,{leftSection:(0,D.jsx)(v,{size:16}),disabled:X,onClick:()=>void $(),children:`Preview matches`}),H?(0,D.jsxs)(o,{withBorder:!0,p:`sm`,children:[(0,D.jsxs)(i,{fw:800,children:[H.matchCount,` current matches`]}),H.validation.globalErrors.map(e=>(0,D.jsx)(i,{c:`red`,children:e},e)),H.validation.fieldErrors.map(e=>(0,D.jsxs)(i,{c:`red`,children:[e.field,`: `,e.message]},`${e.field}-${e.message}`)),H.validation.warnings.map(e=>(0,D.jsx)(i,{c:`yellow`,children:j(e)},e)),H.matches.map(e=>(0,D.jsxs)(i,{size:`sm`,children:[e.matched?`✓`:`–`,` `,e.name,` · `,e.enabled?`enabled`:`disabled`,` · `,e.reason]},e.name)),(0,D.jsx)(a,{mt:`sm`,disabled:H.validation.status===`invalid`,leftSection:(0,D.jsx)(g,{size:16}),onClick:()=>void ee(),children:`Confirm and save`})]}):null,W?(0,D.jsx)(n,{children:j(W)}):null]})})]})]})}function k(e){return e.trim()?e.length>50?`Preset name must be 50 characters or less.`:/^[a-zA-Z0-9_-]+$/.test(e)?null:`Use only letters, numbers, hyphens, and underscores.`:`Enter a preset name before previewing matches.`}function A(e){try{let t=JSON.parse(e);return!!(t&&typeof t==`object`&&!Array.isArray(t))}catch{return!1}}function j(e){return/name: Preset name is required/i.test(e)?`Enter a preset name before previewing matches.`:/Tag query produces no meaningful filter/i.test(e)?`No tag criteria selected; this preset will not filter servers.`:e}function M({targets:e,strategy:n,states:o,onChange:d}){let f=N(e,o),p=b(o,n),g=e.filter(e=>x(p,e.tags)),_=f.filter(({tag:e})=>(o[e]??`neutral`)!==`neutral`),v=g.filter(e=>e.enabled).length,S=g.length-v,[C,w]=(0,y.useState)(``),[T,E]=(0,y.useState)(`all`),[O,k]=(0,y.useState)({}),A=C.trim().toLocaleLowerCase(),j=f.filter(({tag:e,servers:t})=>{let n=o[e]??`neutral`,r=T===`all`||n===T,i=!A||e.toLocaleLowerCase().includes(A)||t.some(e=>e.toLocaleLowerCase().includes(A));return r&&i});function M(e,t){d({...o,[e]:t})}return(0,D.jsxs)(`section`,{className:`preset-tag-builder`,"aria-labelledby":`preset-tag-matrix-title`,children:[(0,D.jsxs)(t,{justify:`space-between`,align:`flex-start`,gap:`md`,className:`preset-tag-header`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(l,{id:`preset-tag-matrix-title`,order:4,children:`Tag matrix`}),(0,D.jsx)(i,{size:`sm`,c:`dimmed`,children:`Discover tags from configured targets. Include tags select servers; exclude tags remove them.`})]}),(0,D.jsxs)(r,{variant:`light`,color:g.length>0?`teal`:`yellow`,children:[g.length,` / `,e.length,` match`]})]}),(0,D.jsxs)(t,{align:`flex-end`,gap:`sm`,mt:`md`,className:`preset-tag-toolbar`,children:[(0,D.jsx)(s,{"aria-label":`Search tags and servers`,className:`preset-tag-search`,label:`Search tags`,leftSection:(0,D.jsx)(h,{size:16}),placeholder:`Tag or server name`,type:`search`,value:C,onChange:e=>w(e.currentTarget.value)}),(0,D.jsx)(u,{"aria-label":`Filter tags by state`,data:[{label:`All`,value:`all`},{label:`Included`,value:`include`},{label:`Excluded`,value:`exclude`}],value:T,onChange:e=>E(e)})]}),(0,D.jsxs)(c,{gap:`xs`,mt:`sm`,className:`preset-tag-list`,children:[j.map(({tag:e,servers:n,enabledCount:s,disabledCount:c,discovered:l})=>{let d=o[e]??`neutral`,f=O[e]===!0,p=f?n:n.slice(0,2);return(0,D.jsxs)(`article`,{className:`preset-tag-row preset-tag-${d}`,"data-tag":e,children:[(0,D.jsxs)(`div`,{className:`preset-tag-identity`,children:[(0,D.jsxs)(t,{gap:`xs`,wrap:`wrap`,children:[(0,D.jsx)(i,{fw:800,children:e}),l?null:(0,D.jsx)(r,{color:`gray`,size:`xs`,variant:`light`,children:`Retired`})]}),(0,D.jsxs)(t,{gap:`sm`,mt:3,className:`preset-tag-counts`,children:[(0,D.jsxs)(i,{size:`xs`,c:`dimmed`,children:[n.length,` `,n.length===1?`server`:`servers`]}),(0,D.jsxs)(i,{size:`xs`,c:`dimmed`,children:[s,` enabled`]}),(0,D.jsxs)(i,{size:`xs`,c:`dimmed`,children:[c,` disabled`]})]})]}),(0,D.jsx)(`div`,{className:`preset-tag-state`,role:`group`,"aria-label":`${e} tag state`,children:(0,D.jsx)(u,{"aria-label":`Set ${e} tag state`,fullWidth:!0,data:[{label:`Neutral`,value:`neutral`},{label:`Include`,value:`include`},{label:`Exclude`,value:`exclude`}],value:d,onChange:t=>M(e,t)})}),(0,D.jsxs)(`div`,{className:`preset-tag-servers`,children:[(0,D.jsx)(i,{size:`xs`,c:`dimmed`,component:`span`,children:p.length>0?p.join(`, `):`No current targets`}),n.length>2?(0,D.jsx)(a,{"aria-expanded":f,"aria-label":`${f?`Collapse`:`Show all`} servers tagged ${e}`,className:`preset-tag-expand`,rightSection:(0,D.jsx)(m,{className:f?`rotate-180`:void 0,size:13}),size:`compact-xs`,variant:`subtle`,onClick:()=>k(t=>({...t,[e]:!f})),children:f?`Collapse`:`+${n.length-2}`}):null]})]},e)}),j.length===0?(0,D.jsx)(i,{c:`dimmed`,className:`preset-tag-empty`,children:f.length===0?`No configured target tags are available.`:`No tags match the current search.`}):null]}),(0,D.jsxs)(`div`,{className:`preset-query-strip`,children:[(0,D.jsxs)(t,{justify:`space-between`,align:`flex-start`,gap:`md`,className:`preset-impact-header`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(i,{size:`xs`,fw:800,tt:`uppercase`,children:`Live impact`}),(0,D.jsxs)(i,{size:`sm`,mt:3,children:[(0,D.jsx)(`strong`,{children:g.length}),` of `,e.length,` targets match · `,v,` enabled ·`,` `,S,` disabled`]})]}),(0,D.jsxs)(t,{gap:6,className:`preset-active-tags`,children:[_.length===0?(0,D.jsx)(i,{c:`dimmed`,children:`No criteria selected`}):null,_.map(({tag:e})=>(0,D.jsxs)(r,{color:o[e]===`exclude`?`red`:`teal`,variant:`light`,children:[o[e]===`exclude`?`EXCLUDE`:`INCLUDE`,` `,e]},e))]})]}),(0,D.jsxs)(`details`,{className:`preset-impact-details`,children:[(0,D.jsx)(`summary`,{children:`View target evaluation`}),(0,D.jsx)(c,{gap:3,mt:`xs`,children:e.map(e=>{let t=g.some(t=>t.name===e.name);return(0,D.jsxs)(i,{size:`xs`,c:t?void 0:`dimmed`,children:[t?`Match`:`No match`,` · `,e.name,` · `,e.enabled?`enabled`:`disabled`,` ·`,` `,e.tags.join(`, `)||`untagged`]},e.name)})})]})]})]})}function N(e,t){let n=new Map;for(let t of e)for(let e of t.tags){let r=n.get(e)??{servers:[],enabledCount:0,disabledCount:0};r.servers.push(t.name),t.enabled?r.enabledCount+=1:r.disabledCount+=1,n.set(e,r)}for(let e of Object.keys(t))n.has(e)||n.set(e,{servers:[],enabledCount:0,disabledCount:0});return Array.from(n,([e,t])=>({tag:e,...t,discovered:t.servers.length>0})).sort((e,t)=>e.tag.localeCompare(t.tag))}function P(e){return Object.fromEntries(e.map(e=>[e,`include`]))}export{O as PresetAuthoringWorkspace};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--admin-ink:#1c2421;--admin-surface:#f4f6f5;--admin-panel:#fff;--admin-panel-subtle:#f8faf9;--admin-hover:#eef3f1;--admin-line:#d9dfdc;--admin-muted:#63716c;--admin-teal:#2c7f65;--admin-teal-soft:#e6f3ee;--admin-blue-soft:#eaf2fb;--admin-yellow-soft:#fff4d6;--admin-red-soft:#fdeceb;--admin-graphite:#161b1a;--admin-graphite-soft:#222927;--admin-nav-text:#b9c2be;--admin-nav-muted:#87928e;--admin-shadow:#17201d14;--admin-log:#151719;--admin-log-raised:#1d211f;--admin-log-line:#343a38;--admin-log-ink:#e7ece9}[data-mantine-color-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--admin-ink:#e7ece9;--admin-surface:#141817;--admin-panel:#1b201e;--admin-panel-subtle:#202623;--admin-hover:#29312e;--admin-line:#343d39;--admin-muted:#a2aea9;--admin-teal:#62b596;--admin-teal-soft:#183b30;--admin-blue-soft:#1b3247;--admin-yellow-soft:#3d3219;--admin-red-soft:#432625;--admin-graphite:#101312;--admin-graphite-soft:#252c29;--admin-nav-text:#c1cac6;--admin-nav-muted:#87938e;--admin-shadow:#00000047}*{box-sizing:border-box}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}body{background:var(--admin-surface);color:var(--admin-ink);margin:0;font-size:14px}.skip-link{z-index:1000;background:var(--admin-panel);color:var(--admin-ink);box-shadow:0 4px 16px var(--admin-shadow);border-radius:6px;padding:9px 12px;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.confirmation-overlay{z-index:400;background:#12181694;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.confirmation-dialog{width:min(520px,100%);max-height:calc(100dvh - 48px);padding:24px;overflow-y:auto;box-shadow:0 18px 48px #1218163d}button,input{font:inherit}.admin-app-shell{min-height:100vh}.admin-app-header{border-bottom:1px solid var(--admin-line);background:var(--admin-panel)}.admin-shell-main{background:0 0;min-width:0}.mobile-navigation-toggle{flex:none;display:none}.admin-app-navbar{background:var(--admin-graphite);color:#f3f5f2;border-right:0;flex-direction:column;justify-content:space-between;padding:22px 14px 16px;display:flex}.brand-mark{background:var(--admin-teal);color:#fff;border-radius:8px;place-items:center;width:34px;height:34px;font-weight:900;display:grid}.command-eyebrow{color:var(--admin-muted)}.runtime-live{color:#246653;background:#edf7f2;border:1px solid #cfe0d9;border-radius:6px;align-items:center;gap:7px;padding:6px 9px;display:flex}[data-mantine-color-scheme=dark] .runtime-live{background:var(--admin-teal-soft);color:#a8dcc8;border-color:#356b58}.runtime-live-dot{background:#2c9b70;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #2c9b7024}.operator-identity{min-width:0;color:var(--admin-muted);align-items:center;gap:7px;padding:0 4px 0 8px;display:flex}.nav-stack{flex:1}.nav-section-label{color:var(--admin-nav-muted);letter-spacing:.1em;text-transform:uppercase;padding:0 10px;font-size:10px;font-weight:800}.nav-item{min-height:40px;color:var(--admin-nav-text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:0 10px;text-decoration:none;display:flex}.nav-item:hover{color:#f3f5f2;background:#1d2422}.nav-item:focus-visible{outline-offset:2px;outline:2px solid #7fc8ae}.nav-item-active{background:var(--admin-graphite-soft);color:#fff;box-shadow:inset 3px 0 0 var(--admin-teal)}.nav-runtime-card{background:#1b211f;border:1px solid #313936;border-radius:8px;padding:13px 11px}.nav-runtime-card .nav-section-label{padding:0}.nav-scope{color:#7fc8ae;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.admin-auth-shell{background:var(--admin-surface);place-items:center;min-height:100dvh;padding:24px;display:grid}.auth-theme-control{position:fixed;top:18px;right:18px}.admin-auth-card{width:min(640px,100%)}.admin-console{width:min(1560px,100%);margin:0 auto;padding:26px 28px 36px}.eyebrow,.status-label{color:var(--admin-muted);letter-spacing:0;text-transform:uppercase;font-size:11px;font-weight:800}.operations-workspace{min-width:0}.overview-section-target{min-width:0;scroll-margin-top:82px}.overview-section-target:focus-visible{outline:2px solid var(--admin-teal);outline-offset:3px}.workspace-heading{padding:2px 2px 18px}.workspace-grid{grid-template-columns:minmax(0,1.25fr) minmax(420px,1fr);gap:16px;margin-top:16px;display:grid}.instruction-workspace-grid{border:1px solid var(--admin-line);background:var(--admin-panel);border-radius:8px;grid-template-columns:minmax(210px,.55fr) minmax(420px,1.15fr) minmax(300px,.8fr);min-height:640px;display:grid;overflow:hidden}.instruction-template-list,.instruction-editor-pane,.instruction-preview-pane{min-width:0;padding:16px}.instruction-template-list,.instruction-editor-pane{border-right:1px solid var(--admin-line)}.instruction-template-list{flex-direction:column;padding-inline:0;display:flex}.instruction-template-list>*{margin-inline:14px}.instruction-template-scroll{border-bottom:1px solid var(--admin-line);max-height:330px;margin:10px 0 0;padding:0 8px 10px;overflow-y:auto}.instruction-template-row{width:100%;min-height:58px;color:var(--admin-ink);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;gap:5px;padding:9px 10px;display:grid}.instruction-template-row:hover{background:var(--admin-hover)}.instruction-template-row:focus-visible{outline:2px solid var(--admin-teal);outline-offset:1px}.instruction-template-row-active{background:var(--admin-teal-soft);border-color:#acd2c3}.instruction-template-identity{text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.instruction-template-badges{flex-wrap:wrap;gap:4px;display:flex}.instruction-template-badges .mantine-Badge-root{height:18px;padding-inline:6px;font-size:9px}.instruction-library-actions{padding-top:14px}.instruction-editor-pane,.instruction-preview-pane{align-content:start;gap:14px;display:grid}.instruction-pane-heading{min-height:42px}.instruction-template-editor textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.55}.instruction-editor-actions{border-top:1px solid var(--admin-line);padding-top:12px}.instruction-preview-pane{background:var(--admin-panel-subtle)}.instruction-preview-output{border:1px solid var(--admin-line);border-left:3px solid var(--admin-teal);background:var(--admin-panel);border-radius:6px;min-height:230px;padding:12px;overflow:auto}.instruction-preview-output .mantine-Code-root{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:10px}.instruction-preview-empty{min-height:200px;color:var(--admin-muted);justify-content:center}.inventory-column,.inspector-column{align-content:start;gap:16px;min-width:0;display:grid}.server-browse-workspace,.server-task-workspace{margin-top:16px}.server-browse-workspace[hidden]{display:none}.inspector-column{position:sticky;top:84px}.operations-panel,.login-panel,.summary-counter{border-color:var(--admin-line);background:var(--admin-panel);border-radius:8px}.operations-panel{padding:16px;box-shadow:0 1px #17201d08}.runtime-status-strip{border:1px solid var(--admin-line);background:var(--admin-panel);border-radius:6px;justify-content:space-between;align-items:center;gap:16px;min-height:48px;margin-bottom:12px;padding:9px 12px;display:flex}.runtime-status-main{min-width:0}.runtime-status-facts strong{color:var(--admin-ink)}.dashboard-grid{grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:16px;margin-top:16px;display:grid}.attention-panel{border:1px solid var(--admin-line);background:var(--admin-panel);border-radius:8px;min-width:0;padding:16px}.attention-list{border-top:1px solid var(--admin-line)}.attention-row{border-bottom:1px solid var(--admin-line);min-height:58px;color:inherit;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 4px;text-decoration:none;display:grid}.attention-row:hover{background:var(--admin-hover)}.attention-row:focus-visible{outline:2px solid var(--admin-teal);outline-offset:2px}.attention-icon{background:var(--admin-yellow-soft);color:#996b14;border-radius:6px;place-items:center;width:30px;height:30px;display:grid}[data-mantine-color-scheme=dark] .attention-icon{color:#ebc468}.attention-copy{min-width:0;display:grid}.attention-clear{min-height:72px;color:var(--admin-teal);align-items:center;gap:10px;display:flex}.summary-link{color:inherit;text-decoration:none;transition:border-color .12s,transform .12s}.summary-link:hover{border-color:var(--admin-teal);transform:translateY(-1px)}.summary-link:focus-visible{outline:2px solid var(--admin-teal);outline-offset:3px}.oauth-service-row{border-color:var(--admin-line);background:var(--admin-panel);border-radius:8px;min-width:0;padding:16px}.oauth-service-main{min-width:0}.oauth-service-identity{color:var(--admin-muted);margin-top:10px;font-size:12px}.oauth-service-identity summary{cursor:pointer;width:fit-content;font-weight:700}.oauth-service-id{text-overflow:ellipsis;white-space:nowrap;max-width:min(520px,60vw);display:block;overflow:hidden}.oauth-service-action{flex:none}.login-panel{width:min(420px,100%);margin:0 auto;padding:18px}.summary-counter{border-top-width:3px;min-height:96px;padding:15px 16px}.summary-value{font-variant-numeric:tabular-nums;margin-top:7px;font-size:32px;font-weight:800;line-height:1}.summary-index{color:#17201d47;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:800}.summary-good{border-top-color:var(--admin-teal);background:var(--admin-panel)}.summary-warn{background:var(--admin-panel);border-top-color:#d49b24}.summary-bad{background:var(--admin-panel);border-top-color:#c75852}.server-filter-row{align-items:flex-end}.server-search{flex:1;min-width:min(300px,100%)}.admin-table{table-layout:fixed}.admin-table th,.admin-table td{text-overflow:ellipsis;vertical-align:top;overflow:hidden}.admin-table th:last-child,.admin-table td:last-child{width:190px}.server-table-view{min-width:0;max-width:100%;overflow:hidden}.server-mobile-list{display:none}.server-mobile-card{border:1px solid var(--admin-line);background:var(--admin-panel-subtle);border-radius:6px;gap:12px;min-width:0;padding:13px;display:grid}.server-mobile-actions,.server-state-control{min-height:44px}.server-mobile-identity{overflow-wrap:anywhere;min-width:0}.server-mobile-facts{gap:8px;margin:0;display:grid}.server-mobile-facts div{min-width:0}.server-mobile-facts dt{color:var(--admin-muted);text-transform:uppercase;font-size:11px;font-weight:800}.server-mobile-facts dd{overflow-wrap:anywhere;margin:2px 0 0}.detail-row{border:1px solid var(--admin-line);background:var(--admin-panel-subtle);border-radius:6px;min-height:46px;padding:8px 10px}.detail-row-main{flex:1;min-width:0}.detail-row-value-wrap{overflow-wrap:anywhere;word-break:break-word}.detail-row>.mantine-Button-root{flex-shrink:0}.runtime-identity-grid .detail-row{align-items:flex-start}.runtime-identity-grid .detail-row>.mantine-Button-root{min-width:44px;min-height:44px}.actionable-empty-state{align-items:flex-start;padding:12px 0 4px}.actionable-empty-state .mantine-Button-root{min-height:44px}.advanced-settings{border:1px solid var(--admin-line);background:var(--admin-panel-subtle);border-radius:6px;padding:12px}.advanced-settings>summary{cursor:pointer;min-height:44px;font-weight:800;line-height:44px}.advanced-settings>summary:focus-visible{outline:2px solid var(--admin-teal);outline-offset:2px}.secret-editor,.preview-result,.identity-details,.preview-diff-entry,.connectivity-card{background:var(--admin-panel-subtle);border-radius:8px;padding:10px}.preview-fingerprint{text-overflow:ellipsis;max-width:min(100%,280px);overflow:hidden}.connectivity-passed{background:var(--admin-teal-soft);border-color:#9dceb9}.connectivity-failed{background:var(--admin-red-soft);border-color:#f0b4b0}.connectivity-skipped{background:var(--admin-yellow-soft);border-color:#f0d58d}.preview-diff-entry{border-color:var(--admin-line)}.edit-empty-state,.edit-section,.draft-action-bar{background:var(--admin-panel-subtle);border-radius:8px;padding:10px}.edit-empty-state,.draft-action-bar{border:1px dashed var(--admin-line)}.draft-action-bar{align-items:center}.edit-section{border-color:var(--admin-line)}.record-editor{border:1px solid var(--admin-line);background:var(--admin-panel-subtle);border-radius:8px;padding:10px}.record-editor-value{flex:1;min-width:0}.server-action-busy{background:var(--admin-blue-soft)}.server-action-succeeded{background:var(--admin-teal-soft)}.server-action-failed{background:var(--admin-red-soft)}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.backend-log-layout{border:1px solid var(--admin-line);background:var(--admin-panel);border-radius:8px;grid-template-columns:minmax(210px,260px) minmax(0,1fr);min-height:min(650px,100dvh - 190px);display:grid;overflow:hidden}.backend-log-sources{border-right:1px solid var(--admin-line);background:var(--admin-panel-subtle);overflow-y:auto}.backend-log-source{border-bottom:1px solid var(--admin-line);width:100%;min-height:58px;color:var(--admin-ink);text-align:left;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;display:flex}.backend-log-source:hover{background:var(--admin-hover)}.backend-log-source:focus-visible{z-index:1;outline:2px solid var(--admin-teal);outline-offset:-2px;position:relative}.backend-log-source-active{background:var(--admin-teal-soft);box-shadow:inset 3px 0 0 var(--admin-teal)}.backend-log-source-copy{gap:1px;min-width:0;display:grid}.backend-log-source-copy>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.backend-log-inspector{background:var(--admin-log);grid-template-rows:auto minmax(0,1fr);min-width:0;display:grid}.backend-log-source-header{border-bottom:1px solid var(--admin-log-line);background:var(--admin-panel-subtle);min-height:64px;padding:11px 15px}.backend-log-canonical{color:#68736f;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.backend-log-well{min-width:0;color:var(--admin-log-ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;overflow:auto}.backend-log-row{border-bottom:1px solid #242927;grid-template-columns:154px minmax(0,1fr);min-height:30px;display:grid}.backend-log-row-repeated,.backend-log-row-suppressed{color:#f1cf83}.backend-log-rail{border-right:1px solid var(--admin-log-line);background:var(--admin-log-raised);color:#8fa099;white-space:nowrap;grid-template-columns:58px 1fr;gap:8px;padding:5px 9px;display:grid}.backend-log-content{overflow-wrap:anywhere;white-space:pre-wrap;min-width:0;padding:5px 11px}.backend-log-empty{background:var(--admin-panel);min-height:180px;color:var(--admin-muted);text-align:center;place-items:center;padding:24px;display:grid}.preset-workspace-grid-empty{grid-template-columns:minmax(0,1fr)}.login-panel .mantine-PasswordInput-visibilityToggle{min-width:44px;min-height:44px}.login-panel .mantine-PasswordInput-visibilityToggle:focus-visible{outline:2px solid var(--admin-teal);outline-offset:2px}@media (width<=1399px){.workspace-grid{grid-template-columns:1fr}.inspector-column{position:static}.dashboard-grid{grid-template-columns:1fr}.instruction-workspace-grid{grid-template-columns:minmax(0,.55fr) minmax(0,1.15fr)}.instruction-editor-pane{border-right:0}.instruction-preview-pane{border-top:1px solid var(--admin-line);grid-column:1/-1}}@media (width<=991px){.mobile-navigation-toggle{display:block}.admin-app-navbar{z-index:300;box-shadow:8px 0 24px #161b1a38}.nav-stack{align-content:start;display:grid}}@media (width<=620px){.admin-auth-shell{padding:16px}.admin-console{padding:18px 12px 28px}.command-bar{padding-inline:12px!important}.command-eyebrow,.runtime-live,.global-view-badge,.operator-name{display:none}.operator-identity{padding:0}.runtime-status-strip,.runtime-status-facts{align-items:flex-start}.runtime-status-strip{flex-direction:column}.runtime-status-facts{justify-content:space-between;width:100%}.workspace-heading{gap:12px}.workspace-heading>.mantine-Group-root{width:100%}.workspace-heading button{flex:1}.server-filter-row{align-items:stretch}.server-filter-row .mantine-SegmentedControl-root{width:100%}.server-table-view{display:none}.server-mobile-list{gap:10px;display:grid}.operations-panel{min-width:0;padding:13px}.instruction-workspace-grid{grid-template-columns:minmax(0,1fr)}.instruction-template-list,.instruction-editor-pane{border-right:0;border-bottom:1px solid var(--admin-line)}.instruction-preview-pane{border-top:0;grid-column:auto}.instruction-template-scroll{max-height:240px}.backend-log-layout{grid-template-rows:auto minmax(420px,1fr);grid-template-columns:1fr;min-height:560px}.backend-log-sources{border-right:0;border-bottom:1px solid var(--admin-line);max-width:100%;display:flex;overflow-x:auto}.backend-log-source{border-bottom:0;border-right:1px solid #e5e8e3;width:min(210px,72vw);min-width:min(210px,72vw)}.backend-log-row{grid-template-columns:122px minmax(0,1fr)}.backend-log-rail{grid-template-columns:42px 1fr;padding-inline:7px}}.preset-tag-builder{border:1px solid var(--admin-line);background:var(--admin-panel-subtle);border-radius:8px;padding:14px;container-type:inline-size}.preset-tag-list{min-width:0}.preset-tag-row{border:1px solid var(--admin-line);background:var(--admin-panel);border-left-width:4px;border-radius:6px;grid-template-columns:minmax(150px,.9fr) minmax(250px,1.1fr);grid-template-areas:"identity state""servers state";align-items:center;gap:8px 16px;min-height:92px;padding:12px;transition:border-color .12s,background .12s;display:grid}.preset-tag-neutral{border-left-color:#c7cec9}.preset-tag-include{border-color:#93c9b5;border-left-color:var(--admin-teal);background:var(--admin-teal-soft)}.preset-tag-exclude{background:var(--admin-red-soft);border-color:#e6aaa6 #e6aaa6 #e6aaa6 #c75852}.preset-tag-identity{grid-area:identity;min-width:0}.preset-tag-counts{min-width:0}.preset-tag-state{grid-area:state;justify-self:end;width:100%;max-width:310px}.preset-tag-state .mantine-SegmentedControl-root,.preset-tag-state .mantine-SegmentedControl-label{min-height:44px}.preset-tag-servers{overflow-wrap:anywhere;grid-area:servers;align-items:center;gap:4px;min-width:0;display:flex}.preset-tag-expand{flex:none}.rotate-180{transform:rotate(180deg)}.preset-tag-toolbar{flex-wrap:nowrap}.preset-tag-search{flex:1;min-width:0}.preset-tag-empty{padding:20px 4px}.preset-query-strip{border:1px solid var(--admin-line);border-left:3px solid var(--admin-teal);background:var(--admin-panel);border-radius:6px;margin-top:12px;padding:12px}.preset-impact-header{min-width:0}.preset-active-tags{justify-content:flex-end;max-width:54%}.preset-impact-details{border-top:1px solid var(--admin-line);margin-top:10px;padding-top:8px}.preset-impact-details summary{cursor:pointer;width:fit-content;color:var(--admin-muted);font-size:13px;font-weight:700}.configured-tool-table{container-type:inline-size}.configured-tool-rows{border-top:1px solid var(--admin-line)}.configured-tool-row{border-bottom:1px solid var(--admin-line);min-width:0;padding:12px 0}.configured-tool-identity,.configured-tool-description-input{flex:1;min-width:0}.configured-tool-identity .mantine-Text-root{overflow-wrap:anywhere}@container (width<=620px){.configured-tool-table>.mantine-Group-root{flex-direction:column;align-items:stretch}.configured-tool-table .mantine-SegmentedControl-root{width:100%}}@container (width<=520px){.preset-tag-header,.preset-impact-header,.preset-tag-toolbar{flex-direction:column;align-items:stretch}.preset-tag-toolbar .mantine-SegmentedControl-root{width:100%}.preset-tag-row{grid-template-columns:1fr;grid-template-areas:"identity""servers""state";align-items:stretch}.preset-tag-state{justify-self:stretch;max-width:none}.preset-tag-counts{gap:8px}.preset-active-tags{justify-content:flex-start;max-width:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
|