@google/gemini-cli 0.54.0-preview.0 → 0.55.0-nightly.20260730.gdc859e8e4
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/bundle/{chunk-CZ6IKC6W.js → chunk-2GRGLBMU.js} +1 -1
- package/bundle/{chunk-5X6WKNCA.js → chunk-36BT5WON.js} +1 -1
- package/bundle/{chunk-PMUWVEQP.js → chunk-36RRHHP4.js} +7 -7
- package/bundle/{chunk-CPVZILP2.js → chunk-3C5O57AQ.js} +2 -2
- package/bundle/{chunk-HYGO4QEK.js → chunk-3IQZE7HE.js} +2 -2
- package/bundle/{chunk-K7T2IFNS.js → chunk-44UPBQDM.js} +1 -1
- package/bundle/{chunk-24AZRO3S.js → chunk-46CCLP27.js} +3 -3
- package/bundle/{chunk-KFW7GOXJ.js → chunk-55WXZYX5.js} +2 -2
- package/bundle/{chunk-XTGYOEM3.js → chunk-6VCELB5M.js} +1 -1
- package/bundle/{chunk-GMYSSSFG.js → chunk-AW4VZDPG.js} +1 -1
- package/bundle/{chunk-JKXIXUUH.js → chunk-DXLCZVLE.js} +1 -1
- package/bundle/{chunk-4GNXWN36.js → chunk-GNTRQ7BY.js} +1 -1
- package/bundle/{chunk-S2XDE4E6.js → chunk-GRQOKAC3.js} +67 -54
- package/bundle/chunk-I5BROQMN.js +398 -0
- package/bundle/{chunk-BMD42WWR.js → chunk-IHYUKTS4.js} +3 -3
- package/bundle/{chunk-UOZMJZMA.js → chunk-IZ427MZN.js} +4 -4
- package/bundle/{chunk-HM6J5QFA.js → chunk-K6TOZ5YW.js} +4 -4
- package/bundle/{chunk-YVWOOS5D.js → chunk-MINMMZAW.js} +3 -3
- package/bundle/{chunk-KU7W3PYO.js → chunk-MK4MK3GL.js} +1 -1
- package/bundle/{chunk-YOK6TS2W.js → chunk-NQCSABGB.js} +7613 -14225
- package/bundle/{chunk-ANCJ47GY.js → chunk-PKBFB4QB.js} +9 -8
- package/bundle/{chunk-I2F6JPKA.js → chunk-R3C4OGAD.js} +7 -7
- package/bundle/{chunk-X7LEASVK.js → chunk-RE66UWVE.js} +1 -1
- package/bundle/chunk-SJPO3QAU.js +512 -0
- package/bundle/{chunk-QZ32DOIY.js → chunk-SMLSUPGH.js} +8 -5
- package/bundle/{chunk-ZJJUEIJO.js → chunk-TU5IQJEK.js} +1 -1
- package/bundle/chunk-TWSA7NHM.js +154 -0
- package/bundle/chunk-TX7T6W7H.js +118 -0
- package/bundle/chunk-W7FMUFLQ.js +396944 -0
- package/bundle/chunk-XVKSQQKM.js +102505 -0
- package/bundle/chunk-YNE2NSV4.js +1571 -0
- package/bundle/chunk-ZDHVDPQI.js +17332 -0
- package/bundle/{cleanup-CI4EZBGK.js → cleanup-5GTQEZCN.js} +2 -2
- package/bundle/{cleanup-NW33L7BG.js → cleanup-5TQSOYZJ.js} +2 -2
- package/bundle/{cleanup-WCECJVAH.js → cleanup-NOONQTNP.js} +2 -2
- package/bundle/cleanup-Z32KOHB6.js +32 -0
- package/bundle/{core-X6AKTKZS.js → core-VOS63OW4.js} +1 -1
- package/bundle/{devtoolsService-HT4GPBRA.js → devtoolsService-CTXIHMUJ.js} +2 -2
- package/bundle/{devtoolsService-I4VSDXDZ.js → devtoolsService-OQMU46JY.js} +2 -2
- package/bundle/{devtoolsService-YWDOWAQ7.js → devtoolsService-TAEWHOXX.js} +4 -3
- package/bundle/devtoolsService-U5RWXA6K.js +4359 -0
- package/bundle/{dist-FM4XWKSV.js → dist-2J3IV3DO.js} +1 -1
- package/bundle/{core-JXOKFSQM.js → dist-TDSPUFKA.js} +1 -1
- package/bundle/dist-YZAMDMJ4.js +2156 -0
- package/bundle/docs/changelogs/index.md +17 -0
- package/bundle/docs/changelogs/latest.md +31 -52
- package/bundle/docs/changelogs/preview.md +52 -35
- package/bundle/{gemini-LAE4PTZV.js → gemini-AJ32OLIN.js} +14 -14
- package/bundle/{gemini-M37ESLGX.js → gemini-HZYRRR3W.js} +14 -14
- package/bundle/gemini-K7SZL3BM.js +16427 -0
- package/bundle/{gemini-6QYTVAVR.js → gemini-ORONUFS7.js} +212 -196
- package/bundle/gemini.js +7 -7
- package/bundle/{interactiveCli-353YNM5T.js → interactiveCli-CZN3ABVD.js} +8 -8
- package/bundle/{interactiveCli-D26FIBDY.js → interactiveCli-HAQT2N4N.js} +8 -8
- package/bundle/{interactiveCli-OZI3EOZ3.js → interactiveCli-QVUZFOXB.js} +315 -296
- package/bundle/interactiveCli-VW5AA3R4.js +34816 -0
- package/bundle/{liteRtServerManager-CHOKKKD7.js → liteRtServerManager-246LHTKK.js} +4 -4
- package/bundle/{liteRtServerManager-QZER65XK.js → liteRtServerManager-ATQHUJXF.js} +4 -4
- package/bundle/{liteRtServerManager-5L6ZKYIO.js → liteRtServerManager-FOR5R5V4.js} +4 -4
- package/bundle/liteRtServerManager-VRJMZRKR.js +65 -0
- package/bundle/{oauth2-provider-2DMHCM63.js → oauth2-provider-6TDPTQGQ.js} +1 -1
- package/bundle/{oauth2-provider-RYXZZKGA.js → oauth2-provider-JQN2AVMY.js} +38 -72
- package/bundle/oauth2-provider-RLAXP7KA.js +235 -0
- package/bundle/{oauth2-provider-DOSOCLE2.js → oauth2-provider-ZXEHBVZN.js} +1 -1
- package/bundle/{start-GSFOK3MC.js → start-JY5TDCBC.js} +6 -6
- package/bundle/{start-H6TOQQTQ.js → start-K223F2U4.js} +6 -6
- package/bundle/{start-6KDQYY22.js → start-RJK44IDS.js} +6 -6
- package/bundle/start-YKQRWB23.js +18 -0
- package/package.json +1 -1
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
const require = (await import('node:module')).createRequire(import.meta.url); const __chunk_filename = (await import('node:url')).fileURLToPath(import.meta.url); const __chunk_dirname = (await import('node:path')).dirname(__chunk_filename);
|
|
2
|
+
import {
|
|
3
|
+
runExitCleanup
|
|
4
|
+
} from "./chunk-AW4VZDPG.js";
|
|
5
|
+
import {
|
|
6
|
+
RELEASE_CHANNEL_STABILITY,
|
|
7
|
+
debugLogger,
|
|
8
|
+
getChannelFromVersion,
|
|
9
|
+
isGitRepository
|
|
10
|
+
} from "./chunk-NQCSABGB.js";
|
|
11
|
+
|
|
12
|
+
// packages/cli/src/utils/installationInfo.ts
|
|
13
|
+
import * as fs from "node:fs";
|
|
14
|
+
import * as path from "node:path";
|
|
15
|
+
import * as childProcess from "node:child_process";
|
|
16
|
+
import process2 from "node:process";
|
|
17
|
+
var isDevelopment = process2.env["NODE_ENV"] === "development";
|
|
18
|
+
function getInstallationInfo(projectRoot, isAutoUpdateEnabled) {
|
|
19
|
+
const cliPath = process2.argv[1];
|
|
20
|
+
if (!cliPath) {
|
|
21
|
+
return { packageManager: "unknown" /* UNKNOWN */, isGlobal: false };
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
if (process2.env["IS_BINARY"] === "true") {
|
|
25
|
+
return {
|
|
26
|
+
packageManager: "binary" /* BINARY */,
|
|
27
|
+
isGlobal: true,
|
|
28
|
+
updateMessage: "Running as a standalone binary. Please update by downloading the latest version from GitHub."
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const realPath = fs.realpathSync(cliPath).replace(/\\/g, "/");
|
|
32
|
+
const normalizedProjectRoot = projectRoot?.replace(/\\/g, "/");
|
|
33
|
+
const isGit = isGitRepository(process2.cwd());
|
|
34
|
+
if (isGit && normalizedProjectRoot && realPath.startsWith(normalizedProjectRoot) && !realPath.includes("/node_modules/")) {
|
|
35
|
+
return {
|
|
36
|
+
packageManager: "unknown" /* UNKNOWN */,
|
|
37
|
+
// Not managed by a package manager in this sense
|
|
38
|
+
isGlobal: false,
|
|
39
|
+
updateMessage: 'Running from a local git clone. Please update with "git pull".'
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
if (realPath.includes("/.npm/_npx") || realPath.includes("/npm/_npx")) {
|
|
43
|
+
return {
|
|
44
|
+
packageManager: "npx" /* NPX */,
|
|
45
|
+
isGlobal: false,
|
|
46
|
+
updateMessage: "Running via npx, update not applicable."
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
if (realPath.includes("/.pnpm/_pnpx") || realPath.includes("/.cache/pnpm/dlx")) {
|
|
50
|
+
return {
|
|
51
|
+
packageManager: "pnpx" /* PNPX */,
|
|
52
|
+
isGlobal: false,
|
|
53
|
+
updateMessage: "Running via pnpx, update not applicable."
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (process2.platform === "darwin") {
|
|
57
|
+
try {
|
|
58
|
+
const brewPrefix = childProcess.execSync("brew --prefix gemini-cli", {
|
|
59
|
+
encoding: "utf8",
|
|
60
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
61
|
+
}).trim();
|
|
62
|
+
const brewRealPath = fs.realpathSync(brewPrefix);
|
|
63
|
+
if (realPath.startsWith(brewRealPath)) {
|
|
64
|
+
return {
|
|
65
|
+
packageManager: "homebrew" /* HOMEBREW */,
|
|
66
|
+
isGlobal: true,
|
|
67
|
+
updateMessage: 'Installed via Homebrew. Please update with "brew upgrade gemini-cli".'
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
} catch {
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (realPath.includes("/.volta/") || realPath.includes("/Volta/")) {
|
|
74
|
+
const updateCommand2 = "volta install @google/gemini-cli@latest";
|
|
75
|
+
return {
|
|
76
|
+
packageManager: "volta" /* VOLTA */,
|
|
77
|
+
isGlobal: true,
|
|
78
|
+
updateCommand: updateCommand2,
|
|
79
|
+
updateMessage: isAutoUpdateEnabled ? "Installed with Volta. Attempting to automatically update now..." : `Please run ${updateCommand2} to update`
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (realPath.includes("/.pnpm/global") || realPath.includes("/.local/share/pnpm") || realPath.includes("/Library/pnpm/global/") || realPath.includes("/AppData/Local/pnpm/global/")) {
|
|
83
|
+
const updateCommand2 = "pnpm add -g @google/gemini-cli@latest";
|
|
84
|
+
return {
|
|
85
|
+
packageManager: "pnpm" /* PNPM */,
|
|
86
|
+
isGlobal: true,
|
|
87
|
+
updateCommand: updateCommand2,
|
|
88
|
+
updateMessage: isAutoUpdateEnabled ? "Installed with pnpm. Attempting to automatically update now..." : `Please run ${updateCommand2} to update`
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
if (realPath.includes("/.yarn/global")) {
|
|
92
|
+
const updateCommand2 = "yarn global add @google/gemini-cli@latest";
|
|
93
|
+
return {
|
|
94
|
+
packageManager: "yarn" /* YARN */,
|
|
95
|
+
isGlobal: true,
|
|
96
|
+
updateCommand: updateCommand2,
|
|
97
|
+
updateMessage: isAutoUpdateEnabled ? "Installed with yarn. Attempting to automatically update now..." : `Please run ${updateCommand2} to update`
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
if (realPath.includes("/.bun/install/cache")) {
|
|
101
|
+
return {
|
|
102
|
+
packageManager: "bunx" /* BUNX */,
|
|
103
|
+
isGlobal: false,
|
|
104
|
+
updateMessage: "Running via bunx, update not applicable."
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
if (realPath.includes("/.bun/install/global")) {
|
|
108
|
+
const updateCommand2 = "bun add -g @google/gemini-cli@latest";
|
|
109
|
+
return {
|
|
110
|
+
packageManager: "bun" /* BUN */,
|
|
111
|
+
isGlobal: true,
|
|
112
|
+
updateCommand: updateCommand2,
|
|
113
|
+
updateMessage: isAutoUpdateEnabled ? "Installed with bun. Attempting to automatically update now..." : `Please run ${updateCommand2} to update`
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
if (normalizedProjectRoot && realPath.startsWith(`${normalizedProjectRoot}/node_modules`)) {
|
|
117
|
+
let pm = "npm" /* NPM */;
|
|
118
|
+
if (fs.existsSync(path.join(projectRoot, "yarn.lock"))) {
|
|
119
|
+
pm = "yarn" /* YARN */;
|
|
120
|
+
} else if (fs.existsSync(path.join(projectRoot, "pnpm-lock.yaml"))) {
|
|
121
|
+
pm = "pnpm" /* PNPM */;
|
|
122
|
+
} else if (fs.existsSync(path.join(projectRoot, "bun.lockb"))) {
|
|
123
|
+
pm = "bun" /* BUN */;
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
packageManager: pm,
|
|
127
|
+
isGlobal: false,
|
|
128
|
+
updateMessage: "Locally installed. Please update via your project's package.json."
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const updateCommand = "npm install -g @google/gemini-cli@latest";
|
|
132
|
+
return {
|
|
133
|
+
packageManager: "npm" /* NPM */,
|
|
134
|
+
isGlobal: true,
|
|
135
|
+
updateCommand,
|
|
136
|
+
updateMessage: isAutoUpdateEnabled ? "Installed with npm. Attempting to automatically update now..." : `Please run ${updateCommand} to update`
|
|
137
|
+
};
|
|
138
|
+
} catch (error) {
|
|
139
|
+
debugLogger.log(error);
|
|
140
|
+
return { packageManager: "unknown" /* UNKNOWN */, isGlobal: false };
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// packages/cli/src/utils/updateEventEmitter.ts
|
|
145
|
+
import { EventEmitter } from "node:events";
|
|
146
|
+
var updateEventEmitter = new EventEmitter();
|
|
147
|
+
|
|
148
|
+
// packages/cli/src/utils/spawnWrapper.ts
|
|
149
|
+
import { spawn } from "node:child_process";
|
|
150
|
+
var spawnWrapper = spawn;
|
|
151
|
+
|
|
152
|
+
// packages/cli/src/utils/handleAutoUpdate.ts
|
|
153
|
+
var _updateInProgress = false;
|
|
154
|
+
async function waitForUpdateCompletion(timeoutMs = 3e4) {
|
|
155
|
+
if (!_updateInProgress) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
debugLogger.log(
|
|
159
|
+
"\nGemini CLI is waiting for a background update to complete before restarting..."
|
|
160
|
+
);
|
|
161
|
+
return new Promise((resolve) => {
|
|
162
|
+
if (!_updateInProgress) {
|
|
163
|
+
resolve();
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const timer = setTimeout(cleanup, timeoutMs);
|
|
167
|
+
function cleanup() {
|
|
168
|
+
clearTimeout(timer);
|
|
169
|
+
updateEventEmitter.off("update-success", cleanup);
|
|
170
|
+
updateEventEmitter.off("update-failed", cleanup);
|
|
171
|
+
resolve();
|
|
172
|
+
}
|
|
173
|
+
updateEventEmitter.once("update-success", cleanup);
|
|
174
|
+
updateEventEmitter.once("update-failed", cleanup);
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
function handleAutoUpdate(info, settings, projectRoot, isSandboxEnabled, spawnFn = spawnWrapper) {
|
|
178
|
+
if (!info) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (isSandboxEnabled) {
|
|
182
|
+
updateEventEmitter.emit("update-info", {
|
|
183
|
+
message: `${info.message}
|
|
184
|
+
Automatic update is not available in sandbox mode.`
|
|
185
|
+
});
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
if (!settings.merged.general.enableAutoUpdateNotification) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
const installationInfo = getInstallationInfo(
|
|
192
|
+
projectRoot,
|
|
193
|
+
settings.merged.general.enableAutoUpdate
|
|
194
|
+
);
|
|
195
|
+
if ([
|
|
196
|
+
"npx" /* NPX */,
|
|
197
|
+
"pnpx" /* PNPX */,
|
|
198
|
+
"bunx" /* BUNX */,
|
|
199
|
+
"binary" /* BINARY */
|
|
200
|
+
].includes(installationInfo.packageManager)) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
let combinedMessage = info.message;
|
|
204
|
+
if (installationInfo.updateMessage) {
|
|
205
|
+
combinedMessage += `
|
|
206
|
+
${installationInfo.updateMessage}`;
|
|
207
|
+
}
|
|
208
|
+
if (!installationInfo.updateCommand || !settings.merged.general.enableAutoUpdate) {
|
|
209
|
+
updateEventEmitter.emit("update-received", {
|
|
210
|
+
...info,
|
|
211
|
+
message: combinedMessage,
|
|
212
|
+
isUpdating: false
|
|
213
|
+
});
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
updateEventEmitter.emit("update-received", {
|
|
217
|
+
...info,
|
|
218
|
+
message: combinedMessage,
|
|
219
|
+
isUpdating: true
|
|
220
|
+
});
|
|
221
|
+
if (_updateInProgress) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
const currentVersion = info.update.current;
|
|
225
|
+
if (!currentVersion) {
|
|
226
|
+
debugLogger.warn(
|
|
227
|
+
"Update check: current version is missing. Skipping automatic update for safety."
|
|
228
|
+
);
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
const currentChannel = getChannelFromVersion(currentVersion);
|
|
232
|
+
const targetChannel = getChannelFromVersion(info.update.latest);
|
|
233
|
+
if (RELEASE_CHANNEL_STABILITY[targetChannel] < RELEASE_CHANNEL_STABILITY[currentChannel]) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const isNightly = info.update.latest.includes("nightly");
|
|
237
|
+
const updateCommand = installationInfo.updateCommand.replace(
|
|
238
|
+
"@latest",
|
|
239
|
+
isNightly ? "@nightly" : `@${info.update.latest}`
|
|
240
|
+
);
|
|
241
|
+
const updateProcess = spawnFn(updateCommand, {
|
|
242
|
+
stdio: "ignore",
|
|
243
|
+
shell: true,
|
|
244
|
+
detached: true
|
|
245
|
+
});
|
|
246
|
+
_updateInProgress = true;
|
|
247
|
+
updateProcess.unref();
|
|
248
|
+
updateProcess.on("close", (code) => {
|
|
249
|
+
_updateInProgress = false;
|
|
250
|
+
if (code === 0) {
|
|
251
|
+
updateEventEmitter.emit("update-success", {
|
|
252
|
+
message: "Update successful! The new version will be used on your next run."
|
|
253
|
+
});
|
|
254
|
+
} else {
|
|
255
|
+
updateEventEmitter.emit("update-failed", {
|
|
256
|
+
message: `Automatic update failed. Please try updating manually:
|
|
257
|
+
|
|
258
|
+
${updateCommand}`
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
updateProcess.on("error", (err) => {
|
|
263
|
+
_updateInProgress = false;
|
|
264
|
+
updateEventEmitter.emit("update-failed", {
|
|
265
|
+
message: `Automatic update failed. Please try updating manually. (error: ${err.message})
|
|
266
|
+
|
|
267
|
+
${updateCommand}`
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
return updateProcess;
|
|
271
|
+
}
|
|
272
|
+
function setUpdateHandler(addItem, setUpdateInfo) {
|
|
273
|
+
let successfullyInstalled = false;
|
|
274
|
+
const handleUpdateReceived = (info) => {
|
|
275
|
+
setUpdateInfo(info);
|
|
276
|
+
const savedMessage = info.message;
|
|
277
|
+
setTimeout(() => {
|
|
278
|
+
if (!successfullyInstalled) {
|
|
279
|
+
addItem(
|
|
280
|
+
{
|
|
281
|
+
type: "info" /* INFO */,
|
|
282
|
+
text: savedMessage
|
|
283
|
+
},
|
|
284
|
+
Date.now()
|
|
285
|
+
);
|
|
286
|
+
}
|
|
287
|
+
setUpdateInfo(null);
|
|
288
|
+
}, 6e4);
|
|
289
|
+
};
|
|
290
|
+
const handleUpdateFailed = (data) => {
|
|
291
|
+
setUpdateInfo(null);
|
|
292
|
+
addItem(
|
|
293
|
+
{
|
|
294
|
+
type: "error" /* ERROR */,
|
|
295
|
+
text: data?.message || `Automatic update failed. Please try updating manually`
|
|
296
|
+
},
|
|
297
|
+
Date.now()
|
|
298
|
+
);
|
|
299
|
+
};
|
|
300
|
+
const handleUpdateSuccess = () => {
|
|
301
|
+
successfullyInstalled = true;
|
|
302
|
+
setUpdateInfo(null);
|
|
303
|
+
addItem(
|
|
304
|
+
{
|
|
305
|
+
type: "info" /* INFO */,
|
|
306
|
+
text: `Update successful! The new version will be used on your next run.`
|
|
307
|
+
},
|
|
308
|
+
Date.now()
|
|
309
|
+
);
|
|
310
|
+
};
|
|
311
|
+
const handleUpdateInfo = (data) => {
|
|
312
|
+
addItem(
|
|
313
|
+
{
|
|
314
|
+
type: "info" /* INFO */,
|
|
315
|
+
text: data.message
|
|
316
|
+
},
|
|
317
|
+
Date.now()
|
|
318
|
+
);
|
|
319
|
+
};
|
|
320
|
+
updateEventEmitter.on("update-received", handleUpdateReceived);
|
|
321
|
+
updateEventEmitter.on("update-failed", handleUpdateFailed);
|
|
322
|
+
updateEventEmitter.on("update-success", handleUpdateSuccess);
|
|
323
|
+
updateEventEmitter.on("update-info", handleUpdateInfo);
|
|
324
|
+
return () => {
|
|
325
|
+
updateEventEmitter.off("update-received", handleUpdateReceived);
|
|
326
|
+
updateEventEmitter.off("update-failed", handleUpdateFailed);
|
|
327
|
+
updateEventEmitter.off("update-success", handleUpdateSuccess);
|
|
328
|
+
updateEventEmitter.off("update-info", handleUpdateInfo);
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
// packages/cli/src/utils/processUtils.ts
|
|
333
|
+
var RELAUNCH_EXIT_CODE = 199;
|
|
334
|
+
var isRelaunching = false;
|
|
335
|
+
async function relaunchApp() {
|
|
336
|
+
if (isRelaunching) return;
|
|
337
|
+
isRelaunching = true;
|
|
338
|
+
await waitForUpdateCompletion();
|
|
339
|
+
await runExitCleanup();
|
|
340
|
+
process.exit(RELAUNCH_EXIT_CODE);
|
|
341
|
+
}
|
|
342
|
+
function isStandardSea() {
|
|
343
|
+
return process.argv[0] !== process.argv[1] && (process.env["IS_BINARY"] === "true" || process.isSea?.() === true);
|
|
344
|
+
}
|
|
345
|
+
function getScriptArgs() {
|
|
346
|
+
return process.argv.slice(isStandardSea() ? 1 : 2);
|
|
347
|
+
}
|
|
348
|
+
function isSeaEnvironment() {
|
|
349
|
+
return process.env["IS_BINARY"] === "true" || process.isSea?.() === true || process.argv[0] === process.argv[1];
|
|
350
|
+
}
|
|
351
|
+
function getSpawnConfig(nodeArgs, scriptArgs) {
|
|
352
|
+
const isBinary = isSeaEnvironment();
|
|
353
|
+
const newEnv = {
|
|
354
|
+
...process.env,
|
|
355
|
+
GEMINI_CLI_NO_RELAUNCH: "true"
|
|
356
|
+
};
|
|
357
|
+
const finalSpawnArgs = [];
|
|
358
|
+
if (isBinary) {
|
|
359
|
+
if (nodeArgs.length > 0) {
|
|
360
|
+
for (const arg of nodeArgs) {
|
|
361
|
+
if (/[\s"'\\]/.test(arg)) {
|
|
362
|
+
throw new Error(
|
|
363
|
+
`Unsupported node argument for SEA relaunch: ${arg}. Complex escaping is not supported.`
|
|
364
|
+
);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
const existingNodeOptions = process.env["NODE_OPTIONS"] || "";
|
|
368
|
+
newEnv["NODE_OPTIONS"] = `${existingNodeOptions} ${nodeArgs.join(" ")}`.trim();
|
|
369
|
+
}
|
|
370
|
+
finalSpawnArgs.push(process.execPath, ...scriptArgs);
|
|
371
|
+
} else {
|
|
372
|
+
finalSpawnArgs.push(
|
|
373
|
+
...process.execArgv,
|
|
374
|
+
...nodeArgs,
|
|
375
|
+
process.argv[1],
|
|
376
|
+
...scriptArgs
|
|
377
|
+
);
|
|
378
|
+
}
|
|
379
|
+
return {
|
|
380
|
+
spawnArgs: finalSpawnArgs,
|
|
381
|
+
env: newEnv
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
export {
|
|
386
|
+
isDevelopment,
|
|
387
|
+
handleAutoUpdate,
|
|
388
|
+
setUpdateHandler,
|
|
389
|
+
RELAUNCH_EXIT_CODE,
|
|
390
|
+
relaunchApp,
|
|
391
|
+
getScriptArgs,
|
|
392
|
+
getSpawnConfig
|
|
393
|
+
};
|
|
394
|
+
/**
|
|
395
|
+
* @license
|
|
396
|
+
* Copyright 2025 Google LLC
|
|
397
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
398
|
+
*/
|
|
@@ -2,7 +2,7 @@ const require = (await import('node:module')).createRequire(import.meta.url); co
|
|
|
2
2
|
import {
|
|
3
3
|
exitCli,
|
|
4
4
|
require_source
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MK4MK3GL.js";
|
|
6
6
|
import {
|
|
7
7
|
DEFAULT_PORT,
|
|
8
8
|
SERVER_START_WAIT_MS,
|
|
@@ -14,10 +14,10 @@ import {
|
|
|
14
14
|
isServerRunning,
|
|
15
15
|
resolveGemmaConfig,
|
|
16
16
|
writeServerProcessInfo
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-SMLSUPGH.js";
|
|
18
18
|
import {
|
|
19
19
|
debugLogger
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-W7FMUFLQ.js";
|
|
21
21
|
import {
|
|
22
22
|
__toESM
|
|
23
23
|
} from "./chunk-34MYV7JD.js";
|
|
@@ -282503,8 +282503,8 @@ function isValidToolName(name3, options = {}) {
|
|
|
282503
282503
|
}
|
|
282504
282504
|
|
|
282505
282505
|
// packages/core/dist/src/generated/git-commit.js
|
|
282506
|
-
var GIT_COMMIT_INFO = "
|
|
282507
|
-
var CLI_VERSION = "0.
|
|
282506
|
+
var GIT_COMMIT_INFO = "dc859e8e4";
|
|
282507
|
+
var CLI_VERSION = "0.55.0-nightly.20260730.gdc859e8e4";
|
|
282508
282508
|
|
|
282509
282509
|
// packages/core/dist/src/ide/detect-ide.js
|
|
282510
282510
|
var IDE_DEFINITIONS = {
|
|
@@ -305685,7 +305685,7 @@ function getVersion() {
|
|
|
305685
305685
|
}
|
|
305686
305686
|
versionPromise = (async () => {
|
|
305687
305687
|
const pkgJson = await getPackageJson(__dirname4);
|
|
305688
|
-
return "0.
|
|
305688
|
+
return "0.55.0-nightly.20260730.gdc859e8e4";
|
|
305689
305689
|
})();
|
|
305690
305690
|
return versionPromise;
|
|
305691
305691
|
}
|
|
@@ -338285,7 +338285,7 @@ var A2AAuthProviderFactory = class _A2AAuthProviderFactory {
|
|
|
338285
338285
|
return provider;
|
|
338286
338286
|
}
|
|
338287
338287
|
case "oauth2": {
|
|
338288
|
-
const { OAuth2AuthProvider } = await import("./oauth2-provider-
|
|
338288
|
+
const { OAuth2AuthProvider } = await import("./oauth2-provider-6TDPTQGQ.js");
|
|
338289
338289
|
const provider = new OAuth2AuthProvider(authConfig, options.agentName ?? "unknown", agentCard, options.agentCardUrl);
|
|
338290
338290
|
await provider.initialize();
|
|
338291
338291
|
return provider;
|
|
@@ -282777,8 +282777,8 @@ function isValidToolName(name3, options = {}) {
|
|
|
282777
282777
|
}
|
|
282778
282778
|
|
|
282779
282779
|
// packages/core/src/generated/git-commit.ts
|
|
282780
|
-
var GIT_COMMIT_INFO = "
|
|
282781
|
-
var CLI_VERSION = "0.
|
|
282780
|
+
var GIT_COMMIT_INFO = "dc859e8e4";
|
|
282781
|
+
var CLI_VERSION = "0.55.0-nightly.20260729.g3499c84f7";
|
|
282782
282782
|
|
|
282783
282783
|
// packages/core/src/ide/detect-ide.ts
|
|
282784
282784
|
var IDE_DEFINITIONS = {
|
|
@@ -306272,7 +306272,7 @@ function getVersion() {
|
|
|
306272
306272
|
}
|
|
306273
306273
|
versionPromise = (async () => {
|
|
306274
306274
|
const pkgJson = await getPackageJson(__dirname4);
|
|
306275
|
-
return "0.
|
|
306275
|
+
return "0.55.0-nightly.20260729.g3499c84f7";
|
|
306276
306276
|
})();
|
|
306277
306277
|
return versionPromise;
|
|
306278
306278
|
}
|
|
@@ -340929,7 +340929,7 @@ var A2AAuthProviderFactory = class _A2AAuthProviderFactory {
|
|
|
340929
340929
|
return provider;
|
|
340930
340930
|
}
|
|
340931
340931
|
case "oauth2": {
|
|
340932
|
-
const { OAuth2AuthProvider } = await import("./oauth2-provider-
|
|
340932
|
+
const { OAuth2AuthProvider } = await import("./oauth2-provider-ZXEHBVZN.js");
|
|
340933
340933
|
const provider = new OAuth2AuthProvider(
|
|
340934
340934
|
authConfig,
|
|
340935
340935
|
options.agentName ?? "unknown",
|
|
@@ -2,7 +2,7 @@ const require = (await import('node:module')).createRequire(import.meta.url); co
|
|
|
2
2
|
import {
|
|
3
3
|
exitCli,
|
|
4
4
|
require_source
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-YNE2NSV4.js";
|
|
6
6
|
import {
|
|
7
7
|
DEFAULT_PORT,
|
|
8
8
|
SERVER_START_WAIT_MS,
|
|
@@ -14,10 +14,10 @@ import {
|
|
|
14
14
|
isServerRunning,
|
|
15
15
|
resolveGemmaConfig,
|
|
16
16
|
writeServerProcessInfo
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-ZDHVDPQI.js";
|
|
18
18
|
import {
|
|
19
19
|
debugLogger
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-IZ427MZN.js";
|
|
21
21
|
import {
|
|
22
22
|
__toESM
|
|
23
23
|
} from "./chunk-34MYV7JD.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require = (await import('node:module')).createRequire(import.meta.url); const __chunk_filename = (await import('node:url')).fileURLToPath(import.meta.url); const __chunk_dirname = (await import('node:path')).dirname(__chunk_filename);
|
|
2
2
|
import {
|
|
3
3
|
runExitCleanup
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-6VCELB5M.js";
|
|
5
5
|
import {
|
|
6
6
|
__commonJS,
|
|
7
7
|
__require
|