summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src')
-rw-r--r--packages/cli/src/config/config.test.ts29
-rw-r--r--packages/cli/src/config/config.ts2
-rw-r--r--packages/cli/src/config/extension.test.ts4
-rw-r--r--packages/cli/src/config/extension.ts2
4 files changed, 33 insertions, 4 deletions
diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts
index 60c693bb..313deedf 100644
--- a/packages/cli/src/config/config.test.ts
+++ b/packages/cli/src/config/config.test.ts
@@ -269,3 +269,32 @@ describe('Hierarchical Memory Loading (config.ts) - Placeholder Suite', () => {
});
*/
});
+
+describe('mergeMcpServers', () => {
+ it('should not modify the original settings object', async () => {
+ const settings: Settings = {
+ mcpServers: {
+ 'test-server': {
+ url: 'http://localhost:8080',
+ },
+ },
+ };
+ const extensions: Extension[] = [
+ {
+ config: {
+ name: 'ext1',
+ version: '1.0.0',
+ mcpServers: {
+ 'ext1-server': {
+ url: 'http://localhost:8081',
+ },
+ },
+ },
+ contextFiles: [],
+ },
+ ];
+ const originalSettings = JSON.parse(JSON.stringify(settings));
+ await loadCliConfig(settings, extensions, [], 'test-session');
+ expect(settings).toEqual(originalSettings);
+ });
+});
diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts
index b9a995ed..9534f403 100644
--- a/packages/cli/src/config/config.ts
+++ b/packages/cli/src/config/config.ts
@@ -205,7 +205,7 @@ export async function loadCliConfig(
}
function mergeMcpServers(settings: Settings, extensions: Extension[]) {
- const mcpServers = settings.mcpServers || {};
+ const mcpServers = { ...(settings.mcpServers || {}) };
for (const extension of extensions) {
Object.entries(extension.config.mcpServers || {}).forEach(
([key, server]) => {
diff --git a/packages/cli/src/config/extension.test.ts b/packages/cli/src/config/extension.test.ts
index 754e9dd0..7d299c78 100644
--- a/packages/cli/src/config/extension.test.ts
+++ b/packages/cli/src/config/extension.test.ts
@@ -72,7 +72,7 @@ describe('loadExtensions', () => {
'ext1',
'1.0.0',
false,
- 'my-context.md',
+ 'my-context-file.md',
);
const extensions = loadExtensions(tempWorkspaceDir);
@@ -80,7 +80,7 @@ describe('loadExtensions', () => {
expect(extensions).toHaveLength(1);
const ext1 = extensions.find((e) => e.config.name === 'ext1');
expect(ext1?.contextFiles).toEqual([
- path.join(workspaceExtensionsDir, 'ext1', 'my-context.md'),
+ path.join(workspaceExtensionsDir, 'ext1', 'my-context-file.md'),
]);
});
});
diff --git a/packages/cli/src/config/extension.ts b/packages/cli/src/config/extension.ts
index 84863e32..418e5fb9 100644
--- a/packages/cli/src/config/extension.ts
+++ b/packages/cli/src/config/extension.ts
@@ -107,7 +107,7 @@ function loadExtension(extensionDir: string): Extension | null {
function getContextFileNames(config: ExtensionConfig): string[] {
if (!config.contextFileName) {
- return ['GEMINI.md', 'gemini.md', 'Gemini.md'];
+ return ['GEMINI.md'];
} else if (!Array.isArray(config.contextFileName)) {
return [config.contextFileName];
}