summaryrefslogtreecommitdiff
path: root/packages/core/src/config
diff options
context:
space:
mode:
Diffstat (limited to 'packages/core/src/config')
-rw-r--r--packages/core/src/config/config.test.ts42
-rw-r--r--packages/core/src/config/config.ts7
2 files changed, 45 insertions, 4 deletions
diff --git a/packages/core/src/config/config.test.ts b/packages/core/src/config/config.test.ts
index f84ad746..c3c46659 100644
--- a/packages/core/src/config/config.test.ts
+++ b/packages/core/src/config/config.test.ts
@@ -4,10 +4,10 @@
* SPDX-License-Identifier: Apache-2.0
*/
-import { describe, it, expect, vi, beforeEach /*, afterEach */ } from 'vitest'; // afterEach removed as it was unused
-import { Config, createServerConfig, ConfigParameters } from './config.js'; // Adjust import path
+import { describe, it, expect, vi, beforeEach } from 'vitest';
+import { Config, createServerConfig, ConfigParameters } from './config.js';
import * as path from 'path';
-// import { ToolRegistry } from '../tools/tool-registry'; // ToolRegistry removed as it was unused
+import { setGeminiMdFilename as mockSetGeminiMdFilename } from '../tools/memoryTool.js';
// Mock dependencies that might be called during Config construction or createServerConfig
vi.mock('../tools/tool-registry', () => {
@@ -30,6 +30,12 @@ vi.mock('../tools/shell');
vi.mock('../tools/write-file');
vi.mock('../tools/web-fetch');
vi.mock('../tools/read-many-files');
+vi.mock('../tools/memoryTool', () => ({
+ MemoryTool: vi.fn(),
+ setGeminiMdFilename: vi.fn(),
+ getCurrentGeminiMdFilename: vi.fn(() => 'GEMINI.md'), // Mock the original filename
+ DEFAULT_CONTEXT_FILENAME: 'GEMINI.md',
+}));
describe('Server Config (config.ts)', () => {
const API_KEY = 'server-api-key';
@@ -106,4 +112,34 @@ describe('Server Config (config.ts)', () => {
const config = createServerConfig(paramsWithRelativeDir);
expect(config.getTargetDir()).toBe(expectedResolvedDir);
});
+
+ it('createServerConfig should call setGeminiMdFilename with contextFileName if provided', () => {
+ const contextFileName = 'CUSTOM_AGENTS.md';
+ const paramsWithContextFile: ConfigParameters = {
+ ...baseParams,
+ contextFileName,
+ };
+ createServerConfig(paramsWithContextFile);
+ expect(mockSetGeminiMdFilename).toHaveBeenCalledWith(contextFileName);
+ });
+
+ it('createServerConfig should not call setGeminiMdFilename if contextFileName is not provided', () => {
+ createServerConfig(baseParams); // baseParams does not have contextFileName
+ expect(mockSetGeminiMdFilename).not.toHaveBeenCalled();
+ });
+
+ it('Config constructor should call setGeminiMdFilename with contextFileName if provided', () => {
+ const contextFileName = 'CUSTOM_AGENTS.md';
+ const paramsWithContextFile: ConfigParameters = {
+ ...baseParams,
+ contextFileName,
+ };
+ new Config(paramsWithContextFile);
+ expect(mockSetGeminiMdFilename).toHaveBeenCalledWith(contextFileName);
+ });
+
+ it('Config constructor should not call setGeminiMdFilename if contextFileName is not provided', () => {
+ new Config(baseParams); // baseParams does not have contextFileName
+ expect(mockSetGeminiMdFilename).not.toHaveBeenCalled();
+ });
});
diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts
index 0cd7a4fa..d918de04 100644
--- a/packages/core/src/config/config.ts
+++ b/packages/core/src/config/config.ts
@@ -19,7 +19,7 @@ import { ShellTool } from '../tools/shell.js';
import { WriteFileTool } from '../tools/write-file.js';
import { WebFetchTool } from '../tools/web-fetch.js';
import { ReadManyFilesTool } from '../tools/read-many-files.js';
-import { MemoryTool } from '../tools/memoryTool.js';
+import { MemoryTool, setGeminiMdFilename } from '../tools/memoryTool.js';
import { WebSearchTool } from '../tools/web-search.js';
export class MCPServerConfig {
@@ -56,6 +56,7 @@ export interface ConfigParameters {
alwaysSkipModificationConfirmation?: boolean;
vertexai?: boolean;
showMemoryUsage?: boolean;
+ contextFileName?: string;
}
export class Config {
@@ -100,6 +101,10 @@ export class Config {
this.vertexai = params.vertexai;
this.showMemoryUsage = params.showMemoryUsage ?? false;
+ if (params.contextFileName) {
+ setGeminiMdFilename(params.contextFileName);
+ }
+
this.toolRegistry = createToolRegistry(this);
}