@google/gemini-cli 0.24.0-nightly.20260103.30f5c4af4 → 0.24.0-preview.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/dist/package.json +2 -2
- package/dist/src/commands/extensions/settings.js +4 -0
- package/dist/src/commands/extensions/settings.js.map +1 -1
- package/dist/src/commands/extensions/settings.test.d.ts +6 -0
- package/dist/src/commands/extensions/settings.test.js +170 -0
- package/dist/src/commands/extensions/settings.test.js.map +1 -0
- package/dist/src/commands/hooks/migrate.js +1 -1
- package/dist/src/commands/hooks/migrate.js.map +1 -1
- package/dist/src/commands/hooks/migrate.test.js +1 -1
- package/dist/src/commands/hooks/migrate.test.js.map +1 -1
- package/dist/src/commands/skills/disable.d.ts +14 -0
- package/dist/src/commands/skills/disable.js +47 -0
- package/dist/src/commands/skills/disable.js.map +1 -0
- package/dist/src/commands/skills/disable.test.d.ts +6 -0
- package/dist/src/commands/skills/disable.test.js +80 -0
- package/dist/src/commands/skills/disable.test.js.map +1 -0
- package/dist/src/commands/skills/enable.d.ts +14 -0
- package/dist/src/commands/skills/enable.js +47 -0
- package/dist/src/commands/skills/enable.js.map +1 -0
- package/dist/src/commands/skills/enable.test.d.ts +6 -0
- package/dist/src/commands/skills/enable.test.js +80 -0
- package/dist/src/commands/skills/enable.test.js.map +1 -0
- package/dist/src/commands/skills/list.d.ts +8 -0
- package/dist/src/commands/skills/list.js +46 -0
- package/dist/src/commands/skills/list.js.map +1 -0
- package/dist/src/commands/skills/list.test.d.ts +6 -0
- package/dist/src/commands/skills/list.test.js +102 -0
- package/dist/src/commands/skills/list.test.js.map +1 -0
- package/dist/src/commands/skills.d.ts +7 -0
- package/dist/src/commands/skills.js +26 -0
- package/dist/src/commands/skills.js.map +1 -0
- package/dist/src/commands/skills.test.d.ts +6 -0
- package/dist/src/commands/skills.test.js +49 -0
- package/dist/src/commands/skills.test.js.map +1 -0
- package/dist/src/config/config.js +57 -21
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +187 -1
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extension-manager-skills.test.d.ts +6 -0
- package/dist/src/config/extension-manager-skills.test.js +98 -0
- package/dist/src/config/extension-manager-skills.test.js.map +1 -0
- package/dist/src/config/extension-manager.js +27 -17
- package/dist/src/config/extension-manager.js.map +1 -1
- package/dist/src/config/extension.test.js +16 -10
- package/dist/src/config/extension.test.js.map +1 -1
- package/dist/src/config/extensions/consent.d.ts +5 -3
- package/dist/src/config/extensions/consent.js +30 -7
- package/dist/src/config/extensions/consent.js.map +1 -1
- package/dist/src/config/extensions/consent.test.js +97 -3
- package/dist/src/config/extensions/consent.test.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.d.ts +1 -0
- package/dist/src/config/extensions/extensionSettings.js +14 -0
- package/dist/src/config/extensions/extensionSettings.js.map +1 -1
- package/dist/src/config/extensions/extensionUpdates.test.d.ts +6 -0
- package/dist/src/config/extensions/extensionUpdates.test.js +243 -0
- package/dist/src/config/extensions/extensionUpdates.test.js.map +1 -0
- package/dist/src/config/settings.d.ts +2 -1
- package/dist/src/config/settings.js +25 -6
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settings.test.js +86 -28
- package/dist/src/config/settings.test.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +99 -5
- package/dist/src/config/settingsSchema.js +101 -5
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +8 -0
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/gemini.js +22 -9
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/nonInteractiveCli.js +24 -0
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.test.js +44 -0
- package/dist/src/nonInteractiveCli.test.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.d.ts +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +17 -1
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.test.js +3 -0
- package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
- package/dist/src/ui/AppContainer.js +41 -8
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +16 -0
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.js +9 -1
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.js +1 -1
- package/dist/src/ui/commands/hooksCommand.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.test.js +1 -1
- package/dist/src/ui/commands/hooksCommand.test.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.test.js +10 -2
- package/dist/src/ui/commands/mcpCommand.test.js.map +1 -1
- package/dist/src/ui/commands/skillsCommand.d.ts +1 -1
- package/dist/src/ui/commands/skillsCommand.js +79 -5
- package/dist/src/ui/commands/skillsCommand.js.map +1 -1
- package/dist/src/ui/commands/skillsCommand.test.d.ts +1 -1
- package/dist/src/ui/commands/skillsCommand.test.js +146 -6
- package/dist/src/ui/commands/skillsCommand.test.js.map +1 -1
- package/dist/src/ui/components/Composer.js +4 -6
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +12 -0
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.test.js +54 -26
- package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.js +19 -14
- package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js +12 -2
- package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.js +4 -4
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/HookStatusDisplay.d.ts +12 -0
- package/dist/src/ui/components/HookStatusDisplay.js +20 -0
- package/dist/src/ui/components/HookStatusDisplay.js.map +1 -0
- package/dist/src/ui/components/HookStatusDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/HookStatusDisplay.test.js +51 -0
- package/dist/src/ui/components/HookStatusDisplay.test.js.map +1 -0
- package/dist/src/ui/components/InputPrompt.js +14 -6
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +21 -2
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.js +7 -3
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.test.js +16 -3
- package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +33 -13
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +16 -0
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/StatusDisplay.d.ts +11 -0
- package/dist/src/ui/components/StatusDisplay.js +40 -0
- package/dist/src/ui/components/StatusDisplay.js.map +1 -0
- package/dist/src/ui/components/StatusDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/StatusDisplay.test.js +143 -0
- package/dist/src/ui/components/StatusDisplay.test.js.map +1 -0
- package/dist/src/ui/components/views/SkillsList.test.js +22 -4
- package/dist/src/ui/components/views/SkillsList.test.js.map +1 -1
- package/dist/src/ui/constants/tips.js +0 -1
- package/dist/src/ui/constants/tips.js.map +1 -1
- package/dist/src/ui/constants.d.ts +2 -0
- package/dist/src/ui/constants.js +2 -0
- package/dist/src/ui/constants.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.d.ts +1 -0
- package/dist/src/ui/contexts/KeypressContext.js +79 -6
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +71 -0
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +3 -1
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +9 -3
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.js +14 -19
- package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.test.js +30 -22
- package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +29 -0
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +39 -0
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
- package/dist/src/ui/hooks/useHookDisplayState.d.ts +7 -0
- package/dist/src/ui/hooks/useHookDisplayState.js +83 -0
- package/dist/src/ui/hooks/useHookDisplayState.js.map +1 -0
- package/dist/src/ui/hooks/useHookDisplayState.test.d.ts +6 -0
- package/dist/src/ui/hooks/useHookDisplayState.test.js +180 -0
- package/dist/src/ui/hooks/useHookDisplayState.test.js.map +1 -0
- package/dist/src/ui/hooks/useToolScheduler.test.js +2 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/types.d.ts +8 -7
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.js +12 -7
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +24 -0
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/ui/utils/terminalCapabilityManager.d.ts +7 -4
- package/dist/src/ui/utils/terminalCapabilityManager.js +61 -66
- package/dist/src/ui/utils/terminalCapabilityManager.js.map +1 -1
- package/dist/src/ui/utils/terminalCapabilityManager.test.js +35 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +1 -1
- package/dist/src/ui/utils/ui-sizing.js +1 -1
- package/dist/src/ui/utils/ui-sizing.js.map +1 -1
- package/dist/src/ui/utils/ui-sizing.test.js +2 -2
- package/dist/src/ui/utils/ui-sizing.test.js.map +1 -1
- package/dist/src/utils/settingsUtils.js +0 -5
- package/dist/src/utils/settingsUtils.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.js +1 -1
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.test.js +12 -0
- package/dist/src/zed-integration/zedIntegration.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/google-gemini-cli-0.24.0-nightly.20251227.37be16243.tgz +0 -0
- package/dist/src/ui/hooks/useBracketedPaste.d.ts +0 -12
- package/dist/src/ui/hooks/useBracketedPaste.js +0 -31
- package/dist/src/ui/hooks/useBracketedPaste.js.map +0 -1
- package/dist/src/ui/utils/bracketedPaste.d.ts +0 -7
- package/dist/src/ui/utils/bracketedPaste.js +0 -15
- package/dist/src/ui/utils/bracketedPaste.js.map +0 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
7
|
+
import * as fs from 'node:fs';
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import * as os from 'node:os';
|
|
10
|
+
import { ExtensionManager } from './extension-manager.js';
|
|
11
|
+
import { loadSettings } from './settings.js';
|
|
12
|
+
import { createExtension } from '../test-utils/createExtension.js';
|
|
13
|
+
import { EXTENSIONS_DIRECTORY_NAME } from './extensions/variables.js';
|
|
14
|
+
import { coreEvents } from '@google/gemini-cli-core';
|
|
15
|
+
const mockHomedir = vi.hoisted(() => vi.fn());
|
|
16
|
+
vi.mock('os', async (importOriginal) => {
|
|
17
|
+
const mockedOs = await importOriginal();
|
|
18
|
+
return {
|
|
19
|
+
...mockedOs,
|
|
20
|
+
homedir: mockHomedir,
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
describe('ExtensionManager skills validation', () => {
|
|
24
|
+
let tempHomeDir;
|
|
25
|
+
let tempWorkspaceDir;
|
|
26
|
+
let userExtensionsDir;
|
|
27
|
+
let extensionManager;
|
|
28
|
+
beforeEach(() => {
|
|
29
|
+
tempHomeDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gemini-cli-skills-test-home-'));
|
|
30
|
+
tempWorkspaceDir = fs.mkdtempSync(path.join(tempHomeDir, 'gemini-cli-skills-test-workspace-'));
|
|
31
|
+
userExtensionsDir = path.join(tempHomeDir, EXTENSIONS_DIRECTORY_NAME);
|
|
32
|
+
fs.mkdirSync(userExtensionsDir, { recursive: true });
|
|
33
|
+
mockHomedir.mockReturnValue(tempHomeDir);
|
|
34
|
+
extensionManager = new ExtensionManager({
|
|
35
|
+
workspaceDir: tempWorkspaceDir,
|
|
36
|
+
requestConsent: vi.fn().mockResolvedValue(true),
|
|
37
|
+
requestSetting: vi.fn().mockResolvedValue(''),
|
|
38
|
+
settings: loadSettings(tempWorkspaceDir).merged,
|
|
39
|
+
});
|
|
40
|
+
vi.spyOn(coreEvents, 'emitFeedback');
|
|
41
|
+
});
|
|
42
|
+
afterEach(() => {
|
|
43
|
+
fs.rmSync(tempHomeDir, { recursive: true, force: true });
|
|
44
|
+
vi.restoreAllMocks();
|
|
45
|
+
});
|
|
46
|
+
it('should emit a warning during install if skills directory is not empty but no skills are loaded', async () => {
|
|
47
|
+
const sourceExtDir = createExtension({
|
|
48
|
+
extensionsDir: tempHomeDir,
|
|
49
|
+
name: 'skills-ext',
|
|
50
|
+
version: '1.0.0',
|
|
51
|
+
});
|
|
52
|
+
const skillsDir = path.join(sourceExtDir, 'skills');
|
|
53
|
+
fs.mkdirSync(skillsDir);
|
|
54
|
+
fs.writeFileSync(path.join(skillsDir, 'not-a-skill.txt'), 'hello');
|
|
55
|
+
await extensionManager.loadExtensions();
|
|
56
|
+
const extension = await extensionManager.installOrUpdateExtension({
|
|
57
|
+
source: sourceExtDir,
|
|
58
|
+
type: 'local',
|
|
59
|
+
});
|
|
60
|
+
expect(extension.name).toBe('skills-ext');
|
|
61
|
+
expect(coreEvents.emitFeedback).toHaveBeenCalledWith('warning', expect.stringContaining('Failed to load skills from'));
|
|
62
|
+
});
|
|
63
|
+
it('should emit a warning during load if skills directory is not empty but no skills are loaded', async () => {
|
|
64
|
+
const extDir = createExtension({
|
|
65
|
+
extensionsDir: userExtensionsDir,
|
|
66
|
+
name: 'load-skills-ext',
|
|
67
|
+
version: '1.0.0',
|
|
68
|
+
});
|
|
69
|
+
const skillsDir = path.join(extDir, 'skills');
|
|
70
|
+
fs.mkdirSync(skillsDir);
|
|
71
|
+
fs.writeFileSync(path.join(skillsDir, 'not-a-skill.txt'), 'hello');
|
|
72
|
+
await extensionManager.loadExtensions();
|
|
73
|
+
expect(coreEvents.emitFeedback).toHaveBeenCalledWith('warning', expect.stringContaining('Failed to load skills from'));
|
|
74
|
+
expect(coreEvents.emitFeedback).toHaveBeenCalledWith('warning', expect.stringContaining('The directory is not empty but no valid skills were discovered'));
|
|
75
|
+
});
|
|
76
|
+
it('should succeed if skills are correctly loaded', async () => {
|
|
77
|
+
const sourceExtDir = createExtension({
|
|
78
|
+
extensionsDir: tempHomeDir,
|
|
79
|
+
name: 'good-skills-ext',
|
|
80
|
+
version: '1.0.0',
|
|
81
|
+
});
|
|
82
|
+
const skillsDir = path.join(sourceExtDir, 'skills');
|
|
83
|
+
const skillSubdir = path.join(skillsDir, 'test-skill');
|
|
84
|
+
fs.mkdirSync(skillSubdir, { recursive: true });
|
|
85
|
+
fs.writeFileSync(path.join(skillSubdir, 'SKILL.md'), '---\nname: test-skill\ndescription: test desc\n---\nbody');
|
|
86
|
+
await extensionManager.loadExtensions();
|
|
87
|
+
const extension = await extensionManager.installOrUpdateExtension({
|
|
88
|
+
source: sourceExtDir,
|
|
89
|
+
type: 'local',
|
|
90
|
+
});
|
|
91
|
+
expect(extension.skills).toHaveLength(1);
|
|
92
|
+
expect(extension.skills[0].name).toBe('test-skill');
|
|
93
|
+
// It might be called for other reasons during startup, but shouldn't be called for our skills loading success
|
|
94
|
+
// Actually, it shouldn't be called with our warning message
|
|
95
|
+
expect(coreEvents.emitFeedback).not.toHaveBeenCalledWith('warning', expect.stringContaining('Failed to load skills from'));
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=extension-manager-skills.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-manager-skills.test.js","sourceRoot":"","sources":["../../../src/config/extension-manager-skills.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,12 +14,13 @@ import { createHash, randomUUID } from 'node:crypto';
|
|
|
14
14
|
import { loadInstallMetadata } from './extension.js';
|
|
15
15
|
import { isWorkspaceTrusted, loadTrustedFolders, TrustLevel, } from './trustedFolders.js';
|
|
16
16
|
import { cloneFromGit, downloadFromGitHubRelease, tryParseGithubUrl, } from './extensions/github.js';
|
|
17
|
-
import { Config, debugLogger, ExtensionDisableEvent, ExtensionEnableEvent, ExtensionInstallEvent, ExtensionLoader, ExtensionUninstallEvent, ExtensionUpdateEvent, getErrorMessage, logExtensionDisable, logExtensionEnable, logExtensionInstallEvent, logExtensionUninstall, logExtensionUpdateEvent, } from '@google/gemini-cli-core';
|
|
17
|
+
import { Config, debugLogger, ExtensionDisableEvent, ExtensionEnableEvent, ExtensionInstallEvent, ExtensionLoader, ExtensionUninstallEvent, ExtensionUpdateEvent, getErrorMessage, logExtensionDisable, logExtensionEnable, logExtensionInstallEvent, logExtensionUninstall, logExtensionUpdateEvent, loadSkillsFromDir, coreEvents, } from '@google/gemini-cli-core';
|
|
18
18
|
import { maybeRequestConsentOrFail } from './extensions/consent.js';
|
|
19
19
|
import { resolveEnvVarsInObject } from '../utils/envVarResolver.js';
|
|
20
20
|
import { ExtensionStorage } from './extensions/storage.js';
|
|
21
21
|
import { EXTENSIONS_CONFIG_FILENAME, INSTALL_METADATA_FILENAME, recursivelyHydrateStrings, } from './extensions/variables.js';
|
|
22
|
-
import { getEnvContents, maybePromptForSettings, } from './extensions/extensionSettings.js';
|
|
22
|
+
import { getEnvContents, maybePromptForSettings, getMissingSettings, } from './extensions/extensionSettings.js';
|
|
23
|
+
import { getEnableHooks } from './settingsSchema.js';
|
|
23
24
|
/**
|
|
24
25
|
* Actual implementation of an ExtensionLoader.
|
|
25
26
|
*
|
|
@@ -130,15 +131,6 @@ Would you like to attempt to install via "git clone" instead?`))) {
|
|
|
130
131
|
}
|
|
131
132
|
try {
|
|
132
133
|
newExtensionConfig = await this.loadExtensionConfig(localSourcePath);
|
|
133
|
-
if (isUpdate && installMetadata.autoUpdate) {
|
|
134
|
-
const oldSettings = new Set(previousExtensionConfig.settings?.map((s) => s.name) || []);
|
|
135
|
-
const newSettings = new Set(newExtensionConfig.settings?.map((s) => s.name) || []);
|
|
136
|
-
const settingsAreEqual = oldSettings.size === newSettings.size &&
|
|
137
|
-
[...oldSettings].every((value) => newSettings.has(value));
|
|
138
|
-
if (!settingsAreEqual && installMetadata.autoUpdate) {
|
|
139
|
-
throw new Error(`Extension "${newExtensionConfig.name}" has settings changes and cannot be auto-updated. Please update manually.`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
134
|
const newExtensionName = newExtensionConfig.name;
|
|
143
135
|
const previous = this.getExtensions().find((installed) => installed.name === newExtensionName);
|
|
144
136
|
if (isUpdate && !previous) {
|
|
@@ -148,11 +140,13 @@ Would you like to attempt to install via "git clone" instead?`))) {
|
|
|
148
140
|
throw new Error(`Extension "${newExtensionName}" is already installed. Please uninstall it first.`);
|
|
149
141
|
}
|
|
150
142
|
const newHasHooks = fs.existsSync(path.join(localSourcePath, 'hooks', 'hooks.json'));
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
await
|
|
143
|
+
const previousHasHooks = !!(isUpdate &&
|
|
144
|
+
previous &&
|
|
145
|
+
previous.hooks &&
|
|
146
|
+
Object.keys(previous.hooks).length > 0);
|
|
147
|
+
const newSkills = await loadSkillsFromDir(path.join(localSourcePath, 'skills'));
|
|
148
|
+
const previousSkills = previous?.skills ?? [];
|
|
149
|
+
await maybeRequestConsentOrFail(newExtensionConfig, this.requestConsent, newHasHooks, previousExtensionConfig, previousHasHooks, newSkills, previousSkills);
|
|
156
150
|
const extensionId = getExtensionId(newExtensionConfig, installMetadata);
|
|
157
151
|
const destinationPath = new ExtensionStorage(newExtensionName).getExtensionDir();
|
|
158
152
|
let previousSettings;
|
|
@@ -169,6 +163,14 @@ Would you like to attempt to install via "git clone" instead?`))) {
|
|
|
169
163
|
await maybePromptForSettings(newExtensionConfig, extensionId, this.requestSetting);
|
|
170
164
|
}
|
|
171
165
|
}
|
|
166
|
+
const missingSettings = await getMissingSettings(newExtensionConfig, extensionId);
|
|
167
|
+
if (missingSettings.length > 0) {
|
|
168
|
+
const message = `Extension "${newExtensionConfig.name}" has missing settings: ${missingSettings
|
|
169
|
+
.map((s) => s.name)
|
|
170
|
+
.join(', ')}. Please run "gemini extensions settings ${newExtensionConfig.name} <setting-name>" to configure them.`;
|
|
171
|
+
debugLogger.warn(message);
|
|
172
|
+
coreEvents.emitFeedback('warning', message);
|
|
173
|
+
}
|
|
172
174
|
if (installMetadata.type === 'local' ||
|
|
173
175
|
installMetadata.type === 'git' ||
|
|
174
176
|
installMetadata.type === 'github-release') {
|
|
@@ -314,12 +316,13 @@ Would you like to attempt to install via "git clone" instead?`))) {
|
|
|
314
316
|
.map((contextFileName) => path.join(effectiveExtensionPath, contextFileName))
|
|
315
317
|
.filter((contextFilePath) => fs.existsSync(contextFilePath));
|
|
316
318
|
let hooks;
|
|
317
|
-
if (this.settings
|
|
319
|
+
if (getEnableHooks(this.settings)) {
|
|
318
320
|
hooks = await this.loadExtensionHooks(effectiveExtensionPath, {
|
|
319
321
|
extensionPath: effectiveExtensionPath,
|
|
320
322
|
workspacePath: this.workspaceDir,
|
|
321
323
|
});
|
|
322
324
|
}
|
|
325
|
+
const skills = await loadSkillsFromDir(path.join(effectiveExtensionPath, 'skills'));
|
|
323
326
|
const extension = {
|
|
324
327
|
name: config.name,
|
|
325
328
|
version: config.version,
|
|
@@ -333,6 +336,7 @@ Would you like to attempt to install via "git clone" instead?`))) {
|
|
|
333
336
|
id: getExtensionId(config, installMetadata),
|
|
334
337
|
settings: config.settings,
|
|
335
338
|
resolvedSettings,
|
|
339
|
+
skills,
|
|
336
340
|
};
|
|
337
341
|
this.loadedExtensions = [...this.loadedExtensions, extension];
|
|
338
342
|
await this.maybeStartExtension(extension);
|
|
@@ -441,6 +445,12 @@ Would you like to attempt to install via "git clone" instead?`))) {
|
|
|
441
445
|
output += `\n ${tool}`;
|
|
442
446
|
});
|
|
443
447
|
}
|
|
448
|
+
if (extension.skills && extension.skills.length > 0) {
|
|
449
|
+
output += `\n Agent skills:`;
|
|
450
|
+
extension.skills.forEach((skill) => {
|
|
451
|
+
output += `\n ${skill.name}: ${skill.description}`;
|
|
452
|
+
});
|
|
453
|
+
}
|
|
444
454
|
const resolvedSettings = extension.resolvedSettings;
|
|
445
455
|
if (resolvedSettings && resolvedSettings.length > 0) {
|
|
446
456
|
output += `\n Settings:`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-manager.js","sourceRoot":"","sources":["../../../src/config/extension-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extension-manager.js","sourceRoot":"","sources":["../../../src/config/extension-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -596,9 +596,9 @@ describe('extension tests', () => {
|
|
|
596
596
|
};
|
|
597
597
|
fs.writeFileSync(path.join(hooksDir, 'hooks.json'), JSON.stringify(hooksConfig));
|
|
598
598
|
const settings = loadSettings(tempWorkspaceDir).merged;
|
|
599
|
-
if (!settings.
|
|
600
|
-
settings.
|
|
601
|
-
settings.
|
|
599
|
+
if (!settings.hooks)
|
|
600
|
+
settings.hooks = {};
|
|
601
|
+
settings.hooks.enabled = true;
|
|
602
602
|
extensionManager = new ExtensionManager({
|
|
603
603
|
workspaceDir: tempWorkspaceDir,
|
|
604
604
|
requestConsent: mockRequestConsent,
|
|
@@ -612,7 +612,7 @@ describe('extension tests', () => {
|
|
|
612
612
|
expect(extension.hooks?.BeforeTool).toHaveLength(1);
|
|
613
613
|
expect(extension.hooks?.BeforeTool?.[0].hooks[0].command).toBe(`echo ${extDir}`);
|
|
614
614
|
});
|
|
615
|
-
it('should not load hooks if
|
|
615
|
+
it('should not load hooks if hooks.enabled is false', async () => {
|
|
616
616
|
const extDir = createExtension({
|
|
617
617
|
extensionsDir: userExtensionsDir,
|
|
618
618
|
name: 'hook-extension-disabled',
|
|
@@ -622,9 +622,9 @@ describe('extension tests', () => {
|
|
|
622
622
|
fs.mkdirSync(hooksDir);
|
|
623
623
|
fs.writeFileSync(path.join(hooksDir, 'hooks.json'), JSON.stringify({ hooks: { BeforeTool: [] } }));
|
|
624
624
|
const settings = loadSettings(tempWorkspaceDir).merged;
|
|
625
|
-
if (!settings.
|
|
626
|
-
settings.
|
|
627
|
-
settings.
|
|
625
|
+
if (!settings.hooks)
|
|
626
|
+
settings.hooks = {};
|
|
627
|
+
settings.hooks.enabled = false;
|
|
628
628
|
extensionManager = new ExtensionManager({
|
|
629
629
|
workspaceDir: tempWorkspaceDir,
|
|
630
630
|
requestConsent: mockRequestConsent,
|
|
@@ -1132,7 +1132,7 @@ This extension will run the following MCP servers:
|
|
|
1132
1132
|
expect(envContent).toContain('MY_API_KEY=old-api-key');
|
|
1133
1133
|
expect(envContent).toContain('NEW_SETTING=new-setting-value');
|
|
1134
1134
|
});
|
|
1135
|
-
it('should
|
|
1135
|
+
it('should auto-update if settings have changed', async () => {
|
|
1136
1136
|
// 1. Install initial version with autoUpdate: true
|
|
1137
1137
|
const oldSourceExtDir = createExtension({
|
|
1138
1138
|
extensionsDir: tempHomeDir,
|
|
@@ -1153,7 +1153,7 @@ This extension will run the following MCP servers:
|
|
|
1153
1153
|
autoUpdate: true,
|
|
1154
1154
|
});
|
|
1155
1155
|
// 2. Create new version with different settings
|
|
1156
|
-
const
|
|
1156
|
+
const extensionDir = createExtension({
|
|
1157
1157
|
extensionsDir: tempHomeDir,
|
|
1158
1158
|
name: 'my-auto-update-ext',
|
|
1159
1159
|
version: '1.1.0',
|
|
@@ -1167,7 +1167,13 @@ This extension will run the following MCP servers:
|
|
|
1167
1167
|
});
|
|
1168
1168
|
const previousExtensionConfig = await extensionManager.loadExtensionConfig(path.join(userExtensionsDir, 'my-auto-update-ext'));
|
|
1169
1169
|
// 3. Attempt to update and assert it fails
|
|
1170
|
-
await
|
|
1170
|
+
const updatedExtension = await extensionManager.installOrUpdateExtension({
|
|
1171
|
+
source: extensionDir,
|
|
1172
|
+
type: 'local',
|
|
1173
|
+
autoUpdate: true,
|
|
1174
|
+
}, previousExtensionConfig);
|
|
1175
|
+
expect(updatedExtension.version).toBe('1.1.0');
|
|
1176
|
+
expect(extensionManager.getExtensions()[0].version).toBe('1.1.0');
|
|
1171
1177
|
});
|
|
1172
1178
|
it('should throw an error for invalid extension names', async () => {
|
|
1173
1179
|
const sourceExtDir = createExtension({
|