@google/gemini-cli-a2a-server 0.48.0-nightly.20260612.g4e10a34be → 0.48.0-preview.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.
@@ -1850,7 +1850,7 @@ var require_ms = __commonJS({
1850
1850
  options = options || {};
1851
1851
  var type2 = typeof val;
1852
1852
  if (type2 === "string" && val.length > 0) {
1853
- return parse8(val);
1853
+ return parse9(val);
1854
1854
  } else if (type2 === "number" && isFinite(val)) {
1855
1855
  return options.long ? fmtLong(val) : fmtShort(val);
1856
1856
  }
@@ -1858,7 +1858,7 @@ var require_ms = __commonJS({
1858
1858
  "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
1859
1859
  );
1860
1860
  };
1861
- function parse8(str2) {
1861
+ function parse9(str2) {
1862
1862
  str2 = String(str2);
1863
1863
  if (str2.length > 100) {
1864
1864
  return;
@@ -2406,7 +2406,7 @@ var require_fecha_umd = __commonJS({
2406
2406
  return literals.shift();
2407
2407
  });
2408
2408
  };
2409
- function parse8(dateStr, format3, i18n) {
2409
+ function parse9(dateStr, format3, i18n) {
2410
2410
  if (i18n === void 0) {
2411
2411
  i18n = {};
2412
2412
  }
@@ -2501,7 +2501,7 @@ var require_fecha_umd = __commonJS({
2501
2501
  }
2502
2502
  var fecha = {
2503
2503
  format: format2,
2504
- parse: parse8,
2504
+ parse: parse9,
2505
2505
  defaultI18n,
2506
2506
  setGlobalDateI18n,
2507
2507
  setGlobalDateMasks
@@ -2509,7 +2509,7 @@ var require_fecha_umd = __commonJS({
2509
2509
  exports3.assign = assign;
2510
2510
  exports3.default = fecha;
2511
2511
  exports3.format = format2;
2512
- exports3.parse = parse8;
2512
+ exports3.parse = parse9;
2513
2513
  exports3.defaultI18n = defaultI18n;
2514
2514
  exports3.setGlobalDateI18n = setGlobalDateI18n;
2515
2515
  exports3.setGlobalDateMasks = setGlobalDateMasks;
@@ -10278,7 +10278,7 @@ var require_bytes = __commonJS({
10278
10278
  "use strict";
10279
10279
  module2.exports = bytes;
10280
10280
  module2.exports.format = format2;
10281
- module2.exports.parse = parse8;
10281
+ module2.exports.parse = parse9;
10282
10282
  var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g;
10283
10283
  var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/;
10284
10284
  var map3 = {
@@ -10292,7 +10292,7 @@ var require_bytes = __commonJS({
10292
10292
  var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;
10293
10293
  function bytes(value, options) {
10294
10294
  if (typeof value === "string") {
10295
- return parse8(value);
10295
+ return parse9(value);
10296
10296
  }
10297
10297
  if (typeof value === "number") {
10298
10298
  return format2(value, options);
@@ -10336,7 +10336,7 @@ var require_bytes = __commonJS({
10336
10336
  }
10337
10337
  return str2 + unitSeparator + unit;
10338
10338
  }
10339
- function parse8(val) {
10339
+ function parse9(val) {
10340
10340
  if (typeof val === "number" && !isNaN(val)) {
10341
10341
  return val;
10342
10342
  }
@@ -18256,7 +18256,7 @@ var require_content_type = __commonJS({
18256
18256
  var QUOTE_REGEXP = /([\\"])/g;
18257
18257
  var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
18258
18258
  exports2.format = format2;
18259
- exports2.parse = parse8;
18259
+ exports2.parse = parse9;
18260
18260
  function format2(obj) {
18261
18261
  if (!obj || typeof obj !== "object") {
18262
18262
  throw new TypeError("argument obj is required");
@@ -18280,7 +18280,7 @@ var require_content_type = __commonJS({
18280
18280
  }
18281
18281
  return string4;
18282
18282
  }
18283
- function parse8(string4) {
18283
+ function parse9(string4) {
18284
18284
  if (!string4) {
18285
18285
  throw new TypeError("argument string is required");
18286
18286
  }
@@ -27862,7 +27862,7 @@ var require_media_typer = __commonJS({
27862
27862
  var TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/;
27863
27863
  var TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;
27864
27864
  exports2.format = format2;
27865
- exports2.parse = parse8;
27865
+ exports2.parse = parse9;
27866
27866
  exports2.test = test;
27867
27867
  function format2(obj) {
27868
27868
  if (!obj || typeof obj !== "object") {
@@ -27895,7 +27895,7 @@ var require_media_typer = __commonJS({
27895
27895
  }
27896
27896
  return TYPE_REGEXP.test(string4.toLowerCase());
27897
27897
  }
27898
- function parse8(string4) {
27898
+ function parse9(string4) {
27899
27899
  if (!string4) {
27900
27900
  throw new TypeError("argument string is required");
27901
27901
  }
@@ -28081,7 +28081,7 @@ var require_read = __commonJS({
28081
28081
  var hasBody = require_type_is().hasBody;
28082
28082
  var { getCharset } = require_utils();
28083
28083
  module2.exports = read2;
28084
- function read2(req, res, next, parse8, debug2, options) {
28084
+ function read2(req, res, next, parse9, debug2, options) {
28085
28085
  if (onFinished.isFinished(req)) {
28086
28086
  debug2("body already parsed");
28087
28087
  next();
@@ -28169,7 +28169,7 @@ var require_read = __commonJS({
28169
28169
  try {
28170
28170
  debug2("parse body");
28171
28171
  str2 = typeof body2 !== "string" && encoding !== null ? iconv.decode(body2, encoding) : body2;
28172
- req.body = parse8(str2, encoding);
28172
+ req.body = parse9(str2, encoding);
28173
28173
  } catch (err2) {
28174
28174
  next(createError(400, err2, {
28175
28175
  body: str2,
@@ -28242,7 +28242,7 @@ var require_json2 = __commonJS({
28242
28242
  const normalizedOptions = normalizeOptions(options, "application/json");
28243
28243
  var reviver = options?.reviver;
28244
28244
  var strict2 = options?.strict !== false;
28245
- function parse8(body2) {
28245
+ function parse9(body2) {
28246
28246
  if (body2.length === 0) {
28247
28247
  return {};
28248
28248
  }
@@ -28269,7 +28269,7 @@ var require_json2 = __commonJS({
28269
28269
  isValidCharset: (charset) => charset.slice(0, 4) === "utf-"
28270
28270
  };
28271
28271
  return function jsonParser(req, res, next) {
28272
- read2(req, res, next, parse8, debug2, readOptions);
28272
+ read2(req, res, next, parse9, debug2, readOptions);
28273
28273
  };
28274
28274
  }
28275
28275
  function createStrictSyntaxError(str2, char) {
@@ -30847,11 +30847,11 @@ var require_lib3 = __commonJS({
30847
30847
  "node_modules/qs/lib/index.js"(exports2, module2) {
30848
30848
  "use strict";
30849
30849
  var stringify5 = require_stringify();
30850
- var parse8 = require_parse();
30850
+ var parse9 = require_parse();
30851
30851
  var formats = require_formats();
30852
30852
  module2.exports = {
30853
30853
  formats,
30854
- parse: parse8,
30854
+ parse: parse9,
30855
30855
  stringify: stringify5
30856
30856
  };
30857
30857
  }
@@ -30873,7 +30873,7 @@ var require_urlencoded = __commonJS({
30873
30873
  throw new TypeError("option defaultCharset must be either utf-8 or iso-8859-1");
30874
30874
  }
30875
30875
  var queryparse = createQueryParser(options);
30876
- function parse8(body2, encoding) {
30876
+ function parse9(body2, encoding) {
30877
30877
  return body2.length ? queryparse(body2, encoding) : {};
30878
30878
  }
30879
30879
  const readOptions = {
@@ -30882,7 +30882,7 @@ var require_urlencoded = __commonJS({
30882
30882
  isValidCharset: (charset) => charset === "utf-8" || charset === "iso-8859-1"
30883
30883
  };
30884
30884
  return function urlencodedParser(req, res, next) {
30885
- read2(req, res, next, parse8, debug2, readOptions);
30885
+ read2(req, res, next, parse9, debug2, readOptions);
30886
30886
  };
30887
30887
  }
30888
30888
  function createQueryParser(options) {
@@ -31066,7 +31066,7 @@ var require_parseurl = __commonJS({
31066
31066
  "node_modules/parseurl/index.js"(exports2, module2) {
31067
31067
  "use strict";
31068
31068
  var url5 = __require("url");
31069
- var parse8 = url5.parse;
31069
+ var parse9 = url5.parse;
31070
31070
  var Url = url5.Url;
31071
31071
  module2.exports = parseurl;
31072
31072
  module2.exports.original = originalurl;
@@ -31098,7 +31098,7 @@ var require_parseurl = __commonJS({
31098
31098
  }
31099
31099
  function fastparse(str2) {
31100
31100
  if (typeof str2 !== "string" || str2.charCodeAt(0) !== 47) {
31101
- return parse8(str2);
31101
+ return parse9(str2);
31102
31102
  }
31103
31103
  var pathname = str2;
31104
31104
  var query = null;
@@ -31126,7 +31126,7 @@ var require_parseurl = __commonJS({
31126
31126
  /* # */
31127
31127
  case 160:
31128
31128
  case 65279:
31129
- return parse8(str2);
31129
+ return parse9(str2);
31130
31130
  }
31131
31131
  }
31132
31132
  var url6 = Url !== void 0 ? new Url() : {};
@@ -31417,7 +31417,7 @@ var require_forwarded = __commonJS({
31417
31417
  if (!req) {
31418
31418
  throw new TypeError("argument req is required");
31419
31419
  }
31420
- var proxyAddrs = parse8(req.headers["x-forwarded-for"] || "");
31420
+ var proxyAddrs = parse9(req.headers["x-forwarded-for"] || "");
31421
31421
  var socketAddr = getSocketAddr(req);
31422
31422
  var addrs = [socketAddr].concat(proxyAddrs);
31423
31423
  return addrs;
@@ -31425,7 +31425,7 @@ var require_forwarded = __commonJS({
31425
31425
  function getSocketAddr(req) {
31426
31426
  return req.socket ? req.socket.remoteAddress : req.connection.remoteAddress;
31427
31427
  }
31428
- function parse8(header) {
31428
+ function parse9(header) {
31429
31429
  var end = header.length;
31430
31430
  var list = [];
31431
31431
  var start2 = header.length;
@@ -32454,7 +32454,7 @@ var require_dist = __commonJS({
32454
32454
  "use strict";
32455
32455
  Object.defineProperty(exports2, "__esModule", { value: true });
32456
32456
  exports2.PathError = exports2.TokenData = void 0;
32457
- exports2.parse = parse8;
32457
+ exports2.parse = parse9;
32458
32458
  exports2.compile = compile2;
32459
32459
  exports2.match = match2;
32460
32460
  exports2.pathToRegexp = pathToRegexp;
@@ -32488,7 +32488,7 @@ var require_dist = __commonJS({
32488
32488
  }
32489
32489
  };
32490
32490
  exports2.PathError = PathError;
32491
- function parse8(str2, options = {}) {
32491
+ function parse9(str2, options = {}) {
32492
32492
  const { encodePath = NOOP_VALUE } = options;
32493
32493
  const chars = [...str2];
32494
32494
  let index = 0;
@@ -32570,7 +32570,7 @@ var require_dist = __commonJS({
32570
32570
  }
32571
32571
  function compile2(path98, options = {}) {
32572
32572
  const { encode = encodeURIComponent, delimiter: delimiter3 = DEFAULT_DELIMITER } = options;
32573
- const data = typeof path98 === "object" ? path98 : parse8(path98, options);
32573
+ const data = typeof path98 === "object" ? path98 : parse9(path98, options);
32574
32574
  const fn2 = tokensToFunction(data.tokens, delimiter3, encode);
32575
32575
  return function path99(params = {}) {
32576
32576
  const missing = [];
@@ -32677,7 +32677,7 @@ var require_dist = __commonJS({
32677
32677
  process16(p3);
32678
32678
  return;
32679
32679
  }
32680
- const data = typeof path99 === "object" ? path99 : parse8(path99, options);
32680
+ const data = typeof path99 === "object" ? path99 : parse9(path99, options);
32681
32681
  flatten2(data.tokens, 0, [], (tokens) => {
32682
32682
  if (combinations >= 256) {
32683
32683
  throw new PathError("Too many path combinations", data.originalPath);
@@ -34503,7 +34503,7 @@ var require_request = __commonJS({
34503
34503
  var http5 = __require("node:http");
34504
34504
  var fresh = require_fresh();
34505
34505
  var parseRange = require_range_parser();
34506
- var parse8 = require_parseurl();
34506
+ var parse9 = require_parseurl();
34507
34507
  var proxyaddr = require_proxy_addr();
34508
34508
  var req = Object.create(http5.IncomingMessage.prototype);
34509
34509
  module2.exports = req;
@@ -34548,7 +34548,7 @@ var require_request = __commonJS({
34548
34548
  if (!queryparse) {
34549
34549
  return /* @__PURE__ */ Object.create(null);
34550
34550
  }
34551
- var querystring2 = parse8(this).query;
34551
+ var querystring2 = parse9(this).query;
34552
34552
  return queryparse(querystring2);
34553
34553
  });
34554
34554
  req.is = function is2(types5) {
@@ -34592,7 +34592,7 @@ var require_request = __commonJS({
34592
34592
  return subdomains2.slice(offset);
34593
34593
  });
34594
34594
  defineGetter(req, "path", function path98() {
34595
- return parse8(this).pathname;
34595
+ return parse9(this).pathname;
34596
34596
  });
34597
34597
  defineGetter(req, "host", function host() {
34598
34598
  var trust = this.app.get("trust proxy fn");
@@ -34646,7 +34646,7 @@ var require_content_disposition = __commonJS({
34646
34646
  "node_modules/content-disposition/index.js"(exports2, module2) {
34647
34647
  "use strict";
34648
34648
  module2.exports = contentDisposition;
34649
- module2.exports.parse = parse8;
34649
+ module2.exports.parse = parse9;
34650
34650
  var basename12 = __require("path").basename;
34651
34651
  var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g;
34652
34652
  var HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/;
@@ -34737,7 +34737,7 @@ var require_content_disposition = __commonJS({
34737
34737
  function getlatin1(val) {
34738
34738
  return String(val).replace(NON_LATIN1_REGEXP, "?");
34739
34739
  }
34740
- function parse8(string4) {
34740
+ function parse9(string4) {
34741
34741
  if (!string4 || typeof string4 !== "string") {
34742
34742
  throw new TypeError("argument string is required");
34743
34743
  }
@@ -34826,7 +34826,7 @@ var require_cookie_signature = __commonJS({
34826
34826
  var require_cookie = __commonJS({
34827
34827
  "node_modules/cookie/index.js"(exports2) {
34828
34828
  "use strict";
34829
- exports2.parse = parse8;
34829
+ exports2.parse = parse9;
34830
34830
  exports2.serialize = serialize2;
34831
34831
  var __toString = Object.prototype.toString;
34832
34832
  var __hasOwnProperty = Object.prototype.hasOwnProperty;
@@ -34834,7 +34834,7 @@ var require_cookie = __commonJS({
34834
34834
  var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/;
34835
34835
  var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;
34836
34836
  var pathValueRegExp = /^[\u0020-\u003A\u003D-\u007E]*$/;
34837
- function parse8(str2, opt) {
34837
+ function parse9(str2, opt) {
34838
34838
  if (typeof str2 !== "string") {
34839
34839
  throw new TypeError("argument str must be a string");
34840
34840
  }
@@ -35485,7 +35485,7 @@ var require_vary = __commonJS({
35485
35485
  if (!field) {
35486
35486
  throw new TypeError("field argument is required");
35487
35487
  }
35488
- var fields = !Array.isArray(field) ? parse8(String(field)) : field;
35488
+ var fields = !Array.isArray(field) ? parse9(String(field)) : field;
35489
35489
  for (var j3 = 0; j3 < fields.length; j3++) {
35490
35490
  if (!FIELD_NAME_REGEXP.test(fields[j3])) {
35491
35491
  throw new TypeError("field argument contains an invalid header name");
@@ -35495,7 +35495,7 @@ var require_vary = __commonJS({
35495
35495
  return header;
35496
35496
  }
35497
35497
  var val = header;
35498
- var vals = parse8(header.toLowerCase());
35498
+ var vals = parse9(header.toLowerCase());
35499
35499
  if (fields.indexOf("*") !== -1 || vals.indexOf("*") !== -1) {
35500
35500
  return "*";
35501
35501
  }
@@ -35508,7 +35508,7 @@ var require_vary = __commonJS({
35508
35508
  }
35509
35509
  return val;
35510
35510
  }
35511
- function parse8(header) {
35511
+ function parse9(header) {
35512
35512
  var end = 0;
35513
35513
  var list = [];
35514
35514
  var start2 = 0;
@@ -61511,7 +61511,7 @@ var require_parse4 = __commonJS({
61511
61511
  return typeof arg === "undefined" ? prev : prev.concat(arg);
61512
61512
  }, []);
61513
61513
  }
61514
- module2.exports = function parse8(s5, env, opts) {
61514
+ module2.exports = function parse9(s5, env, opts) {
61515
61515
  var mapped = parseInternal(s5, env, opts);
61516
61516
  if (typeof env !== "function") {
61517
61517
  return mapped;
@@ -69473,8 +69473,23 @@ function stripShellWrapper(command) {
69473
69473
  const match2 = command.match(pattern);
69474
69474
  if (match2) {
69475
69475
  let newCommand = command.substring(match2[0].length).trim();
69476
- if (newCommand.startsWith('"') && newCommand.endsWith('"') || newCommand.startsWith("'") && newCommand.endsWith("'")) {
69477
- newCommand = newCommand.substring(1, newCommand.length - 1);
69476
+ if (newCommand.length >= 2 && (newCommand.startsWith('"') && newCommand.endsWith('"') || newCommand.startsWith("'") && newCommand.endsWith("'"))) {
69477
+ const isPosixShell = match2[0].trim().endsWith("-c");
69478
+ if (isPosixShell && newCommand.startsWith('"')) {
69479
+ try {
69480
+ const parsed = (0, import_shell_quote.parse)(newCommand, (key) => "$" + key);
69481
+ const firstEntry = parsed[0];
69482
+ if (parsed.length === 1 && typeof firstEntry === "string") {
69483
+ newCommand = firstEntry;
69484
+ } else {
69485
+ newCommand = newCommand.substring(1, newCommand.length - 1);
69486
+ }
69487
+ } catch {
69488
+ newCommand = newCommand.substring(1, newCommand.length - 1);
69489
+ }
69490
+ } else {
69491
+ newCommand = newCommand.substring(1, newCommand.length - 1);
69492
+ }
69478
69493
  }
69479
69494
  return newCommand;
69480
69495
  }
@@ -90345,7 +90360,7 @@ var require_extension = __commonJS({
90345
90360
  if (dest[name3] === void 0) dest[name3] = [elem];
90346
90361
  else dest[name3].push(elem);
90347
90362
  }
90348
- function parse8(header) {
90363
+ function parse9(header) {
90349
90364
  const offers = /* @__PURE__ */ Object.create(null);
90350
90365
  let params = /* @__PURE__ */ Object.create(null);
90351
90366
  let mustUnescape = false;
@@ -90485,7 +90500,7 @@ var require_extension = __commonJS({
90485
90500
  }).join(", ");
90486
90501
  }).join(", ");
90487
90502
  }
90488
- module2.exports = { format: format2, parse: parse8 };
90503
+ module2.exports = { format: format2, parse: parse9 };
90489
90504
  }
90490
90505
  });
90491
90506
 
@@ -90518,7 +90533,7 @@ var require_websocket = __commonJS({
90518
90533
  var {
90519
90534
  EventTarget: { addEventListener, removeEventListener }
90520
90535
  } = require_event_target();
90521
- var { format: format2, parse: parse8 } = require_extension();
90536
+ var { format: format2, parse: parse9 } = require_extension();
90522
90537
  var { toBuffer } = require_buffer_util();
90523
90538
  var closeTimeout = 30 * 1e3;
90524
90539
  var kAborted = Symbol("kAborted");
@@ -91185,7 +91200,7 @@ var require_websocket = __commonJS({
91185
91200
  }
91186
91201
  let extensions;
91187
91202
  try {
91188
- extensions = parse8(secWebSocketExtensions);
91203
+ extensions = parse9(secWebSocketExtensions);
91189
91204
  } catch (err2) {
91190
91205
  const message = "Invalid Sec-WebSocket-Extensions header";
91191
91206
  abortHandshake(websocket, socket, message);
@@ -91475,7 +91490,7 @@ var require_subprotocol = __commonJS({
91475
91490
  "node_modules/ws/lib/subprotocol.js"(exports2, module2) {
91476
91491
  "use strict";
91477
91492
  var { tokenChars } = require_validation();
91478
- function parse8(header) {
91493
+ function parse9(header) {
91479
91494
  const protocols = /* @__PURE__ */ new Set();
91480
91495
  let start2 = -1;
91481
91496
  let end = -1;
@@ -91511,7 +91526,7 @@ var require_subprotocol = __commonJS({
91511
91526
  protocols.add(protocol);
91512
91527
  return protocols;
91513
91528
  }
91514
- module2.exports = { parse: parse8 };
91529
+ module2.exports = { parse: parse9 };
91515
91530
  }
91516
91531
  });
91517
91532
 
@@ -111483,21 +111498,21 @@ var require_fast_uri = __commonJS({
111483
111498
  normalizeString(uri, options);
111484
111499
  } else if (typeof uri === "object") {
111485
111500
  uri = /** @type {T} */
111486
- parse8(serialize2(uri, options), options);
111501
+ parse9(serialize2(uri, options), options);
111487
111502
  }
111488
111503
  return uri;
111489
111504
  }
111490
111505
  function resolve23(baseURI, relativeURI, options) {
111491
111506
  const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
111492
- const resolved = resolveComponent(parse8(baseURI, schemelessOptions), parse8(relativeURI, schemelessOptions), schemelessOptions, true);
111507
+ const resolved = resolveComponent(parse9(baseURI, schemelessOptions), parse9(relativeURI, schemelessOptions), schemelessOptions, true);
111493
111508
  schemelessOptions.skipEscape = true;
111494
111509
  return serialize2(resolved, schemelessOptions);
111495
111510
  }
111496
111511
  function resolveComponent(base, relative5, options, skipNormalization) {
111497
111512
  const target = {};
111498
111513
  if (!skipNormalization) {
111499
- base = parse8(serialize2(base, options), options);
111500
- relative5 = parse8(serialize2(relative5, options), options);
111514
+ base = parse9(serialize2(base, options), options);
111515
+ relative5 = parse9(serialize2(relative5, options), options);
111501
111516
  }
111502
111517
  options = options || {};
111503
111518
  if (!options.tolerant && relative5.scheme) {
@@ -111720,7 +111735,7 @@ var require_fast_uri = __commonJS({
111720
111735
  }
111721
111736
  return { parsed, malformedAuthorityOrPort };
111722
111737
  }
111723
- function parse8(uri, opts) {
111738
+ function parse9(uri, opts) {
111724
111739
  return parseWithStatus(uri, opts).parsed;
111725
111740
  }
111726
111741
  function normalizeString(uri, opts) {
@@ -111749,7 +111764,7 @@ var require_fast_uri = __commonJS({
111749
111764
  resolveComponent,
111750
111765
  equal,
111751
111766
  serialize: serialize2,
111752
- parse: parse8
111767
+ parse: parse9
111753
111768
  };
111754
111769
  module2.exports = fastUri;
111755
111770
  module2.exports.default = fastUri;
@@ -140233,7 +140248,7 @@ var require_root = __commonJS({
140233
140248
  var OneOf = require_oneof();
140234
140249
  var util5 = require_util7();
140235
140250
  var Type2;
140236
- var parse8;
140251
+ var parse9;
140237
140252
  var common2;
140238
140253
  function Root2(options) {
140239
140254
  Namespace.call(this, "", options);
@@ -140293,8 +140308,8 @@ var require_root = __commonJS({
140293
140308
  if (!util5.isString(source))
140294
140309
  self2.setOptions(source.options).addJSON(source.nested);
140295
140310
  else {
140296
- parse8.filename = filename2;
140297
- var parsed = parse8(source, self2, options), resolved2, i5 = 0;
140311
+ parse9.filename = filename2;
140312
+ var parsed = parse9(source, self2, options), resolved2, i5 = 0;
140298
140313
  if (parsed.imports) {
140299
140314
  for (; i5 < parsed.imports.length; ++i5)
140300
140315
  if (resolved2 = getBundledFileName(parsed.imports[i5]) || self2.resolvePath(filename2, parsed.imports[i5]))
@@ -140465,7 +140480,7 @@ var require_root = __commonJS({
140465
140480
  };
140466
140481
  Root2._configure = function(Type_, parse_2, common_) {
140467
140482
  Type2 = Type_;
140468
- parse8 = parse_2;
140483
+ parse9 = parse_2;
140469
140484
  common2 = common_;
140470
140485
  };
140471
140486
  }
@@ -141736,9 +141751,9 @@ var require_tokenize = __commonJS({
141736
141751
  var require_parse5 = __commonJS({
141737
141752
  "node_modules/protobufjs/src/parse.js"(exports2, module2) {
141738
141753
  "use strict";
141739
- module2.exports = parse8;
141740
- parse8.filename = null;
141741
- parse8.defaults = { keepCase: false };
141754
+ module2.exports = parse9;
141755
+ parse9.filename = null;
141756
+ parse9.defaults = { keepCase: false };
141742
141757
  var tokenize2 = require_tokenize();
141743
141758
  var Root2 = require_root();
141744
141759
  var Type2 = require_type2();
@@ -141760,13 +141775,13 @@ var require_parse5 = __commonJS({
141760
141775
  var numberRe = util5.patterns.numberRe;
141761
141776
  var nameRe = /^[a-zA-Z_][a-zA-Z_0-9]*$/;
141762
141777
  var typeRefRe = util5.patterns.typeRefRe;
141763
- function parse8(source, root, options) {
141778
+ function parse9(source, root, options) {
141764
141779
  if (!(root instanceof Root2)) {
141765
141780
  options = root;
141766
141781
  root = new Root2();
141767
141782
  }
141768
141783
  if (!options)
141769
- options = parse8.defaults;
141784
+ options = parse9.defaults;
141770
141785
  var preferTrailingComment = options.preferTrailingComment || false;
141771
141786
  var tn = tokenize2(source, options.alternateCommentMode || false), next = tn.next, push = tn.push, peek = tn.peek, skip = tn.skip, cmnt = tn.cmnt;
141772
141787
  var head = true, pkg2, imports, weakImports, edition = "proto2";
@@ -141786,9 +141801,9 @@ var require_parse5 = __commonJS({
141786
141801
  });
141787
141802
  }
141788
141803
  function illegal(token3, name3, insideTryCatch) {
141789
- var filename = parse8.filename;
141804
+ var filename = parse9.filename;
141790
141805
  if (!insideTryCatch)
141791
- parse8.filename = null;
141806
+ parse9.filename = null;
141792
141807
  return Error("illegal " + (name3 || "token") + " '" + token3 + "' (" + (filename ? filename + ", " : "") + "line " + tn.line + ")");
141793
141808
  }
141794
141809
  function readString() {
@@ -141987,7 +142002,7 @@ var require_parse5 = __commonJS({
141987
142002
  if (typeof obj.comment !== "string") {
141988
142003
  obj.comment = cmnt();
141989
142004
  }
141990
- obj.filename = parse8.filename;
142005
+ obj.filename = parse9.filename;
141991
142006
  }
141992
142007
  if (skip("{", true)) {
141993
142008
  var token3;
@@ -142107,7 +142122,7 @@ var require_parse5 = __commonJS({
142107
142122
  var type2 = new Type2(name3);
142108
142123
  type2.group = true;
142109
142124
  var field = new Field(fieldName, id, name3, rule);
142110
- field.filename = parse8.filename;
142125
+ field.filename = parse9.filename;
142111
142126
  ifBlock(type2, function parseGroup_block(token3) {
142112
142127
  switch (token3) {
142113
142128
  case "option":
@@ -142446,7 +142461,7 @@ var require_parse5 = __commonJS({
142446
142461
  }
142447
142462
  }
142448
142463
  resolveFileFeatures();
142449
- parse8.filename = null;
142464
+ parse9.filename = null;
142450
142465
  return {
142451
142466
  "package": pkg2,
142452
142467
  "imports": imports,
@@ -179572,7 +179587,7 @@ var require_public_api2 = __commonJS({
179572
179587
  }
179573
179588
  return doc;
179574
179589
  }
179575
- function parse8(src, reviver, options) {
179590
+ function parse9(src, reviver, options) {
179576
179591
  let _reviver = void 0;
179577
179592
  if (typeof reviver === "function") {
179578
179593
  _reviver = reviver;
@@ -179613,7 +179628,7 @@ var require_public_api2 = __commonJS({
179613
179628
  return value.toString(options);
179614
179629
  return new Document2.Document(value, _replacer, options).toString(options);
179615
179630
  }
179616
- exports2.parse = parse8;
179631
+ exports2.parse = parse9;
179617
179632
  exports2.parseAllDocuments = parseAllDocuments;
179618
179633
  exports2.parseDocument = parseDocument2;
179619
179634
  exports2.stringify = stringify5;
@@ -188730,7 +188745,7 @@ var require_forwarded_parse = __commonJS({
188730
188745
  position
188731
188746
  );
188732
188747
  }
188733
- function parse8(header) {
188748
+ function parse9(header) {
188734
188749
  var mustUnescape = false;
188735
188750
  var isEscaping = false;
188736
188751
  var inQuotes = false;
@@ -188817,7 +188832,7 @@ var require_forwarded_parse = __commonJS({
188817
188832
  output.push(forwarded);
188818
188833
  return output;
188819
188834
  }
188820
- module2.exports = parse8;
188835
+ module2.exports = parse9;
188821
188836
  }
188822
188837
  });
188823
188838
 
@@ -211667,8 +211682,8 @@ var GIT_COMMIT_INFO, CLI_VERSION;
211667
211682
  var init_git_commit = __esm({
211668
211683
  "packages/core/dist/src/generated/git-commit.js"() {
211669
211684
  "use strict";
211670
- GIT_COMMIT_INFO = "4e10a34be";
211671
- CLI_VERSION = "0.48.0-nightly.20260612.g4e10a34be";
211685
+ GIT_COMMIT_INFO = "4d3dcdce1";
211686
+ CLI_VERSION = "0.48.0-preview.0";
211672
211687
  }
211673
211688
  });
211674
211689
 
@@ -252660,7 +252675,7 @@ var init_v12 = __esm({
252660
252675
  });
252661
252676
 
252662
252677
  // node_modules/eventid/node_modules/uuid/dist/esm-node/parse.js
252663
- function parse2(uuid2) {
252678
+ function parse3(uuid2) {
252664
252679
  if (!validate_default3(uuid2)) {
252665
252680
  throw TypeError("Invalid UUID");
252666
252681
  }
@@ -252688,7 +252703,7 @@ var parse_default2;
252688
252703
  var init_parse2 = __esm({
252689
252704
  "node_modules/eventid/node_modules/uuid/dist/esm-node/parse.js"() {
252690
252705
  init_validate2();
252691
- parse_default2 = parse2;
252706
+ parse_default2 = parse3;
252692
252707
  }
252693
252708
  });
252694
252709
 
@@ -290933,12 +290948,12 @@ var init_errors4 = __esm({
290933
290948
  });
290934
290949
 
290935
290950
  // node_modules/zod/v4/classic/parse.js
290936
- var parse4, parseAsync2, safeParse3, safeParseAsync2;
290951
+ var parse5, parseAsync2, safeParse3, safeParseAsync2;
290937
290952
  var init_parse5 = __esm({
290938
290953
  "node_modules/zod/v4/classic/parse.js"() {
290939
290954
  init_core2();
290940
290955
  init_errors4();
290941
- parse4 = /* @__PURE__ */ _parse(ZodRealError);
290956
+ parse5 = /* @__PURE__ */ _parse(ZodRealError);
290942
290957
  parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
290943
290958
  safeParse3 = /* @__PURE__ */ _safeParse(ZodRealError);
290944
290959
  safeParseAsync2 = /* @__PURE__ */ _safeParseAsync(ZodRealError);
@@ -291174,7 +291189,7 @@ var init_schemas3 = __esm({
291174
291189
  reg.add(inst, meta);
291175
291190
  return inst;
291176
291191
  };
291177
- inst.parse = (data, params) => parse4(inst, data, params, { callee: inst.parse });
291192
+ inst.parse = (data, params) => parse5(inst, data, params, { callee: inst.parse });
291178
291193
  inst.safeParse = (data, params) => safeParse3(inst, data, params);
291179
291194
  inst.parseAsync = async (data, params) => parseAsync2(inst, data, params, { callee: inst.parseAsync });
291180
291195
  inst.safeParseAsync = async (data, params) => safeParseAsync2(inst, data, params);
@@ -302485,7 +302500,7 @@ var require_parse6 = __commonJS({
302485
302500
  }
302486
302501
  return parsed;
302487
302502
  }
302488
- function parse8(command, args2, options) {
302503
+ function parse9(command, args2, options) {
302489
302504
  if (args2 && !Array.isArray(args2)) {
302490
302505
  options = args2;
302491
302506
  args2 = null;
@@ -302504,7 +302519,7 @@ var require_parse6 = __commonJS({
302504
302519
  };
302505
302520
  return options.shell ? parsed : parseNonShell(parsed);
302506
302521
  }
302507
- module2.exports = parse8;
302522
+ module2.exports = parse9;
302508
302523
  }
302509
302524
  });
302510
302525
 
@@ -302563,16 +302578,16 @@ var require_cross_spawn = __commonJS({
302563
302578
  "node_modules/cross-spawn/index.js"(exports2, module2) {
302564
302579
  "use strict";
302565
302580
  var cp = __require("child_process");
302566
- var parse8 = require_parse6();
302581
+ var parse9 = require_parse6();
302567
302582
  var enoent = require_enoent();
302568
302583
  function spawn10(command, args2, options) {
302569
- const parsed = parse8(command, args2, options);
302584
+ const parsed = parse9(command, args2, options);
302570
302585
  const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);
302571
302586
  enoent.hookChildProcess(spawned, parsed);
302572
302587
  return spawned;
302573
302588
  }
302574
302589
  function spawnSync4(command, args2, options) {
302575
- const parsed = parse8(command, args2, options);
302590
+ const parsed = parse9(command, args2, options);
302576
302591
  const result2 = cp.spawnSync(parsed.command, parsed.args, parsed.options);
302577
302592
  result2.error = result2.error || enoent.verifyENOENTSync(result2.status, parsed);
302578
302593
  return result2;
@@ -302580,7 +302595,7 @@ var require_cross_spawn = __commonJS({
302580
302595
  module2.exports = spawn10;
302581
302596
  module2.exports.spawn = spawn10;
302582
302597
  module2.exports.sync = spawnSync4;
302583
- module2.exports._parse = parse8;
302598
+ module2.exports._parse = parse9;
302584
302599
  module2.exports._enoent = enoent;
302585
302600
  }
302586
302601
  });
@@ -328883,7 +328898,7 @@ var require_parse8 = __commonJS({
328883
328898
  "node_modules/semver/functions/parse.js"(exports2, module2) {
328884
328899
  "use strict";
328885
328900
  var SemVer = require_semver2();
328886
- var parse8 = (version4, options, throwErrors = false) => {
328901
+ var parse9 = (version4, options, throwErrors = false) => {
328887
328902
  if (version4 instanceof SemVer) {
328888
328903
  return version4;
328889
328904
  }
@@ -328896,7 +328911,7 @@ var require_parse8 = __commonJS({
328896
328911
  throw er2;
328897
328912
  }
328898
328913
  };
328899
- module2.exports = parse8;
328914
+ module2.exports = parse9;
328900
328915
  }
328901
328916
  });
328902
328917
 
@@ -328904,9 +328919,9 @@ var require_parse8 = __commonJS({
328904
328919
  var require_valid = __commonJS({
328905
328920
  "node_modules/semver/functions/valid.js"(exports2, module2) {
328906
328921
  "use strict";
328907
- var parse8 = require_parse8();
328922
+ var parse9 = require_parse8();
328908
328923
  var valid = (version4, options) => {
328909
- const v2 = parse8(version4, options);
328924
+ const v2 = parse9(version4, options);
328910
328925
  return v2 ? v2.version : null;
328911
328926
  };
328912
328927
  module2.exports = valid;
@@ -328917,9 +328932,9 @@ var require_valid = __commonJS({
328917
328932
  var require_clean = __commonJS({
328918
328933
  "node_modules/semver/functions/clean.js"(exports2, module2) {
328919
328934
  "use strict";
328920
- var parse8 = require_parse8();
328935
+ var parse9 = require_parse8();
328921
328936
  var clean = (version4, options) => {
328922
- const s5 = parse8(version4.trim().replace(/^[=v]+/, ""), options);
328937
+ const s5 = parse9(version4.trim().replace(/^[=v]+/, ""), options);
328923
328938
  return s5 ? s5.version : null;
328924
328939
  };
328925
328940
  module2.exports = clean;
@@ -329913,9 +329928,9 @@ var require_spdx_expression_parse = __commonJS({
329913
329928
  "node_modules/spdx-expression-parse/index.js"(exports2, module2) {
329914
329929
  "use strict";
329915
329930
  var scan = require_scan();
329916
- var parse8 = require_parse9();
329931
+ var parse9 = require_parse9();
329917
329932
  module2.exports = function(source) {
329918
- return parse8(scan(source));
329933
+ return parse9(scan(source));
329919
329934
  };
329920
329935
  }
329921
329936
  });
@@ -329923,11 +329938,11 @@ var require_spdx_expression_parse = __commonJS({
329923
329938
  // node_modules/spdx-correct/index.js
329924
329939
  var require_spdx_correct = __commonJS({
329925
329940
  "node_modules/spdx-correct/index.js"(exports2, module2) {
329926
- var parse8 = require_spdx_expression_parse();
329941
+ var parse9 = require_spdx_expression_parse();
329927
329942
  var spdxLicenseIds = require_spdx_license_ids();
329928
329943
  function valid(string4) {
329929
329944
  try {
329930
- parse8(string4);
329945
+ parse9(string4);
329931
329946
  return true;
329932
329947
  } catch (error2) {
329933
329948
  return false;
@@ -330256,7 +330271,7 @@ var require_spdx_correct = __commonJS({
330256
330271
  // node_modules/validate-npm-package-license/index.js
330257
330272
  var require_validate_npm_package_license = __commonJS({
330258
330273
  "node_modules/validate-npm-package-license/index.js"(exports2, module2) {
330259
- var parse8 = require_spdx_expression_parse();
330274
+ var parse9 = require_spdx_expression_parse();
330260
330275
  var correct = require_spdx_correct();
330261
330276
  var genericWarning = 'license should be a valid SPDX license expression (without "LicenseRef"), "UNLICENSED", or "SEE LICENSE IN <filename>"';
330262
330277
  var fileReferenceRE = /^SEE LICEN[CS]E IN (.+)$/;
@@ -330274,7 +330289,7 @@ var require_validate_npm_package_license = __commonJS({
330274
330289
  module2.exports = function(argument) {
330275
330290
  var ast;
330276
330291
  try {
330277
- ast = parse8(argument);
330292
+ ast = parse9(argument);
330278
330293
  } catch (e3) {
330279
330294
  var match2;
330280
330295
  if (argument === "UNLICENSED" || argument === "UNLICENCED") {
@@ -332856,7 +332871,7 @@ function getVersion() {
332856
332871
  }
332857
332872
  versionPromise = (async () => {
332858
332873
  const pkgJson = await getPackageJson(__dirname4);
332859
- return "0.48.0-nightly.20260612.g4e10a34be";
332874
+ return "0.48.0-preview.0";
332860
332875
  })();
332861
332876
  return versionPromise;
332862
332877
  }
@@ -333510,8 +333525,9 @@ function classifyValidationRequiredError(googleApiError) {
333510
333525
  function classifyGoogleError(error2) {
333511
333526
  const googleApiError = parseGoogleApiError(error2);
333512
333527
  const status2 = googleApiError?.code ?? getErrorStatus(error2);
333528
+ const errorMessage = googleApiError?.message || extractErrorMessage(error2);
333513
333529
  if (status2 === 404) {
333514
- const message = googleApiError?.message || (error2 instanceof Error ? error2.message : "Model not found");
333530
+ const message = errorMessage.trim() || "Model not found";
333515
333531
  return new ModelNotFoundError(message, status2);
333516
333532
  }
333517
333533
  if (status2 === 403 && googleApiError) {
@@ -333520,26 +333536,34 @@ function classifyGoogleError(error2) {
333520
333536
  return validationError;
333521
333537
  }
333522
333538
  }
333539
+ const lowerMessage = errorMessage.toLowerCase();
333540
+ if ((status2 === 429 || status2 === 499 || status2 === 503) && /limit:\s*0(?!\d|\.\d)/.test(lowerMessage)) {
333541
+ const cause = googleApiError ?? {
333542
+ code: status2 ?? 429,
333543
+ message: errorMessage,
333544
+ details: []
333545
+ };
333546
+ return new TerminalQuotaError(errorMessage, cause);
333547
+ }
333523
333548
  if (!googleApiError || googleApiError.code !== 429 && googleApiError.code !== 499 && googleApiError.code !== 503 || googleApiError.details.length === 0) {
333524
- const errorMessage2 = googleApiError?.message || (error2 instanceof Error ? error2.message : String(error2));
333525
- const match2 = errorMessage2.match(/Please retry in ([0-9.]+(?:ms|s))/);
333549
+ const match2 = errorMessage.match(/Please retry in ([0-9.]+(?:ms|s))/);
333526
333550
  if (match2?.[1]) {
333527
333551
  const retryDelaySeconds = parseDurationInSeconds(match2[1]);
333528
333552
  if (retryDelaySeconds !== null) {
333529
333553
  const cause = googleApiError ?? {
333530
333554
  code: status2 ?? 429,
333531
- message: errorMessage2,
333555
+ message: errorMessage,
333532
333556
  details: []
333533
333557
  };
333534
333558
  if (retryDelaySeconds > MAX_RETRYABLE_DELAY_SECONDS) {
333535
- return new TerminalQuotaError(errorMessage2, cause, retryDelaySeconds);
333559
+ return new TerminalQuotaError(errorMessage, cause, retryDelaySeconds);
333536
333560
  }
333537
- return new RetryableQuotaError(errorMessage2, cause, retryDelaySeconds);
333561
+ return new RetryableQuotaError(errorMessage, cause, retryDelaySeconds);
333538
333562
  }
333539
333563
  } else if (status2 === 429 || status2 === 499 || status2 === 503) {
333540
- return new RetryableQuotaError(errorMessage2, googleApiError ?? {
333564
+ return new RetryableQuotaError(errorMessage, googleApiError ?? {
333541
333565
  code: status2,
333542
- message: errorMessage2,
333566
+ message: errorMessage,
333543
333567
  details: []
333544
333568
  });
333545
333569
  }
@@ -333606,9 +333630,20 @@ Suggested retry after 60s.`, googleApiError, 60);
333606
333630
  Suggested retry after 60s.`, googleApiError, 60);
333607
333631
  }
333608
333632
  }
333609
- const errorMessage = googleApiError.message || (error2 instanceof Error ? error2.message : String(error2));
333610
333633
  return new RetryableQuotaError(errorMessage, googleApiError);
333611
333634
  }
333635
+ function extractErrorMessage(error2) {
333636
+ if (typeof error2 === "string") {
333637
+ return error2;
333638
+ }
333639
+ if (typeof error2 === "object" && error2 !== null && "message" in error2) {
333640
+ const msg = error2.message;
333641
+ if (typeof msg === "string") {
333642
+ return msg;
333643
+ }
333644
+ }
333645
+ return "";
333646
+ }
333612
333647
  var GoogleApiType, TerminalQuotaError, RetryableQuotaError, ValidationRequiredError, MAX_RETRYABLE_DELAY_SECONDS, CLOUDCODE_DOMAINS;
333613
333648
  var init_googleQuotaErrors = __esm({
333614
333649
  "packages/core/dist/src/utils/googleQuotaErrors.js"() {
@@ -338084,15 +338119,22 @@ async function createContentGenerator(config3, gcConfig, sessionId) {
338084
338119
  }
338085
338120
  const proxyUrl = config3.proxy?.trim();
338086
338121
  const proxyAgent = proxyUrl ? baseUrl?.startsWith("http://") ? new import_http_proxy_agent.HttpProxyAgent(proxyUrl) : new import_https_proxy_agent2.HttpsProxyAgent(proxyUrl) : void 0;
338122
+ const useVertex = config3.vertexai ?? config3.authType === AuthType2.USE_VERTEX_AI;
338087
338123
  const googleGenAI = new GoogleGenAI({
338088
338124
  apiKey: config3.authType === AuthType2.GATEWAY ? config3.apiKey : config3.apiKey === "" ? void 0 : config3.apiKey,
338089
338125
  vertexai: config3.vertexai ?? config3.authType === AuthType2.USE_VERTEX_AI,
338090
338126
  httpOptions,
338091
338127
  ...apiVersionEnv && { apiVersion: apiVersionEnv },
338092
- ...proxyAgent && {
338128
+ // Merge proxy and GDCH endpoint into googleAuthOptions if either exists
338129
+ ...(proxyAgent || useVertex && baseUrl) && {
338093
338130
  googleAuthOptions: {
338094
338131
  clientOptions: {
338095
- transporterOptions: { agent: proxyAgent }
338132
+ ...proxyAgent && {
338133
+ transporterOptions: { agent: proxyAgent }
338134
+ },
338135
+ ...useVertex && baseUrl && {
338136
+ apiEndpoint: baseUrl
338137
+ }
338096
338138
  }
338097
338139
  }
338098
338140
  }
@@ -382177,7 +382219,7 @@ var init_scheduler = __esm({
382177
382219
  return false;
382178
382220
  }
382179
382221
  _isParallelizable(request) {
382180
- if (request.name === UPDATE_TOPIC_TOOL_NAME) {
382222
+ if (request.name === UPDATE_TOPIC_TOOL_NAME || EDIT_TOOL_NAMES.has(request.name)) {
382181
382223
  return false;
382182
382224
  }
382183
382225
  if (request.args) {
@@ -389388,7 +389430,7 @@ function parseStringResponse(result2, parsers12, texts, trim = true) {
389388
389430
  }
389389
389431
  return lines[i4 + offset];
389390
389432
  };
389391
- parsers12.some(({ parse: parse8 }) => parse8(line, result2));
389433
+ parsers12.some(({ parse: parse9 }) => parse9(line, result2));
389392
389434
  }
389393
389435
  });
389394
389436
  return result2;
@@ -414264,7 +414306,7 @@ var require_parse11 = __commonJS({
414264
414306
  }
414265
414307
  return { risky: false };
414266
414308
  };
414267
- var parse8 = (input, options) => {
414309
+ var parse9 = (input, options) => {
414268
414310
  if (typeof input !== "string") {
414269
414311
  throw new TypeError("Expected a string");
414270
414312
  }
@@ -414434,7 +414476,7 @@ var require_parse11 = __commonJS({
414434
414476
  output = token2.close = `)$))${extglobStar}`;
414435
414477
  }
414436
414478
  if (token2.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
414437
- const expression = parse8(rest, { ...options, fastpaths: false }).output;
414479
+ const expression = parse9(rest, { ...options, fastpaths: false }).output;
414438
414480
  output = token2.close = `)${expression})${extglobStar})`;
414439
414481
  }
414440
414482
  if (token2.prev.type === "bos") {
@@ -414956,7 +414998,7 @@ var require_parse11 = __commonJS({
414956
414998
  }
414957
414999
  return state;
414958
415000
  };
414959
- parse8.fastpaths = (input, options) => {
415001
+ parse9.fastpaths = (input, options) => {
414960
415002
  const opts = { ...options };
414961
415003
  const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
414962
415004
  const len = input.length;
@@ -415021,7 +415063,7 @@ var require_parse11 = __commonJS({
415021
415063
  }
415022
415064
  return source;
415023
415065
  };
415024
- module2.exports = parse8;
415066
+ module2.exports = parse9;
415025
415067
  }
415026
415068
  });
415027
415069
 
@@ -415030,7 +415072,7 @@ var require_picomatch = __commonJS({
415030
415072
  "packages/core/node_modules/picomatch/lib/picomatch.js"(exports2, module2) {
415031
415073
  "use strict";
415032
415074
  var scan = require_scan2();
415033
- var parse8 = require_parse11();
415075
+ var parse9 = require_parse11();
415034
415076
  var utils = require_utils22();
415035
415077
  var constants3 = require_constants11();
415036
415078
  var isObject5 = (val) => val && typeof val === "object" && !Array.isArray(val);
@@ -415118,7 +415160,7 @@ var require_picomatch = __commonJS({
415118
415160
  picomatch2.isMatch = (str2, patterns, options) => picomatch2(patterns, options)(str2);
415119
415161
  picomatch2.parse = (pattern, options) => {
415120
415162
  if (Array.isArray(pattern)) return pattern.map((p3) => picomatch2.parse(p3, options));
415121
- return parse8(pattern, { ...options, fastpaths: false });
415163
+ return parse9(pattern, { ...options, fastpaths: false });
415122
415164
  };
415123
415165
  picomatch2.scan = (input, options) => scan(input, options);
415124
415166
  picomatch2.compileRe = (state, options, returnOutput = false, returnState = false) => {
@@ -415144,10 +415186,10 @@ var require_picomatch = __commonJS({
415144
415186
  }
415145
415187
  let parsed = { negated: false, fastpaths: true };
415146
415188
  if (options.fastpaths !== false && (input[0] === "." || input[0] === "*")) {
415147
- parsed.output = parse8.fastpaths(input, options);
415189
+ parsed.output = parse9.fastpaths(input, options);
415148
415190
  }
415149
415191
  if (!parsed.output) {
415150
- parsed = parse8(input, options);
415192
+ parsed = parse9(input, options);
415151
415193
  }
415152
415194
  return picomatch2.compileRe(parsed, options, returnOutput, returnState);
415153
415195
  };
@@ -417139,7 +417181,7 @@ var require_main2 = __commonJS({
417139
417181
  var packageJson4 = require_package13();
417140
417182
  var version4 = packageJson4.version;
417141
417183
  var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;
417142
- function parse8(src) {
417184
+ function parse9(src) {
417143
417185
  const obj = {};
417144
417186
  let lines = src.toString();
417145
417187
  lines = lines.replace(/\r\n?/mg, "\n");
@@ -417405,7 +417447,7 @@ var require_main2 = __commonJS({
417405
417447
  _parseVault,
417406
417448
  config: config3,
417407
417449
  decrypt,
417408
- parse: parse8,
417450
+ parse: parse9,
417409
417451
  populate
417410
417452
  };
417411
417453
  module2.exports.configDotenv = DotenvModule.configDotenv;
@@ -433505,6 +433547,7 @@ function setPersistedState(metadata2, state) {
433505
433547
  }
433506
433548
 
433507
433549
  // packages/a2a-server/src/config/config.ts
433550
+ var INITIAL_FOLDER_TRUST = process.env["GEMINI_FOLDER_TRUST"];
433508
433551
  async function loadConfig(settings, extensionLoader, taskId, trusted = false) {
433509
433552
  const workspaceDir = process.cwd();
433510
433553
  const folderTrust = settings.folderTrust === true || process.env["GEMINI_FOLDER_TRUST"] === "true";
@@ -433521,9 +433564,9 @@ async function loadConfig(settings, extensionLoader, taskId, trusted = false) {
433521
433564
  const policySettings = {
433522
433565
  mcpServers: settings.mcpServers,
433523
433566
  tools: {
433524
- core: settings.coreTools || settings.tools?.core,
433525
- exclude: settings.excludeTools || settings.tools?.exclude,
433526
- allowed: settings.allowedTools || settings.tools?.allowed
433567
+ core: settings.tools?.core,
433568
+ exclude: settings.tools?.exclude,
433569
+ allowed: settings.tools?.allowed
433527
433570
  },
433528
433571
  policyPaths: settings.policyPaths,
433529
433572
  adminPolicyPaths: settings.adminPolicyPaths
@@ -433546,9 +433589,9 @@ async function loadConfig(settings, extensionLoader, taskId, trusted = false) {
433546
433589
  debugMode: process.env["DEBUG"] === "true" || false,
433547
433590
  question: "",
433548
433591
  // Not used in server mode directly like CLI
433549
- coreTools: settings.coreTools || settings.tools?.core || void 0,
433550
- excludeTools: settings.excludeTools || settings.tools?.exclude || void 0,
433551
- allowedTools: settings.allowedTools || settings.tools?.allowed || void 0,
433592
+ coreTools: settings.tools?.core || void 0,
433593
+ excludeTools: settings.tools?.exclude || void 0,
433594
+ allowedTools: settings.tools?.allowed || void 0,
433552
433595
  showMemoryUsage: settings.showMemoryUsage || false,
433553
433596
  approvalMode,
433554
433597
  policyEngineConfig,
@@ -433605,6 +433648,12 @@ async function loadConfig(settings, extensionLoader, taskId, trusted = false) {
433605
433648
  await refreshAuthentication(config3, "Config");
433606
433649
  return config3;
433607
433650
  }
433651
+ function setIsTrusted(agentSettings) {
433652
+ if (INITIAL_FOLDER_TRUST !== void 0) {
433653
+ return INITIAL_FOLDER_TRUST === "true";
433654
+ }
433655
+ return !!agentSettings?.isTrusted;
433656
+ }
433608
433657
  function setTargetDir(agentSettings) {
433609
433658
  const originalCWD = process.cwd();
433610
433659
  const targetDir = process.env["CODER_AGENT_WORKSPACE_PATH"] ?? (agentSettings?.kind === "agent-settings" /* StateAgentSettingsEvent */ ? agentSettings.workspacePath : void 0);
@@ -434228,6 +434277,12 @@ var Task4 = class _Task {
434228
434277
  async () => "stop"
434229
434278
  );
434230
434279
  }
434280
+ get hasPendingTools() {
434281
+ return this.pendingToolCalls.size > 0;
434282
+ }
434283
+ get pendingToolsCount() {
434284
+ return this.pendingToolCalls.size;
434285
+ }
434231
434286
  static async create(id, contextId, config3, eventBus, autoExecute) {
434232
434287
  return new _Task(id, contextId, config3, eventBus, autoExecute);
434233
434288
  }
@@ -435157,8 +435212,8 @@ var CoderAgentExecutor = class {
435157
435212
  executingTasks = /* @__PURE__ */ new Set();
435158
435213
  async getConfig(agentSettings, taskId) {
435159
435214
  const workspaceRoot = setTargetDir(agentSettings);
435160
- const isTrusted = agentSettings.isTrusted ?? false;
435161
435215
  loadEnvironment();
435216
+ const isTrusted = setIsTrusted(agentSettings);
435162
435217
  const settings = loadSettings(workspaceRoot, isTrusted);
435163
435218
  const extensions = loadExtensions(workspaceRoot);
435164
435219
  return loadConfig(
@@ -435538,38 +435593,45 @@ var CoderAgentExecutor = class {
435538
435593
  `[CoderAgentExecutor] Task ${taskId}: All pending tools completed or none were pending.`
435539
435594
  );
435540
435595
  if (abortSignal.aborted) throw new Error("Execution aborted");
435541
- const completedTools = currentTask.getAndClearCompletedTools();
435542
- if (completedTools.length > 0) {
435543
- if (completedTools.every((tool) => tool.status === "cancelled")) {
435544
- logger.info(
435545
- `[CoderAgentExecutor] Task ${taskId}: All tool calls were cancelled. Updating history and ending agent turn.`
435546
- );
435547
- currentTask.addToolResponsesToHistory(completedTools);
435548
- agentTurnActive = false;
435549
- const stateChange2 = {
435550
- kind: "state-change" /* StateChangeEvent */
435551
- };
435552
- currentTask.setTaskStateAndPublishUpdate(
435553
- "input-required",
435554
- stateChange2,
435555
- void 0,
435556
- void 0,
435557
- true
435558
- );
435596
+ if (currentTask.hasPendingTools) {
435597
+ logger.info(
435598
+ `[CoderAgentExecutor] Task ${taskId}: There are still ${currentTask.pendingToolsCount} pending tools waiting for approval. Yielding to user.`
435599
+ );
435600
+ agentTurnActive = false;
435601
+ } else {
435602
+ const completedTools = currentTask.getAndClearCompletedTools();
435603
+ if (completedTools.length > 0) {
435604
+ if (completedTools.every((tool) => tool.status === "cancelled")) {
435605
+ logger.info(
435606
+ `[CoderAgentExecutor] Task ${taskId}: All tool calls were cancelled. Updating history and ending agent turn.`
435607
+ );
435608
+ currentTask.addToolResponsesToHistory(completedTools);
435609
+ agentTurnActive = false;
435610
+ const stateChange2 = {
435611
+ kind: "state-change" /* StateChangeEvent */
435612
+ };
435613
+ currentTask.setTaskStateAndPublishUpdate(
435614
+ "input-required",
435615
+ stateChange2,
435616
+ void 0,
435617
+ void 0,
435618
+ true
435619
+ );
435620
+ } else {
435621
+ logger.info(
435622
+ `[CoderAgentExecutor] Task ${taskId}: Found ${completedTools.length} completed tool calls. Sending results back to LLM.`
435623
+ );
435624
+ agentEvents = currentTask.sendCompletedToolsToLlm(
435625
+ completedTools,
435626
+ abortSignal
435627
+ );
435628
+ }
435559
435629
  } else {
435560
435630
  logger.info(
435561
- `[CoderAgentExecutor] Task ${taskId}: Found ${completedTools.length} completed tool calls. Sending results back to LLM.`
435562
- );
435563
- agentEvents = currentTask.sendCompletedToolsToLlm(
435564
- completedTools,
435565
- abortSignal
435631
+ `[CoderAgentExecutor] Task ${taskId}: No more tool calls to process. Ending agent turn.`
435566
435632
  );
435633
+ agentTurnActive = false;
435567
435634
  }
435568
- } else {
435569
- logger.info(
435570
- `[CoderAgentExecutor] Task ${taskId}: No more tool calls to process. Ending agent turn.`
435571
- );
435572
- agentTurnActive = false;
435573
435635
  }
435574
435636
  }
435575
435637
  logger.info(