@google/gemini-cli 0.64.0-preview.0 → 0.64.0

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 (51) hide show
  1. package/bundle/{chunk-EDYPRCAA.js → chunk-5XKZL6EB.js} +2 -2
  2. package/bundle/{chunk-EDVFNWRG.js → chunk-7H3F2KUX.js} +1 -1
  3. package/bundle/{chunk-EFX5XL6M.js → chunk-DPNFVVVC.js} +2 -2
  4. package/bundle/{chunk-QUCRASYB.js → chunk-ENBP32XB.js} +1 -1
  5. package/bundle/{chunk-UFQDAROY.js → chunk-EV5MQULH.js} +1 -1
  6. package/bundle/{chunk-HSZIYPL6.js → chunk-FCPMU3HO.js} +3 -3
  7. package/bundle/{chunk-MLSLNORV.js → chunk-FJUB4QHG.js} +3 -3
  8. package/bundle/{chunk-HN74ORTP.js → chunk-FLKY6NH5.js} +15 -3
  9. package/bundle/{chunk-SDWOC67Z.js → chunk-HHALNKOO.js} +1 -1
  10. package/bundle/{chunk-NX7TO2DU.js → chunk-IESQO4NS.js} +1 -1
  11. package/bundle/{chunk-6OFXOGEG.js → chunk-J7SXW2FI.js} +458 -96
  12. package/bundle/{chunk-KCCVXZ52.js → chunk-KJWA3D3G.js} +25 -9
  13. package/bundle/{chunk-EBP6K2WG.js → chunk-MA35JFUP.js} +25 -9
  14. package/bundle/{chunk-ZQW7OGUO.js → chunk-NR7L3FXV.js} +427 -92
  15. package/bundle/{chunk-ZOHM7BPT.js → chunk-OQYJODOA.js} +1 -1
  16. package/bundle/{chunk-VBVCLWLA.js → chunk-P7ZJXXPR.js} +2 -2
  17. package/bundle/{chunk-2NQXIWQK.js → chunk-PS4UL4AP.js} +15 -3
  18. package/bundle/{chunk-A4TO2DY2.js → chunk-PZ4GDG24.js} +458 -96
  19. package/bundle/{chunk-ZPLFLZQA.js → chunk-QCHFD56F.js} +15 -3
  20. package/bundle/{chunk-Y2HXXBXI.js → chunk-QLNDNLK5.js} +1 -1
  21. package/bundle/{chunk-2VN53SWW.js → chunk-QSLJVHXU.js} +1 -1
  22. package/bundle/{chunk-U76XPSKR.js → chunk-V7G7CIBW.js} +25 -9
  23. package/bundle/{chunk-UBGF6JU5.js → chunk-VOLZQW4I.js} +1 -1
  24. package/bundle/{chunk-VJYKQD5D.js → chunk-WLZT2COY.js} +3 -3
  25. package/bundle/{cleanup-GGCB2LVD.js → cleanup-K7PKM5O3.js} +2 -2
  26. package/bundle/{cleanup-JRDG3OTL.js → cleanup-NAOD2SQV.js} +2 -2
  27. package/bundle/{cleanup-SSW6IXTR.js → cleanup-QRBWTWKF.js} +2 -2
  28. package/bundle/{core-IUIZE6JW.js → core-4P3HPH34.js} +11 -1
  29. package/bundle/{dist-7L3BRW6V.js → core-ICFDSJL3.js} +11 -1
  30. package/bundle/{devtoolsService-3SADPKKB.js → devtoolsService-4MGN7S5K.js} +2 -2
  31. package/bundle/{devtoolsService-MF6JKRUV.js → devtoolsService-7CS2YIL6.js} +2 -2
  32. package/bundle/{devtoolsService-XZCKFZP5.js → devtoolsService-LKOU7QN7.js} +2 -2
  33. package/bundle/{core-6HRWFQZW.js → dist-YMXCTNJD.js} +11 -1
  34. package/bundle/docs/tools/mcp-server.md +41 -12
  35. package/bundle/{gemini-QOQNG5VY.js → gemini-6ESINPDZ.js} +14 -14
  36. package/bundle/{gemini-ZMMDUAQJ.js → gemini-IPXWMEB5.js} +14 -14
  37. package/bundle/{gemini-JPMMQ3KA.js → gemini-Q2GRYIAK.js} +14 -14
  38. package/bundle/gemini.js +7 -7
  39. package/bundle/{interactiveCli-R3P4A3FC.js → interactiveCli-2T27ZS4G.js} +9 -20
  40. package/bundle/{interactiveCli-UDWGRVJL.js → interactiveCli-66E5CZDR.js} +9 -20
  41. package/bundle/{interactiveCli-3I4TG5SK.js → interactiveCli-IX4FVS6G.js} +9 -20
  42. package/bundle/{liteRtServerManager-OVPUSK2T.js → liteRtServerManager-BFSWF4GA.js} +4 -4
  43. package/bundle/{liteRtServerManager-RAV63AGE.js → liteRtServerManager-CU5D7FDE.js} +4 -4
  44. package/bundle/{liteRtServerManager-4MWCEVVM.js → liteRtServerManager-JJZYMP2G.js} +4 -4
  45. package/bundle/{oauth2-provider-XFP63FGJ.js → oauth2-provider-65ILSORU.js} +1 -1
  46. package/bundle/{oauth2-provider-FVTRRJZR.js → oauth2-provider-CHSEPLKC.js} +1 -1
  47. package/bundle/{oauth2-provider-EWOA64PR.js → oauth2-provider-N73PS5ZT.js} +1 -1
  48. package/bundle/{start-DJAIXPPY.js → start-6JMUZJ7T.js} +6 -6
  49. package/bundle/{start-VQQ2Q5KT.js → start-6KYN7M6S.js} +6 -6
  50. package/bundle/{start-5O7TBK5L.js → start-YI7IUIYU.js} +6 -6
  51. package/package.json +1 -1
@@ -31,7 +31,7 @@ import {
31
31
  partListUnionToString,
32
32
  require_strip_json_comments,
33
33
  sanitizeFilenamePart
34
- } from "./chunk-A4TO2DY2.js";
34
+ } from "./chunk-PZ4GDG24.js";
35
35
  import {
36
36
  __commonJS,
37
37
  __require,
@@ -15246,7 +15246,13 @@ var SETTINGS_SCHEMA_DEFINITIONS = {
15246
15246
  oauth: {
15247
15247
  type: "object",
15248
15248
  description: "OAuth configuration for authenticating with the server.",
15249
- additionalProperties: true
15249
+ additionalProperties: true,
15250
+ properties: {
15251
+ authorizationResponseIssParameterSupported: {
15252
+ type: "boolean",
15253
+ description: 'Whether the authorization server returns the "iss" parameter in the authorization response (RFC 9207). When true, callbacks without "iss" are rejected; when false, they are accepted. A provided "iss" is always validated. Overrides the "authorization_response_iss_parameter_supported" value discovered from server metadata.'
15254
+ }
15255
+ }
15250
15256
  },
15251
15257
  authProviderType: {
15252
15258
  type: "string",
@@ -15307,7 +15313,13 @@ var SETTINGS_SCHEMA_DEFINITIONS = {
15307
15313
  oauth: {
15308
15314
  type: "object",
15309
15315
  description: "OAuth configuration for authenticating with the server.",
15310
- additionalProperties: true
15316
+ additionalProperties: true,
15317
+ properties: {
15318
+ authorizationResponseIssParameterSupported: {
15319
+ type: "boolean",
15320
+ description: 'Whether the authorization server returns the "iss" parameter in the authorization response (RFC 9207). When true, callbacks without "iss" are rejected; when false, they are accepted. A provided "iss" is always validated. Overrides the "authorization_response_iss_parameter_supported" value discovered from server metadata.'
15321
+ }
15322
+ }
15311
15323
  },
15312
15324
  authProviderType: {
15313
15325
  type: "string",
@@ -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
  checkExhaustive
4
- } from "./chunk-6OFXOGEG.js";
4
+ } from "./chunk-J7SXW2FI.js";
5
5
  import {
6
6
  __commonJS,
7
7
  __toESM
@@ -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
  checkExhaustive
4
- } from "./chunk-A4TO2DY2.js";
4
+ } from "./chunk-PZ4GDG24.js";
5
5
  import {
6
6
  __commonJS,
7
7
  __toESM
@@ -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-QUCRASYB.js";
5
+ } from "./chunk-OQYJODOA.js";
6
6
  import {
7
7
  AppEvent,
8
8
  appEvents
@@ -63,15 +63,15 @@ import {
63
63
  stripUnsafeCharacters,
64
64
  toCodePoints,
65
65
  validateCustomTheme
66
- } from "./chunk-ZPLFLZQA.js";
66
+ } from "./chunk-QCHFD56F.js";
67
67
  import {
68
68
  isDevelopment
69
- } from "./chunk-EFX5XL6M.js";
69
+ } from "./chunk-5XKZL6EB.js";
70
70
  import {
71
71
  emptyIcon,
72
72
  mapCoreStatusToDisplayStatus,
73
73
  require_react
74
- } from "./chunk-2VN53SWW.js";
74
+ } from "./chunk-QSLJVHXU.js";
75
75
  import {
76
76
  ALL_EDITORS,
77
77
  ApprovalMode,
@@ -239,7 +239,7 @@ import {
239
239
  tokenLimit,
240
240
  uiTelemetryService,
241
241
  unescapePath
242
- } from "./chunk-A4TO2DY2.js";
242
+ } from "./chunk-PZ4GDG24.js";
243
243
  import {
244
244
  require_src
245
245
  } from "./chunk-L6PII3GR.js";
@@ -77751,7 +77751,7 @@ var authCommand = {
77751
77751
  import process29 from "node:process";
77752
77752
 
77753
77753
  // packages/cli/src/generated/git-commit.ts
77754
- var GIT_COMMIT_INFO = "fb972b2f8";
77754
+ var GIT_COMMIT_INFO = "90997f398";
77755
77755
 
77756
77756
  // packages/cli/src/ui/utils/historyExportUtils.ts
77757
77757
  import * as fsPromises from "node:fs/promises";
@@ -81878,6 +81878,18 @@ var import_react74 = __toESM(require_react(), 1);
81878
81878
 
81879
81879
  // packages/cli/src/ui/utils/rewindFileOps.ts
81880
81880
  import fs32 from "node:fs/promises";
81881
+ function isPartWithKey(part, key) {
81882
+ return typeof part === "object" && part !== null && key in part;
81883
+ }
81884
+ function isToolResponseMessage(msg) {
81885
+ if (msg.type !== "user" || !Array.isArray(msg.content) || msg.content.length === 0) {
81886
+ return false;
81887
+ }
81888
+ const parts = msg.content;
81889
+ return parts.some((p2) => isPartWithKey(p2, "functionResponse")) && parts.every(
81890
+ (p2) => isPartWithKey(p2, "functionResponse") || isPartWithKey(p2, "inlineData") || isPartWithKey(p2, "fileData")
81891
+ );
81892
+ }
81881
81893
  function calculateTurnStats(conversation, userMessage) {
81882
81894
  const msgIndex = conversation.messages.indexOf(userMessage);
81883
81895
  if (msgIndex === -1) return null;
@@ -81887,7 +81899,9 @@ function calculateTurnStats(conversation, userMessage) {
81887
81899
  let hasEdits = false;
81888
81900
  for (let i = msgIndex + 1; i < conversation.messages.length; i++) {
81889
81901
  const msg = conversation.messages[i];
81890
- if (msg.type === "user") break;
81902
+ if (msg.type === "user" && !isToolResponseMessage(msg)) {
81903
+ break;
81904
+ }
81891
81905
  if (msg.type === "gemini" && msg.toolCalls) {
81892
81906
  for (const toolCall of msg.toolCalls) {
81893
81907
  const fileDiff = getFileDiffFromResultDisplay(toolCall.resultDisplay);
@@ -82246,7 +82260,9 @@ var RewindViewer = ({
82246
82260
  null
82247
82261
  );
82248
82262
  const interactions = (0, import_react76.useMemo)(
82249
- () => conversation.messages.filter((msg) => msg.type === "user"),
82263
+ () => conversation.messages.filter(
82264
+ (msg) => msg.type === "user" && !isToolResponseMessage(msg)
82265
+ ),
82250
82266
  [conversation.messages]
82251
82267
  );
82252
82268
  const items = (0, import_react76.useMemo)(() => {
@@ -83532,7 +83548,7 @@ Use /mcp auth <server-name> to authenticate.`
83532
83548
  type: "info",
83533
83549
  text: `Starting OAuth authentication for MCP server '${serverName}'...`
83534
83550
  });
83535
- const { MCPOAuthProvider } = await import("./core-IUIZE6JW.js");
83551
+ const { MCPOAuthProvider } = await import("./core-4P3HPH34.js");
83536
83552
  let oauthConfig = server.oauth;
83537
83553
  if (!oauthConfig) {
83538
83554
  oauthConfig = { enabled: false };
@@ -5,7 +5,7 @@ import {
5
5
  isTelemetrySdkInitialized,
6
6
  resetBrowserSession,
7
7
  shutdownTelemetry
8
- } from "./chunk-ZQW7OGUO.js";
8
+ } from "./chunk-NR7L3FXV.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
  exitCli,
4
4
  require_source
5
- } from "./chunk-EDVFNWRG.js";
5
+ } from "./chunk-ENBP32XB.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-2NQXIWQK.js";
17
+ } from "./chunk-PS4UL4AP.js";
18
18
  import {
19
19
  debugLogger
20
- } from "./chunk-6OFXOGEG.js";
20
+ } from "./chunk-J7SXW2FI.js";
21
21
  import {
22
22
  __toESM
23
23
  } from "./chunk-34MYV7JD.js";
@@ -11,8 +11,8 @@ import {
11
11
  runSyncCleanup,
12
12
  setupSignalHandlers,
13
13
  setupTtyCheck
14
- } from "./chunk-SDWOC67Z.js";
15
- import "./chunk-6OFXOGEG.js";
14
+ } from "./chunk-EV5MQULH.js";
15
+ import "./chunk-J7SXW2FI.js";
16
16
  import "./chunk-664ZODQF.js";
17
17
  import "./chunk-IUUIT4SU.js";
18
18
  import "./chunk-L6PII3GR.js";
@@ -11,8 +11,8 @@ import {
11
11
  runSyncCleanup,
12
12
  setupSignalHandlers,
13
13
  setupTtyCheck
14
- } from "./chunk-UBGF6JU5.js";
15
- import "./chunk-ZQW7OGUO.js";
14
+ } from "./chunk-VOLZQW4I.js";
15
+ import "./chunk-NR7L3FXV.js";
16
16
  import "./chunk-664ZODQF.js";
17
17
  import "./chunk-IUUIT4SU.js";
18
18
  import "./chunk-L6PII3GR.js";
@@ -11,8 +11,8 @@ import {
11
11
  runSyncCleanup,
12
12
  setupSignalHandlers,
13
13
  setupTtyCheck
14
- } from "./chunk-UFQDAROY.js";
15
- import "./chunk-A4TO2DY2.js";
14
+ } from "./chunk-HHALNKOO.js";
15
+ import "./chunk-PZ4GDG24.js";
16
16
  import "./chunk-664ZODQF.js";
17
17
  import "./chunk-IUUIT4SU.js";
18
18
  import "./chunk-L6PII3GR.js";
@@ -68,6 +68,7 @@ import {
68
68
  COMPLETE_TASK_DISPLAY_NAME,
69
69
  COMPLETE_TASK_TOOL_NAME,
70
70
  CONFIRMATION_REQUIRED_PRIORITY,
71
+ CONTINUE_PROMPT_TEXT,
71
72
  CORE_TOOLS_FLAG_PRIORITY,
72
73
  CacheService,
73
74
  CanceledError,
@@ -267,6 +268,7 @@ import {
267
268
  INTEGRITY_FILENAME,
268
269
  INTEGRITY_KEY_FILENAME,
269
270
  INTERRUPTED_RESPONSE_PLACEHOLDER,
271
+ INTERRUPTED_TOOL_RESPONSE_ERROR,
270
272
  IdeClient,
271
273
  IdeConnectionEvent,
272
274
  IdeConnectionType,
@@ -555,6 +557,7 @@ import {
555
557
  authEvents,
556
558
  belongsInConfirmationQueue,
557
559
  buildG1Url,
560
+ buildInterruptedToolResponseParts,
558
561
  buildTodosReturnDisplay,
559
562
  buildToolResponseData,
560
563
  buildToolVisibilityContext,
@@ -578,6 +581,7 @@ import {
578
581
  cloneFunctionCall,
579
582
  cloneFunctionResponse,
580
583
  clonePart,
584
+ coalesceConsecutiveContents,
581
585
  coalesceConsecutiveRoles,
582
586
  computeModelAddedAndRemovedLines,
583
587
  concatenateInstructions,
@@ -646,6 +650,7 @@ import {
646
650
  enableMouseEvents,
647
651
  encodeTagName,
648
652
  ensureStableToolIds,
653
+ ensureTerminalUserTurn,
649
654
  enterAlternateScreen,
650
655
  escapePath,
651
656
  escapeShellArg,
@@ -1119,7 +1124,7 @@ import {
1119
1124
  wrapUntrusted,
1120
1125
  writeToStderr,
1121
1126
  writeToStdout
1122
- } from "./chunk-A4TO2DY2.js";
1127
+ } from "./chunk-PZ4GDG24.js";
1123
1128
  import "./chunk-664ZODQF.js";
1124
1129
  import {
1125
1130
  SpanStatusCode,
@@ -1196,6 +1201,7 @@ export {
1196
1201
  COMPLETE_TASK_DISPLAY_NAME,
1197
1202
  COMPLETE_TASK_TOOL_NAME,
1198
1203
  CONFIRMATION_REQUIRED_PRIORITY,
1204
+ CONTINUE_PROMPT_TEXT,
1199
1205
  CORE_TOOLS_FLAG_PRIORITY,
1200
1206
  CacheService,
1201
1207
  CanceledError,
@@ -1395,6 +1401,7 @@ export {
1395
1401
  INTEGRITY_FILENAME,
1396
1402
  INTEGRITY_KEY_FILENAME,
1397
1403
  INTERRUPTED_RESPONSE_PLACEHOLDER,
1404
+ INTERRUPTED_TOOL_RESPONSE_ERROR,
1398
1405
  IdeClient,
1399
1406
  IdeConnectionEvent,
1400
1407
  IdeConnectionType,
@@ -1685,6 +1692,7 @@ export {
1685
1692
  authEvents,
1686
1693
  belongsInConfirmationQueue,
1687
1694
  buildG1Url,
1695
+ buildInterruptedToolResponseParts,
1688
1696
  buildTodosReturnDisplay,
1689
1697
  buildToolResponseData,
1690
1698
  buildToolVisibilityContext,
@@ -1708,6 +1716,7 @@ export {
1708
1716
  cloneFunctionCall,
1709
1717
  cloneFunctionResponse,
1710
1718
  clonePart,
1719
+ coalesceConsecutiveContents,
1711
1720
  coalesceConsecutiveRoles,
1712
1721
  computeModelAddedAndRemovedLines,
1713
1722
  concatenateInstructions,
@@ -1776,6 +1785,7 @@ export {
1776
1785
  enableMouseEvents,
1777
1786
  encodeTagName,
1778
1787
  ensureStableToolIds,
1788
+ ensureTerminalUserTurn,
1779
1789
  enterAlternateScreen,
1780
1790
  escapePath,
1781
1791
  escapeShellArg,
@@ -68,6 +68,7 @@ import {
68
68
  COMPLETE_TASK_DISPLAY_NAME,
69
69
  COMPLETE_TASK_TOOL_NAME,
70
70
  CONFIRMATION_REQUIRED_PRIORITY,
71
+ CONTINUE_PROMPT_TEXT,
71
72
  CORE_TOOLS_FLAG_PRIORITY,
72
73
  CacheService,
73
74
  CanceledError,
@@ -267,6 +268,7 @@ import {
267
268
  INTEGRITY_FILENAME,
268
269
  INTEGRITY_KEY_FILENAME,
269
270
  INTERRUPTED_RESPONSE_PLACEHOLDER,
271
+ INTERRUPTED_TOOL_RESPONSE_ERROR,
270
272
  IdeClient,
271
273
  IdeConnectionEvent,
272
274
  IdeConnectionType,
@@ -555,6 +557,7 @@ import {
555
557
  authEvents,
556
558
  belongsInConfirmationQueue,
557
559
  buildG1Url,
560
+ buildInterruptedToolResponseParts,
558
561
  buildTodosReturnDisplay,
559
562
  buildToolResponseData,
560
563
  buildToolVisibilityContext,
@@ -578,6 +581,7 @@ import {
578
581
  cloneFunctionCall,
579
582
  cloneFunctionResponse,
580
583
  clonePart,
584
+ coalesceConsecutiveContents,
581
585
  coalesceConsecutiveRoles,
582
586
  computeModelAddedAndRemovedLines,
583
587
  concatenateInstructions,
@@ -646,6 +650,7 @@ import {
646
650
  enableMouseEvents,
647
651
  encodeTagName,
648
652
  ensureStableToolIds,
653
+ ensureTerminalUserTurn,
649
654
  enterAlternateScreen,
650
655
  escapePath,
651
656
  escapeShellArg,
@@ -1119,7 +1124,7 @@ import {
1119
1124
  wrapUntrusted,
1120
1125
  writeToStderr,
1121
1126
  writeToStdout
1122
- } from "./chunk-ZQW7OGUO.js";
1127
+ } from "./chunk-J7SXW2FI.js";
1123
1128
  import "./chunk-664ZODQF.js";
1124
1129
  import {
1125
1130
  SpanStatusCode,
@@ -1196,6 +1201,7 @@ export {
1196
1201
  COMPLETE_TASK_DISPLAY_NAME,
1197
1202
  COMPLETE_TASK_TOOL_NAME,
1198
1203
  CONFIRMATION_REQUIRED_PRIORITY,
1204
+ CONTINUE_PROMPT_TEXT,
1199
1205
  CORE_TOOLS_FLAG_PRIORITY,
1200
1206
  CacheService,
1201
1207
  CanceledError,
@@ -1395,6 +1401,7 @@ export {
1395
1401
  INTEGRITY_FILENAME,
1396
1402
  INTEGRITY_KEY_FILENAME,
1397
1403
  INTERRUPTED_RESPONSE_PLACEHOLDER,
1404
+ INTERRUPTED_TOOL_RESPONSE_ERROR,
1398
1405
  IdeClient,
1399
1406
  IdeConnectionEvent,
1400
1407
  IdeConnectionType,
@@ -1685,6 +1692,7 @@ export {
1685
1692
  authEvents,
1686
1693
  belongsInConfirmationQueue,
1687
1694
  buildG1Url,
1695
+ buildInterruptedToolResponseParts,
1688
1696
  buildTodosReturnDisplay,
1689
1697
  buildToolResponseData,
1690
1698
  buildToolVisibilityContext,
@@ -1708,6 +1716,7 @@ export {
1708
1716
  cloneFunctionCall,
1709
1717
  cloneFunctionResponse,
1710
1718
  clonePart,
1719
+ coalesceConsecutiveContents,
1711
1720
  coalesceConsecutiveRoles,
1712
1721
  computeModelAddedAndRemovedLines,
1713
1722
  concatenateInstructions,
@@ -1776,6 +1785,7 @@ export {
1776
1785
  enableMouseEvents,
1777
1786
  encodeTagName,
1778
1787
  ensureStableToolIds,
1788
+ ensureTerminalUserTurn,
1779
1789
  enterAlternateScreen,
1780
1790
  escapePath,
1781
1791
  escapeShellArg,
@@ -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-A4TO2DY2.js";
5
+ } from "./chunk-J7SXW2FI.js";
6
6
  import "./chunk-664ZODQF.js";
7
7
  import "./chunk-IUUIT4SU.js";
8
8
  import "./chunk-L6PII3GR.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-IUIZE6JW.js");
4327
+ const { openBrowserSecurely, shouldLaunchBrowser } = await import("./core-ICFDSJL3.js");
4328
4328
  const url = await startDevToolsServer(config);
4329
4329
  if (shouldLaunchBrowser()) {
4330
4330
  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-6OFXOGEG.js";
5
+ } from "./chunk-PZ4GDG24.js";
6
6
  import "./chunk-664ZODQF.js";
7
7
  import "./chunk-IUUIT4SU.js";
8
8
  import "./chunk-L6PII3GR.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-6HRWFQZW.js");
4327
+ const { openBrowserSecurely, shouldLaunchBrowser } = await import("./core-4P3HPH34.js");
4328
4328
  const url = await startDevToolsServer(config);
4329
4329
  if (shouldLaunchBrowser()) {
4330
4330
  try {
@@ -3,7 +3,7 @@ import {
3
3
  CoreEvent,
4
4
  coreEvents,
5
5
  debugLogger
6
- } from "./chunk-ZQW7OGUO.js";
6
+ } from "./chunk-NR7L3FXV.js";
7
7
  import "./chunk-664ZODQF.js";
8
8
  import "./chunk-IUUIT4SU.js";
9
9
  import "./chunk-L6PII3GR.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-7L3BRW6V.js");
4328
+ const { openBrowserSecurely, shouldLaunchBrowser } = await import("./dist-YMXCTNJD.js");
4329
4329
  const url = await startDevToolsServer(config);
4330
4330
  if (shouldLaunchBrowser()) {
4331
4331
  try {
@@ -68,6 +68,7 @@ import {
68
68
  COMPLETE_TASK_DISPLAY_NAME,
69
69
  COMPLETE_TASK_TOOL_NAME,
70
70
  CONFIRMATION_REQUIRED_PRIORITY,
71
+ CONTINUE_PROMPT_TEXT,
71
72
  CORE_TOOLS_FLAG_PRIORITY,
72
73
  CacheService,
73
74
  CanceledError,
@@ -267,6 +268,7 @@ import {
267
268
  INTEGRITY_FILENAME,
268
269
  INTEGRITY_KEY_FILENAME,
269
270
  INTERRUPTED_RESPONSE_PLACEHOLDER,
271
+ INTERRUPTED_TOOL_RESPONSE_ERROR,
270
272
  IdeClient,
271
273
  IdeConnectionEvent,
272
274
  IdeConnectionType,
@@ -555,6 +557,7 @@ import {
555
557
  authEvents,
556
558
  belongsInConfirmationQueue,
557
559
  buildG1Url,
560
+ buildInterruptedToolResponseParts,
558
561
  buildTodosReturnDisplay,
559
562
  buildToolResponseData,
560
563
  buildToolVisibilityContext,
@@ -578,6 +581,7 @@ import {
578
581
  cloneFunctionCall,
579
582
  cloneFunctionResponse,
580
583
  clonePart,
584
+ coalesceConsecutiveContents,
581
585
  coalesceConsecutiveRoles,
582
586
  computeModelAddedAndRemovedLines,
583
587
  concatenateInstructions,
@@ -646,6 +650,7 @@ import {
646
650
  enableMouseEvents,
647
651
  encodeTagName,
648
652
  ensureStableToolIds,
653
+ ensureTerminalUserTurn,
649
654
  enterAlternateScreen,
650
655
  escapePath,
651
656
  escapeShellArg,
@@ -1119,7 +1124,7 @@ import {
1119
1124
  wrapUntrusted,
1120
1125
  writeToStderr,
1121
1126
  writeToStdout
1122
- } from "./chunk-6OFXOGEG.js";
1127
+ } from "./chunk-NR7L3FXV.js";
1123
1128
  import "./chunk-664ZODQF.js";
1124
1129
  import {
1125
1130
  SpanStatusCode,
@@ -1196,6 +1201,7 @@ export {
1196
1201
  COMPLETE_TASK_DISPLAY_NAME,
1197
1202
  COMPLETE_TASK_TOOL_NAME,
1198
1203
  CONFIRMATION_REQUIRED_PRIORITY,
1204
+ CONTINUE_PROMPT_TEXT,
1199
1205
  CORE_TOOLS_FLAG_PRIORITY,
1200
1206
  CacheService,
1201
1207
  CanceledError,
@@ -1395,6 +1401,7 @@ export {
1395
1401
  INTEGRITY_FILENAME,
1396
1402
  INTEGRITY_KEY_FILENAME,
1397
1403
  INTERRUPTED_RESPONSE_PLACEHOLDER,
1404
+ INTERRUPTED_TOOL_RESPONSE_ERROR,
1398
1405
  IdeClient,
1399
1406
  IdeConnectionEvent,
1400
1407
  IdeConnectionType,
@@ -1685,6 +1692,7 @@ export {
1685
1692
  authEvents,
1686
1693
  belongsInConfirmationQueue,
1687
1694
  buildG1Url,
1695
+ buildInterruptedToolResponseParts,
1688
1696
  buildTodosReturnDisplay,
1689
1697
  buildToolResponseData,
1690
1698
  buildToolVisibilityContext,
@@ -1708,6 +1716,7 @@ export {
1708
1716
  cloneFunctionCall,
1709
1717
  cloneFunctionResponse,
1710
1718
  clonePart,
1719
+ coalesceConsecutiveContents,
1711
1720
  coalesceConsecutiveRoles,
1712
1721
  computeModelAddedAndRemovedLines,
1713
1722
  concatenateInstructions,
@@ -1776,6 +1785,7 @@ export {
1776
1785
  enableMouseEvents,
1777
1786
  encodeTagName,
1778
1787
  ensureStableToolIds,
1788
+ ensureTerminalUserTurn,
1779
1789
  enterAlternateScreen,
1780
1790
  escapePath,
1781
1791
  escapeShellArg,
@@ -326,17 +326,31 @@ This feature will not work in:
326
326
 
327
327
  <!-- prettier-ignore -->
328
328
  > [!IMPORTANT]
329
- > To protect against OAuth Identity Provider (IdP) mix-up attacks, Gemini CLI
330
- > validates the `iss` (issuer) parameter per
331
- > [RFC 9207](https://www.rfc-editor.org/rfc/rfc9207). When an expected issuer is
332
- > discovered or configured, authorization servers **must** return the `iss`
333
- > parameter in the callback redirect matching the issuer URL. Responses missing
334
- > `iss` or with mismatched issuers are rejected with HTTP 400.
329
+ > Gemini CLI validates the `iss` (issuer) parameter in OAuth authorization
330
+ > responses per [RFC 9207](https://www.rfc-editor.org/rfc/rfc9207) and the MCP
331
+ > specification:
332
+ >
333
+ > - Whenever the `iss` parameter is present in the callback redirect and an
334
+ > expected `issuer` is discovered or configured, `iss` **must** match the
335
+ > expected issuer URL.
336
+ > - When the authorization server metadata sets
337
+ > `authorization_response_iss_parameter_supported: true`, the callback
338
+ > redirect **must** include the `iss` parameter.
339
+ > - When the discovered authorization server metadata omits
340
+ > `authorization_response_iss_parameter_supported` or sets it to `false` (for
341
+ > example, providers that do not declare RFC 9207 support), callbacks without
342
+ > `iss` are accepted.
343
+ > - When you configure `issuer` explicitly in `settings.json` and Gemini CLI
344
+ > doesn't discover authorization server metadata, the callback redirect
345
+ > **must** include the `iss` parameter. To accept callbacks without `iss` for
346
+ > such a server, set `authorizationResponseIssParameterSupported` to `false`
347
+ > in the `oauth` configuration.
335
348
 
336
349
  ##### Expected authorization callback example
337
350
 
338
- When the authorization server redirects the user back to Gemini CLI, the
339
- redirect URI must include the `iss` parameter:
351
+ When the authorization server declares
352
+ `authorization_response_iss_parameter_supported: true`, the redirect URI must
353
+ include the `iss` parameter:
340
354
 
341
355
  ```http
342
356
  HTTP/1.1 302 Found
@@ -344,10 +358,14 @@ Location: http://localhost:<port>/oauth/callback?code=AUTH_CODE&state=STATE&iss=
344
358
  ```
345
359
 
346
360
  - **Valid response (accepted):** `iss` matches the configured or discovered
347
- issuer (`https://auth.example.com`).
348
- - **Missing `iss` (rejected):**
349
- `http://localhost:<port>/oauth/callback?code=AUTH_CODE&state=STATE` (fails
350
- with HTTP 400: `Missing issuer parameter in response`).
361
+ issuer (`https://auth.example.com`), or `iss` is omitted when the discovered
362
+ metadata doesn't set `authorization_response_iss_parameter_supported` to
363
+ `true`.
364
+ - **Missing `iss` when required (rejected):**
365
+ `http://localhost:<port>/oauth/callback?code=AUTH_CODE&state=STATE` when
366
+ `authorization_response_iss_parameter_supported` is `true`, or when `issuer`
367
+ is configured explicitly without discovered metadata (fails with HTTP 400:
368
+ `Missing issuer parameter in response`).
351
369
  - **Mismatched `iss` (rejected):** `iss` points to a different domain or
352
370
  includes userinfo (fails with HTTP 400: `Issuer mismatch`).
353
371
 
@@ -373,6 +391,12 @@ If your remote MCP server uses an authorization server with a known issuer URL:
373
391
  }
374
392
  ```
375
393
 
394
+ With this configuration, Gemini CLI requires the `iss` parameter in the
395
+ authorization callback. If the authorization server doesn't return `iss` in its
396
+ redirects, add `"authorizationResponseIssParameterSupported": false` to the
397
+ `oauth` block. Gemini CLI then accepts callbacks without `iss` while still
398
+ rejecting any `iss` value that doesn't match the configured `issuer`.
399
+
376
400
  #### Managing OAuth authentication
377
401
 
378
402
  Use the `/mcp auth` command to manage OAuth authentication:
@@ -398,6 +422,11 @@ Use the `/mcp auth` command to manage OAuth authentication:
398
422
  if omitted)
399
423
  - **`issuer`** (string): Authorization server issuer URL (auto-discovered if
400
424
  omitted; validated per RFC 9207)
425
+ - **`authorizationResponseIssParameterSupported`** (boolean): Whether the
426
+ authorization server returns the `iss` parameter in authorization responses
427
+ (RFC 9207). Auto-discovered from the authorization server metadata; defaults
428
+ to `true` when `issuer` is configured explicitly without discovered metadata.
429
+ Set to `false` to accept callbacks without `iss` for such a server.
401
430
  - **`tokenUrl`** (string): OAuth token endpoint (auto-discovered if omitted)
402
431
  - **`scopes`** (string[]): Required OAuth scopes
403
432
  - **`redirectUri`** (string): Custom redirect URI (defaults to an OS-assigned