Path: blob/main/src/vs/platform/agentHost/common/agentHostCustomizationConfig.ts
13394 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { localize } from '../../../nls.js';6import { createSchema, schemaProperty } from './agentHostSchema.js';7import { type CustomizationRef } from './state/protocol/state.js';89/**10* Well-known root-config keys used by the platform to configure agent-host11* customizations.12*/13export const enum AgentHostConfigKey {14/** Host-owned Open Plugins available to remote sessions. */15Customizations = 'customizations',16}1718export const agentHostCustomizationConfigSchema = createSchema({19[AgentHostConfigKey.Customizations]: schemaProperty<CustomizationRef[]>({20type: 'array',21title: localize('agentHost.config.customizations.title', "Plugins"),22description: localize('agentHost.config.customizations.description', "Plugins configured on this agent host and available to remote sessions."),23default: [],24items: {25type: 'object',26title: localize('agentHost.config.customizations.itemTitle', "Plugin"),27properties: {28uri: {29type: 'string',30title: localize('agentHost.config.customizations.uri', "Plugin URI"),31},32displayName: {33type: 'string',34title: localize('agentHost.config.customizations.displayName', "Name"),35},36description: {37type: 'string',38title: localize('agentHost.config.customizations.descriptionField', "Description"),39},40},41required: ['uri', 'displayName'],42},43}),44});4546export const defaultAgentHostCustomizationConfigValues = {47[AgentHostConfigKey.Customizations]: [] as CustomizationRef[],48};4950export function getAgentHostConfiguredCustomizations(values: Record<string, unknown> | undefined): readonly CustomizationRef[] {51const raw = values?.[AgentHostConfigKey.Customizations];52return agentHostCustomizationConfigSchema.validate(AgentHostConfigKey.Customizations, raw)53? raw54: defaultAgentHostCustomizationConfigValues[AgentHostConfigKey.Customizations];55}565758