@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.
Files changed (43) hide show
  1. package/dist/google-gemini-cli-0.1.13.tgz +0 -0
  2. package/dist/package.json +2 -2
  3. package/dist/src/config/extension.d.ts +1 -0
  4. package/dist/src/config/extension.js +4 -0
  5. package/dist/src/config/extension.js.map +1 -1
  6. package/dist/src/config/settings.d.ts +1 -0
  7. package/dist/src/config/settings.js.map +1 -1
  8. package/dist/src/gemini.js +12 -0
  9. package/dist/src/gemini.js.map +1 -1
  10. package/dist/src/generated/git-commit.d.ts +1 -1
  11. package/dist/src/generated/git-commit.js +1 -1
  12. package/dist/src/services/BuiltinCommandLoader.js +3 -1
  13. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  14. package/dist/src/services/CommandService.d.ts +8 -4
  15. package/dist/src/services/CommandService.js +24 -8
  16. package/dist/src/services/CommandService.js.map +1 -1
  17. package/dist/src/services/FileCommandLoader.d.ts +15 -3
  18. package/dist/src/services/FileCommandLoader.js +64 -35
  19. package/dist/src/services/FileCommandLoader.js.map +1 -1
  20. package/dist/src/ui/App.js +8 -7
  21. package/dist/src/ui/App.js.map +1 -1
  22. package/dist/src/ui/commands/initCommand.d.ts +7 -0
  23. package/dist/src/ui/commands/initCommand.js +76 -0
  24. package/dist/src/ui/commands/initCommand.js.map +1 -0
  25. package/dist/src/ui/commands/types.d.ts +1 -0
  26. package/dist/src/ui/hooks/slashCommandProcessor.js +10 -1
  27. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  28. package/dist/src/ui/hooks/usePhraseCycler.js +1 -0
  29. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  30. package/dist/src/ui/utils/updateCheck.d.ts +6 -1
  31. package/dist/src/ui/utils/updateCheck.js +6 -3
  32. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  33. package/dist/src/utils/handleAutoUpdate.d.ts +10 -0
  34. package/dist/src/utils/handleAutoUpdate.js +97 -0
  35. package/dist/src/utils/handleAutoUpdate.js.map +1 -0
  36. package/dist/src/utils/installationInfo.d.ts +23 -0
  37. package/dist/src/utils/installationInfo.js +154 -0
  38. package/dist/src/utils/installationInfo.js.map +1 -0
  39. package/dist/src/utils/updateEventEmitter.d.ts +11 -0
  40. package/dist/src/utils/updateEventEmitter.js +12 -0
  41. package/dist/src/utils/updateEventEmitter.js.map +1 -0
  42. package/dist/tsconfig.tsbuildinfo +1 -1
  43. 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"}