@google/gemini-cli-a2a-server 0.10.0-nightly.20251014.49b66733
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/.last_build +0 -0
- package/dist/a2a-server.mjs +354316 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/src/agent/executor.d.ts +40 -0
- package/dist/src/agent/executor.js +406 -0
- package/dist/src/agent/executor.js.map +1 -0
- package/dist/src/agent/task.d.ts +54 -0
- package/dist/src/agent/task.js +652 -0
- package/dist/src/agent/task.js.map +1 -0
- package/dist/src/agent/task.test.d.ts +6 -0
- package/dist/src/agent/task.test.js +44 -0
- package/dist/src/agent/task.test.js.map +1 -0
- package/dist/src/config/config.d.ts +14 -0
- package/dist/src/config/config.js +150 -0
- package/dist/src/config/config.js.map +1 -0
- package/dist/src/config/extension.d.ts +11 -0
- package/dist/src/config/extension.js +104 -0
- package/dist/src/config/extension.js.map +1 -0
- package/dist/src/config/settings.d.ts +38 -0
- package/dist/src/config/settings.js +102 -0
- package/dist/src/config/settings.js.map +1 -0
- package/dist/src/http/app.d.ts +8 -0
- package/dist/src/http/app.js +170 -0
- package/dist/src/http/app.js.map +1 -0
- package/dist/src/http/app.test.d.ts +6 -0
- package/dist/src/http/app.test.js +520 -0
- package/dist/src/http/app.test.js.map +1 -0
- package/dist/src/http/endpoints.test.d.ts +6 -0
- package/dist/src/http/endpoints.test.js +138 -0
- package/dist/src/http/endpoints.test.js.map +1 -0
- package/dist/src/http/requestStorage.d.ts +10 -0
- package/dist/src/http/requestStorage.js +8 -0
- package/dist/src/http/requestStorage.js.map +1 -0
- package/dist/src/http/server.d.ts +7 -0
- package/dist/src/http/server.js +26 -0
- package/dist/src/http/server.js.map +1 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.js +9 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/persistence/gcs.d.ts +24 -0
- package/dist/src/persistence/gcs.js +238 -0
- package/dist/src/persistence/gcs.js.map +1 -0
- package/dist/src/persistence/gcs.test.d.ts +6 -0
- package/dist/src/persistence/gcs.test.js +265 -0
- package/dist/src/persistence/gcs.test.js.map +1 -0
- package/dist/src/types.d.ts +91 -0
- package/dist/src/types.js +44 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/executor_utils.d.ts +7 -0
- package/dist/src/utils/executor_utils.js +41 -0
- package/dist/src/utils/executor_utils.js.map +1 -0
- package/dist/src/utils/logger.d.ts +8 -0
- package/dist/src/utils/logger.js +23 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/testing_utils.d.ts +33 -0
- package/dist/src/utils/testing_utils.js +91 -0
- package/dist/src/utils/testing_utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/agent/task.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
7
|
+
import { Task } from './task.js';
|
|
8
|
+
import { createMockConfig } from '../utils/testing_utils.js';
|
|
9
|
+
describe('Task', () => {
|
|
10
|
+
it('scheduleToolCalls should not modify the input requests array', async () => {
|
|
11
|
+
const mockConfig = createMockConfig();
|
|
12
|
+
const mockEventBus = {
|
|
13
|
+
publish: vi.fn(),
|
|
14
|
+
on: vi.fn(),
|
|
15
|
+
off: vi.fn(),
|
|
16
|
+
once: vi.fn(),
|
|
17
|
+
removeAllListeners: vi.fn(),
|
|
18
|
+
finished: vi.fn(),
|
|
19
|
+
};
|
|
20
|
+
// The Task constructor is private. We'll bypass it for this unit test.
|
|
21
|
+
// @ts-expect-error - Calling private constructor for test purposes.
|
|
22
|
+
const task = new Task('task-id', 'context-id', mockConfig, mockEventBus);
|
|
23
|
+
task['setTaskStateAndPublishUpdate'] = vi.fn();
|
|
24
|
+
task['getProposedContent'] = vi.fn().mockResolvedValue('new content');
|
|
25
|
+
const requests = [
|
|
26
|
+
{
|
|
27
|
+
callId: '1',
|
|
28
|
+
name: 'replace',
|
|
29
|
+
args: {
|
|
30
|
+
file_path: 'test.txt',
|
|
31
|
+
old_string: 'old',
|
|
32
|
+
new_string: 'new',
|
|
33
|
+
},
|
|
34
|
+
isClientInitiated: false,
|
|
35
|
+
prompt_id: 'prompt-id-1',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
const originalRequests = JSON.parse(JSON.stringify(requests));
|
|
39
|
+
const abortController = new AbortController();
|
|
40
|
+
await task.scheduleToolCalls(requests, abortController.signal);
|
|
41
|
+
expect(requests).toEqual(originalRequests);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=task.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.test.js","sourceRoot":"","sources":["../../../src/agent/task.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QAEtC,MAAM,YAAY,GAAsB;YACtC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;YAChB,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;YACX,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;YACb,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;SAClB,CAAC;QAEF,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,IAAI,GAAG,IAAI,IAAI,CACnB,SAAS,EACT,YAAY,EACZ,UAAoB,EACpB,YAAY,CACb,CAAC;QAEF,IAAI,CAAC,8BAA8B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAEtE,MAAM,QAAQ,GAA0B;YACtC;gBACE,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE;oBACJ,SAAS,EAAE,UAAU;oBACrB,UAAU,EAAE,KAAK;oBACjB,UAAU,EAAE,KAAK;iBAClB;gBACD,iBAAiB,EAAE,KAAK;gBACxB,SAAS,EAAE,aAAa;aACzB;SACF,CAAC;QAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9D,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE9C,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAE/D,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Config, type GeminiCLIExtension } from '@google/gemini-cli-core';
|
|
7
|
+
import type { Settings } from './settings.js';
|
|
8
|
+
import { type AgentSettings } from '../types.js';
|
|
9
|
+
export declare function loadConfig(settings: Settings, extensions: GeminiCLIExtension[], taskId: string): Promise<Config>;
|
|
10
|
+
export declare function mergeMcpServers(settings: Settings, extensions: GeminiCLIExtension[]): {
|
|
11
|
+
[x: string]: import("@google/gemini-cli-core").MCPServerConfig;
|
|
12
|
+
};
|
|
13
|
+
export declare function setTargetDir(agentSettings: AgentSettings | undefined): string;
|
|
14
|
+
export declare function loadEnvironment(): void;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from 'node:fs';
|
|
7
|
+
import * as path from 'node:path';
|
|
8
|
+
import { homedir } from 'node:os';
|
|
9
|
+
import * as dotenv from 'dotenv';
|
|
10
|
+
import { AuthType, Config, FileDiscoveryService, ApprovalMode, loadServerHierarchicalMemory, GEMINI_DIR, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_GEMINI_MODEL, } from '@google/gemini-cli-core';
|
|
11
|
+
import { logger } from '../utils/logger.js';
|
|
12
|
+
import { CoderAgentEvent } from '../types.js';
|
|
13
|
+
export async function loadConfig(settings, extensions, taskId) {
|
|
14
|
+
const mcpServers = mergeMcpServers(settings, extensions);
|
|
15
|
+
const workspaceDir = process.cwd();
|
|
16
|
+
const adcFilePath = process.env['GOOGLE_APPLICATION_CREDENTIALS'];
|
|
17
|
+
const configParams = {
|
|
18
|
+
sessionId: taskId,
|
|
19
|
+
model: DEFAULT_GEMINI_MODEL,
|
|
20
|
+
embeddingModel: DEFAULT_GEMINI_EMBEDDING_MODEL,
|
|
21
|
+
sandbox: undefined, // Sandbox might not be relevant for a server-side agent
|
|
22
|
+
targetDir: workspaceDir, // Or a specific directory the agent operates on
|
|
23
|
+
debugMode: process.env['DEBUG'] === 'true' || false,
|
|
24
|
+
question: '', // Not used in server mode directly like CLI
|
|
25
|
+
fullContext: false, // Server might have different context needs
|
|
26
|
+
coreTools: settings.coreTools || undefined,
|
|
27
|
+
excludeTools: settings.excludeTools || undefined,
|
|
28
|
+
showMemoryUsage: settings.showMemoryUsage || false,
|
|
29
|
+
approvalMode: process.env['GEMINI_YOLO_MODE'] === 'true'
|
|
30
|
+
? ApprovalMode.YOLO
|
|
31
|
+
: ApprovalMode.DEFAULT,
|
|
32
|
+
mcpServers,
|
|
33
|
+
cwd: workspaceDir,
|
|
34
|
+
telemetry: {
|
|
35
|
+
enabled: settings.telemetry?.enabled,
|
|
36
|
+
target: settings.telemetry?.target,
|
|
37
|
+
otlpEndpoint: process.env['OTEL_EXPORTER_OTLP_ENDPOINT'] ??
|
|
38
|
+
settings.telemetry?.otlpEndpoint,
|
|
39
|
+
logPrompts: settings.telemetry?.logPrompts,
|
|
40
|
+
},
|
|
41
|
+
// Git-aware file filtering settings
|
|
42
|
+
fileFiltering: {
|
|
43
|
+
respectGitIgnore: settings.fileFiltering?.respectGitIgnore,
|
|
44
|
+
enableRecursiveFileSearch: settings.fileFiltering?.enableRecursiveFileSearch,
|
|
45
|
+
},
|
|
46
|
+
ideMode: false,
|
|
47
|
+
folderTrust: settings.folderTrust === true,
|
|
48
|
+
};
|
|
49
|
+
const fileService = new FileDiscoveryService(workspaceDir);
|
|
50
|
+
const extensionContextFilePaths = extensions.flatMap((e) => e.contextFiles);
|
|
51
|
+
const { memoryContent, fileCount } = await loadServerHierarchicalMemory(workspaceDir, [workspaceDir], false, fileService, extensionContextFilePaths, settings.folderTrust === true);
|
|
52
|
+
configParams.userMemory = memoryContent;
|
|
53
|
+
configParams.geminiMdFileCount = fileCount;
|
|
54
|
+
const config = new Config({
|
|
55
|
+
...configParams,
|
|
56
|
+
});
|
|
57
|
+
// Needed to initialize ToolRegistry, and git checkpointing if enabled
|
|
58
|
+
await config.initialize();
|
|
59
|
+
if (process.env['USE_CCPA']) {
|
|
60
|
+
logger.info('[Config] Using CCPA Auth:');
|
|
61
|
+
try {
|
|
62
|
+
if (adcFilePath) {
|
|
63
|
+
path.resolve(adcFilePath);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
logger.error(`[Config] USE_CCPA env var is true but unable to resolve GOOGLE_APPLICATION_CREDENTIALS file path ${adcFilePath}. Error ${e}`);
|
|
68
|
+
}
|
|
69
|
+
await config.refreshAuth(AuthType.LOGIN_WITH_GOOGLE);
|
|
70
|
+
logger.info(`[Config] GOOGLE_CLOUD_PROJECT: ${process.env['GOOGLE_CLOUD_PROJECT']}`);
|
|
71
|
+
}
|
|
72
|
+
else if (process.env['GEMINI_API_KEY']) {
|
|
73
|
+
logger.info('[Config] Using Gemini API Key');
|
|
74
|
+
await config.refreshAuth(AuthType.USE_GEMINI);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
const errorMessage = '[Config] Unable to set GeneratorConfig. Please provide a GEMINI_API_KEY or set USE_CCPA.';
|
|
78
|
+
logger.error(errorMessage);
|
|
79
|
+
throw new Error(errorMessage);
|
|
80
|
+
}
|
|
81
|
+
return config;
|
|
82
|
+
}
|
|
83
|
+
export function mergeMcpServers(settings, extensions) {
|
|
84
|
+
const mcpServers = { ...(settings.mcpServers || {}) };
|
|
85
|
+
for (const extension of extensions) {
|
|
86
|
+
Object.entries(extension.mcpServers || {}).forEach(([key, server]) => {
|
|
87
|
+
if (mcpServers[key]) {
|
|
88
|
+
console.warn(`Skipping extension MCP config for server with key "${key}" as it already exists.`);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
mcpServers[key] = server;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return mcpServers;
|
|
95
|
+
}
|
|
96
|
+
export function setTargetDir(agentSettings) {
|
|
97
|
+
const originalCWD = process.cwd();
|
|
98
|
+
const targetDir = process.env['CODER_AGENT_WORKSPACE_PATH'] ??
|
|
99
|
+
(agentSettings?.kind === CoderAgentEvent.StateAgentSettingsEvent
|
|
100
|
+
? agentSettings.workspacePath
|
|
101
|
+
: undefined);
|
|
102
|
+
if (!targetDir) {
|
|
103
|
+
return originalCWD;
|
|
104
|
+
}
|
|
105
|
+
logger.info(`[CoderAgentExecutor] Overriding workspace path to: ${targetDir}`);
|
|
106
|
+
try {
|
|
107
|
+
const resolvedPath = path.resolve(targetDir);
|
|
108
|
+
process.chdir(resolvedPath);
|
|
109
|
+
return resolvedPath;
|
|
110
|
+
}
|
|
111
|
+
catch (e) {
|
|
112
|
+
logger.error(`[CoderAgentExecutor] Error resolving workspace path: ${e}, returning original os.cwd()`);
|
|
113
|
+
return originalCWD;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
export function loadEnvironment() {
|
|
117
|
+
const envFilePath = findEnvFile(process.cwd());
|
|
118
|
+
if (envFilePath) {
|
|
119
|
+
dotenv.config({ path: envFilePath, override: true });
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function findEnvFile(startDir) {
|
|
123
|
+
let currentDir = path.resolve(startDir);
|
|
124
|
+
while (true) {
|
|
125
|
+
// prefer gemini-specific .env under GEMINI_DIR
|
|
126
|
+
const geminiEnvPath = path.join(currentDir, GEMINI_DIR, '.env');
|
|
127
|
+
if (fs.existsSync(geminiEnvPath)) {
|
|
128
|
+
return geminiEnvPath;
|
|
129
|
+
}
|
|
130
|
+
const envPath = path.join(currentDir, '.env');
|
|
131
|
+
if (fs.existsSync(envPath)) {
|
|
132
|
+
return envPath;
|
|
133
|
+
}
|
|
134
|
+
const parentDir = path.dirname(currentDir);
|
|
135
|
+
if (parentDir === currentDir || !parentDir) {
|
|
136
|
+
// check .env under home as fallback, again preferring gemini-specific .env
|
|
137
|
+
const homeGeminiEnvPath = path.join(process.cwd(), GEMINI_DIR, '.env');
|
|
138
|
+
if (fs.existsSync(homeGeminiEnvPath)) {
|
|
139
|
+
return homeGeminiEnvPath;
|
|
140
|
+
}
|
|
141
|
+
const homeEnvPath = path.join(homedir(), '.env');
|
|
142
|
+
if (fs.existsSync(homeEnvPath)) {
|
|
143
|
+
return homeEnvPath;
|
|
144
|
+
}
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
currentDir = parentDir;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { type ExtensionInstallMetadata, type GeminiCLIExtension } from '@google/gemini-cli-core';
|
|
7
|
+
export declare const EXTENSIONS_DIRECTORY_NAME: string;
|
|
8
|
+
export declare const EXTENSIONS_CONFIG_FILENAME = "gemini-extension.json";
|
|
9
|
+
export declare const INSTALL_METADATA_FILENAME = ".gemini-extension-install.json";
|
|
10
|
+
export declare function loadExtensions(workspaceDir: string): GeminiCLIExtension[];
|
|
11
|
+
export declare function loadInstallMetadata(extensionDir: string): ExtensionInstallMetadata | undefined;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
// Copied exactly from packages/cli/src/config/extension.ts, last PR #1026
|
|
7
|
+
import { GEMINI_DIR, } from '@google/gemini-cli-core';
|
|
8
|
+
import * as fs from 'node:fs';
|
|
9
|
+
import * as path from 'node:path';
|
|
10
|
+
import * as os from 'node:os';
|
|
11
|
+
import { logger } from '../utils/logger.js';
|
|
12
|
+
export const EXTENSIONS_DIRECTORY_NAME = path.join(GEMINI_DIR, 'extensions');
|
|
13
|
+
export const EXTENSIONS_CONFIG_FILENAME = 'gemini-extension.json';
|
|
14
|
+
export const INSTALL_METADATA_FILENAME = '.gemini-extension-install.json';
|
|
15
|
+
export function loadExtensions(workspaceDir) {
|
|
16
|
+
const allExtensions = [
|
|
17
|
+
...loadExtensionsFromDir(workspaceDir),
|
|
18
|
+
...loadExtensionsFromDir(os.homedir()),
|
|
19
|
+
];
|
|
20
|
+
const uniqueExtensions = [];
|
|
21
|
+
const seenNames = new Set();
|
|
22
|
+
for (const extension of allExtensions) {
|
|
23
|
+
if (!seenNames.has(extension.name)) {
|
|
24
|
+
logger.info(`Loading extension: ${extension.name} (version: ${extension.version})`);
|
|
25
|
+
uniqueExtensions.push(extension);
|
|
26
|
+
seenNames.add(extension.name);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return uniqueExtensions;
|
|
30
|
+
}
|
|
31
|
+
function loadExtensionsFromDir(dir) {
|
|
32
|
+
const extensionsDir = path.join(dir, EXTENSIONS_DIRECTORY_NAME);
|
|
33
|
+
if (!fs.existsSync(extensionsDir)) {
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
const extensions = [];
|
|
37
|
+
for (const subdir of fs.readdirSync(extensionsDir)) {
|
|
38
|
+
const extensionDir = path.join(extensionsDir, subdir);
|
|
39
|
+
const extension = loadExtension(extensionDir);
|
|
40
|
+
if (extension != null) {
|
|
41
|
+
extensions.push(extension);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return extensions;
|
|
45
|
+
}
|
|
46
|
+
function loadExtension(extensionDir) {
|
|
47
|
+
if (!fs.statSync(extensionDir).isDirectory()) {
|
|
48
|
+
logger.error(`Warning: unexpected file ${extensionDir} in extensions directory.`);
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
const configFilePath = path.join(extensionDir, EXTENSIONS_CONFIG_FILENAME);
|
|
52
|
+
if (!fs.existsSync(configFilePath)) {
|
|
53
|
+
logger.error(`Warning: extension directory ${extensionDir} does not contain a config file ${configFilePath}.`);
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
const configContent = fs.readFileSync(configFilePath, 'utf-8');
|
|
58
|
+
const config = JSON.parse(configContent);
|
|
59
|
+
if (!config.name || !config.version) {
|
|
60
|
+
logger.error(`Invalid extension config in ${configFilePath}: missing name or version.`);
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const installMetadata = loadInstallMetadata(extensionDir);
|
|
64
|
+
const contextFiles = getContextFileNames(config)
|
|
65
|
+
.map((contextFileName) => path.join(extensionDir, contextFileName))
|
|
66
|
+
.filter((contextFilePath) => fs.existsSync(contextFilePath));
|
|
67
|
+
return {
|
|
68
|
+
name: config.name,
|
|
69
|
+
version: config.version,
|
|
70
|
+
path: extensionDir,
|
|
71
|
+
contextFiles,
|
|
72
|
+
installMetadata,
|
|
73
|
+
mcpServers: config.mcpServers,
|
|
74
|
+
excludeTools: config.excludeTools,
|
|
75
|
+
isActive: true, // Barring any other signals extensions should be considered Active.
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
logger.error(`Warning: error parsing extension config in ${configFilePath}: ${e}`);
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function getContextFileNames(config) {
|
|
84
|
+
if (!config.contextFileName) {
|
|
85
|
+
return ['GEMINI.md'];
|
|
86
|
+
}
|
|
87
|
+
else if (!Array.isArray(config.contextFileName)) {
|
|
88
|
+
return [config.contextFileName];
|
|
89
|
+
}
|
|
90
|
+
return config.contextFileName;
|
|
91
|
+
}
|
|
92
|
+
export function loadInstallMetadata(extensionDir) {
|
|
93
|
+
const metadataFilePath = path.join(extensionDir, INSTALL_METADATA_FILENAME);
|
|
94
|
+
try {
|
|
95
|
+
const configContent = fs.readFileSync(metadataFilePath, 'utf-8');
|
|
96
|
+
const metadata = JSON.parse(configContent);
|
|
97
|
+
return metadata;
|
|
98
|
+
}
|
|
99
|
+
catch (e) {
|
|
100
|
+
logger.warn(`Failed to load or parse extension install metadata at ${metadataFilePath}: ${e}`);
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../src/config/extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { MCPServerConfig } from '@google/gemini-cli-core';
|
|
7
|
+
import { type TelemetrySettings } from '@google/gemini-cli-core';
|
|
8
|
+
export declare const USER_SETTINGS_DIR: string;
|
|
9
|
+
export declare const USER_SETTINGS_PATH: string;
|
|
10
|
+
export interface Settings {
|
|
11
|
+
mcpServers?: Record<string, MCPServerConfig>;
|
|
12
|
+
coreTools?: string[];
|
|
13
|
+
excludeTools?: string[];
|
|
14
|
+
telemetry?: TelemetrySettings;
|
|
15
|
+
showMemoryUsage?: boolean;
|
|
16
|
+
checkpointing?: CheckpointingSettings;
|
|
17
|
+
folderTrust?: boolean;
|
|
18
|
+
fileFiltering?: {
|
|
19
|
+
respectGitIgnore?: boolean;
|
|
20
|
+
enableRecursiveFileSearch?: boolean;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export interface SettingsError {
|
|
24
|
+
message: string;
|
|
25
|
+
path: string;
|
|
26
|
+
}
|
|
27
|
+
export interface CheckpointingSettings {
|
|
28
|
+
enabled?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Loads settings from user and workspace directories.
|
|
32
|
+
* Project settings override user settings.
|
|
33
|
+
*
|
|
34
|
+
* How is it different to gemini-cli/cli: Returns already merged settings rather
|
|
35
|
+
* than `LoadedSettings` (unnecessary since we are not modifying users
|
|
36
|
+
* settings.json).
|
|
37
|
+
*/
|
|
38
|
+
export declare function loadSettings(workspaceDir: string): Settings;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from 'node:fs';
|
|
7
|
+
import * as path from 'node:path';
|
|
8
|
+
import { homedir } from 'node:os';
|
|
9
|
+
import { GEMINI_DIR, getErrorMessage, } from '@google/gemini-cli-core';
|
|
10
|
+
import stripJsonComments from 'strip-json-comments';
|
|
11
|
+
export const USER_SETTINGS_DIR = path.join(homedir(), GEMINI_DIR);
|
|
12
|
+
export const USER_SETTINGS_PATH = path.join(USER_SETTINGS_DIR, 'settings.json');
|
|
13
|
+
/**
|
|
14
|
+
* Loads settings from user and workspace directories.
|
|
15
|
+
* Project settings override user settings.
|
|
16
|
+
*
|
|
17
|
+
* How is it different to gemini-cli/cli: Returns already merged settings rather
|
|
18
|
+
* than `LoadedSettings` (unnecessary since we are not modifying users
|
|
19
|
+
* settings.json).
|
|
20
|
+
*/
|
|
21
|
+
export function loadSettings(workspaceDir) {
|
|
22
|
+
let userSettings = {};
|
|
23
|
+
let workspaceSettings = {};
|
|
24
|
+
const settingsErrors = [];
|
|
25
|
+
// Load user settings
|
|
26
|
+
try {
|
|
27
|
+
if (fs.existsSync(USER_SETTINGS_PATH)) {
|
|
28
|
+
const userContent = fs.readFileSync(USER_SETTINGS_PATH, 'utf-8');
|
|
29
|
+
const parsedUserSettings = JSON.parse(stripJsonComments(userContent));
|
|
30
|
+
userSettings = resolveEnvVarsInObject(parsedUserSettings);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
settingsErrors.push({
|
|
35
|
+
message: getErrorMessage(error),
|
|
36
|
+
path: USER_SETTINGS_PATH,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const workspaceSettingsPath = path.join(workspaceDir, GEMINI_DIR, 'settings.json');
|
|
40
|
+
// Load workspace settings
|
|
41
|
+
try {
|
|
42
|
+
if (fs.existsSync(workspaceSettingsPath)) {
|
|
43
|
+
const projectContent = fs.readFileSync(workspaceSettingsPath, 'utf-8');
|
|
44
|
+
const parsedWorkspaceSettings = JSON.parse(stripJsonComments(projectContent));
|
|
45
|
+
workspaceSettings = resolveEnvVarsInObject(parsedWorkspaceSettings);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
settingsErrors.push({
|
|
50
|
+
message: getErrorMessage(error),
|
|
51
|
+
path: workspaceSettingsPath,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (settingsErrors.length > 0) {
|
|
55
|
+
console.error('Errors loading settings:');
|
|
56
|
+
for (const error of settingsErrors) {
|
|
57
|
+
console.error(` Path: ${error.path}`);
|
|
58
|
+
console.error(` Message: ${error.message}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// If there are overlapping keys, the values of workspaceSettings will
|
|
62
|
+
// override values from userSettings
|
|
63
|
+
return {
|
|
64
|
+
...userSettings,
|
|
65
|
+
...workspaceSettings,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function resolveEnvVarsInString(value) {
|
|
69
|
+
const envVarRegex = /\$(?:(\w+)|{([^}]+)})/g; // Find $VAR_NAME or ${VAR_NAME}
|
|
70
|
+
return value.replace(envVarRegex, (match, varName1, varName2) => {
|
|
71
|
+
const varName = varName1 || varName2;
|
|
72
|
+
if (process && process.env && typeof process.env[varName] === 'string') {
|
|
73
|
+
return process.env[varName];
|
|
74
|
+
}
|
|
75
|
+
return match;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function resolveEnvVarsInObject(obj) {
|
|
79
|
+
if (obj === null ||
|
|
80
|
+
obj === undefined ||
|
|
81
|
+
typeof obj === 'boolean' ||
|
|
82
|
+
typeof obj === 'number') {
|
|
83
|
+
return obj;
|
|
84
|
+
}
|
|
85
|
+
if (typeof obj === 'string') {
|
|
86
|
+
return resolveEnvVarsInString(obj);
|
|
87
|
+
}
|
|
88
|
+
if (Array.isArray(obj)) {
|
|
89
|
+
return obj.map((item) => resolveEnvVarsInObject(item));
|
|
90
|
+
}
|
|
91
|
+
if (typeof obj === 'object') {
|
|
92
|
+
const newObj = { ...obj };
|
|
93
|
+
for (const key in newObj) {
|
|
94
|
+
if (Object.prototype.hasOwnProperty.call(newObj, key)) {
|
|
95
|
+
newObj[key] = resolveEnvVarsInObject(newObj[key]);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return newObj;
|
|
99
|
+
}
|
|
100
|
+
return obj;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/config/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export declare function updateCoderAgentCardUrl(port: number): void;
|
|
7
|
+
export declare function createApp(): Promise<import("express-serve-static-core").Express>;
|
|
8
|
+
export declare function main(): Promise<void>;
|