mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-11 06:31:01 -07:00
fix: Usage of folder trust config flags in FileCommandLoader (#10837)
This commit is contained in:
@@ -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 = {
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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 [];
|
||||
}
|
||||
|
||||
|
||||
@@ -246,7 +246,6 @@ export interface ConfigParameters {
|
||||
blockedMcpServers?: Array<{ name: string; extensionName: string }>;
|
||||
noBrowser?: boolean;
|
||||
summarizeToolOutput?: Record<string, SummarizeToolOutputSettings>;
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user