diff --git a/packages/cli/src/nonInteractiveCli.test.ts b/packages/cli/src/nonInteractiveCli.test.ts index 3141401721..c1240cbed9 100644 --- a/packages/cli/src/nonInteractiveCli.test.ts +++ b/packages/cli/src/nonInteractiveCli.test.ts @@ -116,8 +116,8 @@ describe('runNonInteractive', () => { getContentGeneratorConfig: vi.fn().mockReturnValue({}), getDebugMode: vi.fn().mockReturnValue(false), getOutputFormat: vi.fn().mockReturnValue('text'), - getFolderTrustFeature: vi.fn().mockReturnValue(false), getFolderTrust: vi.fn().mockReturnValue(false), + isTrustedFolder: vi.fn().mockReturnValue(false), } as unknown as Config; mockSettings = { diff --git a/packages/cli/src/services/FileCommandLoader.test.ts b/packages/cli/src/services/FileCommandLoader.test.ts index 5b4c91cd93..0f2b4d5683 100644 --- a/packages/cli/src/services/FileCommandLoader.test.ts +++ b/packages/cli/src/services/FileCommandLoader.test.ts @@ -224,8 +224,8 @@ describe('FileCommandLoader', () => { const mockConfig = { getProjectRoot: vi.fn(() => '/path/to/project'), getExtensions: vi.fn(() => []), - getFolderTrustFeature: vi.fn(() => false), getFolderTrust: vi.fn(() => false), + isTrustedFolder: vi.fn(() => false), } as unknown as Config; const loader = new FileCommandLoader(mockConfig); const commands = await loader.loadCommands(signal); @@ -269,8 +269,8 @@ describe('FileCommandLoader', () => { const mockConfig = { getProjectRoot: vi.fn(() => process.cwd()), getExtensions: vi.fn(() => []), - getFolderTrustFeature: vi.fn(() => false), getFolderTrust: vi.fn(() => false), + isTrustedFolder: vi.fn(() => false), } as unknown as Config; const loader = new FileCommandLoader(mockConfig); const commands = await loader.loadCommands(signal); @@ -560,8 +560,8 @@ describe('FileCommandLoader', () => { path: extensionDir, }, ]), - getFolderTrustFeature: vi.fn(() => false), getFolderTrust: vi.fn(() => false), + isTrustedFolder: vi.fn(() => false), } as unknown as Config; const loader = new FileCommandLoader(mockConfig); const commands = await loader.loadCommands(signal); @@ -613,8 +613,8 @@ describe('FileCommandLoader', () => { path: extensionDir, }, ]), - getFolderTrustFeature: vi.fn(() => false), getFolderTrust: vi.fn(() => false), + isTrustedFolder: vi.fn(() => false), } as unknown as Config; const loader = new FileCommandLoader(mockConfig); const commands = await loader.loadCommands(signal); @@ -722,8 +722,8 @@ describe('FileCommandLoader', () => { path: extensionDir2, }, ]), - getFolderTrustFeature: vi.fn(() => false), getFolderTrust: vi.fn(() => false), + isTrustedFolder: vi.fn(() => false), } as unknown as Config; const loader = new FileCommandLoader(mockConfig); const commands = await loader.loadCommands(signal); @@ -760,8 +760,8 @@ describe('FileCommandLoader', () => { path: extensionDir, }, ]), - getFolderTrustFeature: vi.fn(() => false), getFolderTrust: vi.fn(() => false), + isTrustedFolder: vi.fn(() => false), } as unknown as Config; const loader = new FileCommandLoader(mockConfig); const commands = await loader.loadCommands(signal); @@ -794,8 +794,8 @@ describe('FileCommandLoader', () => { getExtensions: vi.fn(() => [ { name: 'a', version: '1.0.0', isActive: true, path: extensionDir }, ]), - getFolderTrustFeature: vi.fn(() => false), getFolderTrust: vi.fn(() => false), + isTrustedFolder: vi.fn(() => false), } as unknown as Config; const loader = new FileCommandLoader(mockConfig); const commands = await loader.loadCommands(signal); @@ -1189,8 +1189,8 @@ describe('FileCommandLoader', () => { const mockConfig = { getProjectRoot: vi.fn(() => '/path/to/project'), getExtensions: vi.fn(() => []), - getFolderTrustFeature: vi.fn(() => true), getFolderTrust: vi.fn(() => true), + isTrustedFolder: vi.fn(() => true), } as unknown as Config; const userCommandsDir = Storage.getUserCommandsDir(); mock({ @@ -1210,8 +1210,8 @@ describe('FileCommandLoader', () => { const mockConfig = { getProjectRoot: vi.fn(() => '/path/to/project'), getExtensions: vi.fn(() => []), - getFolderTrustFeature: vi.fn(() => true), - getFolderTrust: vi.fn(() => false), + getFolderTrust: vi.fn(() => true), + isTrustedFolder: vi.fn(() => false), } as unknown as Config; const userCommandsDir = Storage.getUserCommandsDir(); mock({ diff --git a/packages/cli/src/services/FileCommandLoader.ts b/packages/cli/src/services/FileCommandLoader.ts index a78c372aed..e770b360ab 100644 --- a/packages/cli/src/services/FileCommandLoader.ts +++ b/packages/cli/src/services/FileCommandLoader.ts @@ -64,11 +64,11 @@ const TomlCommandDefSchema = z.object({ export class FileCommandLoader implements ICommandLoader { private readonly projectRoot: string; private readonly folderTrustEnabled: boolean; - private readonly folderTrust: boolean; + private readonly isTrustedFolder: boolean; constructor(private readonly config: Config | null) { - this.folderTrustEnabled = !!config?.getFolderTrustFeature(); - this.folderTrust = !!config?.getFolderTrust(); + this.folderTrustEnabled = !!config?.getFolderTrust(); + this.isTrustedFolder = !!config?.isTrustedFolder(); this.projectRoot = config?.getProjectRoot() || process.cwd(); } @@ -101,7 +101,7 @@ export class FileCommandLoader implements ICommandLoader { cwd: dirInfo.path, }); - if (this.folderTrustEnabled && !this.folderTrust) { + if (this.folderTrustEnabled && !this.isTrustedFolder) { return []; } diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index 48aba77c74..cb255a3b62 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -246,7 +246,6 @@ export interface ConfigParameters { blockedMcpServers?: Array<{ name: string; extensionName: string }>; noBrowser?: boolean; summarizeToolOutput?: Record; - folderTrustFeature?: boolean; folderTrust?: boolean; ideMode?: boolean; loadMemoryFromIncludeDirectories?: boolean; @@ -321,7 +320,6 @@ export class Config { private model: string; private readonly extensionContextFilePaths: string[]; private readonly noBrowser: boolean; - private readonly folderTrustFeature: boolean; private readonly folderTrust: boolean; private ideMode: boolean; @@ -430,7 +428,6 @@ export class Config { this._blockedMcpServers = params.blockedMcpServers ?? []; this.noBrowser = params.noBrowser ?? false; this.summarizeToolOutput = params.summarizeToolOutput; - this.folderTrustFeature = params.folderTrustFeature ?? false; this.folderTrust = params.folderTrust ?? false; this.ideMode = params.ideMode ?? false; this.loadMemoryFromIncludeDirectories = @@ -889,21 +886,17 @@ export class Config { return this.ideMode; } - /*** - * TODO: Review if this is actually used at it seems it is only used but the FileCommandLoader + /** + * Returns 'true' if the folder trust feature is enabled. */ - getFolderTrustFeature(): boolean { - return this.folderTrustFeature; + getFolderTrust(): boolean { + return this.folderTrust; } /** * Returns 'true' if the workspace is considered "trusted". * 'false' for untrusted. */ - getFolderTrust(): boolean { - return this.folderTrust; - } - isTrustedFolder(): boolean { // isWorkspaceTrusted in cli/src/config/trustedFolder.js returns undefined // when the file based trust value is unavailable, since it is mainly used