@google/gemini-cli 0.55.0-preview.3 → 0.55.1

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 (73) hide show
  1. package/bundle/builtin/antigravity-support/SKILL.md +55 -18
  2. package/bundle/builtin/skill-creator/SKILL.md +221 -84
  3. package/bundle/{chunk-OKM3M2PX.js → chunk-2M2ZIALC.js} +1 -1
  4. package/bundle/{chunk-D7NKQXI3.js → chunk-32XQ54AJ.js} +35 -11
  5. package/bundle/{chunk-BXJWVB6T.js → chunk-3PF5QBBI.js} +7 -7
  6. package/bundle/{chunk-XLLOEYE5.js → chunk-4PTN4HDB.js} +1 -1
  7. package/bundle/{chunk-2K3N3YWJ.js → chunk-4VCYHMUV.js} +1 -1
  8. package/bundle/{chunk-IKOQM4YN.js → chunk-54ARFWUQ.js} +3 -3
  9. package/bundle/{chunk-GJBRSFPM.js → chunk-5LKFYSMV.js} +7 -7
  10. package/bundle/{chunk-2YAEBNH4.js → chunk-7PUNXJV6.js} +1 -1
  11. package/bundle/{chunk-4MK4F3LQ.js → chunk-AHQT54A5.js} +2 -2
  12. package/bundle/{chunk-ETEDB3N6.js → chunk-AICCA4O7.js} +2 -2
  13. package/bundle/{chunk-DW2J2NTU.js → chunk-CBP73R2W.js} +1 -1
  14. package/bundle/{chunk-XNQ2USVV.js → chunk-DPETPWEN.js} +1 -1
  15. package/bundle/{chunk-3JEIIDY3.js → chunk-F6UH32RP.js} +1 -1
  16. package/bundle/{chunk-V6HSKTFR.js → chunk-FFNJNOPW.js} +3 -3
  17. package/bundle/{chunk-QJZS4YYR.js → chunk-IHBI4YWX.js} +7 -7
  18. package/bundle/{chunk-YOSR3LGH.js → chunk-L72KYPGX.js} +7 -7
  19. package/bundle/{chunk-4PVLKN7E.js → chunk-MMGNXRKB.js} +1 -1
  20. package/bundle/{chunk-6VBVRJ2T.js → chunk-MVFWCC7A.js} +1 -1
  21. package/bundle/{chunk-5C4IPSFG.js → chunk-MXXWTJ5T.js} +1 -1
  22. package/bundle/{chunk-3KVUW3GS.js → chunk-ODKPTNXF.js} +1 -1
  23. package/bundle/{chunk-FQNLDGXL.js → chunk-PG6A7S3N.js} +1 -1
  24. package/bundle/{chunk-VPMDE76T.js → chunk-QCOIICKD.js} +35 -11
  25. package/bundle/{chunk-MOTK2J3L.js → chunk-QZIGFB5E.js} +1 -1
  26. package/bundle/{chunk-DIJFIQU5.js → chunk-RV6ZZ7XX.js} +1 -1
  27. package/bundle/{chunk-QY6VB26P.js → chunk-TBDX7VEE.js} +35 -11
  28. package/bundle/{chunk-7U5FKJMS.js → chunk-TGIIS5S2.js} +3 -3
  29. package/bundle/{chunk-CF6HJK4T.js → chunk-UE3CHSFT.js} +1 -1
  30. package/bundle/{chunk-NQ7ACVH7.js → chunk-UNIFGKZA.js} +2 -2
  31. package/bundle/{chunk-ENEDM4X3.js → chunk-WD5EVW3M.js} +1 -1
  32. package/bundle/{chunk-S35HA76T.js → chunk-XCA4ZL2J.js} +2 -2
  33. package/bundle/{chunk-EBUEQDL4.js → chunk-YBQ5R3NL.js} +3 -3
  34. package/bundle/{chunk-WWUS7UCO.js → chunk-ZYL2LM3Y.js} +35 -11
  35. package/bundle/{cleanup-6PJC7KVH.js → cleanup-B3QR2N4G.js} +2 -2
  36. package/bundle/{cleanup-AA32XASX.js → cleanup-H4OEYJO6.js} +2 -2
  37. package/bundle/{cleanup-KJNT5CKE.js → cleanup-MJ6IH5A4.js} +2 -2
  38. package/bundle/{cleanup-W4XFBOYU.js → cleanup-ZPX2BSHS.js} +2 -2
  39. package/bundle/{core-PJ4GTWLE.js → core-IV4CNC54.js} +1 -1
  40. package/bundle/{devtoolsService-BPCHKSK6.js → devtoolsService-53U6T2D7.js} +2 -2
  41. package/bundle/{devtoolsService-DDIV43LO.js → devtoolsService-HB7ZBXSQ.js} +2 -2
  42. package/bundle/{devtoolsService-SFT4J3TP.js → devtoolsService-OPPX3TMY.js} +2 -2
  43. package/bundle/{devtoolsService-X4SBEWHU.js → devtoolsService-VRMTKDJD.js} +2 -2
  44. package/bundle/{dist-6SIQ6JNU.js → dist-6SH22WAQ.js} +1 -1
  45. package/bundle/{dist-UVDHLJPD.js → dist-DZLHUESI.js} +1 -1
  46. package/bundle/{dist-VQ3F4FS5.js → dist-GGMH7TPR.js} +1 -1
  47. package/bundle/docs/behavioral-evals.md +185 -0
  48. package/bundle/docs/changelogs/index.md +18 -0
  49. package/bundle/docs/changelogs/latest.md +59 -31
  50. package/bundle/docs/changelogs/preview.md +45 -3
  51. package/bundle/docs/sidebar.json +4 -0
  52. package/bundle/{gemini-MSC5T5EU.js → gemini-3KUKFPRO.js} +14 -14
  53. package/bundle/{gemini-PA23YMHK.js → gemini-63IMHOLI.js} +14 -14
  54. package/bundle/{gemini-BMC63EGW.js → gemini-I57YPWDS.js} +14 -14
  55. package/bundle/{gemini-EYTXXZKY.js → gemini-LI2WNAGG.js} +14 -14
  56. package/bundle/gemini.js +7 -7
  57. package/bundle/{interactiveCli-OUPTNZ47.js → interactiveCli-2Z3Q3FYM.js} +8 -8
  58. package/bundle/{interactiveCli-5Y6AY63C.js → interactiveCli-4CVVH6KY.js} +8 -8
  59. package/bundle/{interactiveCli-G6PWBLT5.js → interactiveCli-OLXPGHKG.js} +8 -8
  60. package/bundle/{interactiveCli-T32DVN2I.js → interactiveCli-YTTP3IVA.js} +8 -8
  61. package/bundle/{liteRtServerManager-3MCOW5QD.js → liteRtServerManager-3I2T6MGB.js} +4 -4
  62. package/bundle/{liteRtServerManager-7IWRFNTW.js → liteRtServerManager-F6V5YDCO.js} +4 -4
  63. package/bundle/{liteRtServerManager-IRFTOINI.js → liteRtServerManager-H6XTDF3Z.js} +4 -4
  64. package/bundle/{liteRtServerManager-LVW27XGD.js → liteRtServerManager-I5WRPME4.js} +4 -4
  65. package/bundle/{oauth2-provider-BPEC44QP.js → oauth2-provider-D5ATF6IJ.js} +1 -1
  66. package/bundle/{oauth2-provider-FSAA6HVA.js → oauth2-provider-EO6C45X7.js} +1 -1
  67. package/bundle/{oauth2-provider-IVUO6NTZ.js → oauth2-provider-QKZF52YW.js} +1 -1
  68. package/bundle/{oauth2-provider-PH6ZPS7W.js → oauth2-provider-RA73ERNX.js} +1 -1
  69. package/bundle/{start-3M54SR5N.js → start-A2X2P77M.js} +6 -6
  70. package/bundle/{start-EEVFRHCK.js → start-IH2TDHK5.js} +6 -6
  71. package/bundle/{start-FC7N6JMG.js → start-J7S6DWJY.js} +6 -6
  72. package/bundle/{start-N5PPVI4S.js → start-VOAVWNRZ.js} +6 -6
  73. package/package.json +1 -1
@@ -282559,8 +282559,8 @@ function isValidToolName(name3, options = {}) {
282559
282559
  }
282560
282560
 
282561
282561
  // packages/core/dist/src/generated/git-commit.js
282562
- var GIT_COMMIT_INFO = "da3710eb9";
282563
- var CLI_VERSION = "0.55.0-preview.2";
282562
+ var GIT_COMMIT_INFO = "58ba19945";
282563
+ var CLI_VERSION = "0.55.1";
282564
282564
 
282565
282565
  // packages/core/dist/src/ide/detect-ide.js
282566
282566
  var IDE_DEFINITIONS = {
@@ -305823,7 +305823,7 @@ function getVersion() {
305823
305823
  }
305824
305824
  versionPromise = (async () => {
305825
305825
  const pkgJson = await getPackageJson(__dirname4);
305826
- return "0.55.0-preview.2";
305826
+ return "0.55.1";
305827
305827
  })();
305828
305828
  return versionPromise;
305829
305829
  }
@@ -338558,7 +338558,7 @@ var A2AAuthProviderFactory = class _A2AAuthProviderFactory {
338558
338558
  return provider;
338559
338559
  }
338560
338560
  case "oauth2": {
338561
- const { OAuth2AuthProvider } = await import("./oauth2-provider-BPEC44QP.js");
338561
+ const { OAuth2AuthProvider } = await import("./oauth2-provider-RA73ERNX.js");
338562
338562
  const provider = new OAuth2AuthProvider(authConfig, options.agentName ?? "unknown", agentCard, options.agentCardUrl);
338563
338563
  await provider.initialize();
338564
338564
  return provider;
@@ -365882,6 +365882,29 @@ import * as http2 from "node:http";
365882
365882
  import * as crypto19 from "node:crypto";
365883
365883
  import { URL as URL6 } from "node:url";
365884
365884
  var REDIRECT_PATH = "/oauth/callback";
365885
+ function getRedirectUri(config2, redirectPort) {
365886
+ if (process.env["GOOGLE_CLOUD_WORKSTATIONS"] === "true" && process.env["WEB_HOST"]) {
365887
+ if (config2.redirectUri) {
365888
+ try {
365889
+ const parsed = new URL6(config2.redirectUri);
365890
+ if (parsed.hostname === "localhost" || parsed.hostname === "127.0.0.1" || parsed.hostname === "[::1]") {
365891
+ const port = String(redirectPort);
365892
+ parsed.protocol = "https:";
365893
+ parsed.hostname = `${port}-${process.env["WEB_HOST"]}`;
365894
+ parsed.port = "";
365895
+ return parsed.toString();
365896
+ }
365897
+ } catch {
365898
+ }
365899
+ return config2.redirectUri;
365900
+ }
365901
+ return `https://${redirectPort}-${process.env["WEB_HOST"]}${REDIRECT_PATH}`;
365902
+ }
365903
+ if (config2.redirectUri) {
365904
+ return config2.redirectUri;
365905
+ }
365906
+ return `http://localhost:${redirectPort}${REDIRECT_PATH}`;
365907
+ }
365885
365908
  var HTTP_OK = 200;
365886
365909
  function generatePKCEParams() {
365887
365910
  const codeVerifier = crypto19.randomBytes(64).toString("base64url");
@@ -366015,7 +366038,7 @@ function getPortFromUrl(urlString) {
366015
366038
  return void 0;
366016
366039
  }
366017
366040
  function buildAuthorizationUrl(config2, pkceParams, redirectPort, resource) {
366018
- const redirectUri = config2.redirectUri || `http://localhost:${redirectPort}${REDIRECT_PATH}`;
366041
+ const redirectUri = getRedirectUri(config2, redirectPort);
366019
366042
  const params = new URLSearchParams({
366020
366043
  client_id: config2.clientId,
366021
366044
  response_type: "code",
@@ -366104,7 +366127,7 @@ async function parseTokenEndpointResponse(response, operationName, defaultErrorC
366104
366127
  };
366105
366128
  }
366106
366129
  async function exchangeCodeForToken(config2, code, codeVerifier, redirectPort, resource) {
366107
- const redirectUri = config2.redirectUri || `http://localhost:${redirectPort}${REDIRECT_PATH}`;
366130
+ const redirectUri = getRedirectUri(config2, redirectPort);
366108
366131
  const params = new URLSearchParams({
366109
366132
  grant_type: "authorization_code",
366110
366133
  code,
@@ -366175,7 +366198,7 @@ var MCPOAuthProvider = class {
366175
366198
  * @returns The registered client information
366176
366199
  */
366177
366200
  async registerClient(registrationUrl, config2, redirectPort) {
366178
- const redirectUri = config2.redirectUri || `http://localhost:${redirectPort}${REDIRECT_PATH}`;
366201
+ const redirectUri = getRedirectUri(config2, redirectPort);
366179
366202
  const registrationRequest = {
366180
366203
  client_name: "Gemini CLI MCP Client",
366181
366204
  redirect_uris: [redirectUri],
@@ -366464,10 +366487,11 @@ ${authUrl}
366464
366487
  debugLogger.debug(`Returning valid token for server: ${serverName}`);
366465
366488
  return token2.accessToken;
366466
366489
  }
366467
- if (token2.refreshToken && config2.clientId && credentials3.tokenUrl) {
366490
+ const clientId = config2.clientId ?? credentials3.clientId;
366491
+ if (token2.refreshToken && clientId && credentials3.tokenUrl) {
366468
366492
  try {
366469
366493
  debugLogger.log(`Refreshing expired token for MCP server: ${serverName}`);
366470
- const newTokenResponse = await this.refreshAccessToken(config2, token2.refreshToken, credentials3.tokenUrl, credentials3.mcpServerUrl);
366494
+ const newTokenResponse = await this.refreshAccessToken({ ...config2, clientId }, token2.refreshToken, credentials3.tokenUrl, credentials3.mcpServerUrl);
366471
366495
  const newToken = {
366472
366496
  accessToken: newTokenResponse.access_token,
366473
366497
  tokenType: newTokenResponse.token_type,
@@ -366477,7 +366501,7 @@ ${authUrl}
366477
366501
  if (newTokenResponse.expires_in) {
366478
366502
  newToken.expiresAt = Date.now() + newTokenResponse.expires_in * 1e3;
366479
366503
  }
366480
- await this.tokenStorage.saveToken(serverName, newToken, config2.clientId, credentials3.tokenUrl, credentials3.mcpServerUrl);
366504
+ await this.tokenStorage.saveToken(serverName, newToken, clientId, credentials3.tokenUrl, credentials3.mcpServerUrl);
366481
366505
  return newToken.accessToken;
366482
366506
  } catch (error40) {
366483
366507
  coreEvents.emitFeedback("error", "Failed to refresh auth token.", error40);
@@ -366495,7 +366519,7 @@ ${authUrl}
366495
366519
  const clientId = config2.clientId ?? credentials3.clientId;
366496
366520
  if (current.refreshToken && clientId && credentials3.tokenUrl) {
366497
366521
  try {
366498
- const newTokenResponse = await this.refreshAccessToken(config2, current.refreshToken, credentials3.tokenUrl, credentials3.mcpServerUrl);
366522
+ const newTokenResponse = await this.refreshAccessToken({ ...config2, clientId }, current.refreshToken, credentials3.tokenUrl, credentials3.mcpServerUrl);
366499
366523
  const refreshed = {
366500
366524
  accessToken: newTokenResponse.access_token,
366501
366525
  tokenType: newTokenResponse.token_type,
@@ -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-2K3N3YWJ.js";
5
+ } from "./chunk-4VCYHMUV.js";
6
6
  import {
7
7
  AppEvent,
8
8
  appEvents
@@ -59,14 +59,14 @@ import {
59
59
  stripUnsafeCharacters,
60
60
  toCodePoints,
61
61
  validateCustomTheme
62
- } from "./chunk-XLLOEYE5.js";
62
+ } from "./chunk-4PTN4HDB.js";
63
63
  import {
64
64
  isDevelopment
65
- } from "./chunk-S35HA76T.js";
65
+ } from "./chunk-XCA4ZL2J.js";
66
66
  import {
67
67
  emptyIcon,
68
68
  require_react
69
- } from "./chunk-OKM3M2PX.js";
69
+ } from "./chunk-2M2ZIALC.js";
70
70
  import {
71
71
  ALL_EDITORS,
72
72
  ApprovalMode,
@@ -230,7 +230,7 @@ import {
230
230
  tokenLimit,
231
231
  uiTelemetryService,
232
232
  unescapePath
233
- } from "./chunk-VPMDE76T.js";
233
+ } from "./chunk-QCOIICKD.js";
234
234
  import {
235
235
  require_src
236
236
  } from "./chunk-TUDYL3X4.js";
@@ -77163,7 +77163,7 @@ var authCommand = {
77163
77163
  import process29 from "node:process";
77164
77164
 
77165
77165
  // packages/cli/src/generated/git-commit.ts
77166
- var GIT_COMMIT_INFO = "da3710eb9";
77166
+ var GIT_COMMIT_INFO = "58ba19945";
77167
77167
 
77168
77168
  // packages/cli/src/ui/utils/historyExportUtils.ts
77169
77169
  import * as fsPromises from "node:fs/promises";
@@ -82944,7 +82944,7 @@ Use /mcp auth <server-name> to authenticate.`
82944
82944
  type: "info",
82945
82945
  text: `Starting OAuth authentication for MCP server '${serverName}'...`
82946
82946
  });
82947
- const { MCPOAuthProvider } = await import("./core-PJ4GTWLE.js");
82947
+ const { MCPOAuthProvider } = await import("./core-IV4CNC54.js");
82948
82948
  let oauthConfig = server.oauth;
82949
82949
  if (!oauthConfig) {
82950
82950
  oauthConfig = { enabled: false };
@@ -28,7 +28,7 @@ import {
28
28
  partListUnionToString,
29
29
  require_strip_json_comments,
30
30
  sanitizeFilenamePart
31
- } from "./chunk-VPMDE76T.js";
31
+ } from "./chunk-QCOIICKD.js";
32
32
  import {
33
33
  __commonJS,
34
34
  __require,
@@ -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-4PVLKN7E.js";
4
+ } from "./chunk-PG6A7S3N.js";
5
5
  import {
6
6
  __commonJS,
7
7
  __require
@@ -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-CF6HJK4T.js";
5
+ } from "./chunk-F6UH32RP.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-DW2J2NTU.js";
17
+ } from "./chunk-ODKPTNXF.js";
18
18
  import {
19
19
  debugLogger
20
- } from "./chunk-WWUS7UCO.js";
20
+ } from "./chunk-32XQ54AJ.js";
21
21
  import {
22
22
  __toESM
23
23
  } from "./chunk-34MYV7JD.js";
@@ -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-CF6HJK4T.js";
5
+ } from "./chunk-F6UH32RP.js";
6
6
  import {
7
7
  AppEvent,
8
8
  appEvents
@@ -59,14 +59,14 @@ import {
59
59
  stripUnsafeCharacters,
60
60
  toCodePoints,
61
61
  validateCustomTheme
62
- } from "./chunk-DW2J2NTU.js";
62
+ } from "./chunk-ODKPTNXF.js";
63
63
  import {
64
64
  isDevelopment
65
- } from "./chunk-ETEDB3N6.js";
65
+ } from "./chunk-AICCA4O7.js";
66
66
  import {
67
67
  emptyIcon,
68
68
  require_react
69
- } from "./chunk-DIJFIQU5.js";
69
+ } from "./chunk-MVFWCC7A.js";
70
70
  import {
71
71
  ALL_EDITORS,
72
72
  ApprovalMode,
@@ -243,7 +243,7 @@ import {
243
243
  tokenLimit,
244
244
  uiTelemetryService,
245
245
  unescapePath
246
- } from "./chunk-WWUS7UCO.js";
246
+ } from "./chunk-32XQ54AJ.js";
247
247
  import {
248
248
  require_src
249
249
  } from "./chunk-TUDYL3X4.js";
@@ -77176,7 +77176,7 @@ var authCommand = {
77176
77176
  import process29 from "node:process";
77177
77177
 
77178
77178
  // packages/cli/src/generated/git-commit.ts
77179
- var GIT_COMMIT_INFO = "a41ce0f59";
77179
+ var GIT_COMMIT_INFO = "41327e407";
77180
77180
 
77181
77181
  // packages/cli/src/ui/utils/historyExportUtils.ts
77182
77182
  import * as fsPromises from "node:fs/promises";
@@ -82957,7 +82957,7 @@ Use /mcp auth <server-name> to authenticate.`
82957
82957
  type: "info",
82958
82958
  text: `Starting OAuth authentication for MCP server '${serverName}'...`
82959
82959
  });
82960
- const { MCPOAuthProvider } = await import("./dist-VQ3F4FS5.js");
82960
+ const { MCPOAuthProvider } = await import("./dist-DZLHUESI.js");
82961
82961
  let oauthConfig = server.oauth;
82962
82962
  if (!oauthConfig) {
82963
82963
  oauthConfig = { enabled: false };
@@ -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-MOTK2J3L.js";
4
+ } from "./chunk-QZIGFB5E.js";
5
5
  import {
6
6
  __commonJS,
7
7
  __require
@@ -1,13 +1,13 @@
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-MOTK2J3L.js";
4
+ } from "./chunk-QZIGFB5E.js";
5
5
  import {
6
6
  RELEASE_CHANNEL_STABILITY,
7
7
  debugLogger,
8
8
  getChannelFromVersion,
9
9
  isGitRepository
10
- } from "./chunk-D7NKQXI3.js";
10
+ } from "./chunk-TBDX7VEE.js";
11
11
 
12
12
  // packages/cli/src/utils/installationInfo.ts
13
13
  import * as fs from "node:fs";
@@ -1,13 +1,13 @@
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-FQNLDGXL.js";
4
+ } from "./chunk-MMGNXRKB.js";
5
5
  import {
6
6
  RELEASE_CHANNEL_STABILITY,
7
7
  debugLogger,
8
8
  getChannelFromVersion,
9
9
  isGitRepository
10
- } from "./chunk-WWUS7UCO.js";
10
+ } from "./chunk-32XQ54AJ.js";
11
11
 
12
12
  // packages/cli/src/utils/installationInfo.ts
13
13
  import * as fs from "node:fs";
@@ -31,7 +31,7 @@ import {
31
31
  partListUnionToString,
32
32
  require_strip_json_comments,
33
33
  sanitizeFilenamePart
34
- } from "./chunk-WWUS7UCO.js";
34
+ } from "./chunk-TBDX7VEE.js";
35
35
  import {
36
36
  __commonJS,
37
37
  __require,
@@ -31,7 +31,7 @@ import {
31
31
  partListUnionToString,
32
32
  require_strip_json_comments,
33
33
  sanitizeFilenamePart
34
- } from "./chunk-D7NKQXI3.js";
34
+ } from "./chunk-ZYL2LM3Y.js";
35
35
  import {
36
36
  __commonJS,
37
37
  __require,
@@ -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-5C4IPSFG.js";
4
+ } from "./chunk-MMGNXRKB.js";
5
5
  import {
6
6
  __commonJS,
7
7
  __require
@@ -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-2YAEBNH4.js";
5
+ } from "./chunk-UE3CHSFT.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-XNQ2USVV.js";
17
+ } from "./chunk-DPETPWEN.js";
18
18
  import {
19
19
  debugLogger
20
- } from "./chunk-D7NKQXI3.js";
20
+ } from "./chunk-ZYL2LM3Y.js";
21
21
  import {
22
22
  __toESM
23
23
  } from "./chunk-34MYV7JD.js";
@@ -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-2YAEBNH4.js";
5
+ } from "./chunk-UE3CHSFT.js";
6
6
  import {
7
7
  AppEvent,
8
8
  appEvents
@@ -59,14 +59,14 @@ import {
59
59
  stripUnsafeCharacters,
60
60
  toCodePoints,
61
61
  validateCustomTheme
62
- } from "./chunk-XNQ2USVV.js";
62
+ } from "./chunk-DPETPWEN.js";
63
63
  import {
64
64
  isDevelopment
65
- } from "./chunk-4MK4F3LQ.js";
65
+ } from "./chunk-UNIFGKZA.js";
66
66
  import {
67
67
  emptyIcon,
68
68
  require_react
69
- } from "./chunk-ENEDM4X3.js";
69
+ } from "./chunk-RV6ZZ7XX.js";
70
70
  import {
71
71
  ALL_EDITORS,
72
72
  ApprovalMode,
@@ -243,7 +243,7 @@ import {
243
243
  tokenLimit,
244
244
  uiTelemetryService,
245
245
  unescapePath
246
- } from "./chunk-D7NKQXI3.js";
246
+ } from "./chunk-ZYL2LM3Y.js";
247
247
  import {
248
248
  require_src
249
249
  } from "./chunk-TUDYL3X4.js";
@@ -77176,7 +77176,7 @@ var authCommand = {
77176
77176
  import process29 from "node:process";
77177
77177
 
77178
77178
  // packages/cli/src/generated/git-commit.ts
77179
- var GIT_COMMIT_INFO = "da3710eb9";
77179
+ var GIT_COMMIT_INFO = "58ba19945";
77180
77180
 
77181
77181
  // packages/cli/src/ui/utils/historyExportUtils.ts
77182
77182
  import * as fsPromises from "node:fs/promises";
@@ -82957,7 +82957,7 @@ Use /mcp auth <server-name> to authenticate.`
82957
82957
  type: "info",
82958
82958
  text: `Starting OAuth authentication for MCP server '${serverName}'...`
82959
82959
  });
82960
- const { MCPOAuthProvider } = await import("./dist-6SIQ6JNU.js");
82960
+ const { MCPOAuthProvider } = await import("./dist-6SH22WAQ.js");
82961
82961
  let oauthConfig = server.oauth;
82962
82962
  if (!oauthConfig) {
82963
82963
  oauthConfig = { enabled: false };
@@ -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-3JEIIDY3.js";
5
+ } from "./chunk-7PUNXJV6.js";
6
6
  import {
7
7
  AppEvent,
8
8
  appEvents
@@ -59,14 +59,14 @@ import {
59
59
  stripUnsafeCharacters,
60
60
  toCodePoints,
61
61
  validateCustomTheme
62
- } from "./chunk-3KVUW3GS.js";
62
+ } from "./chunk-CBP73R2W.js";
63
63
  import {
64
64
  isDevelopment
65
- } from "./chunk-NQ7ACVH7.js";
65
+ } from "./chunk-AHQT54A5.js";
66
66
  import {
67
67
  emptyIcon,
68
68
  require_react
69
- } from "./chunk-6VBVRJ2T.js";
69
+ } from "./chunk-WD5EVW3M.js";
70
70
  import {
71
71
  ALL_EDITORS,
72
72
  ApprovalMode,
@@ -243,7 +243,7 @@ import {
243
243
  tokenLimit,
244
244
  uiTelemetryService,
245
245
  unescapePath
246
- } from "./chunk-QY6VB26P.js";
246
+ } from "./chunk-TBDX7VEE.js";
247
247
  import {
248
248
  require_src
249
249
  } from "./chunk-TUDYL3X4.js";
@@ -77176,7 +77176,7 @@ var authCommand = {
77176
77176
  import process29 from "node:process";
77177
77177
 
77178
77178
  // packages/cli/src/generated/git-commit.ts
77179
- var GIT_COMMIT_INFO = "da3710eb9";
77179
+ var GIT_COMMIT_INFO = "58ba19945";
77180
77180
 
77181
77181
  // packages/cli/src/ui/utils/historyExportUtils.ts
77182
77182
  import * as fsPromises from "node:fs/promises";
@@ -82957,7 +82957,7 @@ Use /mcp auth <server-name> to authenticate.`
82957
82957
  type: "info",
82958
82958
  text: `Starting OAuth authentication for MCP server '${serverName}'...`
82959
82959
  });
82960
- const { MCPOAuthProvider } = await import("./dist-UVDHLJPD.js");
82960
+ const { MCPOAuthProvider } = await import("./dist-GGMH7TPR.js");
82961
82961
  let oauthConfig = server.oauth;
82962
82962
  if (!oauthConfig) {
82963
82963
  oauthConfig = { enabled: false };
@@ -5,7 +5,7 @@ import {
5
5
  isTelemetrySdkInitialized,
6
6
  resetBrowserSession,
7
7
  shutdownTelemetry
8
- } from "./chunk-VPMDE76T.js";
8
+ } from "./chunk-32XQ54AJ.js";
9
9
 
10
10
  // packages/cli/src/utils/cleanup.ts
11
11
  import { promises as fs } from "node:fs";
@@ -2,7 +2,7 @@ const require = (await import('node:module')).createRequire(import.meta.url); co
2
2
  import {
3
3
  CoreToolCallStatus,
4
4
  checkExhaustive
5
- } from "./chunk-QY6VB26P.js";
5
+ } from "./chunk-32XQ54AJ.js";
6
6
  import {
7
7
  __commonJS,
8
8
  __toESM
@@ -5,7 +5,7 @@ import {
5
5
  isTelemetrySdkInitialized,
6
6
  resetBrowserSession,
7
7
  shutdownTelemetry
8
- } from "./chunk-QY6VB26P.js";
8
+ } from "./chunk-ZYL2LM3Y.js";
9
9
 
10
10
  // packages/cli/src/utils/cleanup.ts
11
11
  import { promises as fs } from "node:fs";
@@ -31,7 +31,7 @@ import {
31
31
  partListUnionToString,
32
32
  require_strip_json_comments,
33
33
  sanitizeFilenamePart
34
- } from "./chunk-QY6VB26P.js";
34
+ } from "./chunk-32XQ54AJ.js";
35
35
  import {
36
36
  __commonJS,
37
37
  __require,
@@ -5,7 +5,7 @@ import {
5
5
  isTelemetrySdkInitialized,
6
6
  resetBrowserSession,
7
7
  shutdownTelemetry
8
- } from "./chunk-WWUS7UCO.js";
8
+ } from "./chunk-QCOIICKD.js";
9
9
 
10
10
  // packages/cli/src/utils/cleanup.ts
11
11
  import { promises as fs } from "node:fs";
@@ -282830,8 +282830,8 @@ function isValidToolName(name3, options = {}) {
282830
282830
  }
282831
282831
 
282832
282832
  // packages/core/src/generated/git-commit.ts
282833
- var GIT_COMMIT_INFO = "da3710eb9";
282834
- var CLI_VERSION = "0.55.0-preview.2";
282833
+ var GIT_COMMIT_INFO = "58ba19945";
282834
+ var CLI_VERSION = "0.56.0-nightly.20260806.g761f604c1";
282835
282835
 
282836
282836
  // packages/core/src/ide/detect-ide.ts
282837
282837
  var IDE_DEFINITIONS = {
@@ -306413,7 +306413,7 @@ function getVersion() {
306413
306413
  }
306414
306414
  versionPromise = (async () => {
306415
306415
  const pkgJson = await getPackageJson(__dirname4);
306416
- return "0.55.0-preview.2";
306416
+ return "0.56.0-nightly.20260806.g761f604c1";
306417
306417
  })();
306418
306418
  return versionPromise;
306419
306419
  }
@@ -341236,7 +341236,7 @@ var A2AAuthProviderFactory = class _A2AAuthProviderFactory {
341236
341236
  return provider;
341237
341237
  }
341238
341238
  case "oauth2": {
341239
- const { OAuth2AuthProvider } = await import("./oauth2-provider-IVUO6NTZ.js");
341239
+ const { OAuth2AuthProvider } = await import("./oauth2-provider-QKZF52YW.js");
341240
341240
  const provider = new OAuth2AuthProvider(
341241
341241
  authConfig,
341242
341242
  options.agentName ?? "unknown",
@@ -371103,6 +371103,29 @@ import * as http2 from "node:http";
371103
371103
  import * as crypto19 from "node:crypto";
371104
371104
  import { URL as URL6 } from "node:url";
371105
371105
  var REDIRECT_PATH = "/oauth/callback";
371106
+ function getRedirectUri(config2, redirectPort) {
371107
+ if (process.env["GOOGLE_CLOUD_WORKSTATIONS"] === "true" && process.env["WEB_HOST"]) {
371108
+ if (config2.redirectUri) {
371109
+ try {
371110
+ const parsed = new URL6(config2.redirectUri);
371111
+ if (parsed.hostname === "localhost" || parsed.hostname === "127.0.0.1" || parsed.hostname === "[::1]") {
371112
+ const port = String(redirectPort);
371113
+ parsed.protocol = "https:";
371114
+ parsed.hostname = `${port}-${process.env["WEB_HOST"]}`;
371115
+ parsed.port = "";
371116
+ return parsed.toString();
371117
+ }
371118
+ } catch {
371119
+ }
371120
+ return config2.redirectUri;
371121
+ }
371122
+ return `https://${redirectPort}-${process.env["WEB_HOST"]}${REDIRECT_PATH}`;
371123
+ }
371124
+ if (config2.redirectUri) {
371125
+ return config2.redirectUri;
371126
+ }
371127
+ return `http://localhost:${redirectPort}${REDIRECT_PATH}`;
371128
+ }
371106
371129
  var HTTP_OK = 200;
371107
371130
  function generatePKCEParams() {
371108
371131
  const codeVerifier = crypto19.randomBytes(64).toString("base64url");
@@ -371247,7 +371270,7 @@ function getPortFromUrl(urlString) {
371247
371270
  return void 0;
371248
371271
  }
371249
371272
  function buildAuthorizationUrl(config2, pkceParams, redirectPort, resource) {
371250
- const redirectUri = config2.redirectUri || `http://localhost:${redirectPort}${REDIRECT_PATH}`;
371273
+ const redirectUri = getRedirectUri(config2, redirectPort);
371251
371274
  const params = new URLSearchParams({
371252
371275
  client_id: config2.clientId,
371253
371276
  response_type: "code",
@@ -371342,7 +371365,7 @@ async function parseTokenEndpointResponse(response, operationName, defaultErrorC
371342
371365
  };
371343
371366
  }
371344
371367
  async function exchangeCodeForToken(config2, code, codeVerifier, redirectPort, resource) {
371345
- const redirectUri = config2.redirectUri || `http://localhost:${redirectPort}${REDIRECT_PATH}`;
371368
+ const redirectUri = getRedirectUri(config2, redirectPort);
371346
371369
  const params = new URLSearchParams({
371347
371370
  grant_type: "authorization_code",
371348
371371
  code,
@@ -371417,7 +371440,7 @@ var MCPOAuthProvider = class {
371417
371440
  * @returns The registered client information
371418
371441
  */
371419
371442
  async registerClient(registrationUrl, config2, redirectPort) {
371420
- const redirectUri = config2.redirectUri || `http://localhost:${redirectPort}${REDIRECT_PATH}`;
371443
+ const redirectUri = getRedirectUri(config2, redirectPort);
371421
371444
  const registrationRequest = {
371422
371445
  client_name: "Gemini CLI MCP Client",
371423
371446
  redirect_uris: [redirectUri],
@@ -371763,13 +371786,14 @@ ${authUrl}
371763
371786
  debugLogger.debug(`Returning valid token for server: ${serverName}`);
371764
371787
  return token2.accessToken;
371765
371788
  }
371766
- if (token2.refreshToken && config2.clientId && credentials3.tokenUrl) {
371789
+ const clientId = config2.clientId ?? credentials3.clientId;
371790
+ if (token2.refreshToken && clientId && credentials3.tokenUrl) {
371767
371791
  try {
371768
371792
  debugLogger.log(
371769
371793
  `Refreshing expired token for MCP server: ${serverName}`
371770
371794
  );
371771
371795
  const newTokenResponse = await this.refreshAccessToken(
371772
- config2,
371796
+ { ...config2, clientId },
371773
371797
  token2.refreshToken,
371774
371798
  credentials3.tokenUrl,
371775
371799
  credentials3.mcpServerUrl
@@ -371786,7 +371810,7 @@ ${authUrl}
371786
371810
  await this.tokenStorage.saveToken(
371787
371811
  serverName,
371788
371812
  newToken,
371789
- config2.clientId,
371813
+ clientId,
371790
371814
  credentials3.tokenUrl,
371791
371815
  credentials3.mcpServerUrl
371792
371816
  );
@@ -371811,7 +371835,7 @@ ${authUrl}
371811
371835
  if (current.refreshToken && clientId && credentials3.tokenUrl) {
371812
371836
  try {
371813
371837
  const newTokenResponse = await this.refreshAccessToken(
371814
- config2,
371838
+ { ...config2, clientId },
371815
371839
  current.refreshToken,
371816
371840
  credentials3.tokenUrl,
371817
371841
  credentials3.mcpServerUrl
@@ -5,7 +5,7 @@ import {
5
5
  isTelemetrySdkInitialized,
6
6
  resetBrowserSession,
7
7
  shutdownTelemetry
8
- } from "./chunk-D7NKQXI3.js";
8
+ } from "./chunk-TBDX7VEE.js";
9
9
 
10
10
  // packages/cli/src/utils/cleanup.ts
11
11
  import { promises as fs } from "node:fs";
@@ -2,7 +2,7 @@ const require = (await import('node:module')).createRequire(import.meta.url); co
2
2
  import {
3
3
  CoreToolCallStatus,
4
4
  checkExhaustive
5
- } from "./chunk-WWUS7UCO.js";
5
+ } from "./chunk-ZYL2LM3Y.js";
6
6
  import {
7
7
  __commonJS,
8
8
  __toESM