From d190195a84ef51ec9f8471ff73d12cc44be5e7c0 Mon Sep 17 00:00:00 2001 From: Don Jayamanne Date: Mon, 20 Jan 2025 15:12:36 +1100 Subject: [PATCH] Allow usage of proposed API (#16389) --- src/platform/common/constants.ts | 1 + src/standalone/api/kernels/index.ts | 11 +++++++++-- src/standalone/api/kernels/kernel.ts | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/platform/common/constants.ts b/src/platform/common/constants.ts index 79b04f69ad9..0c74a0e7324 100644 --- a/src/platform/common/constants.ts +++ b/src/platform/common/constants.ts @@ -23,6 +23,7 @@ export const NOTEBOOK_SELECTOR = [ export const CodespaceExtensionId = 'GitHub.codespaces'; export const JVSC_EXTENSION_ID = 'ms-toolsai.jupyter'; export const DATA_WRANGLER_EXTENSION_ID = 'ms-toolsai.datawrangler'; +export const PROPOSED_API_ALLOWED_PUBLISHERS = ['donjayamanne']; export const POWER_TOYS_EXTENSION_ID = 'ms-toolsai.vscode-jupyter-powertoys'; export const JUPYTER_HUB_EXTENSION_ID = 'ms-toolsai.jupyter-hub'; export const AppinsightsKey = '0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255'; diff --git a/src/standalone/api/kernels/index.ts b/src/standalone/api/kernels/index.ts index b84065cb414..9ccdcc50f5f 100644 --- a/src/standalone/api/kernels/index.ts +++ b/src/standalone/api/kernels/index.ts @@ -7,7 +7,11 @@ import { ServiceContainer } from '../../../platform/ioc/container'; import { IKernel, IKernelProvider } from '../../../kernels/types'; import { createKernelApiForExtension as createKernelApiForExtension } from './kernel'; import { Telemetry, sendTelemetryEvent } from '../../../telemetry'; -import { DATA_WRANGLER_EXTENSION_ID, JVSC_EXTENSION_ID } from '../../../platform/common/constants'; +import { + DATA_WRANGLER_EXTENSION_ID, + JVSC_EXTENSION_ID, + PROPOSED_API_ALLOWED_PUBLISHERS +} from '../../../platform/common/constants'; import { initializeInteractiveOrNotebookTelemetryBasedOnUserAction } from '../../../kernels/telemetry/helper'; import { IDisposableRegistry } from '../../../platform/common/types'; @@ -47,7 +51,10 @@ export function getKernelsApi(extensionId: string): Kernels { return getWrappedKernel(kernel, extensionId); }, get onDidStart() { - if (![JVSC_EXTENSION_ID, DATA_WRANGLER_EXTENSION_ID].includes(extensionId)) { + if ( + ![JVSC_EXTENSION_ID, DATA_WRANGLER_EXTENSION_ID].includes(extensionId) && + !PROPOSED_API_ALLOWED_PUBLISHERS.includes(extensionId.split('.')[0]) + ) { throw new Error(`Proposed API is not supported for extension ${extensionId}`); } diff --git a/src/standalone/api/kernels/kernel.ts b/src/standalone/api/kernels/kernel.ts index efb1cb962d7..c1cd3a026bd 100644 --- a/src/standalone/api/kernels/kernel.ts +++ b/src/standalone/api/kernels/kernel.ts @@ -35,6 +35,7 @@ import { DATA_WRANGLER_EXTENSION_ID, JVSC_EXTENSION_ID, POWER_TOYS_EXTENSION_ID, + PROPOSED_API_ALLOWED_PUBLISHERS, PYTHON_LANGUAGE } from '../../../platform/common/constants'; import { ChatMime, generatePythonCodeToInvokeCallback } from '../../../kernels/chat/generator'; @@ -263,7 +264,10 @@ class WrappedKernelPerExtension extends DisposableBase implements Kernel { }, onDidChangeStatus: that.onDidChangeStatus.bind(this), get onDidReceiveDisplayUpdate() { - if (![JVSC_EXTENSION_ID, POWER_TOYS_EXTENSION_ID, DATA_WRANGLER_EXTENSION_ID].includes(extensionId)) { + if ( + ![JVSC_EXTENSION_ID, POWER_TOYS_EXTENSION_ID, DATA_WRANGLER_EXTENSION_ID].includes(extensionId) && + !PROPOSED_API_ALLOWED_PUBLISHERS.includes(extensionId.split('.')[0]) + ) { throw new Error(`Proposed API is not supported for extension ${extensionId}`); }