@google/gemini-cli 0.1.13-nightly.250729.83c4dddb → 0.1.13-nightly.250730.091804c7
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/google-gemini-cli-0.1.13.tgz +0 -0
- package/dist/package.json +2 -2
- package/dist/src/config/extension.d.ts +1 -0
- package/dist/src/config/extension.js +4 -0
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/settings.d.ts +1 -0
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/gemini.js +12 -0
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +3 -1
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/CommandService.d.ts +8 -4
- package/dist/src/services/CommandService.js +24 -8
- package/dist/src/services/CommandService.js.map +1 -1
- package/dist/src/services/FileCommandLoader.d.ts +15 -3
- package/dist/src/services/FileCommandLoader.js +64 -35
- package/dist/src/services/FileCommandLoader.js.map +1 -1
- package/dist/src/ui/App.js +8 -7
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/commands/initCommand.d.ts +7 -0
- package/dist/src/ui/commands/initCommand.js +76 -0
- package/dist/src/ui/commands/initCommand.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +1 -0
- package/dist/src/ui/hooks/slashCommandProcessor.js +10 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.js +1 -0
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.d.ts +6 -1
- package/dist/src/ui/utils/updateCheck.js +6 -3
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.d.ts +10 -0
- package/dist/src/utils/handleAutoUpdate.js +97 -0
- package/dist/src/utils/handleAutoUpdate.js.map +1 -0
- package/dist/src/utils/installationInfo.d.ts +23 -0
- package/dist/src/utils/installationInfo.js +154 -0
- package/dist/src/utils/installationInfo.js.map +1 -0
- package/dist/src/utils/updateEventEmitter.d.ts +11 -0
- package/dist/src/utils/updateEventEmitter.js +12 -0
- package/dist/src/utils/updateEventEmitter.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { isGitRepository } from '@google/gemini-cli-core';
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import * as childProcess from 'child_process';
|
|
10
|
+
export var PackageManager;
|
|
11
|
+
(function (PackageManager) {
|
|
12
|
+
PackageManager["NPM"] = "npm";
|
|
13
|
+
PackageManager["YARN"] = "yarn";
|
|
14
|
+
PackageManager["PNPM"] = "pnpm";
|
|
15
|
+
PackageManager["PNPX"] = "pnpx";
|
|
16
|
+
PackageManager["BUN"] = "bun";
|
|
17
|
+
PackageManager["BUNX"] = "bunx";
|
|
18
|
+
PackageManager["HOMEBREW"] = "homebrew";
|
|
19
|
+
PackageManager["NPX"] = "npx";
|
|
20
|
+
PackageManager["UNKNOWN"] = "unknown";
|
|
21
|
+
})(PackageManager || (PackageManager = {}));
|
|
22
|
+
export function getInstallationInfo(projectRoot, isAutoUpdateDisabled) {
|
|
23
|
+
const cliPath = process.argv[1];
|
|
24
|
+
if (!cliPath) {
|
|
25
|
+
return { packageManager: PackageManager.UNKNOWN, isGlobal: false };
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
// Normalize path separators to forward slashes for consistent matching.
|
|
29
|
+
const realPath = fs.realpathSync(cliPath).replace(/\\/g, '/');
|
|
30
|
+
const normalizedProjectRoot = projectRoot?.replace(/\\/g, '/');
|
|
31
|
+
const isGit = isGitRepository(process.cwd());
|
|
32
|
+
// Check for local git clone first
|
|
33
|
+
if (isGit &&
|
|
34
|
+
normalizedProjectRoot &&
|
|
35
|
+
realPath.startsWith(normalizedProjectRoot) &&
|
|
36
|
+
!realPath.includes('/node_modules/')) {
|
|
37
|
+
return {
|
|
38
|
+
packageManager: PackageManager.UNKNOWN, // Not managed by a package manager in this sense
|
|
39
|
+
isGlobal: false,
|
|
40
|
+
updateMessage: 'Running from a local git clone. Please update with "git pull".',
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// Check for npx/pnpx
|
|
44
|
+
if (realPath.includes('/.npm/_npx') || realPath.includes('/npm/_npx')) {
|
|
45
|
+
return {
|
|
46
|
+
packageManager: PackageManager.NPX,
|
|
47
|
+
isGlobal: false,
|
|
48
|
+
updateMessage: 'Running via npx, update not applicable.',
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (realPath.includes('/.pnpm/_pnpx')) {
|
|
52
|
+
return {
|
|
53
|
+
packageManager: PackageManager.PNPX,
|
|
54
|
+
isGlobal: false,
|
|
55
|
+
updateMessage: 'Running via pnpx, update not applicable.',
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
// Check for Homebrew
|
|
59
|
+
if (process.platform === 'darwin') {
|
|
60
|
+
try {
|
|
61
|
+
// The package name in homebrew is gemini-cli
|
|
62
|
+
childProcess.execSync('brew list -1 | grep -q "^gemini-cli$"', {
|
|
63
|
+
stdio: 'ignore',
|
|
64
|
+
});
|
|
65
|
+
return {
|
|
66
|
+
packageManager: PackageManager.HOMEBREW,
|
|
67
|
+
isGlobal: true,
|
|
68
|
+
updateMessage: 'Installed via Homebrew. Please update with "brew upgrade".',
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch (_error) {
|
|
72
|
+
// Brew is not installed or gemini-cli is not installed via brew.
|
|
73
|
+
// Continue to the next check.
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Check for pnpm
|
|
77
|
+
if (realPath.includes('/.pnpm/global')) {
|
|
78
|
+
const updateCommand = 'pnpm add -g @google/gemini-cli@latest';
|
|
79
|
+
return {
|
|
80
|
+
packageManager: PackageManager.PNPM,
|
|
81
|
+
isGlobal: true,
|
|
82
|
+
updateCommand,
|
|
83
|
+
updateMessage: isAutoUpdateDisabled
|
|
84
|
+
? `Please run ${updateCommand} to update`
|
|
85
|
+
: 'Installed with pnpm. Attempting to automatically update now...',
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// Check for yarn
|
|
89
|
+
if (realPath.includes('/.yarn/global')) {
|
|
90
|
+
const updateCommand = 'yarn global add @google/gemini-cli@latest';
|
|
91
|
+
return {
|
|
92
|
+
packageManager: PackageManager.YARN,
|
|
93
|
+
isGlobal: true,
|
|
94
|
+
updateCommand,
|
|
95
|
+
updateMessage: isAutoUpdateDisabled
|
|
96
|
+
? `Please run ${updateCommand} to update`
|
|
97
|
+
: 'Installed with yarn. Attempting to automatically update now...',
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// Check for bun
|
|
101
|
+
if (realPath.includes('/.bun/install/cache')) {
|
|
102
|
+
return {
|
|
103
|
+
packageManager: PackageManager.BUNX,
|
|
104
|
+
isGlobal: false,
|
|
105
|
+
updateMessage: 'Running via bunx, update not applicable.',
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
if (realPath.includes('/.bun/bin')) {
|
|
109
|
+
const updateCommand = 'bun add -g @google/gemini-cli@latest';
|
|
110
|
+
return {
|
|
111
|
+
packageManager: PackageManager.BUN,
|
|
112
|
+
isGlobal: true,
|
|
113
|
+
updateCommand,
|
|
114
|
+
updateMessage: isAutoUpdateDisabled
|
|
115
|
+
? `Please run ${updateCommand} to update`
|
|
116
|
+
: 'Installed with bun. Attempting to automatically update now...',
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// Check for local install
|
|
120
|
+
if (normalizedProjectRoot &&
|
|
121
|
+
realPath.startsWith(`${normalizedProjectRoot}/node_modules`)) {
|
|
122
|
+
let pm = PackageManager.NPM;
|
|
123
|
+
if (fs.existsSync(path.join(projectRoot, 'yarn.lock'))) {
|
|
124
|
+
pm = PackageManager.YARN;
|
|
125
|
+
}
|
|
126
|
+
else if (fs.existsSync(path.join(projectRoot, 'pnpm-lock.yaml'))) {
|
|
127
|
+
pm = PackageManager.PNPM;
|
|
128
|
+
}
|
|
129
|
+
else if (fs.existsSync(path.join(projectRoot, 'bun.lockb'))) {
|
|
130
|
+
pm = PackageManager.BUN;
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
packageManager: pm,
|
|
134
|
+
isGlobal: false,
|
|
135
|
+
updateMessage: "Locally installed. Please update via your project's package.json.",
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
// Assume global npm
|
|
139
|
+
const updateCommand = 'npm install -g @google/gemini-cli@latest';
|
|
140
|
+
return {
|
|
141
|
+
packageManager: PackageManager.NPM,
|
|
142
|
+
isGlobal: true,
|
|
143
|
+
updateCommand,
|
|
144
|
+
updateMessage: isAutoUpdateDisabled
|
|
145
|
+
? `Please run ${updateCommand} to update`
|
|
146
|
+
: 'Installed with npm. Attempting to automatically update now...',
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
console.log(error);
|
|
151
|
+
return { packageManager: PackageManager.UNKNOWN, isGlobal: false };
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=installationInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installationInfo.js","sourceRoot":"","sources":["../../../src/utils/installationInfo.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 { EventEmitter } from 'events';
|
|
7
|
+
/**
|
|
8
|
+
* A shared event emitter for application-wide communication
|
|
9
|
+
* between decoupled parts of the CLI.
|
|
10
|
+
*/
|
|
11
|
+
export declare const updateEventEmitter: EventEmitter<[never]>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from 'events';
|
|
7
|
+
/**
|
|
8
|
+
* A shared event emitter for application-wide communication
|
|
9
|
+
* between decoupled parts of the CLI.
|
|
10
|
+
*/
|
|
11
|
+
export const updateEventEmitter = new EventEmitter();
|
|
12
|
+
//# sourceMappingURL=updateEventEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateEventEmitter.js","sourceRoot":"","sources":["../../../src/utils/updateEventEmitter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC"}
|