@google/gemini-cli 0.59.0-preview.0 → 0.60.0-nightly.20260904.g87a9c71d5

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 (74) hide show
  1. package/bundle/bundled/chrome-devtools-mcp.mjs +1 -1
  2. package/bundle/bundled/third_party/index.js +1 -1
  3. package/bundle/{chunk-KDHW7PJD.js → chunk-2KWYWFYH.js} +3 -3
  4. package/bundle/{chunk-D6XI6WNG.js → chunk-4EEPG33O.js} +1 -1
  5. package/bundle/{chunk-IJPZK2CD.js → chunk-4GN2ER63.js} +1 -1
  6. package/bundle/{chunk-NQC3UDKG.js → chunk-ETGYLAEQ.js} +1 -1
  7. package/bundle/{chunk-23C4TBLH.js → chunk-EY74BCUB.js} +2 -2
  8. package/bundle/{chunk-YLSAASP5.js → chunk-G5MKGD6A.js} +3 -3
  9. package/bundle/{chunk-52JU4ECF.js → chunk-GYIG2U5X.js} +275 -83
  10. package/bundle/{chunk-UA5K3TB5.js → chunk-IXEWV7DR.js} +324 -86
  11. package/bundle/{chunk-55V2C3NE.js → chunk-J4JXA5F5.js} +3 -3
  12. package/bundle/{chunk-DH76W27O.js → chunk-JYH2UAXZ.js} +2 -2
  13. package/bundle/{chunk-THPIH2AE.js → chunk-K6N5ALIZ.js} +1 -1
  14. package/bundle/{chunk-HSRFT2PV.js → chunk-KRBRLEZU.js} +2 -2
  15. package/bundle/{chunk-GOBGZY54.js → chunk-LJSQRVHR.js} +9 -8
  16. package/bundle/{chunk-ILPBRVSF.js → chunk-LSYJZADA.js} +1 -1
  17. package/bundle/{chunk-LXBSPQEH.js → chunk-LWVZ3TLL.js} +1 -1
  18. package/bundle/{chunk-M6UTVOUK.js → chunk-LZA2YQEZ.js} +1 -1
  19. package/bundle/chunk-MOGXAAGG.js +1571 -0
  20. package/bundle/chunk-NS2GPNSV.js +512 -0
  21. package/bundle/{chunk-YI5PKR5L.js → chunk-O2IBXKOU.js} +7924 -14468
  22. package/bundle/{chunk-7QCPYRGC.js → chunk-OPYHX5IV.js} +1 -1
  23. package/bundle/chunk-Q55A4HXI.js +398074 -0
  24. package/bundle/{chunk-UGT6DHAE.js → chunk-RHV3WXCU.js} +86 -21
  25. package/bundle/{chunk-UZXNPI5Z.js → chunk-RJWX5VWJ.js} +146 -68
  26. package/bundle/chunk-U5J4FOTE.js +398 -0
  27. package/bundle/{chunk-GPE57TQ5.js → chunk-UVTIYMGR.js} +8 -5
  28. package/bundle/chunk-UYHNS2XO.js +154 -0
  29. package/bundle/{chunk-VCQFRV5A.js → chunk-VI5CZJFJ.js} +1 -1
  30. package/bundle/chunk-VTRRZADJ.js +118 -0
  31. package/bundle/chunk-XFMJ4TE2.js +17332 -0
  32. package/bundle/{chunk-F45BTUYK.js → chunk-YSANBNNE.js} +1 -1
  33. package/bundle/chunk-YT4C25P2.js +102571 -0
  34. package/bundle/{chunk-FXZRZ2YL.js → chunk-ZUOQJLHX.js} +86 -21
  35. package/bundle/{cleanup-IGZ72X72.js → cleanup-DV5BMEOJ.js} +2 -2
  36. package/bundle/{cleanup-OHSG4ABA.js → cleanup-IFKZWM2L.js} +2 -2
  37. package/bundle/{cleanup-VTATI2S7.js → cleanup-K7NDCFZB.js} +2 -2
  38. package/bundle/cleanup-MIW3QRZK.js +32 -0
  39. package/bundle/{core-XJO3GR5B.js → core-4SZV5IEL.js} +9 -1
  40. package/bundle/{devtoolsService-OSXWGLT3.js → devtoolsService-AZ775QPY.js} +2 -2
  41. package/bundle/{devtoolsService-VQJ4XEED.js → devtoolsService-BZYE3B3A.js} +4 -3
  42. package/bundle/{devtoolsService-TJCP6X22.js → devtoolsService-DOIK3XII.js} +2 -2
  43. package/bundle/devtoolsService-NA732NIU.js +4359 -0
  44. package/bundle/{dist-KC5GXNU5.js → dist-267RSQ2G.js} +9 -1
  45. package/bundle/{core-Q2DBVF5E.js → dist-JUKO7MDI.js} +9 -1
  46. package/bundle/dist-VDX4TYXY.js +2196 -0
  47. package/bundle/docs/changelogs/index.md +20 -0
  48. package/bundle/docs/changelogs/latest.md +32 -281
  49. package/bundle/docs/changelogs/preview.md +18 -31
  50. package/bundle/docs/reference/tools.md +4 -4
  51. package/bundle/docs/tools/mcp-server.md +53 -0
  52. package/bundle/docs/tools/web-fetch.md +7 -3
  53. package/bundle/{gemini-FMVYHQ4P.js → gemini-4VYTZOFB.js} +56 -23
  54. package/bundle/{gemini-G4U2XJ5N.js → gemini-O2IKL5OT.js} +56 -23
  55. package/bundle/{gemini-G3Y4ZBUW.js → gemini-VJZ5KERB.js} +256 -207
  56. package/bundle/gemini-YNIYD6UU.js +17370 -0
  57. package/bundle/gemini.js +7 -7
  58. package/bundle/{interactiveCli-J7RHUM6Y.js → interactiveCli-GZR7TB7H.js} +8 -8
  59. package/bundle/{interactiveCli-ODBGO5ZB.js → interactiveCli-JBCVEYX6.js} +8 -8
  60. package/bundle/{interactiveCli-DFQDNRQR.js → interactiveCli-PVJP6K5G.js} +315 -296
  61. package/bundle/interactiveCli-ZALEAHV2.js +34983 -0
  62. package/bundle/{liteRtServerManager-FYXZXFSP.js → liteRtServerManager-BSKN2SW2.js} +4 -4
  63. package/bundle/{liteRtServerManager-H3DCLTFE.js → liteRtServerManager-KBSBWYVA.js} +4 -4
  64. package/bundle/{liteRtServerManager-BEQPNIUI.js → liteRtServerManager-L2BLDSGL.js} +4 -4
  65. package/bundle/liteRtServerManager-MWMPLFZ3.js +65 -0
  66. package/bundle/{oauth2-provider-2DCMBS2D.js → oauth2-provider-QK65ZFGG.js} +1 -1
  67. package/bundle/{oauth2-provider-3RBG2E74.js → oauth2-provider-U7ADSCRE.js} +1 -1
  68. package/bundle/{oauth2-provider-DX42O6UX.js → oauth2-provider-VY2YQMRH.js} +38 -72
  69. package/bundle/oauth2-provider-WRQZCFP6.js +235 -0
  70. package/bundle/{start-MJKXAIFL.js → start-IU76AAZM.js} +6 -6
  71. package/bundle/{start-R4LT7TW6.js → start-PDREREJZ.js} +6 -6
  72. package/bundle/{start-MIKPZTJ4.js → start-Y6MS5QLI.js} +6 -6
  73. package/bundle/start-ZYKP4UZO.js +18 -0
  74. package/package.json +1 -1
@@ -16728,7 +16728,7 @@ var require_dist2 = __commonJS({
16728
16728
  };
16729
16729
  Object.defineProperty(exports2, "__esModule", { value: true });
16730
16730
  exports2.HttpProxyAgent = void 0;
16731
- var net2 = __importStar(__require("net"));
16731
+ var net3 = __importStar(__require("net"));
16732
16732
  var tls = __importStar(__require("tls"));
16733
16733
  var debug_1 = __importDefault(require_src());
16734
16734
  var events_1 = __require("events");
@@ -16801,7 +16801,7 @@ var require_dist2 = __commonJS({
16801
16801
  socket = tls.connect(this.connectOpts);
16802
16802
  } else {
16803
16803
  debug2("Creating `net.Socket`: %o", this.connectOpts);
16804
- socket = net2.connect(this.connectOpts);
16804
+ socket = net3.connect(this.connectOpts);
16805
16805
  }
16806
16806
  await (0, events_1.once)(socket, "connect");
16807
16807
  return socket;
@@ -28153,8 +28153,8 @@ var require_utils = __commonJS({
28153
28153
  var HOST_DELIMS = { "@": "%40", "/": "%2F", "?": "%3F", "#": "%23", ":": "%3A" };
28154
28154
  var HOST_DELIM_RE = /[@/?#:]/g;
28155
28155
  var HOST_DELIM_NO_COLON_RE = /[@/?#]/g;
28156
- function reescapeHostDelimiters(host, isIP) {
28157
- const re = isIP ? HOST_DELIM_NO_COLON_RE : HOST_DELIM_RE;
28156
+ function reescapeHostDelimiters(host, isIP2) {
28157
+ const re = isIP2 ? HOST_DELIM_NO_COLON_RE : HOST_DELIM_RE;
28158
28158
  re.lastIndex = 0;
28159
28159
  return host.replace(re, (ch) => HOST_DELIMS[ch]);
28160
28160
  }
@@ -28636,7 +28636,7 @@ var require_fast_uri = __commonJS({
28636
28636
  fragment: void 0
28637
28637
  };
28638
28638
  let malformedAuthorityOrPort = false;
28639
- let isIP = false;
28639
+ let isIP2 = false;
28640
28640
  if (options.reference === "suffix") {
28641
28641
  if (options.scheme) {
28642
28642
  uri = options.scheme + ":" + uri;
@@ -28666,9 +28666,9 @@ var require_fast_uri = __commonJS({
28666
28666
  if (ipv4result === false) {
28667
28667
  const ipv6result = normalizeIPv6(parsed.host);
28668
28668
  parsed.host = ipv6result.host.toLowerCase();
28669
- isIP = ipv6result.isIPV6;
28669
+ isIP2 = ipv6result.isIPV6;
28670
28670
  } else {
28671
- isIP = true;
28671
+ isIP2 = true;
28672
28672
  }
28673
28673
  }
28674
28674
  if (parsed.scheme === void 0 && parsed.userinfo === void 0 && parsed.host === void 0 && parsed.port === void 0 && parsed.query === void 0 && !parsed.path) {
@@ -28685,7 +28685,7 @@ var require_fast_uri = __commonJS({
28685
28685
  }
28686
28686
  const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
28687
28687
  if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
28688
- if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
28688
+ if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP2 === false && nonSimpleDomain(parsed.host)) {
28689
28689
  try {
28690
28690
  parsed.host = URL.domainToASCII(parsed.host.toLowerCase());
28691
28691
  } catch (e2) {
@@ -28699,7 +28699,7 @@ var require_fast_uri = __commonJS({
28699
28699
  parsed.scheme = unescape(parsed.scheme);
28700
28700
  }
28701
28701
  if (parsed.host !== void 0) {
28702
- parsed.host = reescapeHostDelimiters(unescape(parsed.host), isIP);
28702
+ parsed.host = reescapeHostDelimiters(unescape(parsed.host), isIP2);
28703
28703
  }
28704
28704
  }
28705
28705
  if (parsed.path) {
@@ -58752,7 +58752,7 @@ var require_transport = __commonJS({
58752
58752
  var resolver_1 = require_resolver();
58753
58753
  var subchannel_address_1 = require_subchannel_address();
58754
58754
  var uri_parser_1 = require_uri_parser();
58755
- var net2 = __require("net");
58755
+ var net3 = __require("net");
58756
58756
  var subchannel_call_1 = require_subchannel_call();
58757
58757
  var call_number_1 = require_call_number();
58758
58758
  var TRACER_NAME2 = "transport";
@@ -59219,7 +59219,7 @@ var require_transport = __commonJS({
59219
59219
  const errorCallback = (error40) => {
59220
59220
  reject(error40);
59221
59221
  };
59222
- const socket = net2.connect(address, () => {
59222
+ const socket = net3.connect(address, () => {
59223
59223
  socket.removeListener("close", closeCallback);
59224
59224
  socket.removeListener("error", errorCallback);
59225
59225
  resolve29(socket);
@@ -113721,13 +113721,13 @@ var require_internet = __commonJS({
113721
113721
  var require_dockerSocket = __commonJS({
113722
113722
  "packages/core/node_modules/systeminformation/lib/dockerSocket.js"(exports2, module2) {
113723
113723
  "use strict";
113724
- var net2 = __require("net");
113724
+ var net3 = __require("net");
113725
113725
  var isWin2 = __require("os").type() === "Windows_NT";
113726
113726
  var socketPath = isWin2 ? "//./pipe/docker_engine" : "/var/run/docker.sock";
113727
113727
  var DockerSocket = class {
113728
113728
  getInfo(callback) {
113729
113729
  try {
113730
- let socket = net2.createConnection({ path: socketPath });
113730
+ let socket = net3.createConnection({ path: socketPath });
113731
113731
  let alldata = "";
113732
113732
  let data;
113733
113733
  socket.on("connect", () => {
@@ -113757,7 +113757,7 @@ var require_dockerSocket = __commonJS({
113757
113757
  }
113758
113758
  listImages(all2, callback) {
113759
113759
  try {
113760
- let socket = net2.createConnection({ path: socketPath });
113760
+ let socket = net3.createConnection({ path: socketPath });
113761
113761
  let alldata = "";
113762
113762
  let data;
113763
113763
  socket.on("connect", () => {
@@ -113789,7 +113789,7 @@ var require_dockerSocket = __commonJS({
113789
113789
  id = id || "";
113790
113790
  if (id) {
113791
113791
  try {
113792
- let socket = net2.createConnection({ path: socketPath });
113792
+ let socket = net3.createConnection({ path: socketPath });
113793
113793
  let alldata = "";
113794
113794
  let data;
113795
113795
  socket.on("connect", () => {
@@ -113822,7 +113822,7 @@ var require_dockerSocket = __commonJS({
113822
113822
  }
113823
113823
  listContainers(all2, callback) {
113824
113824
  try {
113825
- let socket = net2.createConnection({ path: socketPath });
113825
+ let socket = net3.createConnection({ path: socketPath });
113826
113826
  let alldata = "";
113827
113827
  let data;
113828
113828
  socket.on("connect", () => {
@@ -113854,7 +113854,7 @@ var require_dockerSocket = __commonJS({
113854
113854
  id = id || "";
113855
113855
  if (id) {
113856
113856
  try {
113857
- let socket = net2.createConnection({ path: socketPath });
113857
+ let socket = net3.createConnection({ path: socketPath });
113858
113858
  let alldata = "";
113859
113859
  let data;
113860
113860
  socket.on("connect", () => {
@@ -113889,7 +113889,7 @@ var require_dockerSocket = __commonJS({
113889
113889
  id = id || "";
113890
113890
  if (id) {
113891
113891
  try {
113892
- let socket = net2.createConnection({ path: socketPath });
113892
+ let socket = net3.createConnection({ path: socketPath });
113893
113893
  let alldata = "";
113894
113894
  let data;
113895
113895
  socket.on("connect", () => {
@@ -113924,7 +113924,7 @@ var require_dockerSocket = __commonJS({
113924
113924
  id = id || "";
113925
113925
  if (id) {
113926
113926
  try {
113927
- let socket = net2.createConnection({ path: socketPath });
113927
+ let socket = net3.createConnection({ path: socketPath });
113928
113928
  let alldata = "";
113929
113929
  let data;
113930
113930
  socket.on("connect", () => {
@@ -113957,7 +113957,7 @@ var require_dockerSocket = __commonJS({
113957
113957
  }
113958
113958
  listVolumes(callback) {
113959
113959
  try {
113960
- let socket = net2.createConnection({ path: socketPath });
113960
+ let socket = net3.createConnection({ path: socketPath });
113961
113961
  let alldata = "";
113962
113962
  let data;
113963
113963
  socket.on("connect", () => {
@@ -210580,7 +210580,7 @@ var require_util20 = __commonJS({
210580
210580
  var { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols();
210581
210581
  var { IncomingMessage } = __require("node:http");
210582
210582
  var stream2 = __require("node:stream");
210583
- var net2 = __require("node:net");
210583
+ var net3 = __require("node:net");
210584
210584
  var { Blob: Blob2 } = __require("node:buffer");
210585
210585
  var nodeUtil = __require("node:util");
210586
210586
  var { stringify: stringify3 } = __require("node:querystring");
@@ -210726,7 +210726,7 @@ var require_util20 = __commonJS({
210726
210726
  }
210727
210727
  assert3(typeof host === "string");
210728
210728
  const servername = getHostname(host);
210729
- if (net2.isIP(servername)) {
210729
+ if (net3.isIP(servername)) {
210730
210730
  return "";
210731
210731
  }
210732
210732
  return servername;
@@ -212038,7 +212038,7 @@ var require_dispatcher_base = __commonJS({
212038
212038
  var require_connect = __commonJS({
212039
212039
  "packages/core/node_modules/undici/lib/core/connect.js"(exports2, module2) {
212040
212040
  "use strict";
212041
- var net2 = __require("node:net");
212041
+ var net3 = __require("node:net");
212042
212042
  var assert3 = __require("node:assert");
212043
212043
  var util4 = require_util20();
212044
212044
  var { InvalidArgumentError } = require_errors6();
@@ -212092,7 +212092,7 @@ var require_connect = __commonJS({
212092
212092
  }
212093
212093
  };
212094
212094
  }
212095
- function buildConnector({ allowH2, maxCachedSessions, socketPath, timeout, session: customSession, ...opts }) {
212095
+ function buildConnector2({ allowH2, maxCachedSessions, socketPath, timeout, session: customSession, ...opts }) {
212096
212096
  if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {
212097
212097
  throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero");
212098
212098
  }
@@ -212130,7 +212130,7 @@ var require_connect = __commonJS({
212130
212130
  } else {
212131
212131
  assert3(!httpSocket, "httpSocket can only be sent on TLS update");
212132
212132
  port = port || 80;
212133
- socket = net2.connect({
212133
+ socket = net3.connect({
212134
212134
  highWaterMark: 64 * 1024,
212135
212135
  // Same as nodejs fs streams.
212136
212136
  ...options,
@@ -212162,7 +212162,7 @@ var require_connect = __commonJS({
212162
212162
  return socket;
212163
212163
  };
212164
212164
  }
212165
- module2.exports = buildConnector;
212165
+ module2.exports = buildConnector2;
212166
212166
  }
212167
212167
  });
212168
212168
 
@@ -217276,7 +217276,7 @@ var require_client2 = __commonJS({
217276
217276
  "packages/core/node_modules/undici/lib/dispatcher/client.js"(exports2, module2) {
217277
217277
  "use strict";
217278
217278
  var assert3 = __require("node:assert");
217279
- var net2 = __require("node:net");
217279
+ var net3 = __require("node:net");
217280
217280
  var http3 = __require("node:http");
217281
217281
  var util4 = require_util20();
217282
217282
  var { ClientStats } = require_stats();
@@ -217288,7 +217288,7 @@ var require_client2 = __commonJS({
217288
217288
  InformationalError,
217289
217289
  ClientDestroyedError
217290
217290
  } = require_errors6();
217291
- var buildConnector = require_connect();
217291
+ var buildConnector2 = require_connect();
217292
217292
  var {
217293
217293
  kUrl,
217294
217294
  kServerName,
@@ -217423,7 +217423,7 @@ var require_client2 = __commonJS({
217423
217423
  if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {
217424
217424
  throw new InvalidArgumentError("maxRequestsPerClient must be a positive number");
217425
217425
  }
217426
- if (localAddress != null && (typeof localAddress !== "string" || net2.isIP(localAddress) === 0)) {
217426
+ if (localAddress != null && (typeof localAddress !== "string" || net3.isIP(localAddress) === 0)) {
217427
217427
  throw new InvalidArgumentError("localAddress must be valid string IP address");
217428
217428
  }
217429
217429
  if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {
@@ -217440,7 +217440,7 @@ var require_client2 = __commonJS({
217440
217440
  }
217441
217441
  super();
217442
217442
  if (typeof connect2 !== "function") {
217443
- connect2 = buildConnector({
217443
+ connect2 = buildConnector2({
217444
217444
  ...tls,
217445
217445
  maxCachedSessions,
217446
217446
  allowH2,
@@ -217578,7 +217578,7 @@ var require_client2 = __commonJS({
217578
217578
  const idx = hostname3.indexOf("]");
217579
217579
  assert3(idx !== -1);
217580
217580
  const ip = hostname3.substring(1, idx);
217581
- assert3(net2.isIPv6(ip));
217581
+ assert3(net3.isIPv6(ip));
217582
217582
  hostname3 = ip;
217583
217583
  }
217584
217584
  client[kConnecting] = true;
@@ -218013,7 +218013,7 @@ var require_pool2 = __commonJS({
218013
218013
  } = require_errors6();
218014
218014
  var util4 = require_util20();
218015
218015
  var { kUrl } = require_symbols();
218016
- var buildConnector = require_connect();
218016
+ var buildConnector2 = require_connect();
218017
218017
  var kOptions = Symbol("options");
218018
218018
  var kConnections = Symbol("connections");
218019
218019
  var kFactory = Symbol("factory");
@@ -218046,7 +218046,7 @@ var require_pool2 = __commonJS({
218046
218046
  }
218047
218047
  super();
218048
218048
  if (typeof connect !== "function") {
218049
- connect = buildConnector({
218049
+ connect = buildConnector2({
218050
218050
  ...tls,
218051
218051
  maxCachedSessions,
218052
218052
  allowH2,
@@ -218361,7 +218361,7 @@ var require_proxy_agent = __commonJS({
218361
218361
  var Pool = require_pool2();
218362
218362
  var DispatcherBase = require_dispatcher_base();
218363
218363
  var { InvalidArgumentError, RequestAbortedError, SecureProxyConnectionError } = require_errors6();
218364
- var buildConnector = require_connect();
218364
+ var buildConnector2 = require_connect();
218365
218365
  var Client3 = require_client2();
218366
218366
  var kAgent = Symbol("proxy agent");
218367
218367
  var kClient = Symbol("proxy client");
@@ -218459,8 +218459,8 @@ var require_proxy_agent = __commonJS({
218459
218459
  }
218460
218460
  return new Client3(origin2, options);
218461
218461
  } : void 0;
218462
- const connect = buildConnector({ ...opts.proxyTls });
218463
- this[kConnectEndpoint] = buildConnector({ ...opts.requestTls });
218462
+ const connect = buildConnector2({ ...opts.proxyTls });
218463
+ this[kConnectEndpoint] = buildConnector2({ ...opts.requestTls });
218464
218464
  this[kClient] = clientFactory(url3, { connect, factory });
218465
218465
  this[kTunnelProxy] = proxyTunnel;
218466
218466
  this[kAgent] = new Agent2({
@@ -221841,7 +221841,7 @@ var require_dump = __commonJS({
221841
221841
  var require_dns = __commonJS({
221842
221842
  "packages/core/node_modules/undici/lib/interceptor/dns.js"(exports2, module2) {
221843
221843
  "use strict";
221844
- var { isIP } = __require("node:net");
221844
+ var { isIP: isIP2 } = __require("node:net");
221845
221845
  var { lookup: lookup3 } = __require("node:dns");
221846
221846
  var DecoratorHandler = require_decorator_handler();
221847
221847
  var { InvalidArgumentError, InformationalError } = require_errors6();
@@ -222140,7 +222140,7 @@ var require_dns = __commonJS({
222140
222140
  return (dispatch) => {
222141
222141
  return function dnsInterceptor(origDispatchOpts, handler) {
222142
222142
  const origin = origDispatchOpts.origin.constructor === URL ? origDispatchOpts.origin : new URL(origDispatchOpts.origin);
222143
- if (isIP(origin.hostname) !== 0) {
222143
+ if (isIP2(origin.hostname) !== 0) {
222144
222144
  return dispatch(origDispatchOpts, handler);
222145
222145
  }
222146
222146
  instance2.runLookup(origin, origDispatchOpts, (err2, newOrigin) => {
@@ -230250,7 +230250,7 @@ var require_undici = __commonJS({
230250
230250
  var util4 = require_util20();
230251
230251
  var { InvalidArgumentError } = errors;
230252
230252
  var api = require_api2();
230253
- var buildConnector = require_connect();
230253
+ var buildConnector2 = require_connect();
230254
230254
  var MockClient = require_mock_client();
230255
230255
  var { MockCallHistory, MockCallHistoryLog } = require_mock_call_history();
230256
230256
  var MockAgent = require_mock_agent();
@@ -230286,7 +230286,7 @@ var require_undici = __commonJS({
230286
230286
  };
230287
230287
  var SqliteCacheStore = require_sqlite_cache_store();
230288
230288
  module2.exports.cacheStores.SqliteCacheStore = SqliteCacheStore;
230289
- module2.exports.buildConnector = buildConnector;
230289
+ module2.exports.buildConnector = buildConnector2;
230290
230290
  module2.exports.errors = errors;
230291
230291
  module2.exports.util = {
230292
230292
  parseHeaders: util4.parseHeaders,
@@ -282634,8 +282634,8 @@ function isValidToolName(name3, options = {}) {
282634
282634
  }
282635
282635
 
282636
282636
  // packages/core/dist/src/generated/git-commit.js
282637
- var GIT_COMMIT_INFO = "0bd1d4397";
282638
- var CLI_VERSION = "0.59.0-preview.0";
282637
+ var GIT_COMMIT_INFO = "87a9c71d5";
282638
+ var CLI_VERSION = "0.60.0-nightly.20260901.g0bd1d4397";
282639
282639
 
282640
282640
  // packages/core/dist/src/ide/detect-ide.js
282641
282641
  var IDE_DEFINITIONS = {
@@ -305929,7 +305929,7 @@ function getVersion() {
305929
305929
  }
305930
305930
  versionPromise = (async () => {
305931
305931
  const pkgJson = await getPackageJson(__dirname4);
305932
- return "0.59.0-preview.0";
305932
+ return "0.60.0-nightly.20260904.g87a9c71d5";
305933
305933
  })();
305934
305934
  return versionPromise;
305935
305935
  }
@@ -324200,9 +324200,10 @@ var ShellTool = class _ShellTool extends BaseDeclarativeTool {
324200
324200
  };
324201
324201
 
324202
324202
  // packages/core/dist/src/utils/fetch.js
324203
- var import_undici2 = __toESM(require_undici(), 1);
324203
+ var undici = __toESM(require_undici(), 1);
324204
324204
  var import_ipaddr = __toESM(require_ipaddr(), 1);
324205
324205
  import { URL as URL5 } from "node:url";
324206
+ import * as net2 from "node:net";
324206
324207
  import { lookup } from "node:dns/promises";
324207
324208
  var FetchError = class extends Error {
324208
324209
  code;
@@ -324221,7 +324222,93 @@ var PrivateIpError = class extends Error {
324221
324222
  var defaultHeadersTimeout = 6e4;
324222
324223
  var defaultBodyTimeout = 3e5;
324223
324224
  var currentProxy = void 0;
324224
- (0, import_undici2.setGlobalDispatcher)(new import_undici2.Agent({
324225
+ function getBuildConnector() {
324226
+ try {
324227
+ const fn = undici.buildConnector;
324228
+ return typeof fn === "function" ? fn : void 0;
324229
+ } catch {
324230
+ return void 0;
324231
+ }
324232
+ }
324233
+ function safeLookup(hostname3, options, callback) {
324234
+ const sanitized = sanitizeHostname(hostname3);
324235
+ if (sanitized === "localhost" || sanitized.endsWith(".localhost") || sanitized.endsWith(".local") || sanitized.endsWith(".internal")) {
324236
+ callback(new PrivateIpError(`Access to internal host ${sanitized} is blocked`), "");
324237
+ return;
324238
+ }
324239
+ if (net2.isIP(sanitized)) {
324240
+ if (isAddressPrivate(sanitized)) {
324241
+ callback(new PrivateIpError(`Access to private IP ${sanitized} is blocked`), "");
324242
+ return;
324243
+ }
324244
+ if (options?.all) {
324245
+ callback(null, [{ address: sanitized, family: net2.isIP(sanitized) }]);
324246
+ } else {
324247
+ callback(null, sanitized, net2.isIP(sanitized));
324248
+ }
324249
+ return;
324250
+ }
324251
+ lookup(sanitized, { all: true }).then((addresses) => {
324252
+ if (!addresses || addresses.length === 0) {
324253
+ callback(new Error(`getaddrinfo ENOTFOUND ${sanitized}`), "");
324254
+ return;
324255
+ }
324256
+ for (const addr2 of addresses) {
324257
+ if (isAddressPrivate(addr2.address)) {
324258
+ callback(new PrivateIpError(`Access to private IP ${addr2.address} (resolved from ${sanitized}) is blocked`), "");
324259
+ return;
324260
+ }
324261
+ }
324262
+ if (options?.all) {
324263
+ callback(null, addresses);
324264
+ } else {
324265
+ const family = options?.family;
324266
+ const match2 = family ? addresses.find((a2) => a2.family === family) || addresses[0] : addresses[0];
324267
+ callback(null, match2.address, match2.family);
324268
+ }
324269
+ }).catch((err2) => {
324270
+ callback(err2 instanceof Error ? err2 : new Error(String(err2)), "");
324271
+ });
324272
+ }
324273
+ function createSafeConnector(connectorOpts, customDefaultConnector) {
324274
+ const buildConnectorFn = getBuildConnector();
324275
+ const safeConnectorOpts = {
324276
+ ...connectorOpts,
324277
+ lookup: safeLookup
324278
+ };
324279
+ const defaultConnector = customDefaultConnector ?? (buildConnectorFn ? buildConnectorFn(safeConnectorOpts) : void 0);
324280
+ return function safeConnect(opts, callback) {
324281
+ if (!defaultConnector) {
324282
+ callback(new Error("Connector is unavailable"), null);
324283
+ return;
324284
+ }
324285
+ const rawHostname = opts.hostname;
324286
+ const sanitized = sanitizeHostname(rawHostname);
324287
+ if (sanitized === "localhost" || sanitized.endsWith(".localhost") || sanitized.endsWith(".local") || sanitized.endsWith(".internal")) {
324288
+ callback(new PrivateIpError(`Access to internal host ${sanitized} is blocked`), null);
324289
+ return;
324290
+ }
324291
+ if (net2.isIP(sanitized) && isAddressPrivate(sanitized)) {
324292
+ callback(new PrivateIpError(`Access to private IP ${sanitized} is blocked`), null);
324293
+ return;
324294
+ }
324295
+ defaultConnector(opts, callback);
324296
+ };
324297
+ }
324298
+ function createSafeAgent(options) {
324299
+ const buildConnectorFn = getBuildConnector();
324300
+ if (!buildConnectorFn) {
324301
+ throw new Error("Security initialization failed: undici.buildConnector is not available.");
324302
+ }
324303
+ const connect = createSafeConnector();
324304
+ return new undici.Agent({
324305
+ headersTimeout: options?.headersTimeout ?? defaultHeadersTimeout,
324306
+ bodyTimeout: options?.bodyTimeout ?? defaultBodyTimeout,
324307
+ connect
324308
+ });
324309
+ }
324310
+ var defaultSafeAgent = createSafeAgent();
324311
+ undici.setGlobalDispatcher(new undici.Agent({
324225
324312
  headersTimeout: defaultHeadersTimeout,
324226
324313
  bodyTimeout: defaultBodyTimeout
324227
324314
  }));
@@ -324230,10 +324317,14 @@ function updateGlobalFetchTimeouts(timeoutMs) {
324230
324317
  throw new RangeError(`Invalid timeout value: ${timeoutMs}. Must be a positive finite number.`);
324231
324318
  }
324232
324319
  defaultHeadersTimeout = timeoutMs;
324320
+ defaultSafeAgent = createSafeAgent({
324321
+ headersTimeout: defaultHeadersTimeout,
324322
+ bodyTimeout: defaultBodyTimeout
324323
+ });
324233
324324
  if (currentProxy) {
324234
324325
  setGlobalProxy(currentProxy);
324235
324326
  } else {
324236
- (0, import_undici2.setGlobalDispatcher)(new import_undici2.Agent({
324327
+ undici.setGlobalDispatcher(new undici.Agent({
324237
324328
  headersTimeout: defaultHeadersTimeout,
324238
324329
  bodyTimeout: defaultBodyTimeout
324239
324330
  }));
@@ -324246,14 +324337,6 @@ function isLoopbackHost(hostname3) {
324246
324337
  const sanitized = sanitizeHostname(hostname3);
324247
324338
  return sanitized === "localhost" || sanitized === "127.0.0.1" || sanitized === "::1";
324248
324339
  }
324249
- function isPrivateIp(url3) {
324250
- try {
324251
- const hostname3 = new URL5(url3).hostname;
324252
- return isAddressPrivate(hostname3);
324253
- } catch {
324254
- return false;
324255
- }
324256
- }
324257
324340
  var IANA_BENCHMARK_RANGE = import_ipaddr.default.parseCIDR("198.18.0.0/15");
324258
324341
  function isBenchmarkAddress(addr2) {
324259
324342
  const [rangeAddr, rangeMask] = IANA_BENCHMARK_RANGE;
@@ -324261,7 +324344,7 @@ function isBenchmarkAddress(addr2) {
324261
324344
  }
324262
324345
  function isAddressPrivate(address) {
324263
324346
  const sanitized = sanitizeHostname(address);
324264
- if (sanitized === "localhost") {
324347
+ if (sanitized === "localhost" || sanitized.endsWith(".localhost") || sanitized.endsWith(".local") || sanitized.endsWith(".internal")) {
324265
324348
  return true;
324266
324349
  }
324267
324350
  try {
@@ -324281,27 +324364,53 @@ function isAddressPrivate(address) {
324281
324364
  }
324282
324365
  }
324283
324366
  async function isPrivateIpAsync(url3) {
324367
+ let parsedUrl;
324284
324368
  try {
324285
- const parsedUrl = new URL5(url3);
324286
- const hostname3 = parsedUrl.hostname;
324287
- if (isLoopbackHost(hostname3)) {
324369
+ parsedUrl = new URL5(url3);
324370
+ } catch (error40) {
324371
+ if (error40 instanceof TypeError) {
324288
324372
  return false;
324289
324373
  }
324374
+ throw error40;
324375
+ }
324376
+ const hostname3 = sanitizeHostname(parsedUrl.hostname);
324377
+ if (hostname3 === "localhost" || hostname3.endsWith(".localhost") || hostname3.endsWith(".local") || hostname3.endsWith(".internal")) {
324378
+ return true;
324379
+ }
324380
+ if (net2.isIP(hostname3)) {
324381
+ return isAddressPrivate(hostname3);
324382
+ }
324383
+ try {
324290
324384
  const addresses = await lookup(hostname3, { all: true });
324385
+ if (!addresses || addresses.length === 0) {
324386
+ return true;
324387
+ }
324291
324388
  return addresses.some((addr2) => isAddressPrivate(addr2.address));
324292
324389
  } catch (error40) {
324293
- if (error40 instanceof TypeError) {
324294
- return false;
324295
- }
324296
324390
  throw new Error("Failed to verify if URL resolves to private IP", {
324297
324391
  cause: error40
324298
324392
  });
324299
324393
  }
324300
324394
  }
324395
+ async function isPrivateIp(url3) {
324396
+ try {
324397
+ return await isPrivateIpAsync(url3);
324398
+ } catch {
324399
+ return true;
324400
+ }
324401
+ }
324402
+ async function validateUrlDestination(url3) {
324403
+ try {
324404
+ const isPrivate = await isPrivateIp(url3);
324405
+ return !isPrivate;
324406
+ } catch {
324407
+ return false;
324408
+ }
324409
+ }
324301
324410
  function createSafeProxyAgent(proxyUrl) {
324302
324411
  const trimmedProxy = proxyUrl.trim();
324303
324412
  const noProxy = (process.env["NO_PROXY"] ?? process.env["no_proxy"] ?? "")?.trim();
324304
- return new import_undici2.EnvHttpProxyAgent({
324413
+ return new undici.EnvHttpProxyAgent({
324305
324414
  httpProxy: trimmedProxy,
324306
324415
  httpsProxy: trimmedProxy,
324307
324416
  noProxy,
@@ -324310,6 +324419,9 @@ function createSafeProxyAgent(proxyUrl) {
324310
324419
  });
324311
324420
  }
324312
324421
  async function fetchWithTimeout(url3, timeout, options) {
324422
+ if (await isPrivateIp(url3)) {
324423
+ throw new PrivateIpError(`Access to blocked or private host ${url3} is not allowed.`);
324424
+ }
324313
324425
  const controller = new AbortController();
324314
324426
  const timeoutId = setTimeout(() => controller.abort(), timeout);
324315
324427
  if (options?.signal) {
@@ -324322,10 +324434,14 @@ async function fetchWithTimeout(url3, timeout, options) {
324322
324434
  }
324323
324435
  }
324324
324436
  try {
324325
- const response = await fetch(url3, {
324437
+ const fetchOptions = {
324326
324438
  ...options,
324327
324439
  signal: controller.signal
324328
- });
324440
+ };
324441
+ if (!fetchOptions.dispatcher) {
324442
+ fetchOptions.dispatcher = currentProxy ? createSafeProxyAgent(currentProxy) : defaultSafeAgent;
324443
+ }
324444
+ const response = await fetch(url3, fetchOptions);
324329
324445
  return response;
324330
324446
  } catch (error40) {
324331
324447
  if (isAbortError(error40)) {
@@ -324334,6 +324450,14 @@ async function fetchWithTimeout(url3, timeout, options) {
324334
324450
  }
324335
324451
  throw new FetchError(`Request timed out after ${timeout}ms`, "ETIMEDOUT");
324336
324452
  }
324453
+ if (error40 instanceof PrivateIpError) {
324454
+ throw error40;
324455
+ }
324456
+ if (error40 && typeof error40 === "object" && "cause" in error40) {
324457
+ if (error40.cause instanceof PrivateIpError) {
324458
+ throw error40.cause;
324459
+ }
324460
+ }
324337
324461
  throw new FetchError(getErrorMessage(error40), void 0, { cause: error40 });
324338
324462
  } finally {
324339
324463
  clearTimeout(timeoutId);
@@ -324343,7 +324467,7 @@ function setGlobalProxy(proxy2) {
324343
324467
  const trimmedProxy = proxy2.trim();
324344
324468
  currentProxy = trimmedProxy;
324345
324469
  const noProxy = (process.env["NO_PROXY"] ?? process.env["no_proxy"] ?? "")?.trim();
324346
- (0, import_undici2.setGlobalDispatcher)(new import_undici2.EnvHttpProxyAgent({
324470
+ undici.setGlobalDispatcher(new undici.EnvHttpProxyAgent({
324347
324471
  httpProxy: trimmedProxy,
324348
324472
  httpsProxy: trimmedProxy,
324349
324473
  noProxy,
@@ -329396,21 +329520,21 @@ var WebFetchToolInvocation = class extends BaseToolInvocation {
329396
329520
  });
329397
329521
  logNetworkRetryAttempt(this.context.config, new NetworkRetryAttemptEvent(attempt, maxAttempts, errorType, delayMs, modelName));
329398
329522
  }
329399
- isBlockedHost(urlStr) {
329523
+ async isBlockedHost(urlStr) {
329400
329524
  try {
329401
329525
  const url3 = new URL(urlStr);
329402
329526
  const hostname3 = url3.hostname.toLowerCase();
329403
- if (hostname3 === "localhost" || hostname3 === "127.0.0.1") {
329527
+ if (hostname3 === "localhost" || hostname3 === "127.0.0.1" || hostname3.endsWith(".localhost") || hostname3.endsWith(".local") || hostname3.endsWith(".internal")) {
329404
329528
  return true;
329405
329529
  }
329406
- return isPrivateIp(urlStr);
329530
+ return await isPrivateIp(urlStr);
329407
329531
  } catch {
329408
329532
  return true;
329409
329533
  }
329410
329534
  }
329411
329535
  async executeFallbackForUrl(urlStr, signal) {
329412
329536
  const url3 = convertGithubUrlToRaw(urlStr);
329413
- if (this.isBlockedHost(url3)) {
329537
+ if (await this.isBlockedHost(url3)) {
329414
329538
  debugLogger.warn(`[WebFetchTool] Blocked access to host: ${url3}`);
329415
329539
  throw new Error(`Access to blocked or private host ${url3} is not allowed.`);
329416
329540
  }
@@ -329452,12 +329576,12 @@ var WebFetchToolInvocation = class extends BaseToolInvocation {
329452
329576
  }
329453
329577
  return textContent2;
329454
329578
  }
329455
- filterAndValidateUrls(urls) {
329579
+ async filterAndValidateUrls(urls) {
329456
329580
  const uniqueUrls = [...new Set(urls.map(normalizeUrl))];
329457
329581
  const toFetch = [];
329458
329582
  const skipped = [];
329459
329583
  for (const url3 of uniqueUrls) {
329460
- if (this.isBlockedHost(url3)) {
329584
+ if (await this.isBlockedHost(url3)) {
329461
329585
  debugLogger.warn(`[WebFetchTool] Skipped private or local host: ${url3}`);
329462
329586
  logWebFetchFallbackAttempt(this.context.config, new WebFetchFallbackAttemptEvent("private_ip_skipped"));
329463
329587
  skipped.push(`[Blocked Host] ${url3}`);
@@ -329647,7 +329771,7 @@ ${aggregatedContent}
329647
329771
  };
329648
329772
  }
329649
329773
  url3 = convertGithubUrlToRaw(url3);
329650
- if (this.isBlockedHost(url3)) {
329774
+ if (await this.isBlockedHost(url3)) {
329651
329775
  const errorMessage = `Access to blocked or private host ${url3} is not allowed.`;
329652
329776
  debugLogger.warn(`[WebFetchTool] Blocked experimental fetch to host: ${url3}`);
329653
329777
  return {
@@ -329761,7 +329885,7 @@ Response: ${rawResponseText}`;
329761
329885
  }
329762
329886
  const userPrompt = this.params.prompt;
329763
329887
  const { validUrls } = parsePrompt(userPrompt);
329764
- const { toFetch, skipped } = this.filterAndValidateUrls(validUrls);
329888
+ const { toFetch, skipped } = await this.filterAndValidateUrls(validUrls);
329765
329889
  if (toFetch.length === 0 && skipped.length > 0) {
329766
329890
  const errorMessage = `All requested URLs were skipped: ${skipped.join(", ")}`;
329767
329891
  debugLogger.error(`[WebFetchTool] ${errorMessage}`);
@@ -339036,7 +339160,7 @@ var A2AAuthProviderFactory = class _A2AAuthProviderFactory {
339036
339160
  return provider;
339037
339161
  }
339038
339162
  case "oauth2": {
339039
- const { OAuth2AuthProvider } = await import("./oauth2-provider-2DCMBS2D.js");
339163
+ const { OAuth2AuthProvider } = await import("./oauth2-provider-VY2YQMRH.js");
339040
339164
  const provider = new OAuth2AuthProvider(authConfig, options.agentName ?? "unknown", agentCard, options.agentCardUrl);
339041
339165
  await provider.initialize();
339042
339166
  return provider;
@@ -366225,7 +366349,7 @@ var SSEClientTransport = class {
366225
366349
  };
366226
366350
 
366227
366351
  // packages/core/dist/src/tools/mcp-client.js
366228
- var import_undici3 = __toESM(require_undici(), 1);
366352
+ var import_undici2 = __toESM(require_undici(), 1);
366229
366353
  var import_shell_quote7 = __toESM(require_shell_quote(), 1);
366230
366354
 
366231
366355
  // packages/core/dist/src/mcp/google-auth-provider.js
@@ -366698,7 +366822,29 @@ function generatePKCEParams() {
366698
366822
  const state = crypto20.randomBytes(16).toString("base64url");
366699
366823
  return { codeVerifier, codeChallenge, state };
366700
366824
  }
366701
- function startCallbackServer(expectedState, port) {
366825
+ function areIssuersEqual(issuerA, issuerB) {
366826
+ if (issuerA === issuerB && !issuerA.includes("@"))
366827
+ return true;
366828
+ const normalize6 = (iss) => {
366829
+ try {
366830
+ const u2 = new URL6(iss);
366831
+ if (u2.username || u2.password) {
366832
+ return null;
366833
+ }
366834
+ const normalizedPath = u2.pathname.replace(/\/+$/, "");
366835
+ return `${u2.protocol}//${u2.host}${normalizedPath}${u2.search}${u2.hash}`;
366836
+ } catch {
366837
+ return iss.replace(/\/+$/, "");
366838
+ }
366839
+ };
366840
+ const normA = normalize6(issuerA);
366841
+ const normB = normalize6(issuerB);
366842
+ if (normA === null || normB === null) {
366843
+ return false;
366844
+ }
366845
+ return normA === normB;
366846
+ }
366847
+ function startCallbackServer(expectedState, port, expectedIssuer) {
366702
366848
  let portResolve;
366703
366849
  let portReject;
366704
366850
  const portPromise = new Promise((resolve29, reject) => {
@@ -366719,7 +366865,9 @@ function startCallbackServer(expectedState, port) {
366719
366865
  const code = url3.searchParams.get("code");
366720
366866
  const state = url3.searchParams.get("state");
366721
366867
  const error40 = url3.searchParams.get("error");
366868
+ const iss = url3.searchParams.get("iss") || void 0;
366722
366869
  if (error40) {
366870
+ debugLogger.warn(`OAuth callback received error: ${error40}`);
366723
366871
  res.writeHead(HTTP_OK, { "Content-Type": "text/html" });
366724
366872
  res.end(`
366725
366873
  <html>
@@ -366736,17 +366884,56 @@ function startCallbackServer(expectedState, port) {
366736
366884
  return;
366737
366885
  }
366738
366886
  if (!code || !state) {
366887
+ debugLogger.warn("OAuth callback rejected: Missing code or state parameter.");
366739
366888
  res.writeHead(400);
366740
366889
  res.end("Missing code or state parameter");
366741
366890
  return;
366742
366891
  }
366743
366892
  if (state !== expectedState) {
366893
+ debugLogger.error(`OAuth callback state mismatch: received state "${state}", expected "${expectedState}". Possible CSRF attack.`);
366744
366894
  res.writeHead(400);
366745
366895
  res.end("Invalid state parameter");
366746
366896
  server.close();
366747
366897
  reject(new Error("State mismatch - possible CSRF attack"));
366748
366898
  return;
366749
366899
  }
366900
+ if (expectedIssuer) {
366901
+ if (!iss) {
366902
+ debugLogger.error('OAuth callback rejected: Missing required "iss" parameter when an expected issuer is configured. Possible IdP mix-up attack (RFC 9207).');
366903
+ res.writeHead(400, { "Content-Type": "text/html" });
366904
+ res.end(`
366905
+ <html>
366906
+ <body>
366907
+ <h1>Authentication Failed</h1>
366908
+ <p>Error: Missing issuer parameter in response.</p>
366909
+ <p>You can close this window.</p>
366910
+ </body>
366911
+ </html>
366912
+ `);
366913
+ server.close();
366914
+ reject(new Error('Missing "iss" parameter in authorization response per RFC 9207'));
366915
+ return;
366916
+ }
366917
+ if (!areIssuersEqual(iss, expectedIssuer)) {
366918
+ debugLogger.error("OAuth callback rejected: Issuer mismatch between authorization response and expected authorization server. Possible IdP mix-up attack (RFC 9207).");
366919
+ res.writeHead(400, { "Content-Type": "text/html" });
366920
+ res.end(`
366921
+ <html>
366922
+ <body>
366923
+ <h1>Authentication Failed</h1>
366924
+ <p>Error: Issuer mismatch - possible OAuth mix-up attack.</p>
366925
+ <p>You can close this window.</p>
366926
+ </body>
366927
+ </html>
366928
+ `);
366929
+ server.close();
366930
+ reject(new Error("Issuer mismatch in authorization response - possible OAuth mix-up attack"));
366931
+ return;
366932
+ }
366933
+ debugLogger.debug("\u2713 OAuth callback issuer validated successfully.");
366934
+ } else if (iss) {
366935
+ debugLogger.debug('OAuth callback received "iss" parameter (no expected issuer was configured).');
366936
+ }
366750
366937
  res.writeHead(HTTP_OK, { "Content-Type": "text/html" });
366751
366938
  res.end(`
366752
366939
  <html>
@@ -366758,7 +366945,7 @@ function startCallbackServer(expectedState, port) {
366758
366945
  </html>
366759
366946
  `);
366760
366947
  server.close();
366761
- resolve29({ code, state });
366948
+ resolve29({ code, state, iss });
366762
366949
  } catch (error40) {
366763
366950
  server.close();
366764
366951
  reject(error40);
@@ -367181,7 +367368,8 @@ var MCPOAuthProvider = class {
367181
367368
  }
367182
367369
  const pkceParams = generatePKCEParams();
367183
367370
  const preferredPort = getPortFromUrl(config2.redirectUri);
367184
- const callbackServer = startCallbackServer(pkceParams.state, preferredPort);
367371
+ debugLogger.debug(`Starting callback server for "${serverName}" (expected issuer: ${config2.issuer || "none"})...`);
367372
+ const callbackServer = startCallbackServer(pkceParams.state, preferredPort, config2.issuer);
367185
367373
  const redirectPort = await callbackServer.port;
367186
367374
  debugLogger.debug(`Callback server listening on port ${redirectPort}`);
367187
367375
  if (!config2.clientId) {
@@ -368506,7 +368694,7 @@ async function connectToMcpServer(clientVersion, mcpServerName, mcpServerConfig,
368506
368694
  }
368507
368695
  function createUrlTransport(mcpServerName, mcpServerConfig, transportOptions) {
368508
368696
  const noProxy = process.env["NO_PROXY"] || process.env["no_proxy"];
368509
- const agent = new import_undici3.EnvHttpProxyAgent({ noProxy });
368697
+ const agent = new import_undici2.EnvHttpProxyAgent({ noProxy });
368510
368698
  const baseFetch = transportOptions.fetch ?? globalThis.fetch;
368511
368699
  const httpOptions = {
368512
368700
  ...transportOptions,
@@ -376683,7 +376871,7 @@ function v43(options, buf, offset) {
376683
376871
  var v4_default3 = v43;
376684
376872
 
376685
376873
  // packages/core/dist/src/agents/a2a-client-manager.js
376686
- var import_undici4 = __toESM(require_undici(), 1);
376874
+ var import_undici3 = __toESM(require_undici(), 1);
376687
376875
  var A2A_TIMEOUT = 18e5;
376688
376876
  var A2AClientManager = class {
376689
376877
  config;
@@ -376700,12 +376888,12 @@ var A2AClientManager = class {
376700
376888
  bodyTimeout: A2A_TIMEOUT
376701
376889
  };
376702
376890
  if (proxyUrl) {
376703
- this.a2aDispatcher = new import_undici4.ProxyAgent({
376891
+ this.a2aDispatcher = new import_undici3.ProxyAgent({
376704
376892
  uri: proxyUrl,
376705
376893
  ...agentOptions
376706
376894
  });
376707
376895
  } else {
376708
- this.a2aDispatcher = new import_undici4.Agent(agentOptions);
376896
+ this.a2aDispatcher = new import_undici3.Agent(agentOptions);
376709
376897
  }
376710
376898
  this.a2aFetch = (input, init2) => fetch(input, { ...init2, dispatcher: this.a2aDispatcher });
376711
376899
  }
@@ -396887,12 +397075,16 @@ export {
396887
397075
  ShellTool,
396888
397076
  FetchError,
396889
397077
  PrivateIpError,
397078
+ safeLookup,
397079
+ createSafeConnector,
397080
+ createSafeAgent,
396890
397081
  updateGlobalFetchTimeouts,
396891
397082
  sanitizeHostname,
396892
397083
  isLoopbackHost,
396893
- isPrivateIp,
396894
397084
  isAddressPrivate,
396895
397085
  isPrivateIpAsync,
397086
+ isPrivateIp,
397087
+ validateUrlDestination,
396896
397088
  createSafeProxyAgent,
396897
397089
  fetchWithTimeout,
396898
397090
  setGlobalProxy,