@google/gemini-cli-core 0.1.7 → 0.1.8-rc.0
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 +4 -0
- package/dist/google-gemini-cli-core-0.1.8-rc.0.tgz +0 -0
- package/dist/src/code_assist/oauth2.d.ts +7 -0
- package/dist/src/code_assist/oauth2.js +81 -2
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +20 -4
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +3 -3
- package/dist/src/code_assist/server.js +6 -6
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +12 -12
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/setup.d.ts +1 -1
- package/dist/src/code_assist/setup.js +2 -2
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/config/config.d.ts +2 -1
- package/dist/src/config/config.js +22 -17
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/core/client.js +1 -3
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +2 -2
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +1 -2
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/turn.d.ts +2 -11
- package/dist/src/core/turn.js +1 -19
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/core/turn.test.js +0 -45
- package/dist/src/core/turn.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +5 -6
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +1 -0
- package/dist/src/telemetry/index.js +1 -0
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.js +19 -0
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +41 -0
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +1 -0
- package/dist/src/telemetry/types.js +2 -0
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +67 -0
- package/dist/src/telemetry/uiTelemetry.js +131 -0
- package/dist/src/telemetry/uiTelemetry.js.map +1 -0
- package/dist/src/telemetry/uiTelemetry.test.d.ts +6 -0
- package/dist/src/telemetry/uiTelemetry.test.js +411 -0
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -0
- package/dist/src/tools/edit.d.ts +4 -0
- package/dist/src/tools/edit.js +15 -6
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +41 -3
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/grep.js +4 -2
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +10 -10
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +1 -1
- package/dist/src/tools/mcp-client.js +15 -8
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +86 -11
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/modifiable-tool.js +5 -4
- package/dist/src/tools/modifiable-tool.js.map +1 -1
- package/dist/src/tools/modifiable-tool.test.js +16 -3
- package/dist/src/tools/modifiable-tool.test.js.map +1 -1
- package/dist/src/tools/read-file.js +1 -2
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +1 -2
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +1 -0
- package/dist/src/tools/shell.js +93 -22
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.d.ts +6 -0
- package/dist/src/tools/shell.test.js +301 -0
- package/dist/src/tools/shell.test.js.map +1 -0
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +4 -0
- package/dist/src/tools/write-file.js +13 -5
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +35 -0
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/utils/editor.d.ts +1 -1
- package/dist/src/utils/editor.js +19 -6
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/editor.test.js +60 -27
- package/dist/src/utils/editor.test.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.js +5 -2
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryImportProcessor.d.ts +35 -0
- package/dist/src/utils/memoryImportProcessor.js +141 -0
- package/dist/src/utils/memoryImportProcessor.js.map +1 -0
- package/dist/src/utils/memoryImportProcessor.test.d.ts +6 -0
- package/dist/src/utils/memoryImportProcessor.test.js +170 -0
- package/dist/src/utils/memoryImportProcessor.test.js.map +1 -0
- package/dist/src/utils/user_id.d.ts +9 -3
- package/dist/src/utils/user_id.js +38 -16
- package/dist/src/utils/user_id.js.map +1 -1
- package/dist/src/utils/user_id.test.d.ts +6 -0
- package/dist/src/utils/user_id.test.js +40 -0
- package/dist/src/utils/user_id.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/google-gemini-cli-core-0.1.7.tgz +0 -0
- package/dist/src/tools/shell.json +0 -18
- package/dist/src/tools/shell.md +0 -16
package/dist/src/utils/editor.js
CHANGED
|
@@ -5,7 +5,15 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { execSync, spawn } from 'child_process';
|
|
7
7
|
function isValidEditorType(editor) {
|
|
8
|
-
return [
|
|
8
|
+
return [
|
|
9
|
+
'vscode',
|
|
10
|
+
'vscodium',
|
|
11
|
+
'windsurf',
|
|
12
|
+
'cursor',
|
|
13
|
+
'vim',
|
|
14
|
+
'neovim',
|
|
15
|
+
'zed',
|
|
16
|
+
].includes(editor);
|
|
9
17
|
}
|
|
10
18
|
function commandExists(cmd) {
|
|
11
19
|
try {
|
|
@@ -18,9 +26,11 @@ function commandExists(cmd) {
|
|
|
18
26
|
}
|
|
19
27
|
const editorCommands = {
|
|
20
28
|
vscode: { win32: 'code.cmd', default: 'code' },
|
|
29
|
+
vscodium: { win32: 'codium.cmd', default: 'codium' },
|
|
21
30
|
windsurf: { win32: 'windsurf', default: 'windsurf' },
|
|
22
31
|
cursor: { win32: 'cursor', default: 'cursor' },
|
|
23
32
|
vim: { win32: 'vim', default: 'vim' },
|
|
33
|
+
neovim: { win32: 'nvim', default: 'nvim' },
|
|
24
34
|
zed: { win32: 'zed', default: 'zed' },
|
|
25
35
|
};
|
|
26
36
|
export function checkHasEditorType(editor) {
|
|
@@ -30,7 +40,7 @@ export function checkHasEditorType(editor) {
|
|
|
30
40
|
}
|
|
31
41
|
export function allowEditorTypeInSandbox(editor) {
|
|
32
42
|
const notUsingSandbox = !process.env.SANDBOX;
|
|
33
|
-
if (['vscode', 'windsurf', 'cursor', 'zed'].includes(editor)) {
|
|
43
|
+
if (['vscode', 'vscodium', 'windsurf', 'cursor', 'zed'].includes(editor)) {
|
|
34
44
|
return notUsingSandbox;
|
|
35
45
|
}
|
|
36
46
|
return true;
|
|
@@ -41,8 +51,7 @@ export function allowEditorTypeInSandbox(editor) {
|
|
|
41
51
|
*/
|
|
42
52
|
export function isEditorAvailable(editor) {
|
|
43
53
|
if (editor && isValidEditorType(editor)) {
|
|
44
|
-
return
|
|
45
|
-
allowEditorTypeInSandbox(editor));
|
|
54
|
+
return checkHasEditorType(editor) && allowEditorTypeInSandbox(editor);
|
|
46
55
|
}
|
|
47
56
|
return false;
|
|
48
57
|
}
|
|
@@ -57,13 +66,15 @@ export function getDiffCommand(oldPath, newPath, editor) {
|
|
|
57
66
|
const command = process.platform === 'win32' ? commandConfig.win32 : commandConfig.default;
|
|
58
67
|
switch (editor) {
|
|
59
68
|
case 'vscode':
|
|
69
|
+
case 'vscodium':
|
|
60
70
|
case 'windsurf':
|
|
61
71
|
case 'cursor':
|
|
62
72
|
case 'zed':
|
|
63
73
|
return { command, args: ['--wait', '--diff', oldPath, newPath] };
|
|
64
74
|
case 'vim':
|
|
75
|
+
case 'neovim':
|
|
65
76
|
return {
|
|
66
|
-
command
|
|
77
|
+
command,
|
|
67
78
|
args: [
|
|
68
79
|
'-d',
|
|
69
80
|
// skip viminfo file to avoid E138 errors
|
|
@@ -107,6 +118,7 @@ export async function openDiff(oldPath, newPath, editor) {
|
|
|
107
118
|
try {
|
|
108
119
|
switch (editor) {
|
|
109
120
|
case 'vscode':
|
|
121
|
+
case 'vscodium':
|
|
110
122
|
case 'windsurf':
|
|
111
123
|
case 'cursor':
|
|
112
124
|
case 'zed':
|
|
@@ -128,7 +140,8 @@ export async function openDiff(oldPath, newPath, editor) {
|
|
|
128
140
|
reject(error);
|
|
129
141
|
});
|
|
130
142
|
});
|
|
131
|
-
case 'vim':
|
|
143
|
+
case 'vim':
|
|
144
|
+
case 'neovim': {
|
|
132
145
|
// Use execSync for terminal-based editors
|
|
133
146
|
const command = process.platform === 'win32'
|
|
134
147
|
? `${diffCommand.command} ${diffCommand.args.join(' ')}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../../src/utils/editor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../../src/utils/editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,9 +31,11 @@ describe('editor utils', () => {
|
|
|
31
31
|
describe('checkHasEditorType', () => {
|
|
32
32
|
const testCases = [
|
|
33
33
|
{ editor: 'vscode', command: 'code', win32Command: 'code.cmd' },
|
|
34
|
+
{ editor: 'vscodium', command: 'codium', win32Command: 'codium.cmd' },
|
|
34
35
|
{ editor: 'windsurf', command: 'windsurf', win32Command: 'windsurf' },
|
|
35
36
|
{ editor: 'cursor', command: 'cursor', win32Command: 'cursor' },
|
|
36
37
|
{ editor: 'vim', command: 'vim', win32Command: 'vim' },
|
|
38
|
+
{ editor: 'neovim', command: 'nvim', win32Command: 'nvim' },
|
|
37
39
|
{ editor: 'zed', command: 'zed', win32Command: 'zed' },
|
|
38
40
|
];
|
|
39
41
|
for (const { editor, command, win32Command } of testCases) {
|
|
@@ -74,6 +76,7 @@ describe('editor utils', () => {
|
|
|
74
76
|
describe('getDiffCommand', () => {
|
|
75
77
|
const guiEditors = [
|
|
76
78
|
{ editor: 'vscode', command: 'code', win32Command: 'code.cmd' },
|
|
79
|
+
{ editor: 'vscodium', command: 'codium', win32Command: 'codium.cmd' },
|
|
77
80
|
{ editor: 'windsurf', command: 'windsurf', win32Command: 'windsurf' },
|
|
78
81
|
{ editor: 'cursor', command: 'cursor', win32Command: 'cursor' },
|
|
79
82
|
{ editor: 'zed', command: 'zed', win32Command: 'zed' },
|
|
@@ -96,31 +99,37 @@ describe('editor utils', () => {
|
|
|
96
99
|
});
|
|
97
100
|
});
|
|
98
101
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
102
|
+
const terminalEditors = [
|
|
103
|
+
{ editor: 'vim', command: 'vim' },
|
|
104
|
+
{ editor: 'neovim', command: 'nvim' },
|
|
105
|
+
];
|
|
106
|
+
for (const { editor, command } of terminalEditors) {
|
|
107
|
+
it(`should return the correct command for ${editor}`, () => {
|
|
108
|
+
const diffCommand = getDiffCommand('old.txt', 'new.txt', editor);
|
|
109
|
+
expect(diffCommand).toEqual({
|
|
110
|
+
command,
|
|
111
|
+
args: [
|
|
112
|
+
'-d',
|
|
113
|
+
'-i',
|
|
114
|
+
'NONE',
|
|
115
|
+
'-c',
|
|
116
|
+
'wincmd h | set readonly | wincmd l',
|
|
117
|
+
'-c',
|
|
118
|
+
'highlight DiffAdd cterm=bold ctermbg=22 guibg=#005f00 | highlight DiffChange cterm=bold ctermbg=24 guibg=#005f87 | highlight DiffText ctermbg=21 guibg=#0000af | highlight DiffDelete ctermbg=52 guibg=#5f0000',
|
|
119
|
+
'-c',
|
|
120
|
+
'set showtabline=2 | set tabline=[Instructions]\\ :wqa(save\\ &\\ quit)\\ \\|\\ i/esc(toggle\\ edit\\ mode)',
|
|
121
|
+
'-c',
|
|
122
|
+
'wincmd h | setlocal statusline=OLD\\ FILE',
|
|
123
|
+
'-c',
|
|
124
|
+
'wincmd l | setlocal statusline=%#StatusBold#NEW\\ FILE\\ :wqa(save\\ &\\ quit)\\ \\|\\ i/esc(toggle\\ edit\\ mode)',
|
|
125
|
+
'-c',
|
|
126
|
+
'autocmd WinClosed * wqa',
|
|
127
|
+
'old.txt',
|
|
128
|
+
'new.txt',
|
|
129
|
+
],
|
|
130
|
+
});
|
|
122
131
|
});
|
|
123
|
-
}
|
|
132
|
+
}
|
|
124
133
|
it('should return null for an unsupported editor', () => {
|
|
125
134
|
// @ts-expect-error Testing unsupported editor
|
|
126
135
|
const command = getDiffCommand('old.txt', 'new.txt', 'foobar');
|
|
@@ -128,7 +137,13 @@ describe('editor utils', () => {
|
|
|
128
137
|
});
|
|
129
138
|
});
|
|
130
139
|
describe('openDiff', () => {
|
|
131
|
-
const spawnEditors = [
|
|
140
|
+
const spawnEditors = [
|
|
141
|
+
'vscode',
|
|
142
|
+
'vscodium',
|
|
143
|
+
'windsurf',
|
|
144
|
+
'cursor',
|
|
145
|
+
'zed',
|
|
146
|
+
];
|
|
132
147
|
for (const editor of spawnEditors) {
|
|
133
148
|
it(`should call spawn for ${editor}`, async () => {
|
|
134
149
|
const mockSpawn = {
|
|
@@ -172,7 +187,7 @@ describe('editor utils', () => {
|
|
|
172
187
|
await expect(openDiff('old.txt', 'new.txt', editor)).rejects.toThrow(`${editor} exited with code 1`);
|
|
173
188
|
});
|
|
174
189
|
}
|
|
175
|
-
const execSyncEditors = ['vim'];
|
|
190
|
+
const execSyncEditors = ['vim', 'neovim'];
|
|
176
191
|
for (const editor of execSyncEditors) {
|
|
177
192
|
it(`should call execSync for ${editor} on non-windows`, async () => {
|
|
178
193
|
Object.defineProperty(process, 'platform', { value: 'linux' });
|
|
@@ -214,7 +229,20 @@ describe('editor utils', () => {
|
|
|
214
229
|
it('should allow vim when not in sandbox mode', () => {
|
|
215
230
|
expect(allowEditorTypeInSandbox('vim')).toBe(true);
|
|
216
231
|
});
|
|
217
|
-
|
|
232
|
+
it('should allow neovim in sandbox mode', () => {
|
|
233
|
+
process.env.SANDBOX = 'sandbox';
|
|
234
|
+
expect(allowEditorTypeInSandbox('neovim')).toBe(true);
|
|
235
|
+
});
|
|
236
|
+
it('should allow neovim when not in sandbox mode', () => {
|
|
237
|
+
expect(allowEditorTypeInSandbox('neovim')).toBe(true);
|
|
238
|
+
});
|
|
239
|
+
const guiEditors = [
|
|
240
|
+
'vscode',
|
|
241
|
+
'vscodium',
|
|
242
|
+
'windsurf',
|
|
243
|
+
'cursor',
|
|
244
|
+
'zed',
|
|
245
|
+
];
|
|
218
246
|
for (const editor of guiEditors) {
|
|
219
247
|
it(`should not allow ${editor} in sandbox mode`, () => {
|
|
220
248
|
process.env.SANDBOX = 'sandbox';
|
|
@@ -255,6 +283,11 @@ describe('editor utils', () => {
|
|
|
255
283
|
process.env.SANDBOX = 'sandbox';
|
|
256
284
|
expect(isEditorAvailable('vim')).toBe(true);
|
|
257
285
|
});
|
|
286
|
+
it('should return true for neovim when installed and in sandbox mode', () => {
|
|
287
|
+
execSync.mockReturnValue(Buffer.from('/usr/bin/nvim'));
|
|
288
|
+
process.env.SANDBOX = 'sandbox';
|
|
289
|
+
expect(isEditorAvailable('neovim')).toBe(true);
|
|
290
|
+
});
|
|
258
291
|
});
|
|
259
292
|
});
|
|
260
293
|
//# sourceMappingURL=editor.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.test.js","sourceRoot":"","sources":["../../../src/utils/editor.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editor.test.js","sourceRoot":"","sources":["../../../src/utils/editor.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import * as path from 'path';
|
|
|
9
9
|
import { homedir } from 'os';
|
|
10
10
|
import { bfsFileSearch } from './bfsFileSearch.js';
|
|
11
11
|
import { GEMINI_CONFIG_DIR, getAllGeminiMdFilenames, } from '../tools/memoryTool.js';
|
|
12
|
+
import { processImports } from './memoryImportProcessor.js';
|
|
12
13
|
// Simple console logger, similar to the one previously in CLI's config.ts
|
|
13
14
|
// TODO: Integrate with a more robust server-side logger if available/appropriate.
|
|
14
15
|
const logger = {
|
|
@@ -153,9 +154,11 @@ async function readGeminiMdFiles(filePaths, debugMode) {
|
|
|
153
154
|
for (const filePath of filePaths) {
|
|
154
155
|
try {
|
|
155
156
|
const content = await fs.readFile(filePath, 'utf-8');
|
|
156
|
-
|
|
157
|
+
// Process imports in the content
|
|
158
|
+
const processedContent = await processImports(content, path.dirname(filePath), debugMode);
|
|
159
|
+
results.push({ filePath, content: processedContent });
|
|
157
160
|
if (debugMode)
|
|
158
|
-
logger.debug(`Successfully read: ${filePath} (Length: ${
|
|
161
|
+
logger.debug(`Successfully read and processed imports: ${filePath} (Length: ${processedContent.length})`);
|
|
159
162
|
}
|
|
160
163
|
catch (error) {
|
|
161
164
|
const isTestEnv = process.env.NODE_ENV === 'test' || process.env.VITEST;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryDiscovery.js","sourceRoot":"","sources":["../../../src/utils/memoryDiscovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,IAAI,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"memoryDiscovery.js","sourceRoot":"","sources":["../../../src/utils/memoryDiscovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Interface for tracking import processing state to prevent circular imports
|
|
8
|
+
*/
|
|
9
|
+
interface ImportState {
|
|
10
|
+
processedFiles: Set<string>;
|
|
11
|
+
maxDepth: number;
|
|
12
|
+
currentDepth: number;
|
|
13
|
+
currentFile?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Processes import statements in GEMINI.md content
|
|
17
|
+
* Supports @path/to/file.md syntax for importing content from other files
|
|
18
|
+
*
|
|
19
|
+
* @param content - The content to process for imports
|
|
20
|
+
* @param basePath - The directory path where the current file is located
|
|
21
|
+
* @param debugMode - Whether to enable debug logging
|
|
22
|
+
* @param importState - State tracking for circular import prevention
|
|
23
|
+
* @returns Processed content with imports resolved
|
|
24
|
+
*/
|
|
25
|
+
export declare function processImports(content: string, basePath: string, debugMode?: boolean, importState?: ImportState): Promise<string>;
|
|
26
|
+
/**
|
|
27
|
+
* Validates import paths to ensure they are safe and within allowed directories
|
|
28
|
+
*
|
|
29
|
+
* @param importPath - The import path to validate
|
|
30
|
+
* @param basePath - The base directory for resolving relative paths
|
|
31
|
+
* @param allowedDirectories - Array of allowed directory paths
|
|
32
|
+
* @returns Whether the import path is valid
|
|
33
|
+
*/
|
|
34
|
+
export declare function validateImportPath(importPath: string, basePath: string, allowedDirectories: string[]): boolean;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from 'fs/promises';
|
|
7
|
+
import * as path from 'path';
|
|
8
|
+
// Simple console logger for import processing
|
|
9
|
+
const logger = {
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
debug: (...args) => console.debug('[DEBUG] [ImportProcessor]', ...args),
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
+
warn: (...args) => console.warn('[WARN] [ImportProcessor]', ...args),
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
|
+
error: (...args) => console.error('[ERROR] [ImportProcessor]', ...args),
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Processes import statements in GEMINI.md content
|
|
19
|
+
* Supports @path/to/file.md syntax for importing content from other files
|
|
20
|
+
*
|
|
21
|
+
* @param content - The content to process for imports
|
|
22
|
+
* @param basePath - The directory path where the current file is located
|
|
23
|
+
* @param debugMode - Whether to enable debug logging
|
|
24
|
+
* @param importState - State tracking for circular import prevention
|
|
25
|
+
* @returns Processed content with imports resolved
|
|
26
|
+
*/
|
|
27
|
+
export async function processImports(content, basePath, debugMode = false, importState = {
|
|
28
|
+
processedFiles: new Set(),
|
|
29
|
+
maxDepth: 10,
|
|
30
|
+
currentDepth: 0,
|
|
31
|
+
}) {
|
|
32
|
+
if (importState.currentDepth >= importState.maxDepth) {
|
|
33
|
+
if (debugMode) {
|
|
34
|
+
logger.warn(`Maximum import depth (${importState.maxDepth}) reached. Stopping import processing.`);
|
|
35
|
+
}
|
|
36
|
+
return content;
|
|
37
|
+
}
|
|
38
|
+
// Regex to match @path/to/file imports (supports any file extension)
|
|
39
|
+
// Supports both @path/to/file.md and @./path/to/file.md syntax
|
|
40
|
+
const importRegex = /@([./]?[^\s\n]+\.[^\s\n]+)/g;
|
|
41
|
+
let processedContent = content;
|
|
42
|
+
let match;
|
|
43
|
+
// Process all imports in the content
|
|
44
|
+
while ((match = importRegex.exec(content)) !== null) {
|
|
45
|
+
const importPath = match[1];
|
|
46
|
+
// Validate import path to prevent path traversal attacks
|
|
47
|
+
if (!validateImportPath(importPath, basePath, [basePath])) {
|
|
48
|
+
processedContent = processedContent.replace(match[0], `<!-- Import failed: ${importPath} - Path traversal attempt -->`);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
// Check if the import is for a non-md file and warn
|
|
52
|
+
if (!importPath.endsWith('.md')) {
|
|
53
|
+
logger.warn(`Import processor only supports .md files. Attempting to import non-md file: ${importPath}. This will fail.`);
|
|
54
|
+
// Replace the import with a warning comment
|
|
55
|
+
processedContent = processedContent.replace(match[0], `<!-- Import failed: ${importPath} - Only .md files are supported -->`);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
const fullPath = path.resolve(basePath, importPath);
|
|
59
|
+
if (debugMode) {
|
|
60
|
+
logger.debug(`Processing import: ${importPath} -> ${fullPath}`);
|
|
61
|
+
}
|
|
62
|
+
// Check for circular imports - if we're already processing this file
|
|
63
|
+
if (importState.currentFile === fullPath) {
|
|
64
|
+
if (debugMode) {
|
|
65
|
+
logger.warn(`Circular import detected: ${importPath}`);
|
|
66
|
+
}
|
|
67
|
+
// Replace the import with a warning comment
|
|
68
|
+
processedContent = processedContent.replace(match[0], `<!-- Circular import detected: ${importPath} -->`);
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
// Check if we've already processed this file in this import chain
|
|
72
|
+
if (importState.processedFiles.has(fullPath)) {
|
|
73
|
+
if (debugMode) {
|
|
74
|
+
logger.warn(`File already processed in this chain: ${importPath}`);
|
|
75
|
+
}
|
|
76
|
+
// Replace the import with a warning comment
|
|
77
|
+
processedContent = processedContent.replace(match[0], `<!-- File already processed: ${importPath} -->`);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
// Check for potential circular imports by looking at the import chain
|
|
81
|
+
if (importState.currentFile) {
|
|
82
|
+
const currentFileDir = path.dirname(importState.currentFile);
|
|
83
|
+
const potentialCircularPath = path.resolve(currentFileDir, importPath);
|
|
84
|
+
if (potentialCircularPath === importState.currentFile) {
|
|
85
|
+
if (debugMode) {
|
|
86
|
+
logger.warn(`Circular import detected: ${importPath}`);
|
|
87
|
+
}
|
|
88
|
+
// Replace the import with a warning comment
|
|
89
|
+
processedContent = processedContent.replace(match[0], `<!-- Circular import detected: ${importPath} -->`);
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
// Check if the file exists
|
|
95
|
+
await fs.access(fullPath);
|
|
96
|
+
// Read the imported file content
|
|
97
|
+
const importedContent = await fs.readFile(fullPath, 'utf-8');
|
|
98
|
+
if (debugMode) {
|
|
99
|
+
logger.debug(`Successfully read imported file: ${fullPath}`);
|
|
100
|
+
}
|
|
101
|
+
// Recursively process imports in the imported content
|
|
102
|
+
const processedImportedContent = await processImports(importedContent, path.dirname(fullPath), debugMode, {
|
|
103
|
+
...importState,
|
|
104
|
+
processedFiles: new Set([...importState.processedFiles, fullPath]),
|
|
105
|
+
currentDepth: importState.currentDepth + 1,
|
|
106
|
+
currentFile: fullPath, // Set the current file being processed
|
|
107
|
+
});
|
|
108
|
+
// Replace the import statement with the processed content
|
|
109
|
+
processedContent = processedContent.replace(match[0], `<!-- Imported from: ${importPath} -->\n${processedImportedContent}\n<!-- End of import from: ${importPath} -->`);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
113
|
+
if (debugMode) {
|
|
114
|
+
logger.error(`Failed to import ${importPath}: ${errorMessage}`);
|
|
115
|
+
}
|
|
116
|
+
// Replace the import with an error comment
|
|
117
|
+
processedContent = processedContent.replace(match[0], `<!-- Import failed: ${importPath} - ${errorMessage} -->`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return processedContent;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Validates import paths to ensure they are safe and within allowed directories
|
|
124
|
+
*
|
|
125
|
+
* @param importPath - The import path to validate
|
|
126
|
+
* @param basePath - The base directory for resolving relative paths
|
|
127
|
+
* @param allowedDirectories - Array of allowed directory paths
|
|
128
|
+
* @returns Whether the import path is valid
|
|
129
|
+
*/
|
|
130
|
+
export function validateImportPath(importPath, basePath, allowedDirectories) {
|
|
131
|
+
// Reject URLs
|
|
132
|
+
if (/^(file|https?):\/\//.test(importPath)) {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
const resolvedPath = path.resolve(basePath, importPath);
|
|
136
|
+
return allowedDirectories.some((allowedDir) => {
|
|
137
|
+
const normalizedAllowedDir = path.resolve(allowedDir);
|
|
138
|
+
return resolvedPath.startsWith(normalizedAllowedDir);
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=memoryImportProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoryImportProcessor.js","sourceRoot":"","sources":["../../../src/utils/memoryImportProcessor.ts"],"names":[],"mappings":"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"}
|