@1mcp/agent 0.39.5 → 0.40.0-beta.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/README.md +14 -7
- package/build/admin/assets/{admin-BackendLogsWorkspace-BKavXT9B.js → admin-BackendLogsWorkspace-DnPzXW3E.js} +1 -1
- package/build/admin/assets/{admin-InstructionTemplatesWorkspace-CvG4EPdZ.js → admin-InstructionTemplatesWorkspace-B7beKEgz.js} +1 -1
- package/build/admin/assets/{admin-OAuthServicesWorkspace-BzrCR7Bi.js → admin-OAuthServicesWorkspace-Bu74Bzt5.js} +1 -1
- package/build/admin/assets/{admin-PresetAuthoringWorkspace-BboJVBFl.js → admin-PresetAuthoringWorkspace-053b1zwU.js} +1 -1
- package/build/admin/assets/{admin-console-BpUgmlrR.js → admin-console-DVuqABnE.js} +3 -3
- package/build/admin/assets/admin-icons-wOzB38gm.js +1 -0
- package/build/admin/assets/admin-vendor-BLZ1Mauf.js +3 -0
- package/build/admin/assets/admin-vendor-BdHKHno1.js +1 -0
- package/build/admin/assets/admin-vendor-BqYiU41k.js +51 -0
- package/build/admin/assets/admin-vendor-C291Vs-N.js +3 -0
- package/build/admin/assets/admin-vendor-VzhcFgoy.js +1 -0
- package/build/admin/index.html +7 -5
- package/build/application/backendPreparationAdmission.d.ts +77 -0
- package/build/application/backendPreparationAdmission.d.ts.map +1 -0
- package/build/application/backendPreparationAdmission.js +423 -0
- package/build/application/backendPreparationAdmission.js.map +1 -0
- package/build/application/backendPreparationCoordinator.d.ts +122 -0
- package/build/application/backendPreparationCoordinator.d.ts.map +1 -0
- package/build/application/backendPreparationCoordinator.js +885 -0
- package/build/application/backendPreparationCoordinator.js.map +1 -0
- package/build/application/projectLifecycle.d.ts +49 -0
- package/build/application/projectLifecycle.d.ts.map +1 -0
- package/build/application/projectLifecycle.js +228 -0
- package/build/application/projectLifecycle.js.map +1 -0
- package/build/cli.d.ts.map +1 -1
- package/build/cli.js +39 -17
- package/build/cli.js.map +1 -1
- package/build/commands/admin/index.d.ts.map +1 -1
- package/build/commands/admin/index.js +2 -6
- package/build/commands/admin/index.js.map +1 -1
- package/build/commands/app/index.d.ts.map +1 -1
- package/build/commands/app/index.js +5 -17
- package/build/commands/app/index.js.map +1 -1
- package/build/commands/auth/index.d.ts.map +1 -1
- package/build/commands/auth/index.js +2 -7
- package/build/commands/auth/index.js.map +1 -1
- package/build/commands/bootstrap/bootstrap.d.ts +38 -0
- package/build/commands/bootstrap/bootstrap.d.ts.map +1 -0
- package/build/commands/bootstrap/bootstrap.js +265 -0
- package/build/commands/bootstrap/bootstrap.js.map +1 -0
- package/build/commands/bootstrap/bootstrapOwnership.d.ts +13 -0
- package/build/commands/bootstrap/bootstrapOwnership.d.ts.map +1 -0
- package/build/commands/bootstrap/bootstrapOwnership.js +112 -0
- package/build/commands/bootstrap/bootstrapOwnership.js.map +1 -0
- package/build/commands/bootstrap/index.d.ts +3 -0
- package/build/commands/bootstrap/index.d.ts.map +1 -0
- package/build/commands/bootstrap/index.js +22 -0
- package/build/commands/bootstrap/index.js.map +1 -0
- package/build/commands/cliSetup/index.d.ts.map +1 -1
- package/build/commands/cliSetup/index.js +3 -4
- package/build/commands/cliSetup/index.js.map +1 -1
- package/build/commands/cliSetup/installPreparationSkill.d.ts +8 -0
- package/build/commands/cliSetup/installPreparationSkill.d.ts.map +1 -0
- package/build/commands/cliSetup/installPreparationSkill.js +201 -0
- package/build/commands/cliSetup/installPreparationSkill.js.map +1 -0
- package/build/commands/cliSetup/preparationSkill.generated.d.ts +2 -0
- package/build/commands/cliSetup/preparationSkill.generated.d.ts.map +1 -0
- package/build/commands/cliSetup/preparationSkill.generated.js +8 -0
- package/build/commands/cliSetup/preparationSkill.generated.js.map +1 -0
- package/build/commands/cliSetup/setupFiles.d.ts +5 -1
- package/build/commands/cliSetup/setupFiles.d.ts.map +1 -1
- package/build/commands/cliSetup/setupFiles.js +54 -37
- package/build/commands/cliSetup/setupFiles.js.map +1 -1
- package/build/commands/inspect/index.d.ts.map +1 -1
- package/build/commands/inspect/index.js +4 -4
- package/build/commands/inspect/index.js.map +1 -1
- package/build/commands/inspect/inspect.d.ts +2 -1
- package/build/commands/inspect/inspect.d.ts.map +1 -1
- package/build/commands/inspect/inspect.js +10 -5
- package/build/commands/inspect/inspect.js.map +1 -1
- package/build/commands/inspect/inspectUtils.js +3 -0
- package/build/commands/inspect/inspectUtils.js.map +1 -1
- package/build/commands/instructions/index.d.ts.map +1 -1
- package/build/commands/instructions/index.js +8 -3
- package/build/commands/instructions/index.js.map +1 -1
- package/build/commands/instructions/instructions.d.ts +3 -1
- package/build/commands/instructions/instructions.d.ts.map +1 -1
- package/build/commands/instructions/instructions.js +24 -0
- package/build/commands/instructions/instructions.js.map +1 -1
- package/build/commands/instructions/instructionsUtils.d.ts +2 -0
- package/build/commands/instructions/instructionsUtils.d.ts.map +1 -1
- package/build/commands/instructions/instructionsUtils.js +14 -4
- package/build/commands/instructions/instructionsUtils.js.map +1 -1
- package/build/commands/mcp/index.d.ts.map +1 -1
- package/build/commands/mcp/index.js +16 -21
- package/build/commands/mcp/index.js.map +1 -1
- package/build/commands/mcp/installSource.d.ts +3 -1
- package/build/commands/mcp/installSource.d.ts.map +1 -1
- package/build/commands/mcp/installSource.js +2 -2
- package/build/commands/mcp/installSource.js.map +1 -1
- package/build/commands/mcp/knownServerSetup.d.ts +4 -0
- package/build/commands/mcp/knownServerSetup.d.ts.map +1 -0
- package/build/commands/mcp/knownServerSetup.js +102 -0
- package/build/commands/mcp/knownServerSetup.js.map +1 -0
- package/build/commands/mcp/setup.d.ts +28 -0
- package/build/commands/mcp/setup.d.ts.map +1 -0
- package/build/commands/mcp/setup.js +56 -0
- package/build/commands/mcp/setup.js.map +1 -0
- package/build/commands/mcp/tools.d.ts.map +1 -1
- package/build/commands/mcp/tools.js +3 -3
- package/build/commands/mcp/tools.js.map +1 -1
- package/build/commands/preparation/index.d.ts +3 -0
- package/build/commands/preparation/index.d.ts.map +1 -0
- package/build/commands/preparation/index.js +55 -0
- package/build/commands/preparation/index.js.map +1 -0
- package/build/commands/preparation/preparation.d.ts +18 -0
- package/build/commands/preparation/preparation.d.ts.map +1 -0
- package/build/commands/preparation/preparation.js +102 -0
- package/build/commands/preparation/preparation.js.map +1 -0
- package/build/commands/preset/index.d.ts.map +1 -1
- package/build/commands/preset/index.js +4 -51
- package/build/commands/preset/index.js.map +1 -1
- package/build/commands/project/index.d.ts +3 -0
- package/build/commands/project/index.d.ts.map +1 -0
- package/build/commands/project/index.js +40 -0
- package/build/commands/project/index.js.map +1 -0
- package/build/commands/project/project.d.ts +34 -0
- package/build/commands/project/project.d.ts.map +1 -0
- package/build/commands/project/project.js +119 -0
- package/build/commands/project/project.js.map +1 -0
- package/build/commands/proxy/index.d.ts +2 -1
- package/build/commands/proxy/index.d.ts.map +1 -1
- package/build/commands/proxy/index.js +6 -46
- package/build/commands/proxy/index.js.map +1 -1
- package/build/commands/proxy/proxy.d.ts.map +1 -1
- package/build/commands/proxy/proxy.js +7 -1
- package/build/commands/proxy/proxy.js.map +1 -1
- package/build/commands/registry/index.d.ts.map +1 -1
- package/build/commands/registry/index.js +16 -20
- package/build/commands/registry/index.js.map +1 -1
- package/build/commands/run/index.d.ts.map +1 -1
- package/build/commands/run/index.js +9 -3
- package/build/commands/run/index.js.map +1 -1
- package/build/commands/run/run.d.ts +4 -1
- package/build/commands/run/run.d.ts.map +1 -1
- package/build/commands/run/run.js +80 -14
- package/build/commands/run/run.js.map +1 -1
- package/build/commands/serve/cooperativeRuntime.d.ts.map +1 -1
- package/build/commands/serve/cooperativeRuntime.js +2 -1
- package/build/commands/serve/cooperativeRuntime.js.map +1 -1
- package/build/commands/serve/index.d.ts.map +1 -1
- package/build/commands/serve/index.js +57 -39
- package/build/commands/serve/index.js.map +1 -1
- package/build/commands/serve/serveStatus.d.ts.map +1 -1
- package/build/commands/serve/serveStatus.js +3 -0
- package/build/commands/serve/serveStatus.js.map +1 -1
- package/build/commands/serve/serveStop.d.ts.map +1 -1
- package/build/commands/serve/serveStop.js +38 -6
- package/build/commands/serve/serveStop.js.map +1 -1
- package/build/commands/shared/agentSession.d.ts +5 -0
- package/build/commands/shared/agentSession.d.ts.map +1 -0
- package/build/commands/shared/agentSession.js +75 -0
- package/build/commands/shared/agentSession.js.map +1 -0
- package/build/commands/shared/apiClient.d.ts +2 -0
- package/build/commands/shared/apiClient.d.ts.map +1 -1
- package/build/commands/shared/apiClient.js +10 -6
- package/build/commands/shared/apiClient.js.map +1 -1
- package/build/commands/shared/cliContext.d.ts +2 -1
- package/build/commands/shared/cliContext.d.ts.map +1 -1
- package/build/commands/shared/cliContext.js +2 -1
- package/build/commands/shared/cliContext.js.map +1 -1
- package/build/commands/shared/clientSurfaceAttachment.d.ts +7 -1
- package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
- package/build/commands/shared/clientSurfaceAttachment.js +221 -140
- package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
- package/build/commands/shared/inspectApiSchemas.d.ts +4 -4
- package/build/commands/shared/projectOwnerStorage.d.ts +8 -0
- package/build/commands/shared/projectOwnerStorage.d.ts.map +1 -0
- package/build/commands/shared/projectOwnerStorage.js +63 -0
- package/build/commands/shared/projectOwnerStorage.js.map +1 -0
- package/build/commands/shared/projectOwnerStore.d.ts +78 -0
- package/build/commands/shared/projectOwnerStore.d.ts.map +1 -0
- package/build/commands/shared/projectOwnerStore.js +482 -0
- package/build/commands/shared/projectOwnerStore.js.map +1 -0
- package/build/commands/shared/projectSelectionOptions.d.ts +24 -0
- package/build/commands/shared/projectSelectionOptions.d.ts.map +1 -0
- package/build/commands/shared/projectSelectionOptions.js +20 -0
- package/build/commands/shared/projectSelectionOptions.js.map +1 -0
- package/build/commands/shared/serveTargetResolver.d.ts +7 -1
- package/build/commands/shared/serveTargetResolver.d.ts.map +1 -1
- package/build/commands/shared/serveTargetResolver.js +99 -4
- package/build/commands/shared/serveTargetResolver.js.map +1 -1
- package/build/commands/target/index.d.ts.map +1 -1
- package/build/commands/target/index.js +6 -13
- package/build/commands/target/index.js.map +1 -1
- package/build/commands/wait/index.d.ts.map +1 -1
- package/build/commands/wait/index.js +3 -3
- package/build/commands/wait/index.js.map +1 -1
- package/build/commands/wait/wait.d.ts +2 -1
- package/build/commands/wait/wait.d.ts.map +1 -1
- package/build/commands/wait/wait.js.map +1 -1
- package/build/config/configLoader.d.ts.map +1 -1
- package/build/config/configLoader.js +5 -1
- package/build/config/configLoader.js.map +1 -1
- package/build/config/configManager.d.ts.map +1 -1
- package/build/config/configManager.js +5 -1
- package/build/config/configManager.js.map +1 -1
- package/build/config/projectConfigLoader.d.ts +4 -0
- package/build/config/projectConfigLoader.d.ts.map +1 -1
- package/build/config/projectConfigLoader.js +129 -28
- package/build/config/projectConfigLoader.js.map +1 -1
- package/build/config/projectConfigTypes.d.ts +7 -0
- package/build/config/projectConfigTypes.d.ts.map +1 -1
- package/build/config/projectConfigTypes.js +1 -0
- package/build/config/projectConfigTypes.js.map +1 -1
- package/build/constants/cliTimeouts.d.ts +4 -0
- package/build/constants/cliTimeouts.d.ts.map +1 -0
- package/build/constants/cliTimeouts.js +4 -0
- package/build/constants/cliTimeouts.js.map +1 -0
- 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/capabilityCatalog.d.ts +7 -0
- package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
- package/build/core/capabilities/capabilityCatalog.js +58 -2
- package/build/core/capabilities/capabilityCatalog.js.map +1 -1
- package/build/core/capabilities/capabilityPagination.d.ts +12 -4
- package/build/core/capabilities/capabilityPagination.d.ts.map +1 -1
- package/build/core/capabilities/capabilityPagination.js +15 -2
- package/build/core/capabilities/capabilityPagination.js.map +1 -1
- package/build/core/capabilities/capabilityVisibility.d.ts +3 -0
- package/build/core/capabilities/capabilityVisibility.d.ts.map +1 -1
- package/build/core/capabilities/capabilityVisibility.js.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +2 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.js +2 -2
- package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
- package/build/core/capabilities/metaToolProvider.d.ts +2 -2
- package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
- package/build/core/capabilities/metaToolProvider.js +2 -2
- package/build/core/capabilities/metaToolProvider.js.map +1 -1
- package/build/core/capabilities/runtimeCapabilityCatalog.d.ts +1 -0
- package/build/core/capabilities/runtimeCapabilityCatalog.d.ts.map +1 -1
- package/build/core/capabilities/runtimeCapabilityCatalog.js +23 -9
- package/build/core/capabilities/runtimeCapabilityCatalog.js.map +1 -1
- package/build/core/context/projectOwner.d.ts +16 -0
- package/build/core/context/projectOwner.d.ts.map +1 -0
- package/build/core/context/projectOwner.js +33 -0
- package/build/core/context/projectOwner.js.map +1 -0
- package/build/core/context/projectPreparationAuthority.d.ts +37 -0
- package/build/core/context/projectPreparationAuthority.d.ts.map +1 -0
- package/build/core/context/projectPreparationAuthority.js +113 -0
- package/build/core/context/projectPreparationAuthority.js.map +1 -0
- package/build/core/instructions/inspectionGuidance.d.ts +2 -0
- package/build/core/instructions/inspectionGuidance.d.ts.map +1 -0
- package/build/core/instructions/inspectionGuidance.js +2 -0
- package/build/core/instructions/inspectionGuidance.js.map +1 -0
- package/build/core/instructions/instructionAggregator.d.ts +1 -0
- package/build/core/instructions/instructionAggregator.d.ts.map +1 -1
- package/build/core/instructions/instructionAggregator.js +2 -2
- package/build/core/instructions/instructionAggregator.js.map +1 -1
- package/build/core/instructions/instructionsDistribution.d.ts +5 -0
- package/build/core/instructions/instructionsDistribution.d.ts.map +1 -1
- package/build/core/instructions/instructionsDistribution.js +72 -15
- package/build/core/instructions/instructionsDistribution.js.map +1 -1
- package/build/core/instructions/preparationGuidance.d.ts +3 -0
- package/build/core/instructions/preparationGuidance.d.ts.map +1 -0
- package/build/core/instructions/preparationGuidance.js +14 -0
- package/build/core/instructions/preparationGuidance.js.map +1 -0
- package/build/core/instructions/sessionGuidance.d.ts +3 -0
- package/build/core/instructions/sessionGuidance.d.ts.map +1 -0
- package/build/core/instructions/sessionGuidance.js +25 -0
- package/build/core/instructions/sessionGuidance.js.map +1 -0
- package/build/core/instructions/templateTypes.d.ts +3 -1
- package/build/core/instructions/templateTypes.d.ts.map +1 -1
- package/build/core/instructions/templateTypes.js +15 -5
- package/build/core/instructions/templateTypes.js.map +1 -1
- package/build/core/protocol/requestHandlerUtils.d.ts.map +1 -1
- package/build/core/protocol/requestHandlerUtils.js +23 -4
- package/build/core/protocol/requestHandlerUtils.js.map +1 -1
- package/build/core/server/connectionResolver.d.ts +5 -0
- package/build/core/server/connectionResolver.d.ts.map +1 -1
- package/build/core/server/connectionResolver.js +11 -0
- package/build/core/server/connectionResolver.js.map +1 -1
- package/build/core/server/pidFileManager.d.ts +20 -5
- package/build/core/server/pidFileManager.d.ts.map +1 -1
- package/build/core/server/pidFileManager.js +34 -15
- package/build/core/server/pidFileManager.js.map +1 -1
- package/build/core/server/processIdentity.d.ts +18 -0
- package/build/core/server/processIdentity.d.ts.map +1 -1
- package/build/core/server/processIdentity.js +13 -2
- package/build/core/server/processIdentity.js.map +1 -1
- package/build/core/server/runtimeLaunchIpc.d.ts +167 -2
- package/build/core/server/runtimeLaunchIpc.d.ts.map +1 -1
- package/build/core/server/runtimeOwnershipIdentityRepair.d.ts +21 -0
- package/build/core/server/runtimeOwnershipIdentityRepair.d.ts.map +1 -0
- package/build/core/server/runtimeOwnershipIdentityRepair.js +158 -0
- package/build/core/server/runtimeOwnershipIdentityRepair.js.map +1 -0
- package/build/core/server/runtimeReplacementConfig.d.ts +167 -2
- package/build/core/server/runtimeReplacementConfig.d.ts.map +1 -1
- package/build/core/server/runtimeScopeOwnership.d.ts +21 -2
- package/build/core/server/runtimeScopeOwnership.d.ts.map +1 -1
- package/build/core/server/runtimeScopeOwnership.js +145 -16
- package/build/core/server/runtimeScopeOwnership.js.map +1 -1
- package/build/core/tools/handlers/serverManagementHandler.d.ts +413 -7
- package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +59 -1
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
- package/build/core/tools/internal/schemas/index.d.ts +1 -1
- package/build/core/tools/internal/schemas/management.d.ts +1 -1
- package/build/core/types/server.d.ts +7 -1
- package/build/core/types/server.d.ts.map +1 -1
- package/build/core/types/transport.d.ts +249 -3
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +27 -0
- package/build/core/types/transport.js.map +1 -1
- package/build/domains/admin/adminInstructionPreviewRuntime.d.ts.map +1 -1
- package/build/domains/admin/adminInstructionPreviewRuntime.js +4 -1
- package/build/domains/admin/adminInstructionPreviewRuntime.js.map +1 -1
- package/build/domains/backend-preparation/adapterRegistry.d.ts +8 -0
- package/build/domains/backend-preparation/adapterRegistry.d.ts.map +1 -0
- package/build/domains/backend-preparation/adapterRegistry.js +15 -0
- package/build/domains/backend-preparation/adapterRegistry.js.map +1 -0
- package/build/domains/backend-preparation/builtInIntegrationDefinitions.d.ts +4 -0
- package/build/domains/backend-preparation/builtInIntegrationDefinitions.d.ts.map +1 -0
- package/build/domains/backend-preparation/builtInIntegrationDefinitions.js +3 -0
- package/build/domains/backend-preparation/builtInIntegrationDefinitions.js.map +1 -0
- package/build/domains/backend-preparation/configuredCommandAdapter.d.ts +88 -0
- package/build/domains/backend-preparation/configuredCommandAdapter.d.ts.map +1 -0
- package/build/domains/backend-preparation/configuredCommandAdapter.js +196 -0
- package/build/domains/backend-preparation/configuredCommandAdapter.js.map +1 -0
- package/build/domains/backend-preparation/configuredCommandProcess.d.ts +27 -0
- package/build/domains/backend-preparation/configuredCommandProcess.d.ts.map +1 -0
- package/build/domains/backend-preparation/configuredCommandProcess.js +183 -0
- package/build/domains/backend-preparation/configuredCommandProcess.js.map +1 -0
- package/build/domains/backend-preparation/contracts.d.ts +131 -0
- package/build/domains/backend-preparation/contracts.d.ts.map +1 -0
- package/build/domains/backend-preparation/contracts.js +2 -0
- package/build/domains/backend-preparation/contracts.js.map +1 -0
- package/build/domains/backend-preparation/integrationDefinitions.d.ts +171 -0
- package/build/domains/backend-preparation/integrationDefinitions.d.ts.map +1 -0
- package/build/domains/backend-preparation/integrationDefinitions.js +246 -0
- package/build/domains/backend-preparation/integrationDefinitions.js.map +1 -0
- package/build/domains/backend-preparation/policy.d.ts +50 -0
- package/build/domains/backend-preparation/policy.d.ts.map +1 -0
- package/build/domains/backend-preparation/policy.js +58 -0
- package/build/domains/backend-preparation/policy.js.map +1 -0
- package/build/domains/backend-preparation/scheduler.d.ts +18 -0
- package/build/domains/backend-preparation/scheduler.d.ts.map +1 -0
- package/build/domains/backend-preparation/scheduler.js +62 -0
- package/build/domains/backend-preparation/scheduler.js.map +1 -0
- package/build/domains/backend-preparation/service.d.ts +67 -0
- package/build/domains/backend-preparation/service.d.ts.map +1 -0
- package/build/domains/backend-preparation/service.js +709 -0
- package/build/domains/backend-preparation/service.js.map +1 -0
- package/build/domains/config-change/configChange.js +5 -5
- package/build/domains/config-change/configChange.js.map +1 -1
- package/build/domains/installation/knownServerCatalog.d.ts +14 -0
- package/build/domains/installation/knownServerCatalog.d.ts.map +1 -0
- package/build/domains/installation/knownServerCatalog.js +56 -0
- package/build/domains/installation/knownServerCatalog.js.map +1 -0
- package/build/domains/installation/knownServerSetup.d.ts +21 -0
- package/build/domains/installation/knownServerSetup.d.ts.map +1 -0
- package/build/domains/installation/knownServerSetup.js +330 -0
- package/build/domains/installation/knownServerSetup.js.map +1 -0
- package/build/domains/installation/knownServerSetupTypes.d.ts +34 -0
- package/build/domains/installation/knownServerSetupTypes.d.ts.map +1 -0
- package/build/domains/installation/knownServerSetupTypes.js +2 -0
- package/build/domains/installation/knownServerSetupTypes.js.map +1 -0
- package/build/domains/project-selection/projectBindingScope.d.ts +7 -0
- package/build/domains/project-selection/projectBindingScope.d.ts.map +1 -0
- package/build/domains/project-selection/projectBindingScope.js +9 -0
- package/build/domains/project-selection/projectBindingScope.js.map +1 -0
- package/build/domains/project-selection/projectPolicy.d.ts +11 -0
- package/build/domains/project-selection/projectPolicy.d.ts.map +1 -0
- package/build/domains/project-selection/projectPolicy.js +104 -0
- package/build/domains/project-selection/projectPolicy.js.map +1 -0
- package/build/domains/project-selection/projectSelection.d.ts +30 -0
- package/build/domains/project-selection/projectSelection.d.ts.map +1 -0
- package/build/domains/project-selection/projectSelection.js +124 -0
- package/build/domains/project-selection/projectSelection.js.map +1 -0
- package/build/globalOptions.d.ts +9 -0
- package/build/globalOptions.d.ts.map +1 -1
- package/build/globalOptions.js +13 -11
- package/build/globalOptions.js.map +1 -1
- package/build/observability/events/registry.d.ts +67 -1
- package/build/observability/events/registry.d.ts.map +1 -1
- package/build/observability/events/registry.js +67 -1
- package/build/observability/events/registry.js.map +1 -1
- package/build/observability/privacy/fields.d.ts +4 -0
- package/build/observability/privacy/fields.d.ts.map +1 -1
- package/build/observability/privacy/fields.js +4 -0
- package/build/observability/privacy/fields.js.map +1 -1
- package/build/sdk/legacy/client/runtime/backendDispatchLifetime.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/backendDispatchLifetime.js +8 -2
- package/build/sdk/legacy/client/runtime/backendDispatchLifetime.js.map +1 -1
- package/build/sdk/legacy/client/runtime/legacyTransport.d.ts +2 -0
- package/build/sdk/legacy/client/runtime/legacyTransport.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/serveClient.d.ts +6 -1
- package/build/sdk/legacy/client/runtime/serveClient.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/serveClient.js +16 -5
- package/build/sdk/legacy/client/runtime/serveClient.js.map +1 -1
- package/build/sdk/legacy/commands/serve.d.ts.map +1 -1
- package/build/sdk/legacy/commands/serve.js +73 -4
- package/build/sdk/legacy/commands/serve.js.map +1 -1
- package/build/sdk/legacy/server/protocol/projectAdmission.d.ts +4 -0
- package/build/sdk/legacy/server/protocol/projectAdmission.d.ts.map +1 -0
- package/build/sdk/legacy/server/protocol/projectAdmission.js +24 -0
- package/build/sdk/legacy/server/protocol/projectAdmission.js.map +1 -0
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.js +6 -3
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.js.map +1 -1
- package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js +6 -4
- package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js.map +1 -1
- package/build/sdk/legacy/server/protocol/resourceSubscriptions.d.ts +1 -1
- package/build/sdk/legacy/server/protocol/resourceSubscriptions.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/resourceSubscriptions.js +193 -41
- package/build/sdk/legacy/server/protocol/resourceSubscriptions.js.map +1 -1
- package/build/sdk/legacy/server/protocol/toolRequestHandlers.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/toolRequestHandlers.js +93 -17
- package/build/sdk/legacy/server/protocol/toolRequestHandlers.js.map +1 -1
- package/build/sdk/legacy/server/runtime/clientInstancePool.d.ts +12 -0
- package/build/sdk/legacy/server/runtime/clientInstancePool.d.ts.map +1 -1
- package/build/sdk/legacy/server/runtime/clientInstancePool.js +117 -4
- package/build/sdk/legacy/server/runtime/clientInstancePool.js.map +1 -1
- package/build/sdk/legacy/server/runtime/connectionManager.d.ts.map +1 -1
- package/build/sdk/legacy/server/runtime/connectionManager.js +2 -0
- package/build/sdk/legacy/server/runtime/connectionManager.js.map +1 -1
- package/build/sdk/legacy/server/runtime/requestContextPreparation.d.ts +19 -1
- package/build/sdk/legacy/server/runtime/requestContextPreparation.d.ts.map +1 -1
- package/build/sdk/legacy/server/runtime/requestContextPreparation.js +40 -7
- package/build/sdk/legacy/server/runtime/requestContextPreparation.js.map +1 -1
- package/build/sdk/legacy/server/runtime/serverManager.d.ts +6 -2
- package/build/sdk/legacy/server/runtime/serverManager.d.ts.map +1 -1
- package/build/sdk/legacy/server/runtime/serverManager.js +85 -17
- package/build/sdk/legacy/server/runtime/serverManager.js.map +1 -1
- package/build/sdk/legacy/server/runtime/templateServerManager.d.ts +26 -4
- package/build/sdk/legacy/server/runtime/templateServerManager.d.ts.map +1 -1
- package/build/sdk/legacy/server/runtime/templateServerManager.js +260 -14
- package/build/sdk/legacy/server/runtime/templateServerManager.js.map +1 -1
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js +1 -1
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js.map +1 -1
- package/build/sdk/legacy/transport/http/streamableSessionLifecycle.d.ts.map +1 -1
- package/build/sdk/legacy/transport/http/streamableSessionLifecycle.js +14 -3
- package/build/sdk/legacy/transport/http/streamableSessionLifecycle.js.map +1 -1
- package/build/sdk/legacy/transport/stdioProxyTransport.d.ts +1 -0
- package/build/sdk/legacy/transport/stdioProxyTransport.d.ts.map +1 -1
- package/build/sdk/legacy/transport/stdioProxyTransport.js +2 -0
- package/build/sdk/legacy/transport/stdioProxyTransport.js.map +1 -1
- package/build/template/handlebarsTemplateRenderer.d.ts.map +1 -1
- package/build/template/handlebarsTemplateRenderer.js +3 -0
- package/build/template/handlebarsTemplateRenderer.js.map +1 -1
- package/build/transport/http/middlewares/projectAdmission.d.ts +5 -0
- package/build/transport/http/middlewares/projectAdmission.d.ts.map +1 -0
- package/build/transport/http/middlewares/projectAdmission.js +33 -0
- package/build/transport/http/middlewares/projectAdmission.js.map +1 -0
- package/build/transport/http/routes/apiRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/apiRoutes.js +4 -0
- package/build/transport/http/routes/apiRoutes.js.map +1 -1
- package/build/transport/http/routes/inspectHelpers.d.ts +1 -0
- package/build/transport/http/routes/inspectHelpers.d.ts.map +1 -1
- package/build/transport/http/routes/inspectHelpers.js +2 -0
- package/build/transport/http/routes/inspectHelpers.js.map +1 -1
- package/build/transport/http/routes/inspectRequestContext.d.ts +5 -2
- package/build/transport/http/routes/inspectRequestContext.d.ts.map +1 -1
- package/build/transport/http/routes/inspectRequestContext.js +41 -19
- package/build/transport/http/routes/inspectRequestContext.js.map +1 -1
- package/build/transport/http/routes/inspectRoutes.d.ts +11 -2
- package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/inspectRoutes.js +94 -24
- package/build/transport/http/routes/inspectRoutes.js.map +1 -1
- package/build/transport/http/routes/instructionsRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/instructionsRoutes.js +20 -8
- package/build/transport/http/routes/instructionsRoutes.js.map +1 -1
- package/build/transport/http/routes/modernHttpRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/modernHttpRoutes.js +96 -13
- package/build/transport/http/routes/modernHttpRoutes.js.map +1 -1
- package/build/transport/http/routes/modernInteractionBinding.d.ts.map +1 -1
- package/build/transport/http/routes/modernInteractionBinding.js +3 -9
- package/build/transport/http/routes/modernInteractionBinding.js.map +1 -1
- package/build/transport/http/routes/modernSubscriptions.d.ts.map +1 -1
- package/build/transport/http/routes/modernSubscriptions.js +7 -5
- package/build/transport/http/routes/modernSubscriptions.js.map +1 -1
- package/build/transport/http/routes/modernTemplateContext.d.ts +2 -1
- package/build/transport/http/routes/modernTemplateContext.d.ts.map +1 -1
- package/build/transport/http/routes/modernTemplateContext.js +14 -3
- package/build/transport/http/routes/modernTemplateContext.js.map +1 -1
- package/build/transport/http/routes/modernToolHeaderRegistry.d.ts.map +1 -1
- package/build/transport/http/routes/modernToolHeaderRegistry.js +2 -2
- package/build/transport/http/routes/modernToolHeaderRegistry.js.map +1 -1
- package/build/transport/http/routes/preparationRoutes.d.ts +26 -0
- package/build/transport/http/routes/preparationRoutes.d.ts.map +1 -0
- package/build/transport/http/routes/preparationRoutes.js +132 -0
- package/build/transport/http/routes/preparationRoutes.js.map +1 -0
- package/build/transport/http/routes/projectRoutes.d.ts +18 -0
- package/build/transport/http/routes/projectRoutes.d.ts.map +1 -0
- package/build/transport/http/routes/projectRoutes.js +159 -0
- package/build/transport/http/routes/projectRoutes.js.map +1 -0
- package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/streamableHttpRoutes.js +24 -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 +163 -20
- package/build/transport/http/routes/toolRoutes.js.map +1 -1
- package/build/transport/http/utils/contextExtractor.d.ts +2 -0
- package/build/transport/http/utils/contextExtractor.d.ts.map +1 -1
- package/build/transport/http/utils/contextExtractor.js +11 -0
- package/build/transport/http/utils/contextExtractor.js.map +1 -1
- package/build/transport/http/utils/templateContextAuthority.d.ts +2 -0
- package/build/transport/http/utils/templateContextAuthority.d.ts.map +1 -1
- package/build/transport/http/utils/templateContextAuthority.js +23 -2
- package/build/transport/http/utils/templateContextAuthority.js.map +1 -1
- package/build/types/context.d.ts +13 -0
- package/build/types/context.d.ts.map +1 -1
- package/build/types/context.js.map +1 -1
- package/build/utils/cli/help.d.ts +7 -0
- package/build/utils/cli/help.d.ts.map +1 -0
- package/build/utils/cli/help.js +57 -0
- package/build/utils/cli/help.js.map +1 -0
- package/package.json +20 -22
- package/build/admin/assets/admin-icons-CYGTDZA5.js +0 -1
- package/build/admin/assets/admin-vendor-62eL-qdH.js +0 -1
- package/build/admin/assets/admin-vendor-BbMrl7MK.js +0 -3
- package/build/admin/assets/admin-vendor-DpjVwd81.js +0 -62
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ Most MCP setups eventually hit two kinds of sprawl:
|
|
|
35
35
|
|
|
36
36
|
This page is optimized for AI agent users. The 5-minute outcome is simple: start a real `1mcp serve` runtime, connect your agent with `cli-setup`, then verify the `instructions -> inspect -> run` workflow.
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
**You — setup:** install 1MCP, add one upstream server, and start the runtime:
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
41
|
npm install -g @1mcp/agent
|
|
@@ -43,7 +43,7 @@ npm install -g @1mcp/agent
|
|
|
43
43
|
1mcp serve
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
**You — client setup:** in a second shell, connect your agent to CLI mode:
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
49
|
1mcp cli-setup --codex
|
|
@@ -51,13 +51,10 @@ In a second shell, connect your agent to CLI mode:
|
|
|
51
51
|
1mcp cli-setup --claude --scope repo --repo-root .
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
**AI agent — after startup:** follow this workflow, skipping `instructions` if hooks already delivered the current instructions. Keep the runtime above running; you do not need to repeat these agent commands manually. Verify that startup delivers guidance and establishes session ownership. With a named or implicitly discovered local runtime, supported Codex sessions resolve their owner and assigned project automatically. Claude and hosts without automatic owner lookup add their own bootstrap `--project-owner <own-file>` to the commands below; each worker uses its own credential.
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
|
-
#
|
|
58
|
-
1mcp serve
|
|
59
|
-
|
|
60
|
-
# shell 2
|
|
57
|
+
# Only if current target guidance is missing or needs refreshing:
|
|
61
58
|
1mcp instructions
|
|
62
59
|
1mcp inspect context7
|
|
63
60
|
1mcp inspect context7/query-docs
|
|
@@ -68,6 +65,16 @@ If you want the full walkthrough (with success criteria and off-ramps), use the
|
|
|
68
65
|
|
|
69
66
|
For a given agent, choose one mode only. If you switch that agent to CLI mode, remove its old direct MCP configuration first.
|
|
70
67
|
|
|
68
|
+
## Work Across Projects and Worktrees
|
|
69
|
+
|
|
70
|
+
Use one local runtime across repositories and Git worktrees. After configuring an installed backend with `mcp setup`, the agent selects a checkout on each call:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
1mcp inspect codegraph --project /absolute/checkout
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
For the session’s assigned checkout, omit `--project`; explicit overrides do not change that default. Follow [Working Across Projects and Worktrees](https://docs.1mcp.app/guide/worktrees-and-cross-project-sessions) ([中文](https://docs.1mcp.app/zh/guide/worktrees-and-cross-project-sessions)) for setup, project sets, independent workers, optional preparation, and safe cleanup.
|
|
77
|
+
|
|
71
78
|
## Why CLI Mode Exists
|
|
72
79
|
|
|
73
80
|
CLI mode is the primary workflow for agent-style sessions. It keeps MCP as the backend protocol but narrows what the agent sees at each step:
|
|
@@ -1 +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-
|
|
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-wOzB38gm.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};
|
|
@@ -1 +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};
|
|
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-wOzB38gm.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};
|
|
@@ -1 +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-
|
|
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-wOzB38gm.js";import{n as h,t as g}from"./admin-console-DVuqABnE.js";var _=e(l(),1),v=u();function y({model:e,oauth:t,configureServer:r}){let{state:c,configuredServers:l}=e,u=c.status?.oauth.services??[],[d,p]=(0,_.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,v.jsxs)(`section`,{"aria-label":`OAuth services`,className:`operations-workspace`,children:[(0,v.jsx)(g,{title:`OAuth services`,description:`${u.length} reported services · runtime status ${c.status?.oauth.status??`unavailable`}`}),t.callbackFeedback?(0,v.jsx)(C,{feedback:t.callbackFeedback}):null,t.operationFeedback?(0,v.jsx)(C,{feedback:t.operationFeedback}):null,u.length===0?(0,v.jsx)(o,{className:`operations-panel`,withBorder:!0,children:(0,v.jsxs)(s,{gap:`sm`,className:`actionable-empty-state`,children:[(0,v.jsxs)(`div`,{children:[(0,v.jsx)(i,{fw:800,children:`No OAuth services reported`}),(0,v.jsx)(i,{c:`dimmed`,size:`sm`,children:`OAuth services appear when a configured server requires provider authorization.`})]}),(0,v.jsx)(a,{component:`a`,href:`/admin/servers/new`,leftSection:(0,v.jsx)(f,{size:16}),onClick:e=>{b(e)&&(e.preventDefault(),r())},children:`Configure server`})]})}):(0,v.jsx)(s,{gap:`sm`,children:u.map(e=>(0,v.jsx)(x,{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,v.jsx)(n,{"aria-live":`polite`,color:d.startsWith(`Could not`)?`red`:`teal`,mt:`sm`,children:d}):null]})}function b(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function x({service:e,busy:n,operationBlocked:l,onCopy:u,onOperate:f}){let g=S(e),_=g===`authorize`?`Authorize`:`Restart`;return(0,v.jsx)(o,{component:`article`,className:`oauth-service-row`,withBorder:!0,children:(0,v.jsxs)(t,{justify:`space-between`,align:`flex-start`,wrap:`nowrap`,children:[(0,v.jsxs)(`div`,{className:`oauth-service-main`,children:[(0,v.jsxs)(t,{gap:`xs`,children:[(0,v.jsx)(i,{fw:800,children:e.displayName}),(0,v.jsx)(r,{color:e.status===`connected`?`teal`:`yellow`,variant:`light`,children:e.status})]}),(0,v.jsx)(i,{size:`xs`,c:`dimmed`,children:e.requiresOAuth?`OAuth required`:`No OAuth action required`}),e.lastError?(0,v.jsx)(i,{size:`sm`,c:`red`,children:h(e.lastError)??`Backend OAuth failed. Check local OAuth diagnostics.`}):null,(0,v.jsxs)(`details`,{className:`oauth-service-identity`,children:[(0,v.jsx)(`summary`,{children:`Full service ID`}),(0,v.jsxs)(t,{gap:`xs`,wrap:`nowrap`,children:[(0,v.jsx)(c,{className:`oauth-service-id`,children:e.id}),(0,v.jsx)(a,{"aria-label":`Copy full service ID for ${e.displayName}`,size:`compact-xs`,variant:`subtle`,onClick:u,children:(0,v.jsx)(d,{size:14,"aria-hidden":`true`})})]})]})]}),g?(0,v.jsxs)(s,{gap:4,align:`flex-end`,className:`oauth-service-action`,children:[(0,v.jsx)(a,{"aria-label":`${_} ${e.displayName}`,leftSection:g===`authorize`?(0,v.jsx)(m,{size:15}):(0,v.jsx)(p,{size:15}),loading:n===g,disabled:l,onClick:()=>f(g),children:_}),(0,v.jsx)(i,{size:`xs`,c:`dimmed`,"aria-live":`polite`,children:n?n===`authorize`?`Starting authorization...`:`Restarting authorization...`:``})]}):null]})})}function S(e){return e.requiresOAuth?e.status===`awaiting_oauth`?`authorize`:`restart`:null}function C({feedback:e}){return(0,v.jsx)(n,{color:e.kind===`success`?`teal`:`red`,role:e.kind===`success`?`status`:`alert`,mb:`sm`,children:e.message})}export{y as OAuthServicesWorkspace};
|
|
@@ -1 +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};
|
|
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-wOzB38gm.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};
|