Path: blob/main/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatus.ts
4780 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 { ChatEntitlement, IChatEntitlementService } from '../../../../services/chat/common/chatEntitlementService.js';6import { IConfigurationService } from '../../../../../platform/configuration/common/configuration.js';7import product from '../../../../../platform/product/common/product.js';8import { isObject } from '../../../../../base/common/types.js';910export function isNewUser(chatEntitlementService: IChatEntitlementService): boolean {11return !chatEntitlementService.sentiment.installed || // chat not installed12chatEntitlementService.entitlement === ChatEntitlement.Available; // not yet signed up to chat13}1415export function isCompletionsEnabled(configurationService: IConfigurationService, modeId: string = '*'): boolean {16const result = configurationService.getValue<Record<string, boolean>>(product.defaultChatAgent.completionsEnablementSetting);17if (!isObject(result)) {18return false;19}2021if (typeof result[modeId] !== 'undefined') {22return Boolean(result[modeId]); // go with setting if explicitly defined23}2425return Boolean(result['*']); // fallback to global setting otherwise26}272829