Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/chat/electron-browser/actions/debugAgentHostAction.ts
13406 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { Codicon } from '../../../../../base/common/codicons.js';
7
import { ServicesAccessor } from '../../../../../editor/browser/editorExtensions.js';
8
import { localize, localize2 } from '../../../../../nls.js';
9
import { Categories } from '../../../../../platform/action/common/actionCommonCategories.js';
10
import { Action2 } from '../../../../../platform/actions/common/actions.js';
11
import { IAgentHostService } from '../../../../../platform/agentHost/common/agentService.js';
12
import { INativeHostService } from '../../../../../platform/native/common/native.js';
13
import { INotificationService } from '../../../../../platform/notification/common/notification.js';
14
import { ChatContextKeys } from '../../common/actions/chatContextKeys.js';
15
16
export class DebugAgentHostInDevToolsAction extends Action2 {
17
static readonly ID = 'workbench.action.chat.debugAgentHostInDevTools';
18
19
constructor() {
20
super({
21
id: DebugAgentHostInDevToolsAction.ID,
22
title: localize2('debugAgentHostInDevTools', "Debug Local Agent Host Process In Dev Tools"),
23
category: Categories.Developer,
24
f1: true,
25
icon: Codicon.debugStart,
26
precondition: ChatContextKeys.enabled,
27
});
28
}
29
30
override async run(accessor: ServicesAccessor): Promise<void> {
31
const agentHostService = accessor.get(IAgentHostService);
32
const nativeHostService = accessor.get(INativeHostService);
33
const notificationService = accessor.get(INotificationService);
34
35
const info = await agentHostService.getInspectInfo(true);
36
if (!info) {
37
notificationService.warn(localize('debugAgentHost.noInspectPort', "Could not enable the Node.js inspector for the agent host process."));
38
return;
39
}
40
41
nativeHostService.openDevToolsWindow(info.devtoolsUrl);
42
}
43
}
44
45