Skip to content

Commit 73a6bb7

Browse files
pwang347Copilot
andauthored
Adopt latest provider pattern for org/enterprise custom agents (#2737)
* PR * activation * fix test * wip * update * tests * Update src/platform/github/common/githubService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/extension/agents/vscode-node/organizationInstructionsProvider.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/platform/github/common/octoKitServiceImpl.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * update * update setting name * wip * fix * use enum * PR * nit * add polling * tests * cleanup * use helper * remove instructions * clean * use custom source * update * update * test updates * fix tests * update types * PR * use proposed API * Update src/platform/customInstructions/common/customInstructionsService.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix tests * update for skills --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 9b2ef80 commit 73a6bb7

File tree

14 files changed

+345
-155
lines changed

14 files changed

+345
-155
lines changed

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
"onUri",
8585
"onFileSystem:ccreq",
8686
"onFileSystem:ccsettings",
87-
"onCustomAgentsProvider"
87+
"onCustomAgentProvider"
8888
],
8989
"main": "./dist/extension",
9090
"l10n": "./l10n",
@@ -136,7 +136,8 @@
136136
"languageModelThinkingPart",
137137
"chatSessionsProvider@3",
138138
"devDeviceId",
139-
"contribEditorContentMenu"
139+
"contribEditorContentMenu",
140+
"chatPromptFiles"
140141
],
141142
"contributes": {
142143
"languageModelTools": [

src/extension/agents/vscode-node/organizationAndEnterpriseAgentProvider.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@ import { Disposable } from '../../../util/vs/base/common/lifecycle';
1414

1515
const AgentFileExtension = '.agent.md';
1616

17-
export class OrganizationAndEnterpriseAgentProvider extends Disposable implements vscode.CustomAgentsProvider {
17+
export class OrganizationAndEnterpriseAgentProvider extends Disposable implements vscode.CustomAgentProvider {
18+
19+
label: string = vscode.l10n.t('GitHub Organization');
1820

1921
private readonly _onDidChangeCustomAgents = this._register(new vscode.EventEmitter<void>());
2022
readonly onDidChangeCustomAgents = this._onDidChangeCustomAgents.event;
2123

2224
private isFetching = false;
23-
private memoryCache: vscode.CustomAgentResource[] | undefined;
25+
private memoryCache: vscode.CustomAgentChatResource[] | undefined;
2426

2527
constructor(
2628
@IOctoKitService private readonly octoKitService: IOctoKitService,
@@ -42,9 +44,9 @@ export class OrganizationAndEnterpriseAgentProvider extends Disposable implement
4244
}
4345

4446
async provideCustomAgents(
45-
_options: vscode.CustomAgentQueryOptions,
47+
_options: vscode.CustomAgentContext,
4648
_token: vscode.CancellationToken
47-
): Promise<vscode.CustomAgentResource[]> {
49+
): Promise<vscode.CustomAgentChatResource[]> {
4850
try {
4951
if (this.memoryCache !== undefined) {
5052
return this.memoryCache;
@@ -58,15 +60,15 @@ export class OrganizationAndEnterpriseAgentProvider extends Disposable implement
5860
}
5961
}
6062

61-
private async readFromCache(): Promise<vscode.CustomAgentResource[]> {
63+
private async readFromCache(): Promise<vscode.CustomAgentChatResource[]> {
6264
try {
6365
const cacheDir = this.getCacheDir();
6466
if (!cacheDir) {
6567
this.logService.trace('[OrganizationAndEnterpriseAgentProvider] No workspace open, cannot use cache');
6668
return [];
6769
}
6870

69-
const agents: vscode.CustomAgentResource[] = [];
71+
const agents: vscode.CustomAgentChatResource[] = [];
7072

7173
// Check if cache directory exists
7274
try {
@@ -91,11 +93,7 @@ export class OrganizationAndEnterpriseAgentProvider extends Disposable implement
9193
const metadata = this.parseAgentMetadata(text, filename);
9294
if (metadata) {
9395
const fileUri = vscode.Uri.joinPath(orgDir, filename);
94-
agents.push({
95-
name: metadata.name,
96-
description: metadata.description,
97-
uri: fileUri,
98-
});
96+
agents.push(new vscode.CustomAgentChatResource(fileUri));
9997
}
10098
}
10199
}

src/extension/agents/vscode-node/organizationAndEnterpriseAgentContrib.ts renamed to src/extension/agents/vscode-node/promptFileContrib.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,21 @@ import { IInstantiationService } from '../../../util/vs/platform/instantiation/c
1010
import { IExtensionContribution } from '../../common/contributions';
1111
import { OrganizationAndEnterpriseAgentProvider } from './organizationAndEnterpriseAgentProvider';
1212

13-
export class OrganizationAndEnterpriseAgentContribution extends Disposable implements IExtensionContribution {
14-
readonly id = 'OrganizationAndEnterpriseAgents';
13+
export class PromptFileContribution extends Disposable implements IExtensionContribution {
14+
readonly id = 'PromptFiles';
1515

1616
constructor(
1717
@IInstantiationService instantiationService: IInstantiationService,
1818
@IConfigurationService configurationService: IConfigurationService,
1919
) {
2020
super();
2121

22-
if ('registerCustomAgentsProvider' in vscode.chat) {
22+
// Register custom agent provider
23+
if ('registerCustomAgentProvider' in vscode.chat) {
2324
// Only register the provider if the setting is enabled
2425
if (configurationService.getConfig(ConfigKey.ShowOrganizationAndEnterpriseAgents)) {
25-
const provider = instantiationService.createInstance(OrganizationAndEnterpriseAgentProvider);
26-
this._register(vscode.chat.registerCustomAgentsProvider(provider));
26+
const orgAndEnterpriseAgentProvider = instantiationService.createInstance(OrganizationAndEnterpriseAgentProvider);
27+
this._register(vscode.chat.registerCustomAgentProvider(orgAndEnterpriseAgentProvider));
2728
}
2829
}
2930
}

0 commit comments

Comments
 (0)