@google/gemini-cli 0.63.0-preview.0 → 0.64.0-nightly.20261001.gc6bccb7ec

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 (67) hide show
  1. package/bundle/{chunk-EIMVJG2V.js → chunk-2AWGKUBT.js} +1 -1
  2. package/bundle/{chunk-GRSO6OI3.js → chunk-33M6KTJD.js} +11 -9
  3. package/bundle/{chunk-2J6RC447.js → chunk-3V7PFNJW.js} +3 -3
  4. package/bundle/{chunk-NWSCUKK3.js → chunk-5Q2IR4AT.js} +1512 -1317
  5. package/bundle/{chunk-RXHIISMM.js → chunk-5S3XVXG6.js} +1 -1
  6. package/bundle/{chunk-R6Q6D3UA.js → chunk-A7EL6FWX.js} +1 -1
  7. package/bundle/{chunk-UEOEM4H5.js → chunk-AMALQQ3Z.js} +3 -3
  8. package/bundle/{chunk-EWEUWTBB.js → chunk-CBYMGCHX.js} +75 -60
  9. package/bundle/{chunk-2NCBQURB.js → chunk-CFKLEVXK.js} +1 -1
  10. package/bundle/{chunk-RC6VJ6FT.js → chunk-DGM2IXGQ.js} +1 -1
  11. package/bundle/{chunk-NTWFJ2RF.js → chunk-EUQCH4QF.js} +2 -2
  12. package/bundle/{chunk-KCB54UJ5.js → chunk-FLYR6TVJ.js} +9279 -16064
  13. package/bundle/{chunk-H4WLRV6U.js → chunk-FQCPUDNE.js} +2 -2
  14. package/bundle/{chunk-BVDTRESW.js → chunk-FSELSFI5.js} +1 -1
  15. package/bundle/{chunk-5VYF5TVF.js → chunk-G4FAHQEH.js} +2 -2
  16. package/bundle/{chunk-Z5RCAIV5.js → chunk-I5GYMICM.js} +7 -5
  17. package/bundle/{chunk-JEUVKR2X.js → chunk-IGVQSZBB.js} +3 -3
  18. package/bundle/{chunk-HBZBBLAV.js → chunk-JMQIN5UZ.js} +1521 -1323
  19. package/bundle/{chunk-KPPDDNGJ.js → chunk-JW5YA5WN.js} +9 -8
  20. package/bundle/chunk-KTIX6VY2.js +17446 -0
  21. package/bundle/{chunk-SNGNFODQ.js → chunk-KUSXLIPR.js} +1 -1
  22. package/bundle/{chunk-ZDQYLJYN.js → chunk-KVZWFEJY.js} +1 -1
  23. package/bundle/{chunk-2P4ETAEG.js → chunk-LTM347XQ.js} +1 -1
  24. package/bundle/chunk-LXT3NLFW.js +118 -0
  25. package/bundle/chunk-PAWJR2VY.js +1571 -0
  26. package/bundle/chunk-RVS5CHWO.js +425 -0
  27. package/bundle/{chunk-B2C7BQ4Z.js → chunk-RW6IRAFG.js} +11 -9
  28. package/bundle/{chunk-CTL6DZSY.js → chunk-U4667HKR.js} +1 -1
  29. package/bundle/chunk-WTO5SKFR.js +400730 -0
  30. package/bundle/chunk-WXSWGEUJ.js +512 -0
  31. package/bundle/chunk-XKSEOGBW.js +154 -0
  32. package/bundle/chunk-ZG5IQP2R.js +102953 -0
  33. package/bundle/{cleanup-EX2L3L3E.js → cleanup-I7CTORMX.js} +2 -2
  34. package/bundle/{cleanup-IT7XR7KS.js → cleanup-MOFJ6BES.js} +2 -2
  35. package/bundle/{cleanup-WWLYKZIX.js → cleanup-OAR3IBTA.js} +2 -2
  36. package/bundle/cleanup-WFLHSVPH.js +32 -0
  37. package/bundle/{core-GAJB2LOX.js → core-VXMTLS6K.js} +1 -1
  38. package/bundle/{devtoolsService-TJPENQSW.js → devtoolsService-4QAJJ6WJ.js} +2 -2
  39. package/bundle/{devtoolsService-S4ZTRGJL.js → devtoolsService-54XKSYYW.js} +4 -3
  40. package/bundle/{devtoolsService-4YTFHHPN.js → devtoolsService-L6BPP3IA.js} +2 -2
  41. package/bundle/devtoolsService-LSDQLZ62.js +4359 -0
  42. package/bundle/{dist-MTMOCTIW.js → dist-BNMP57Q5.js} +1 -1
  43. package/bundle/{core-D5D4MF5H.js → dist-FJ7DKGAM.js} +1 -1
  44. package/bundle/dist-U5DFAJ4Y.js +2250 -0
  45. package/bundle/docs/changelogs/preview.md +54 -65
  46. package/bundle/{gemini-5T5BS7L7.js → gemini-L553JD26.js} +66 -95
  47. package/bundle/{gemini-FHORRYHM.js → gemini-LN35PXGR.js} +66 -95
  48. package/bundle/gemini-VZOPAMKQ.js +17834 -0
  49. package/bundle/{gemini-UQRS6TBE.js → gemini-W63I3AHM.js} +266 -279
  50. package/bundle/gemini.js +7 -7
  51. package/bundle/{interactiveCli-WOM6QZHM.js → interactiveCli-2JCDVYVC.js} +26 -23
  52. package/bundle/{interactiveCli-I5K7O5Z6.js → interactiveCli-KN6ETEWY.js} +26 -23
  53. package/bundle/{interactiveCli-5YNYZTMK.js → interactiveCli-N7HBJ434.js} +329 -307
  54. package/bundle/interactiveCli-TX7INBPE.js +34918 -0
  55. package/bundle/{liteRtServerManager-EH2L2UVH.js → liteRtServerManager-GIDPQRR4.js} +4 -4
  56. package/bundle/{liteRtServerManager-ZLIHBLZP.js → liteRtServerManager-NK3OA5CI.js} +4 -4
  57. package/bundle/{liteRtServerManager-3N5KI6YS.js → liteRtServerManager-NSDSBW7B.js} +4 -4
  58. package/bundle/liteRtServerManager-PKOODTU4.js +65 -0
  59. package/bundle/{oauth2-provider-TA2KRXWQ.js → oauth2-provider-DE3RVHTQ.js} +1 -1
  60. package/bundle/{oauth2-provider-5GFYTXFU.js → oauth2-provider-FDRYB63N.js} +38 -72
  61. package/bundle/{oauth2-provider-NGSH2JQK.js → oauth2-provider-KMACQ2PX.js} +1 -1
  62. package/bundle/oauth2-provider-UAZAD3AF.js +235 -0
  63. package/bundle/{start-M3IUNCYH.js → start-5X2H6QGN.js} +6 -6
  64. package/bundle/{start-MWDNIQUY.js → start-AMYT67DW.js} +6 -6
  65. package/bundle/{start-CWI6OP6N.js → start-QYGGE4KC.js} +6 -6
  66. package/bundle/start-WWUBZPNX.js +18 -0
  67. package/package.json +1 -1
@@ -5,7 +5,7 @@ import {
5
5
  isTelemetrySdkInitialized,
6
6
  resetBrowserSession,
7
7
  shutdownTelemetry
8
- } from "./chunk-NWSCUKK3.js";
8
+ } from "./chunk-5Q2IR4AT.js";
9
9
 
10
10
  // packages/cli/src/utils/cleanup.ts
11
11
  import { promises as fs } from "node:fs";
@@ -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-RXHIISMM.js";
4
+ } from "./chunk-U4667HKR.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-SNGNFODQ.js";
5
+ } from "./chunk-LTM347XQ.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-RC6VJ6FT.js";
17
+ } from "./chunk-I5GYMICM.js";
18
18
  import {
19
19
  debugLogger
20
- } from "./chunk-KCB54UJ5.js";
20
+ } from "./chunk-WTO5SKFR.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-SNGNFODQ.js";
5
+ } from "./chunk-A7EL6FWX.js";
6
6
  import {
7
7
  AppEvent,
8
8
  appEvents
@@ -63,21 +63,23 @@ import {
63
63
  stripUnsafeCharacters,
64
64
  toCodePoints,
65
65
  validateCustomTheme
66
- } from "./chunk-RC6VJ6FT.js";
66
+ } from "./chunk-KTIX6VY2.js";
67
67
  import {
68
68
  isDevelopment
69
- } from "./chunk-5VYF5TVF.js";
69
+ } from "./chunk-EUQCH4QF.js";
70
70
  import {
71
71
  emptyIcon,
72
72
  mapCoreStatusToDisplayStatus,
73
73
  require_react
74
- } from "./chunk-ZDQYLJYN.js";
74
+ } from "./chunk-WXSWGEUJ.js";
75
75
  import {
76
76
  ALL_EDITORS,
77
77
  ApprovalMode,
78
78
  AsyncFzf,
79
+ AuthType,
79
80
  Config,
80
81
  CoreEvent,
82
+ CoreToolCallStatus,
81
83
  DiscoveredMCPTool,
82
84
  ExtensionDisableEvent,
83
85
  ExtensionEnableEvent,
@@ -88,21 +90,32 @@ import {
88
90
  ExtensionUpdateEvent,
89
91
  GEMINI_CLI_COMPANION_EXTENSION_NAME,
90
92
  GEMINI_DIR,
93
+ HookType,
94
+ IDEConnectionStatus,
91
95
  INITIAL_HISTORY_LENGTH,
92
96
  IdeClient,
93
97
  IdeConnectionEvent,
98
+ IdeConnectionType,
99
+ IntegrityDataStatus,
94
100
  KeychainTokenStorage,
101
+ LlmRole,
102
+ MCPDiscoveryState,
95
103
  MCPOAuthTokenStorage,
104
+ MCPServerStatus,
96
105
  ModelSlashCommandEvent,
106
+ PolicyDecision,
97
107
  ProjectIdRequiredError,
98
108
  REFERENCE_CONTENT_END,
99
109
  REFERENCE_CONTENT_START,
100
110
  ReadManyFilesTool,
101
111
  RewindEvent,
102
112
  SHELL_TOOL_NAME,
113
+ SessionEndReason,
114
+ SessionStartSource,
103
115
  ShellExecutionService,
104
116
  StartSessionEvent,
105
117
  Storage,
118
+ TrustLevel,
106
119
  UPGRADE_URL_PAGE,
107
120
  UserAccountManager,
108
121
  ValidationRequiredError,
@@ -238,7 +251,7 @@ import {
238
251
  tokenLimit,
239
252
  uiTelemetryService,
240
253
  unescapePath
241
- } from "./chunk-KCB54UJ5.js";
254
+ } from "./chunk-FLYR6TVJ.js";
242
255
  import {
243
256
  require_src
244
257
  } from "./chunk-L6PII3GR.js";
@@ -60093,7 +60106,7 @@ var import_react34 = __toESM(require_react(), 1);
60093
60106
  function useIdeTrustListener() {
60094
60107
  const settings = useSettings();
60095
60108
  const [connectionStatus, setConnectionStatus] = (0, import_react34.useState)(
60096
- "disconnected" /* Disconnected */
60109
+ IDEConnectionStatus.Disconnected
60097
60110
  );
60098
60111
  const previousTrust = (0, import_react34.useRef)(void 0);
60099
60112
  const [restartReason, setRestartReason] = (0, import_react34.useState)("NONE");
@@ -60123,7 +60136,7 @@ function useIdeTrustListener() {
60123
60136
  };
60124
60137
  }, []);
60125
60138
  const getSnapshot = () => {
60126
- if (connectionStatus !== "connected" /* Connected */) {
60139
+ if (connectionStatus !== IDEConnectionStatus.Connected) {
60127
60140
  return void 0;
60128
60141
  }
60129
60142
  return ideContextStore.get()?.workspaceState?.isTrusted;
@@ -60828,7 +60841,7 @@ async function initializeApp(config, settings) {
60828
60841
  await ideClient.connect();
60829
60842
  logIdeConnection(
60830
60843
  config,
60831
- new IdeConnectionEvent("start" /* START */)
60844
+ new IdeConnectionEvent(IdeConnectionType.START)
60832
60845
  );
60833
60846
  }).catch((e) => {
60834
60847
  debugLogger.error("Failed to initialize IDE client:", e);
@@ -60846,17 +60859,17 @@ async function initializeApp(config, settings) {
60846
60859
  // packages/cli/src/config/auth.ts
60847
60860
  async function validateAuthMethod(authMethod) {
60848
60861
  loadEnvironment(loadSettings().merged, process.cwd());
60849
- if (authMethod === "oauth-personal" /* LOGIN_WITH_GOOGLE */ || authMethod === "compute-default-credentials" /* COMPUTE_ADC */) {
60862
+ if (authMethod === AuthType.LOGIN_WITH_GOOGLE || authMethod === AuthType.COMPUTE_ADC) {
60850
60863
  return null;
60851
60864
  }
60852
- if (authMethod === "gemini-api-key" /* USE_GEMINI */) {
60865
+ if (authMethod === AuthType.USE_GEMINI) {
60853
60866
  const key = process.env["GEMINI_API_KEY"] || await loadApiKey();
60854
60867
  if (!key) {
60855
60868
  return "When using Gemini API, you must specify the GEMINI_API_KEY environment variable.\nUpdate your environment and try again (no reload needed if using .env)!";
60856
60869
  }
60857
60870
  return null;
60858
60871
  }
60859
- if (authMethod === "vertex-ai" /* USE_VERTEX_AI */) {
60872
+ if (authMethod === AuthType.USE_VERTEX_AI) {
60860
60873
  const hasVertexProjectLocationConfig = !!process.env["GOOGLE_CLOUD_PROJECT"] && !!process.env["GOOGLE_CLOUD_LOCATION"];
60861
60874
  const hasGoogleApiKey = !!process.env["GOOGLE_API_KEY"];
60862
60875
  if (!hasVertexProjectLocationConfig && !hasGoogleApiKey) {
@@ -65382,7 +65395,7 @@ var ExtensionManager = class extends ExtensionLoader {
65382
65395
  const trustedFolders = loadTrustedFolders();
65383
65396
  await trustedFolders.setValue(
65384
65397
  this.workspaceDir,
65385
- "TRUST_FOLDER" /* TRUST_FOLDER */
65398
+ TrustLevel.TRUST_FOLDER
65386
65399
  );
65387
65400
  } else {
65388
65401
  throw new Error(
@@ -65568,7 +65581,7 @@ Would you like to attempt to install via "git clone" instead?`
65568
65581
  newExtensionConfig.version,
65569
65582
  previousExtensionConfig.version,
65570
65583
  installMetadata.type,
65571
- "success" /* Success */
65584
+ CoreToolCallStatus.Success
65572
65585
  )
65573
65586
  );
65574
65587
  if (newExtensionName !== previousName) {
@@ -65591,7 +65604,7 @@ Would you like to attempt to install via "git clone" instead?`
65591
65604
  getExtensionId(newExtensionConfig, installMetadata),
65592
65605
  newExtensionConfig.version,
65593
65606
  installMetadata.type,
65594
- "success" /* Success */
65607
+ CoreToolCallStatus.Success
65595
65608
  )
65596
65609
  );
65597
65610
  await this.enableExtension(
@@ -65624,7 +65637,7 @@ Would you like to attempt to install via "git clone" instead?`
65624
65637
  newExtensionConfig?.version ?? "",
65625
65638
  previousExtensionConfig.version,
65626
65639
  installMetadata.type,
65627
- "error" /* Error */
65640
+ CoreToolCallStatus.Error
65628
65641
  )
65629
65642
  );
65630
65643
  } else {
@@ -65636,7 +65649,7 @@ Would you like to attempt to install via "git clone" instead?`
65636
65649
  extensionId ?? "",
65637
65650
  newExtensionConfig?.version ?? "",
65638
65651
  installMetadata.type,
65639
- "error" /* Error */
65652
+ CoreToolCallStatus.Error
65640
65653
  )
65641
65654
  );
65642
65655
  }
@@ -65667,7 +65680,7 @@ Would you like to attempt to install via "git clone" instead?`
65667
65680
  extension.name,
65668
65681
  hashValue(extension.name),
65669
65682
  extension.id,
65670
- "success" /* Success */
65683
+ CoreToolCallStatus.Success
65671
65684
  )
65672
65685
  );
65673
65686
  }
@@ -65929,7 +65942,7 @@ Would you like to attempt to install via "git clone" instead?`
65929
65942
  if (eventHooks) {
65930
65943
  for (const definition of eventHooks) {
65931
65944
  for (const hook of definition.hooks) {
65932
- if (hook.type === "command" /* Command */) {
65945
+ if (hook.type === HookType.Command) {
65933
65946
  hook.env = { ...hook.env, ...hookEnv };
65934
65947
  }
65935
65948
  }
@@ -66818,7 +66831,7 @@ function unescapeLiteralAt(text) {
66818
66831
  return backslashCount % 2 === 0 ? "@" : "\\@";
66819
66832
  });
66820
66833
  }
66821
- var AT_COMMAND_PATH_REGEX_SOURCE = '(?:(?:"(?:[^"]*)")|(?:\\\\.|[^ \\t\\n\\r,;!?()\\[\\]{}.]|\\.(?!$|[ \\t\\n\\r])))+';
66834
+ var AT_COMMAND_PATH_REGEX_SOURCE = '(?:(?:"[^"\\n\\r]*")|(?:\\\\.|[^ \\t\\n\\r,;!?()\\[\\]{}."\'`]|\\.(?!$|[ \\t\\n\\r]))+)';
66822
66835
  function parseAllAtCommands(query, escapePastedAtSymbols = false) {
66823
66836
  const parts = [];
66824
66837
  let lastIndex = 0;
@@ -66948,7 +66961,9 @@ async function resolveFilePaths(fileParts, config, onDebugMessage, signal) {
66948
66961
  );
66949
66962
  }
66950
66963
  } else if (result.status === "not_found" || result.status === "unauthorized") {
66951
- if (config.getEnableRecursiveFileSearch() && globTool) {
66964
+ const MAX_GLOB_SEARCH_PATH_LENGTH = 255;
66965
+ const isPathSuitableForGlob = pathName.length > 0 && pathName.length <= MAX_GLOB_SEARCH_PATH_LENGTH && !path12.isAbsolute(pathName) && !pathName.includes("..") && !/[\r\n\t\0{}*?[\]]/.test(pathName);
66966
+ if (config.getEnableRecursiveFileSearch() && globTool && isPathSuitableForGlob) {
66952
66967
  onDebugMessage(
66953
66968
  `Path ${pathName} not found directly, attempting glob search.`
66954
66969
  );
@@ -67057,7 +67072,7 @@ async function readMcpResources(resourceParts, config, signal) {
67057
67072
  callId: `mcp-resource-${resource.serverName}-${resource.uri}`,
67058
67073
  name: `resources/read (${resource.serverName})`,
67059
67074
  description: resource.uri,
67060
- status: "success" /* Success */,
67075
+ status: CoreToolCallStatus.Success,
67061
67076
  isClientInitiated: true,
67062
67077
  resultDisplay: `Successfully read resource ${resource.uri}`,
67063
67078
  confirmationDetails: void 0
@@ -67072,7 +67087,7 @@ async function readMcpResources(resourceParts, config, signal) {
67072
67087
  callId: `mcp-resource-${resource.serverName}-${resource.uri}`,
67073
67088
  name: `resources/read (${resource.serverName})`,
67074
67089
  description: resource.uri,
67075
- status: "error" /* Error */,
67090
+ status: CoreToolCallStatus.Error,
67076
67091
  isClientInitiated: true,
67077
67092
  resultDisplay: `Error reading resource ${resource.uri}: ${getErrorMessage(error)}`,
67078
67093
  confirmationDetails: void 0
@@ -67097,7 +67112,7 @@ Content from @${result.uri}:
67097
67112
  }
67098
67113
  if (hasError) {
67099
67114
  const firstError = displays.find(
67100
- (d) => d.status === "error" /* Error */
67115
+ (d) => d.status === CoreToolCallStatus.Error
67101
67116
  );
67102
67117
  return {
67103
67118
  parts: [],
@@ -67138,7 +67153,7 @@ async function readLocalFiles(resolvedFiles, config, signal, userMessageTimestam
67138
67153
  callId: `client-read-${userMessageTimestamp}`,
67139
67154
  name: readManyFilesTool.displayName,
67140
67155
  description: invocation.getDescription(),
67141
- status: "success" /* Success */,
67156
+ status: CoreToolCallStatus.Success,
67142
67157
  isClientInitiated: true,
67143
67158
  resultDisplay: result.returnDisplay || `Successfully read: ${fileLabelsForDisplay.join(", ")}`,
67144
67159
  confirmationDetails: void 0
@@ -67185,7 +67200,7 @@ Content from @${displayPath}:
67185
67200
  callId: `client-read-${userMessageTimestamp}`,
67186
67201
  name: readManyFilesTool.displayName,
67187
67202
  description: invocation?.getDescription() ?? "Error attempting to execute tool to read files",
67188
- status: "error" /* Error */,
67203
+ status: CoreToolCallStatus.Error,
67189
67204
  isClientInitiated: true,
67190
67205
  resultDisplay: `Error reading files (${fileLabelsForDisplay.join(", ")}): ${getErrorMessage(error)}`,
67191
67206
  confirmationDetails: void 0
@@ -70452,7 +70467,7 @@ async function openFileInEditor(filePath, stdin, setRawMode, preferredEditorType
70452
70467
  if (wasRaw) {
70453
70468
  setRawMode?.(true);
70454
70469
  }
70455
- coreEvents.emit("external-editor-closed" /* ExternalEditorClosed */);
70470
+ coreEvents.emit(CoreEvent.ExternalEditorClosed);
70456
70471
  }
70457
70472
  }
70458
70473
 
@@ -73147,7 +73162,7 @@ async function updateExtension(extension, extensionManager, currentState, dispat
73147
73162
  extension.name,
73148
73163
  installMetadata
73149
73164
  );
73150
- if (status === "invalid" /* INVALID */) {
73165
+ if (status === IntegrityDataStatus.INVALID) {
73151
73166
  throw new Error("Extension integrity cannot be verified");
73152
73167
  }
73153
73168
  } catch (e) {
@@ -74568,11 +74583,11 @@ var ShellProcessor = class {
74568
74583
  },
74569
74584
  void 0
74570
74585
  );
74571
- if (decision === "deny" /* DENY */) {
74586
+ if (decision === PolicyDecision.DENY) {
74572
74587
  throw new Error(
74573
74588
  `${this.commandName} cannot be run. Blocked command: "${command}". Reason: Blocked by policy.`
74574
74589
  );
74575
- } else if (decision === "ask_user" /* ASK_USER */) {
74590
+ } else if (decision === PolicyDecision.ASK_USER) {
74576
74591
  commandsToConfirm.add(command);
74577
74592
  }
74578
74593
  }
@@ -75687,7 +75702,7 @@ var MultiFolderTrustDialog = ({
75687
75702
  if (choice === 1 /* YES_AND_REMEMBER */) {
75688
75703
  await trustedFolders.setValue(
75689
75704
  expandedPath,
75690
- "TRUST_FOLDER" /* TRUST_FOLDER */
75705
+ TrustLevel.TRUST_FOLDER
75691
75706
  );
75692
75707
  }
75693
75708
  workspaceContext.addDirectory(expandedPath);
@@ -75973,10 +75988,10 @@ function isShellTool(name) {
75973
75988
  return name === SHELL_COMMAND_NAME || name === SHELL_NAME || name === SHELL_TOOL_NAME || normalized === "shell";
75974
75989
  }
75975
75990
  function isThisShellFocusable(name, status, config) {
75976
- return !!(isShellTool(name) && status === "executing" /* Executing */ && config?.getEnableInteractiveShell());
75991
+ return !!(isShellTool(name) && status === CoreToolCallStatus.Executing && config?.getEnableInteractiveShell());
75977
75992
  }
75978
75993
  function isThisShellFocused(name, status, ptyId, activeShellPtyId, embeddedShellFocused) {
75979
- return !!(isShellTool(name) && status === "executing" /* Executing */ && ptyId === activeShellPtyId && embeddedShellFocused);
75994
+ return !!(isShellTool(name) && status === CoreToolCallStatus.Executing && ptyId === activeShellPtyId && embeddedShellFocused);
75980
75995
  }
75981
75996
  function useFocusHint(isThisShellFocusable2, isThisShellFocused2, resultDisplay) {
75982
75997
  const [userHasFocused, setUserHasFocused] = (0, import_react56.useState)(false);
@@ -76136,14 +76151,14 @@ function getToolGroupBorderAppearance(item, activeShellPtyId, embeddedShellFocus
76136
76151
  if (isTrackedToolCall(t)) {
76137
76152
  return t.status !== "success" && t.status !== "error" && t.status !== "cancelled";
76138
76153
  } else {
76139
- return t.status !== "success" /* Success */ && t.status !== "error" /* Error */ && t.status !== "cancelled" /* Cancelled */;
76154
+ return t.status !== CoreToolCallStatus.Success && t.status !== CoreToolCallStatus.Error && t.status !== CoreToolCallStatus.Cancelled;
76140
76155
  }
76141
76156
  });
76142
76157
  const isEmbeddedShellFocused = toolsToInspect.some((t) => {
76143
76158
  if (isTrackedToolCall(t)) {
76144
76159
  return isShellTool(t.request.name) && t.status === "executing" && t.pid === activeShellPtyId && !!embeddedShellFocused;
76145
76160
  } else {
76146
- return isShellTool(t.name) && t.status === "executing" /* Executing */ && t.ptyId === activeShellPtyId && !!embeddedShellFocused;
76161
+ return isShellTool(t.name) && t.status === CoreToolCallStatus.Executing && t.ptyId === activeShellPtyId && !!embeddedShellFocused;
76147
76162
  }
76148
76163
  });
76149
76164
  const isShellCommand = toolsToInspect.some((t) => {
@@ -77581,7 +77596,7 @@ var authCommand = {
77581
77596
  import process29 from "node:process";
77582
77597
 
77583
77598
  // packages/cli/src/generated/git-commit.ts
77584
- var GIT_COMMIT_INFO = "d75234cae";
77599
+ var GIT_COMMIT_INFO = "508459932";
77585
77600
 
77586
77601
  // packages/cli/src/ui/utils/historyExportUtils.ts
77587
77602
  import * as fsPromises from "node:fs/promises";
@@ -78227,7 +78242,7 @@ var clearCommand = {
78227
78242
  const config = context.services.agentContext?.config;
78228
78243
  const hookSystem = config?.getHookSystem();
78229
78244
  if (hookSystem) {
78230
- await hookSystem.fireSessionEndEvent("clear" /* Clear */);
78245
+ await hookSystem.fireSessionEndEvent(SessionEndReason.Clear);
78231
78246
  }
78232
78247
  config?.injectionService.clear();
78233
78248
  let newSessionId;
@@ -78244,7 +78259,7 @@ var clearCommand = {
78244
78259
  }
78245
78260
  let result;
78246
78261
  if (hookSystem) {
78247
- result = await hookSystem.fireSessionStartEvent("clear" /* Clear */);
78262
+ result = await hookSystem.fireSessionStartEvent(SessionStartSource.Clear);
78248
78263
  }
78249
78264
  await new Promise((resolve9) => setImmediate(resolve9));
78250
78265
  if (config) {
@@ -81243,7 +81258,7 @@ var Footer = () => {
81243
81258
  case "auth": {
81244
81259
  if (!settings.merged.ui.showUserIdentity) break;
81245
81260
  if (!authType) break;
81246
- const displayStr = authType === "oauth-personal" /* LOGIN_WITH_GOOGLE */ ? email ?? "google" : authType;
81261
+ const displayStr = authType === AuthType.LOGIN_WITH_GOOGLE ? email ?? "google" : authType;
81247
81262
  addCol(
81248
81263
  id,
81249
81264
  header,
@@ -83011,12 +83026,12 @@ import path29 from "node:path";
83011
83026
  function getIdeStatusMessage(ideClient) {
83012
83027
  const connection = ideClient.getConnectionStatus();
83013
83028
  switch (connection.status) {
83014
- case "connected" /* Connected */:
83029
+ case IDEConnectionStatus.Connected:
83015
83030
  return {
83016
83031
  messageType: "info",
83017
83032
  content: `\u{1F7E2} Connected to ${ideClient.getDetectedIdeDisplayName()}`
83018
83033
  };
83019
- case "connecting" /* Connecting */:
83034
+ case IDEConnectionStatus.Connecting:
83020
83035
  return {
83021
83036
  messageType: "info",
83022
83037
  content: `\u{1F7E1} Connecting...`
@@ -83057,7 +83072,7 @@ ${infoMessage}`;
83057
83072
  async function getIdeStatusMessageWithFiles(ideClient) {
83058
83073
  const connection = ideClient.getConnectionStatus();
83059
83074
  switch (connection.status) {
83060
- case "connected" /* Connected */: {
83075
+ case IDEConnectionStatus.Connected: {
83061
83076
  let content = `\u{1F7E2} Connected to ${ideClient.getDetectedIdeDisplayName()}`;
83062
83077
  const context = ideContextStore.get();
83063
83078
  const openFiles = context?.workspaceState?.openFiles;
@@ -83069,7 +83084,7 @@ async function getIdeStatusMessageWithFiles(ideClient) {
83069
83084
  content
83070
83085
  };
83071
83086
  }
83072
- case "connecting" /* Connecting */:
83087
+ case IDEConnectionStatus.Connecting:
83073
83088
  return {
83074
83089
  messageType: "info",
83075
83090
  content: `\u{1F7E1} Connecting...`
@@ -83091,7 +83106,7 @@ async function setIdeModeAndSyncConnection(config, value, options = {}) {
83091
83106
  const ideClient = await IdeClient.getInstance();
83092
83107
  if (value) {
83093
83108
  await ideClient.connect(options);
83094
- logIdeConnection(config, new IdeConnectionEvent("session" /* SESSION */));
83109
+ logIdeConnection(config, new IdeConnectionEvent(IdeConnectionType.SESSION));
83095
83110
  } else {
83096
83111
  await ideClient.disconnect();
83097
83112
  }
@@ -83179,7 +83194,7 @@ var ideCommand = async () => {
83179
83194
  logToConsole: false
83180
83195
  }
83181
83196
  );
83182
- if (ideClient.getConnectionStatus().status === "connected" /* Connected */) {
83197
+ if (ideClient.getConnectionStatus().status === IDEConnectionStatus.Connected) {
83183
83198
  break;
83184
83199
  }
83185
83200
  await new Promise((resolve9) => setTimeout(resolve9, 500));
@@ -83256,7 +83271,7 @@ var ideCommand = async () => {
83256
83271
  }
83257
83272
  };
83258
83273
  const { status } = ideClient.getConnectionStatus();
83259
- const isConnected = status === "connected" /* Connected */;
83274
+ const isConnected = status === IDEConnectionStatus.Connected;
83260
83275
  if (isConnected) {
83261
83276
  ideSlashCommand.subCommands = [statusCommand2, disableCommand5];
83262
83277
  } else {
@@ -83356,13 +83371,13 @@ Use /mcp auth <server-name> to authenticate.`
83356
83371
  const displayListener = (message) => {
83357
83372
  context.ui.addItem({ type: "info", text: message });
83358
83373
  };
83359
- coreEvents.on("oauth-display-message" /* OauthDisplayMessage */, displayListener);
83374
+ coreEvents.on(CoreEvent.OauthDisplayMessage, displayListener);
83360
83375
  try {
83361
83376
  context.ui.addItem({
83362
83377
  type: "info",
83363
83378
  text: `Starting OAuth authentication for MCP server '${serverName}'...`
83364
83379
  });
83365
- const { MCPOAuthProvider } = await import("./core-D5D4MF5H.js");
83380
+ const { MCPOAuthProvider } = await import("./dist-U5DFAJ4Y.js");
83366
83381
  let oauthConfig = server.oauth;
83367
83382
  if (!oauthConfig) {
83368
83383
  oauthConfig = { enabled: false };
@@ -83399,7 +83414,7 @@ Use /mcp auth <server-name> to authenticate.`
83399
83414
  content: `Failed to authenticate with MCP server '${serverName}': ${getErrorMessage(error)}`
83400
83415
  };
83401
83416
  } finally {
83402
- coreEvents.removeListener("oauth-display-message" /* OauthDisplayMessage */, displayListener);
83417
+ coreEvents.removeListener(CoreEvent.OauthDisplayMessage, displayListener);
83403
83418
  }
83404
83419
  },
83405
83420
  completion: async (context, partialArg) => {
@@ -83445,10 +83460,10 @@ var listAction2 = async (context, showDescriptions = false, showSchema = false,
83445
83460
  }
83446
83461
  const serverNames = Object.keys(mcpServers);
83447
83462
  const connectingServers = serverNames.filter(
83448
- (name) => getMCPServerStatus(name) === "connecting" /* CONNECTING */
83463
+ (name) => getMCPServerStatus(name) === MCPServerStatus.CONNECTING
83449
83464
  );
83450
83465
  const discoveryState = getMCPDiscoveryState();
83451
- const discoveryInProgress = discoveryState === "in_progress" /* IN_PROGRESS */ || connectingServers.length > 0;
83466
+ const discoveryInProgress = discoveryState === MCPDiscoveryState.IN_PROGRESS || connectingServers.length > 0;
83452
83467
  const allTools = toolRegistry.getAllTools();
83453
83468
  const mcpTools = allTools.filter((tool) => tool instanceof DiscoveredMCPTool);
83454
83469
  const promptRegistry = config.getPromptRegistry();
@@ -99220,7 +99235,7 @@ Return a JSON object with:
99220
99235
  },
99221
99236
  abortSignal: new AbortController().signal,
99222
99237
  promptId: "triage-duplicates",
99223
- role: "utility_tool" /* UTILITY_TOOL */
99238
+ role: LlmRole.UTILITY_TOOL
99224
99239
  });
99225
99240
  const rec = response;
99226
99241
  let canonical;
@@ -100054,7 +100069,7 @@ Return a JSON object with:
100054
100069
  },
100055
100070
  abortSignal: abortControllerRef.current.signal,
100056
100071
  promptId: "triage-issues",
100057
- role: "utility_tool" /* UTILITY_TOOL */
100072
+ role: LlmRole.UTILITY_TOOL
100058
100073
  });
100059
100074
  return response;
100060
100075
  },
@@ -100628,8 +100643,8 @@ var planCommand = {
100628
100643
  return;
100629
100644
  }
100630
100645
  const previousApprovalMode = config.getApprovalMode();
100631
- config.setApprovalMode("plan" /* PLAN */);
100632
- if (previousApprovalMode !== "plan" /* PLAN */) {
100646
+ config.setApprovalMode(ApprovalMode.PLAN);
100647
+ if (previousApprovalMode !== ApprovalMode.PLAN) {
100633
100648
  coreEvents.emitFeedback("info", "Switched to Plan Mode.");
100634
100649
  }
100635
100650
  if (context.invocation?.args) {
@@ -100688,10 +100703,10 @@ var categorizeRulesByMode = (rules) => {
100688
100703
  rules.forEach((rule) => {
100689
100704
  const modes = rule.modes?.length ? rule.modes : ALL_MODES;
100690
100705
  const modeSet = new Set(modes);
100691
- if (modeSet.has("default" /* DEFAULT */)) result.normal.push(rule);
100692
- if (modeSet.has("autoEdit" /* AUTO_EDIT */)) result.autoEdit.push(rule);
100693
- if (modeSet.has("yolo" /* YOLO */)) result.yolo.push(rule);
100694
- if (modeSet.has("plan" /* PLAN */)) result.plan.push(rule);
100706
+ if (modeSet.has(ApprovalMode.DEFAULT)) result.normal.push(rule);
100707
+ if (modeSet.has(ApprovalMode.AUTO_EDIT)) result.autoEdit.push(rule);
100708
+ if (modeSet.has(ApprovalMode.YOLO)) result.yolo.push(rule);
100709
+ if (modeSet.has(ApprovalMode.PLAN)) result.plan.push(rule);
100695
100710
  });
100696
100711
  return result;
100697
100712
  };
@@ -102072,7 +102087,7 @@ var upgradeCommand = {
102072
102087
  action: async (context) => {
102073
102088
  const config = context.services.agentContext?.config;
102074
102089
  const authType = config?.getContentGeneratorConfig()?.authType;
102075
- if (authType !== "oauth-personal" /* LOGIN_WITH_GOOGLE */) {
102090
+ if (authType !== AuthType.LOGIN_WITH_GOOGLE) {
102076
102091
  return {
102077
102092
  type: "message",
102078
102093
  messageType: "error",
@@ -102301,7 +102316,7 @@ var BuiltinCommandLoader = class {
102301
102316
  setupGithubCommand,
102302
102317
  terminalSetupCommand,
102303
102318
  ...this.config?.isVoiceModeEnabled() ? [voiceCommand] : [],
102304
- ...this.config?.getContentGeneratorConfig()?.authType === "oauth-personal" /* LOGIN_WITH_GOOGLE */ ? [upgradeCommand] : []
102319
+ ...this.config?.getContentGeneratorConfig()?.authType === AuthType.LOGIN_WITH_GOOGLE ? [upgradeCommand] : []
102305
102320
  ];
102306
102321
  handle?.end();
102307
102322
  return allDefinitions.filter((cmd) => cmd !== null);
@@ -33,7 +33,7 @@ import {
33
33
  partListUnionToString,
34
34
  require_strip_json_comments,
35
35
  sanitizeFilenamePart
36
- } from "./chunk-NWSCUKK3.js";
36
+ } from "./chunk-5Q2IR4AT.js";
37
37
  import {
38
38
  __commonJS,
39
39
  __require,
@@ -31,7 +31,7 @@ import {
31
31
  partListUnionToString,
32
32
  require_strip_json_comments,
33
33
  sanitizeFilenamePart
34
- } from "./chunk-KCB54UJ5.js";
34
+ } from "./chunk-JMQIN5UZ.js";
35
35
  import {
36
36
  __commonJS,
37
37
  __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-RXHIISMM.js";
4
+ } from "./chunk-U4667HKR.js";
5
5
  import {
6
6
  RELEASE_CHANNEL_STABILITY,
7
7
  debugLogger,
8
8
  getChannelFromVersion,
9
9
  isGitRepository
10
- } from "./chunk-NWSCUKK3.js";
10
+ } from "./chunk-FLYR6TVJ.js";
11
11
 
12
12
  // packages/cli/src/utils/installationInfo.ts
13
13
  import * as fs from "node:fs";