44 *--------------------------------------------------------------------------------------------*/
55
66import * as vscode from 'vscode' ;
7+ import { IVSCodeExtensionContext } from '../../../platform/extContext/common/extensionContext' ;
78import { Disposable } from '../../../util/vs/base/common/lifecycle' ;
89import { autorun } from '../../../util/vs/base/common/observableInternal' ;
10+ import { URI } from '../../../util/vs/base/common/uri' ;
911import { getContributedToolName } from '../common/toolNames' ;
1012import { IToolsService } from '../common/toolsService' ;
1113import { IToolGroupingCache , IToolGroupingService } from '../common/virtualTools/virtualToolTypes' ;
@@ -18,6 +20,7 @@ export class ToolsContribution extends Disposable {
1820 @IToolsService toolsService : IToolsService ,
1921 @IToolGroupingCache toolGrouping : IToolGroupingCache ,
2022 @IToolGroupingService toolGroupingService : IToolGroupingService ,
23+ @IVSCodeExtensionContext private readonly extensionContext : IVSCodeExtensionContext ,
2124 ) {
2225 super ( ) ;
2326
@@ -30,6 +33,16 @@ export class ToolsContribution extends Disposable {
3033 vscode . window . showInformationMessage ( 'Tool groups have been reset. They will be regenerated on the next agent request.' ) ;
3134 } ) ) ;
3235
36+ this . _register ( vscode . commands . registerCommand ( 'github.copilot.chat.tools.memory.openFolder' , async ( ) => {
37+ const storageUri = this . extensionContext . storageUri ;
38+ if ( ! storageUri ) {
39+ vscode . window . showErrorMessage ( 'No workspace is currently open. Memory operations require an active workspace.' ) ;
40+ return ;
41+ }
42+ const memoryFolderUri = URI . joinPath ( storageUri , 'memory-tool/memories' ) ;
43+ return vscode . env . openExternal ( vscode . Uri . from ( memoryFolderUri ) ) ;
44+ } ) ) ;
45+
3346 this . _register ( autorun ( reader => {
3447 vscode . commands . executeCommand ( 'setContext' , 'chat.toolGroupingThreshold' , toolGroupingService . threshold . read ( reader ) ) ;
3548 } ) ) ;
0 commit comments