@google/gemini-cli 0.60.0-preview.0 → 0.61.0-nightly.20260909.ged2ac40df

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 (69) hide show
  1. package/bundle/{chunk-ZX526LXA.js → chunk-3OTKJGN2.js} +7 -7
  2. package/bundle/{chunk-ZOCA7DR7.js → chunk-3P3BK2TC.js} +2 -2
  3. package/bundle/{chunk-CJ3F2CF4.js → chunk-4GFDY7WB.js} +2 -2
  4. package/bundle/{chunk-RY7G2LHR.js → chunk-6CG3PRXG.js} +1 -1
  5. package/bundle/{chunk-FZ5V6AOR.js → chunk-6SVZC6SZ.js} +1 -1
  6. package/bundle/{chunk-JO3EXXPQ.js → chunk-6TKDB4RW.js} +1 -1
  7. package/bundle/{chunk-WSRDZIEX.js → chunk-72RRXB4E.js} +8 -5
  8. package/bundle/{chunk-MHUSLH6Z.js → chunk-A6ULTOE7.js} +67 -54
  9. package/bundle/{chunk-HSV5XF4Y.js → chunk-AIOZQDNS.js} +1 -1
  10. package/bundle/{chunk-6JC2DFFV.js → chunk-CMP3WNPY.js} +7 -7
  11. package/bundle/{chunk-MOFAO64Q.js → chunk-DHG4ARAF.js} +1 -1
  12. package/bundle/chunk-ESBXUM66.js +399011 -0
  13. package/bundle/{chunk-3BBEM33B.js → chunk-G2HNVZYL.js} +1 -1
  14. package/bundle/{chunk-AS5HUHJQ.js → chunk-GSMKZNYD.js} +1 -1
  15. package/bundle/chunk-GXBVYRZC.js +1571 -0
  16. package/bundle/{chunk-B35ENJ4E.js → chunk-ICEYWU2S.js} +2 -2
  17. package/bundle/{chunk-GXZJHUYG.js → chunk-KG5DGMJV.js} +3 -3
  18. package/bundle/{chunk-QKQP4OAM.js → chunk-L4CU45UU.js} +7748 -14586
  19. package/bundle/{chunk-SZWITNYT.js → chunk-LNLXANUU.js} +1 -1
  20. package/bundle/{chunk-VWG6RSQF.js → chunk-NRI447XR.js} +3 -3
  21. package/bundle/{chunk-OXCETUAV.js → chunk-OFCWTOPE.js} +9 -8
  22. package/bundle/chunk-OGNWA4NU.js +17353 -0
  23. package/bundle/chunk-OHLLQDZK.js +102670 -0
  24. package/bundle/{chunk-MNWBDZEW.js → chunk-OZHDMU2F.js} +1 -1
  25. package/bundle/chunk-PGLYJVDY.js +398 -0
  26. package/bundle/chunk-QNFTNAZ3.js +512 -0
  27. package/bundle/{chunk-KJ3DSGP6.js → chunk-RRFXRV32.js} +7 -7
  28. package/bundle/{chunk-CBLSL3EM.js → chunk-V2DJ3GMS.js} +1 -1
  29. package/bundle/{chunk-Z3ZCNEN5.js → chunk-VT6H7JMR.js} +3 -3
  30. package/bundle/{chunk-IIXMDKNQ.js → chunk-W5JPEXLZ.js} +7 -7
  31. package/bundle/chunk-WGNTEF5G.js +154 -0
  32. package/bundle/chunk-YLYKYWW3.js +118 -0
  33. package/bundle/{cleanup-3NLZUFCB.js → cleanup-CQDZD6OH.js} +2 -2
  34. package/bundle/{cleanup-WA2HUZYP.js → cleanup-MJXZWPAB.js} +2 -2
  35. package/bundle/{cleanup-WSQUEKV4.js → cleanup-NE3WAKA7.js} +2 -2
  36. package/bundle/cleanup-W7HO5CNI.js +32 -0
  37. package/bundle/{core-X7B62CE3.js → core-TD3QT7YV.js} +1 -1
  38. package/bundle/{devtoolsService-IFCLCSNA.js → devtoolsService-5F6M45NJ.js} +2 -2
  39. package/bundle/{devtoolsService-4UGAYGLM.js → devtoolsService-HZ4GVNIF.js} +2 -2
  40. package/bundle/{devtoolsService-77KBSPWB.js → devtoolsService-IEHCU262.js} +4 -3
  41. package/bundle/devtoolsService-ZAAGYX2P.js +4359 -0
  42. package/bundle/{dist-VKHG4X3B.js → dist-5GW7SAKM.js} +1 -1
  43. package/bundle/{core-25XEBKOQ.js → dist-634QHCLR.js} +1 -1
  44. package/bundle/dist-S2NRVNNH.js +2216 -0
  45. package/bundle/docs/changelogs/index.md +12 -0
  46. package/bundle/docs/changelogs/latest.md +22 -32
  47. package/bundle/docs/changelogs/preview.md +54 -17
  48. package/bundle/{gemini-4L7IGTB3.js → gemini-EXHNC3P2.js} +14 -14
  49. package/bundle/{gemini-MPHWQGRY.js → gemini-UH4D7QQO.js} +214 -198
  50. package/bundle/{gemini-CXRDUIMP.js → gemini-ZMC7Y4M5.js} +14 -14
  51. package/bundle/gemini-ZYZPV75S.js +17432 -0
  52. package/bundle/gemini.js +7 -7
  53. package/bundle/{interactiveCli-RJOWMONA.js → interactiveCli-DPNMRBAJ.js} +8 -8
  54. package/bundle/{interactiveCli-JODN5SQN.js → interactiveCli-K2X4WXE2.js} +8 -8
  55. package/bundle/{interactiveCli-DVEN62HN.js → interactiveCli-S4QZUDTB.js} +315 -296
  56. package/bundle/interactiveCli-SHWIRB7J.js +34983 -0
  57. package/bundle/{liteRtServerManager-4SSYZUK3.js → liteRtServerManager-2HEYKFZ4.js} +4 -4
  58. package/bundle/{liteRtServerManager-M3O7V7NG.js → liteRtServerManager-QHUT3M3M.js} +4 -4
  59. package/bundle/{liteRtServerManager-2BNWXU4Z.js → liteRtServerManager-TJZWOKLH.js} +4 -4
  60. package/bundle/liteRtServerManager-YKNVLCAP.js +65 -0
  61. package/bundle/{oauth2-provider-AB6H7OQC.js → oauth2-provider-4A2OGPBN.js} +1 -1
  62. package/bundle/{oauth2-provider-4YN5U44E.js → oauth2-provider-MKQTXOA2.js} +38 -72
  63. package/bundle/oauth2-provider-RGVHFZHN.js +235 -0
  64. package/bundle/{oauth2-provider-RN6EIMPY.js → oauth2-provider-UMQ4PPFM.js} +1 -1
  65. package/bundle/{start-GCL5I7SK.js → start-5UZF6OUJ.js} +6 -6
  66. package/bundle/{start-S3YRO6NU.js → start-JPSB6LGS.js} +6 -6
  67. package/bundle/{start-26ICYOUJ.js → start-OFOFQ2WO.js} +6 -6
  68. package/bundle/start-PQKM3CTE.js +18 -0
  69. package/package.json +1 -1
@@ -0,0 +1,154 @@
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
+ ExitCodes,
4
+ Storage,
5
+ isTelemetrySdkInitialized,
6
+ resetBrowserSession,
7
+ shutdownTelemetry
8
+ } from "./chunk-L4CU45UU.js";
9
+
10
+ // packages/cli/src/utils/cleanup.ts
11
+ import { promises as fs } from "node:fs";
12
+ import { join } from "node:path";
13
+ var cleanupFunctions = [];
14
+ var syncCleanupFunctions = [];
15
+ var configForTelemetry = null;
16
+ var isShuttingDown = false;
17
+ function registerCleanup(fn) {
18
+ cleanupFunctions.push(fn);
19
+ }
20
+ function removeCleanup(fn) {
21
+ const index = cleanupFunctions.indexOf(fn);
22
+ if (index !== -1) {
23
+ cleanupFunctions.splice(index, 1);
24
+ }
25
+ }
26
+ function registerSyncCleanup(fn) {
27
+ syncCleanupFunctions.push(fn);
28
+ }
29
+ function removeSyncCleanup(fn) {
30
+ const index = syncCleanupFunctions.indexOf(fn);
31
+ if (index !== -1) {
32
+ syncCleanupFunctions.splice(index, 1);
33
+ }
34
+ }
35
+ function resetCleanupForTesting() {
36
+ cleanupFunctions.length = 0;
37
+ syncCleanupFunctions.length = 0;
38
+ configForTelemetry = null;
39
+ isShuttingDown = false;
40
+ }
41
+ function runSyncCleanup() {
42
+ for (const fn of syncCleanupFunctions) {
43
+ try {
44
+ fn();
45
+ } catch {
46
+ }
47
+ }
48
+ syncCleanupFunctions.length = 0;
49
+ }
50
+ function registerTelemetryConfig(config) {
51
+ configForTelemetry = config;
52
+ }
53
+ async function runExitCleanup() {
54
+ await drainStdin();
55
+ runSyncCleanup();
56
+ for (const fn of cleanupFunctions) {
57
+ try {
58
+ await fn();
59
+ } catch {
60
+ }
61
+ }
62
+ cleanupFunctions.length = 0;
63
+ try {
64
+ await resetBrowserSession();
65
+ } catch {
66
+ }
67
+ if (configForTelemetry) {
68
+ try {
69
+ await configForTelemetry.dispose();
70
+ } catch {
71
+ }
72
+ }
73
+ if (configForTelemetry && isTelemetrySdkInitialized()) {
74
+ try {
75
+ await shutdownTelemetry(configForTelemetry);
76
+ } catch {
77
+ }
78
+ }
79
+ }
80
+ async function drainStdin() {
81
+ if (!process.stdin?.isTTY) return;
82
+ process.stdin.resume().removeAllListeners("data").on("data", () => {
83
+ });
84
+ await new Promise((resolve) => setTimeout(resolve, 50));
85
+ }
86
+ async function gracefulShutdown(_reason) {
87
+ if (isShuttingDown) {
88
+ return;
89
+ }
90
+ isShuttingDown = true;
91
+ await runExitCleanup();
92
+ process.exit(ExitCodes.SUCCESS);
93
+ }
94
+ function setupSignalHandlers() {
95
+ process.on("SIGHUP", () => gracefulShutdown("SIGHUP"));
96
+ process.on("SIGTERM", () => gracefulShutdown("SIGTERM"));
97
+ process.on("SIGINT", () => gracefulShutdown("SIGINT"));
98
+ }
99
+ function setupTtyCheck() {
100
+ let intervalId = null;
101
+ let isCheckingTty = false;
102
+ intervalId = setInterval(async () => {
103
+ if (isCheckingTty || isShuttingDown) {
104
+ return;
105
+ }
106
+ if (process.env["SANDBOX"]) {
107
+ return;
108
+ }
109
+ if (!process.stdin.isTTY && !process.stdout.isTTY) {
110
+ isCheckingTty = true;
111
+ if (intervalId) {
112
+ clearInterval(intervalId);
113
+ intervalId = null;
114
+ }
115
+ await gracefulShutdown("TTY loss");
116
+ }
117
+ }, 5e3);
118
+ intervalId.unref();
119
+ return () => {
120
+ if (intervalId) {
121
+ clearInterval(intervalId);
122
+ intervalId = null;
123
+ }
124
+ };
125
+ }
126
+ async function cleanupCheckpoints() {
127
+ const storage = new Storage(process.cwd());
128
+ await storage.initialize();
129
+ const tempDir = storage.getProjectTempDir();
130
+ const checkpointsDir = join(tempDir, "checkpoints");
131
+ try {
132
+ await fs.rm(checkpointsDir, { recursive: true, force: true });
133
+ } catch {
134
+ }
135
+ }
136
+
137
+ export {
138
+ registerCleanup,
139
+ removeCleanup,
140
+ registerSyncCleanup,
141
+ removeSyncCleanup,
142
+ resetCleanupForTesting,
143
+ runSyncCleanup,
144
+ registerTelemetryConfig,
145
+ runExitCleanup,
146
+ setupSignalHandlers,
147
+ setupTtyCheck,
148
+ cleanupCheckpoints
149
+ };
150
+ /**
151
+ * @license
152
+ * Copyright 2025 Google LLC
153
+ * SPDX-License-Identifier: Apache-2.0
154
+ */
@@ -0,0 +1,118 @@
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
+ exitCli,
4
+ require_source
5
+ } from "./chunk-6SVZC6SZ.js";
6
+ import {
7
+ DEFAULT_PORT,
8
+ SERVER_START_WAIT_MS,
9
+ getBinaryPath,
10
+ getLiteRtBinDir,
11
+ getLogFilePath,
12
+ getPidFilePath,
13
+ isBinaryInstalled,
14
+ isServerRunning,
15
+ resolveGemmaConfig,
16
+ writeServerProcessInfo
17
+ } from "./chunk-72RRXB4E.js";
18
+ import {
19
+ debugLogger
20
+ } from "./chunk-CMP3WNPY.js";
21
+ import {
22
+ __toESM
23
+ } from "./chunk-34MYV7JD.js";
24
+
25
+ // packages/cli/src/commands/gemma/start.ts
26
+ var import_chalk = __toESM(require_source(), 1);
27
+ import fs from "node:fs";
28
+ import path from "node:path";
29
+ import { spawn } from "node:child_process";
30
+ async function startServer(binaryPath, port) {
31
+ const alreadyRunning = await isServerRunning(port);
32
+ if (alreadyRunning) {
33
+ debugLogger.log(`LiteRT server already running on port ${port}`);
34
+ return true;
35
+ }
36
+ const logPath = getLogFilePath();
37
+ fs.mkdirSync(getLiteRtBinDir(), { recursive: true });
38
+ const tmpDir = path.dirname(getPidFilePath());
39
+ fs.mkdirSync(tmpDir, { recursive: true });
40
+ const logFd = fs.openSync(logPath, "a");
41
+ try {
42
+ const child = spawn(binaryPath, ["serve", `--port=${port}`, "--verbose"], {
43
+ detached: true,
44
+ stdio: ["ignore", logFd, logFd]
45
+ });
46
+ if (child.pid) {
47
+ writeServerProcessInfo({
48
+ pid: child.pid,
49
+ binaryPath,
50
+ port
51
+ });
52
+ }
53
+ child.unref();
54
+ } finally {
55
+ fs.closeSync(logFd);
56
+ }
57
+ await new Promise((resolve) => setTimeout(resolve, SERVER_START_WAIT_MS));
58
+ return isServerRunning(port);
59
+ }
60
+ var startCommand = {
61
+ command: "start",
62
+ describe: "Start the LiteRT-LM server",
63
+ builder: (yargs) => yargs.option("port", {
64
+ type: "number",
65
+ description: "Port for the LiteRT server"
66
+ }),
67
+ handler: async (argv) => {
68
+ let port;
69
+ if (argv["port"] !== void 0) {
70
+ port = Number(argv["port"]);
71
+ }
72
+ if (!port) {
73
+ const { configuredPort } = resolveGemmaConfig(DEFAULT_PORT);
74
+ port = configuredPort;
75
+ }
76
+ const binaryPath = getBinaryPath();
77
+ if (!binaryPath || !isBinaryInstalled(binaryPath)) {
78
+ debugLogger.error(
79
+ import_chalk.default.red(
80
+ 'LiteRT-LM binary not found. Run "gemini gemma setup" first.'
81
+ )
82
+ );
83
+ await exitCli(1);
84
+ return;
85
+ }
86
+ const alreadyRunning = await isServerRunning(port);
87
+ if (alreadyRunning) {
88
+ debugLogger.log(
89
+ import_chalk.default.green(`LiteRT server is already running on port ${port}.`)
90
+ );
91
+ await exitCli(0);
92
+ return;
93
+ }
94
+ debugLogger.log(`Starting LiteRT server on port ${port}...`);
95
+ const started = await startServer(binaryPath, port);
96
+ if (started) {
97
+ debugLogger.log(import_chalk.default.green(`LiteRT server started on port ${port}.`));
98
+ debugLogger.log(import_chalk.default.dim(`Logs: ${getLogFilePath()}`));
99
+ await exitCli(0);
100
+ } else {
101
+ debugLogger.error(
102
+ import_chalk.default.red("Server may not have started correctly. Check logs:")
103
+ );
104
+ debugLogger.error(import_chalk.default.dim(` ${getLogFilePath()}`));
105
+ await exitCli(1);
106
+ }
107
+ }
108
+ };
109
+
110
+ export {
111
+ startServer,
112
+ startCommand
113
+ };
114
+ /**
115
+ * @license
116
+ * Copyright 2026 Google LLC
117
+ * SPDX-License-Identifier: Apache-2.0
118
+ */
@@ -11,8 +11,8 @@ import {
11
11
  runSyncCleanup,
12
12
  setupSignalHandlers,
13
13
  setupTtyCheck
14
- } from "./chunk-JO3EXXPQ.js";
15
- import "./chunk-KJ3DSGP6.js";
14
+ } from "./chunk-GSMKZNYD.js";
15
+ import "./chunk-ESBXUM66.js";
16
16
  import "./chunk-664ZODQF.js";
17
17
  import "./chunk-IUUIT4SU.js";
18
18
  import "./chunk-TUDYL3X4.js";
@@ -11,8 +11,8 @@ import {
11
11
  runSyncCleanup,
12
12
  setupSignalHandlers,
13
13
  setupTtyCheck
14
- } from "./chunk-MNWBDZEW.js";
15
- import "./chunk-QKQP4OAM.js";
14
+ } from "./chunk-OZHDMU2F.js";
15
+ import "./chunk-RRFXRV32.js";
16
16
  import "./chunk-664ZODQF.js";
17
17
  import "./chunk-IUUIT4SU.js";
18
18
  import "./chunk-TUDYL3X4.js";
@@ -11,8 +11,8 @@ import {
11
11
  runSyncCleanup,
12
12
  setupSignalHandlers,
13
13
  setupTtyCheck
14
- } from "./chunk-AS5HUHJQ.js";
15
- import "./chunk-6JC2DFFV.js";
14
+ } from "./chunk-WGNTEF5G.js";
15
+ import "./chunk-L4CU45UU.js";
16
16
  import "./chunk-664ZODQF.js";
17
17
  import "./chunk-IUUIT4SU.js";
18
18
  import "./chunk-TUDYL3X4.js";
@@ -0,0 +1,32 @@
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
+ cleanupCheckpoints,
4
+ registerCleanup,
5
+ registerSyncCleanup,
6
+ registerTelemetryConfig,
7
+ removeCleanup,
8
+ removeSyncCleanup,
9
+ resetCleanupForTesting,
10
+ runExitCleanup,
11
+ runSyncCleanup,
12
+ setupSignalHandlers,
13
+ setupTtyCheck
14
+ } from "./chunk-6TKDB4RW.js";
15
+ import "./chunk-CMP3WNPY.js";
16
+ import "./chunk-664ZODQF.js";
17
+ import "./chunk-IUUIT4SU.js";
18
+ import "./chunk-TUDYL3X4.js";
19
+ import "./chunk-34MYV7JD.js";
20
+ export {
21
+ cleanupCheckpoints,
22
+ registerCleanup,
23
+ registerSyncCleanup,
24
+ registerTelemetryConfig,
25
+ removeCleanup,
26
+ removeSyncCleanup,
27
+ resetCleanupForTesting,
28
+ runExitCleanup,
29
+ runSyncCleanup,
30
+ setupSignalHandlers,
31
+ setupTtyCheck
32
+ };
@@ -1101,7 +1101,7 @@ import {
1101
1101
  wrapUntrusted,
1102
1102
  writeToStderr,
1103
1103
  writeToStdout
1104
- } from "./chunk-KJ3DSGP6.js";
1104
+ } from "./chunk-RRFXRV32.js";
1105
1105
  import "./chunk-664ZODQF.js";
1106
1106
  import {
1107
1107
  SpanStatusCode,
@@ -3,7 +3,7 @@ import {
3
3
  CoreEvent,
4
4
  coreEvents,
5
5
  debugLogger
6
- } from "./chunk-6JC2DFFV.js";
6
+ } from "./chunk-ESBXUM66.js";
7
7
  import "./chunk-664ZODQF.js";
8
8
  import "./chunk-IUUIT4SU.js";
9
9
  import "./chunk-TUDYL3X4.js";
@@ -4325,7 +4325,7 @@ async function toggleDevToolsPanel(config, isOpen, toggle, setOpen) {
4325
4325
  return;
4326
4326
  }
4327
4327
  try {
4328
- const { openBrowserSecurely, shouldLaunchBrowser } = await import("./dist-VKHG4X3B.js");
4328
+ const { openBrowserSecurely, shouldLaunchBrowser } = await import("./dist-634QHCLR.js");
4329
4329
  const url = await startDevToolsServer(config);
4330
4330
  if (shouldLaunchBrowser()) {
4331
4331
  try {
@@ -2,7 +2,7 @@ const require = (await import('node:module')).createRequire(import.meta.url); co
2
2
  import {
3
3
  coreEvents,
4
4
  debugLogger
5
- } from "./chunk-KJ3DSGP6.js";
5
+ } from "./chunk-RRFXRV32.js";
6
6
  import "./chunk-664ZODQF.js";
7
7
  import "./chunk-IUUIT4SU.js";
8
8
  import "./chunk-TUDYL3X4.js";
@@ -4324,7 +4324,7 @@ async function toggleDevToolsPanel(config, isOpen, toggle, setOpen) {
4324
4324
  return;
4325
4325
  }
4326
4326
  try {
4327
- const { openBrowserSecurely, shouldLaunchBrowser } = await import("./core-X7B62CE3.js");
4327
+ const { openBrowserSecurely, shouldLaunchBrowser } = await import("./core-TD3QT7YV.js");
4328
4328
  const url = await startDevToolsServer(config);
4329
4329
  if (shouldLaunchBrowser()) {
4330
4330
  try {
@@ -1,8 +1,9 @@
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
+ CoreEvent,
3
4
  coreEvents,
4
5
  debugLogger
5
- } from "./chunk-QKQP4OAM.js";
6
+ } from "./chunk-CMP3WNPY.js";
6
7
  import "./chunk-664ZODQF.js";
7
8
  import "./chunk-IUUIT4SU.js";
8
9
  import "./chunk-TUDYL3X4.js";
@@ -4173,7 +4174,7 @@ var bridgeAttached = false;
4173
4174
  function bridgeCoreEvents(capture) {
4174
4175
  if (bridgeAttached) return;
4175
4176
  bridgeAttached = true;
4176
- coreEvents.on("console-log" /* ConsoleLog */, (payload) => {
4177
+ coreEvents.on(CoreEvent.ConsoleLog, (payload) => {
4177
4178
  capture.logConsole(payload);
4178
4179
  });
4179
4180
  }
@@ -4324,7 +4325,7 @@ async function toggleDevToolsPanel(config, isOpen, toggle, setOpen) {
4324
4325
  return;
4325
4326
  }
4326
4327
  try {
4327
- const { openBrowserSecurely, shouldLaunchBrowser } = await import("./core-25XEBKOQ.js");
4328
+ const { openBrowserSecurely, shouldLaunchBrowser } = await import("./dist-S2NRVNNH.js");
4328
4329
  const url = await startDevToolsServer(config);
4329
4330
  if (shouldLaunchBrowser()) {
4330
4331
  try {