@google/gemini-cli-a2a-server 0.12.0-preview.4 → 0.13.0-nightly.20251031.c89bc30d
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.
package/dist/a2a-server.mjs
CHANGED
|
@@ -123359,32 +123359,32 @@ var require_Meter = __commonJS({
|
|
|
123359
123359
|
*/
|
|
123360
123360
|
createGauge(name4, options2) {
|
|
123361
123361
|
const descriptor = (0, InstrumentDescriptor_1.createInstrumentDescriptor)(name4, MetricData_1.InstrumentType.GAUGE, options2);
|
|
123362
|
-
const
|
|
123363
|
-
return new Instruments_1.GaugeInstrument(
|
|
123362
|
+
const storage2 = this._meterSharedState.registerMetricStorage(descriptor);
|
|
123363
|
+
return new Instruments_1.GaugeInstrument(storage2, descriptor);
|
|
123364
123364
|
}
|
|
123365
123365
|
/**
|
|
123366
123366
|
* Create a {@link Histogram} instrument.
|
|
123367
123367
|
*/
|
|
123368
123368
|
createHistogram(name4, options2) {
|
|
123369
123369
|
const descriptor = (0, InstrumentDescriptor_1.createInstrumentDescriptor)(name4, MetricData_1.InstrumentType.HISTOGRAM, options2);
|
|
123370
|
-
const
|
|
123371
|
-
return new Instruments_1.HistogramInstrument(
|
|
123370
|
+
const storage2 = this._meterSharedState.registerMetricStorage(descriptor);
|
|
123371
|
+
return new Instruments_1.HistogramInstrument(storage2, descriptor);
|
|
123372
123372
|
}
|
|
123373
123373
|
/**
|
|
123374
123374
|
* Create a {@link Counter} instrument.
|
|
123375
123375
|
*/
|
|
123376
123376
|
createCounter(name4, options2) {
|
|
123377
123377
|
const descriptor = (0, InstrumentDescriptor_1.createInstrumentDescriptor)(name4, MetricData_1.InstrumentType.COUNTER, options2);
|
|
123378
|
-
const
|
|
123379
|
-
return new Instruments_1.CounterInstrument(
|
|
123378
|
+
const storage2 = this._meterSharedState.registerMetricStorage(descriptor);
|
|
123379
|
+
return new Instruments_1.CounterInstrument(storage2, descriptor);
|
|
123380
123380
|
}
|
|
123381
123381
|
/**
|
|
123382
123382
|
* Create a {@link UpDownCounter} instrument.
|
|
123383
123383
|
*/
|
|
123384
123384
|
createUpDownCounter(name4, options2) {
|
|
123385
123385
|
const descriptor = (0, InstrumentDescriptor_1.createInstrumentDescriptor)(name4, MetricData_1.InstrumentType.UP_DOWN_COUNTER, options2);
|
|
123386
|
-
const
|
|
123387
|
-
return new Instruments_1.UpDownCounterInstrument(
|
|
123386
|
+
const storage2 = this._meterSharedState.registerMetricStorage(descriptor);
|
|
123387
|
+
return new Instruments_1.UpDownCounterInstrument(storage2, descriptor);
|
|
123388
123388
|
}
|
|
123389
123389
|
/**
|
|
123390
123390
|
* Create a {@link ObservableGauge} instrument.
|
|
@@ -123870,16 +123870,16 @@ var require_MetricStorageRegistry = __commonJS({
|
|
|
123870
123870
|
}
|
|
123871
123871
|
return storages;
|
|
123872
123872
|
}
|
|
123873
|
-
register(
|
|
123874
|
-
this._registerStorage(
|
|
123873
|
+
register(storage2) {
|
|
123874
|
+
this._registerStorage(storage2, this._sharedRegistry);
|
|
123875
123875
|
}
|
|
123876
|
-
registerForCollector(collector,
|
|
123876
|
+
registerForCollector(collector, storage2) {
|
|
123877
123877
|
let storageMap = this._perCollectorRegistry.get(collector);
|
|
123878
123878
|
if (storageMap == null) {
|
|
123879
123879
|
storageMap = /* @__PURE__ */ new Map();
|
|
123880
123880
|
this._perCollectorRegistry.set(collector, storageMap);
|
|
123881
123881
|
}
|
|
123882
|
-
this._registerStorage(
|
|
123882
|
+
this._registerStorage(storage2, storageMap);
|
|
123883
123883
|
}
|
|
123884
123884
|
findOrUpdateCompatibleStorage(expectedDescriptor) {
|
|
123885
123885
|
const storages = this._sharedRegistry.get(expectedDescriptor.name);
|
|
@@ -123899,14 +123899,14 @@ var require_MetricStorageRegistry = __commonJS({
|
|
|
123899
123899
|
}
|
|
123900
123900
|
return this._findOrUpdateCompatibleStorage(expectedDescriptor, storages);
|
|
123901
123901
|
}
|
|
123902
|
-
_registerStorage(
|
|
123903
|
-
const descriptor =
|
|
123902
|
+
_registerStorage(storage2, storageMap) {
|
|
123903
|
+
const descriptor = storage2.getInstrumentDescriptor();
|
|
123904
123904
|
const storages = storageMap.get(descriptor.name);
|
|
123905
123905
|
if (storages === void 0) {
|
|
123906
|
-
storageMap.set(descriptor.name, [
|
|
123906
|
+
storageMap.set(descriptor.name, [storage2]);
|
|
123907
123907
|
return;
|
|
123908
123908
|
}
|
|
123909
|
-
storages.push(
|
|
123909
|
+
storages.push(storage2);
|
|
123910
123910
|
}
|
|
123911
123911
|
_findOrUpdateCompatibleStorage(expectedDescriptor, existingStorages) {
|
|
123912
123912
|
let compatibleStorage = null;
|
|
@@ -124324,9 +124324,9 @@ var require_MeterSharedState = __commonJS({
|
|
|
124324
124324
|
}
|
|
124325
124325
|
const aggregator = aggregation.createAggregator(descriptor);
|
|
124326
124326
|
const cardinalityLimit = collector.selectCardinalityLimit(descriptor.type);
|
|
124327
|
-
const
|
|
124328
|
-
this.metricStorageRegistry.registerForCollector(collector,
|
|
124329
|
-
return
|
|
124327
|
+
const storage2 = new MetricStorageType(descriptor, aggregator, (0, AttributesProcessor_1.createNoopAttributesProcessor)(), [collector], cardinalityLimit);
|
|
124328
|
+
this.metricStorageRegistry.registerForCollector(collector, storage2);
|
|
124329
|
+
return storage2;
|
|
124330
124330
|
});
|
|
124331
124331
|
storages = storages.concat(collectorStorages);
|
|
124332
124332
|
}
|
|
@@ -233447,8 +233447,8 @@ var require_cache4 = __commonJS({
|
|
|
233447
233447
|
*/
|
|
233448
233448
|
#queryCache(requestQuery, options2, targetStorage) {
|
|
233449
233449
|
const resultList = [];
|
|
233450
|
-
const
|
|
233451
|
-
for (const requestResponse of
|
|
233450
|
+
const storage2 = targetStorage ?? this.#relevantRequestResponseList;
|
|
233451
|
+
for (const requestResponse of storage2) {
|
|
233452
233452
|
const [cachedRequest, cachedResponse] = requestResponse;
|
|
233453
233453
|
if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options2)) {
|
|
233454
233454
|
resultList.push(requestResponse);
|
|
@@ -252648,11 +252648,11 @@ var SignerExceptionMessages;
|
|
|
252648
252648
|
var DEFAULT_SIGNING_VERSION = "v2";
|
|
252649
252649
|
var SEVEN_DAYS = 7 * 24 * 60 * 60;
|
|
252650
252650
|
var URLSigner = class {
|
|
252651
|
-
constructor(auth2, bucket, file,
|
|
252651
|
+
constructor(auth2, bucket, file, storage2 = new Storage()) {
|
|
252652
252652
|
this.auth = auth2;
|
|
252653
252653
|
this.bucket = bucket;
|
|
252654
252654
|
this.file = file;
|
|
252655
|
-
this.storage =
|
|
252655
|
+
this.storage = storage2;
|
|
252656
252656
|
}
|
|
252657
252657
|
getSignedUrl(cfg) {
|
|
252658
252658
|
const expiresInSeconds = this.parseExpires(cfg.expires);
|
|
@@ -257203,7 +257203,7 @@ var Bucket = class _Bucket extends ServiceObject {
|
|
|
257203
257203
|
getFilesStream(query) {
|
|
257204
257204
|
return new Readable2();
|
|
257205
257205
|
}
|
|
257206
|
-
constructor(
|
|
257206
|
+
constructor(storage2, name4, options2) {
|
|
257207
257207
|
var _a3, _b, _c, _d;
|
|
257208
257208
|
options2 = options2 || {};
|
|
257209
257209
|
name4 = name4.replace(/^gs:\/\//, "").replace(/\/+$/, "");
|
|
@@ -257565,14 +257565,14 @@ var Bucket = class _Bucket extends ServiceObject {
|
|
|
257565
257565
|
}
|
|
257566
257566
|
};
|
|
257567
257567
|
super({
|
|
257568
|
-
parent:
|
|
257568
|
+
parent: storage2,
|
|
257569
257569
|
baseUrl: "/b",
|
|
257570
257570
|
id: name4,
|
|
257571
|
-
createMethod:
|
|
257571
|
+
createMethod: storage2.createBucket.bind(storage2),
|
|
257572
257572
|
methods
|
|
257573
257573
|
});
|
|
257574
257574
|
this.name = name4;
|
|
257575
|
-
this.storage =
|
|
257575
|
+
this.storage = storage2;
|
|
257576
257576
|
this.userProject = options2.userProject;
|
|
257577
257577
|
this.acl = new Acl({
|
|
257578
257578
|
request: this.request.bind(this),
|
|
@@ -257585,7 +257585,7 @@ var Bucket = class _Bucket extends ServiceObject {
|
|
|
257585
257585
|
this.crc32cGenerator = options2.crc32cGenerator || this.storage.crc32cGenerator;
|
|
257586
257586
|
this.iam = new Iam(this);
|
|
257587
257587
|
this.getFilesStream = import_paginator.paginator.streamify("getFiles");
|
|
257588
|
-
this.instanceRetryValue =
|
|
257588
|
+
this.instanceRetryValue = storage2.retryOptions.autoRetry;
|
|
257589
257589
|
this.instancePreconditionOpts = options2 === null || options2 === void 0 ? void 0 : options2.preconditionOpts;
|
|
257590
257590
|
}
|
|
257591
257591
|
/**
|
|
@@ -260271,9 +260271,9 @@ import_paginator.paginator.extend(Bucket, "getFiles");
|
|
|
260271
260271
|
// node_modules/@google-cloud/storage/build/esm/src/channel.js
|
|
260272
260272
|
var import_promisify7 = __toESM(require_src14(), 1);
|
|
260273
260273
|
var Channel = class extends ServiceObject {
|
|
260274
|
-
constructor(
|
|
260274
|
+
constructor(storage2, id, resourceId) {
|
|
260275
260275
|
const config2 = {
|
|
260276
|
-
parent:
|
|
260276
|
+
parent: storage2,
|
|
260277
260277
|
baseUrl: "/channels",
|
|
260278
260278
|
// An ID shouldn't be included in the API requests.
|
|
260279
260279
|
// RE:
|
|
@@ -260363,7 +260363,7 @@ var HmacKey = class extends ServiceObject {
|
|
|
260363
260363
|
* const hmacKey = storage.hmacKey('access-id');
|
|
260364
260364
|
* ```
|
|
260365
260365
|
*/
|
|
260366
|
-
constructor(
|
|
260366
|
+
constructor(storage2, accessId, options2) {
|
|
260367
260367
|
const methods = {
|
|
260368
260368
|
/**
|
|
260369
260369
|
* @typedef {object} DeleteHmacKeyOptions
|
|
@@ -260601,15 +260601,15 @@ var HmacKey = class extends ServiceObject {
|
|
|
260601
260601
|
}
|
|
260602
260602
|
}
|
|
260603
260603
|
};
|
|
260604
|
-
const projectId = options2 && options2.projectId ||
|
|
260604
|
+
const projectId = options2 && options2.projectId || storage2.projectId;
|
|
260605
260605
|
super({
|
|
260606
|
-
parent:
|
|
260606
|
+
parent: storage2,
|
|
260607
260607
|
id: accessId,
|
|
260608
260608
|
baseUrl: `/projects/${projectId}/hmacKeys`,
|
|
260609
260609
|
methods
|
|
260610
260610
|
});
|
|
260611
|
-
this.storage =
|
|
260612
|
-
this.instanceRetryValue =
|
|
260611
|
+
this.storage = storage2;
|
|
260612
|
+
this.instanceRetryValue = storage2.retryOptions.autoRetry;
|
|
260613
260613
|
}
|
|
260614
260614
|
setMetadata(metadata2, optionsOrCallback, cb) {
|
|
260615
260615
|
if (this.storage.retryOptions.idempotencyStrategy !== IdempotencyStrategy.RetryAlways) {
|
|
@@ -285567,28 +285567,28 @@ var HybridTokenStorage = class extends BaseTokenStorage {
|
|
|
285567
285567
|
return await this.storageInitPromise;
|
|
285568
285568
|
}
|
|
285569
285569
|
async getCredentials(serverName) {
|
|
285570
|
-
const
|
|
285571
|
-
return
|
|
285570
|
+
const storage2 = await this.getStorage();
|
|
285571
|
+
return storage2.getCredentials(serverName);
|
|
285572
285572
|
}
|
|
285573
285573
|
async setCredentials(credentials) {
|
|
285574
|
-
const
|
|
285575
|
-
await
|
|
285574
|
+
const storage2 = await this.getStorage();
|
|
285575
|
+
await storage2.setCredentials(credentials);
|
|
285576
285576
|
}
|
|
285577
285577
|
async deleteCredentials(serverName) {
|
|
285578
|
-
const
|
|
285579
|
-
await
|
|
285578
|
+
const storage2 = await this.getStorage();
|
|
285579
|
+
await storage2.deleteCredentials(serverName);
|
|
285580
285580
|
}
|
|
285581
285581
|
async listServers() {
|
|
285582
|
-
const
|
|
285583
|
-
return
|
|
285582
|
+
const storage2 = await this.getStorage();
|
|
285583
|
+
return storage2.listServers();
|
|
285584
285584
|
}
|
|
285585
285585
|
async getAllCredentials() {
|
|
285586
|
-
const
|
|
285587
|
-
return
|
|
285586
|
+
const storage2 = await this.getStorage();
|
|
285587
|
+
return storage2.getAllCredentials();
|
|
285588
285588
|
}
|
|
285589
285589
|
async clearAll() {
|
|
285590
|
-
const
|
|
285591
|
-
await
|
|
285590
|
+
const storage2 = await this.getStorage();
|
|
285591
|
+
await storage2.clearAll();
|
|
285592
285592
|
}
|
|
285593
285593
|
async getStorageType() {
|
|
285594
285594
|
await this.getStorage();
|
|
@@ -285600,6 +285600,7 @@ var HybridTokenStorage = class extends BaseTokenStorage {
|
|
|
285600
285600
|
import * as path14 from "node:path";
|
|
285601
285601
|
import * as os5 from "node:os";
|
|
285602
285602
|
import { promises as fs21 } from "node:fs";
|
|
285603
|
+
init_events();
|
|
285603
285604
|
var KEYCHAIN_SERVICE_NAME = "gemini-cli-oauth";
|
|
285604
285605
|
var MAIN_ACCOUNT_KEY = "main-account";
|
|
285605
285606
|
var OAuthCredentialStorage = class {
|
|
@@ -285625,8 +285626,8 @@ var OAuthCredentialStorage = class {
|
|
|
285625
285626
|
}
|
|
285626
285627
|
return await this.migrateFromFileStorage();
|
|
285627
285628
|
} catch (error) {
|
|
285628
|
-
|
|
285629
|
-
throw new Error("Failed to load OAuth credentials");
|
|
285629
|
+
coreEvents.emitFeedback("error", "Failed to load OAuth credentials", error);
|
|
285630
|
+
throw new Error("Failed to load OAuth credentials", { cause: error });
|
|
285630
285631
|
}
|
|
285631
285632
|
}
|
|
285632
285633
|
/**
|
|
@@ -285659,8 +285660,8 @@ var OAuthCredentialStorage = class {
|
|
|
285659
285660
|
await fs21.rm(oldFilePath, { force: true }).catch(() => {
|
|
285660
285661
|
});
|
|
285661
285662
|
} catch (error) {
|
|
285662
|
-
|
|
285663
|
-
throw new Error("Failed to clear OAuth credentials");
|
|
285663
|
+
coreEvents.emitFeedback("error", "Failed to clear OAuth credentials", error);
|
|
285664
|
+
throw new Error("Failed to clear OAuth credentials", { cause: error });
|
|
285664
285665
|
}
|
|
285665
285666
|
}
|
|
285666
285667
|
/**
|
|
@@ -287210,6 +287211,7 @@ var API_REQUEST_LATENCY = "gemini_cli.api.request.latency";
|
|
|
287210
287211
|
var TOKEN_USAGE = "gemini_cli.token.usage";
|
|
287211
287212
|
var SESSION_COUNT = "gemini_cli.session.count";
|
|
287212
287213
|
var FILE_OPERATION_COUNT = "gemini_cli.file.operation.count";
|
|
287214
|
+
var LINES_CHANGED = "gemini_cli.lines.changed";
|
|
287213
287215
|
var INVALID_CHUNK_COUNT = "gemini_cli.chat.invalid_chunk.count";
|
|
287214
287216
|
var CONTENT_RETRY_COUNT = "gemini_cli.chat.content_retry.count";
|
|
287215
287217
|
var CONTENT_RETRY_FAILURE_COUNT = "gemini_cli.chat.content_retry_failure.count";
|
|
@@ -287268,6 +287270,12 @@ var COUNTER_DEFINITIONS = {
|
|
|
287268
287270
|
assign: (c4) => fileOperationCounter = c4,
|
|
287269
287271
|
attributes: {}
|
|
287270
287272
|
},
|
|
287273
|
+
[LINES_CHANGED]: {
|
|
287274
|
+
description: "Number of lines changed (from file diffs).",
|
|
287275
|
+
valueType: ValueType.INT,
|
|
287276
|
+
assign: (c4) => linesChangedCounter = c4,
|
|
287277
|
+
attributes: {}
|
|
287278
|
+
},
|
|
287271
287279
|
[INVALID_CHUNK_COUNT]: {
|
|
287272
287280
|
description: "Counts invalid chunks received from a stream.",
|
|
287273
287281
|
valueType: ValueType.INT,
|
|
@@ -287512,6 +287520,7 @@ var apiRequestLatencyHistogram;
|
|
|
287512
287520
|
var tokenUsageCounter;
|
|
287513
287521
|
var sessionCounter;
|
|
287514
287522
|
var fileOperationCounter;
|
|
287523
|
+
var linesChangedCounter;
|
|
287515
287524
|
var chatCompressionCounter;
|
|
287516
287525
|
var invalidChunkCounter;
|
|
287517
287526
|
var contentRetryCounter;
|
|
@@ -287627,6 +287636,17 @@ function recordFileOperationMetric(config2, attributes) {
|
|
|
287627
287636
|
...attributes
|
|
287628
287637
|
});
|
|
287629
287638
|
}
|
|
287639
|
+
function recordLinesChanged(config2, lines, changeType, attributes) {
|
|
287640
|
+
if (!linesChangedCounter || !isMetricsInitialized)
|
|
287641
|
+
return;
|
|
287642
|
+
if (!Number.isFinite(lines) || lines <= 0)
|
|
287643
|
+
return;
|
|
287644
|
+
linesChangedCounter.add(lines, {
|
|
287645
|
+
...baseMetricDefinition.getCommonAttributes(config2),
|
|
287646
|
+
type: changeType,
|
|
287647
|
+
...attributes ?? {}
|
|
287648
|
+
});
|
|
287649
|
+
}
|
|
287630
287650
|
function recordContentRetry(config2) {
|
|
287631
287651
|
if (!contentRetryCounter || !isMetricsInitialized)
|
|
287632
287652
|
return;
|
|
@@ -288967,8 +288987,8 @@ var Float64Vector = import_vector.default.Float64Vector;
|
|
|
288967
288987
|
var PointerVector = import_vector.default.PointerVector;
|
|
288968
288988
|
|
|
288969
288989
|
// packages/core/dist/src/generated/git-commit.js
|
|
288970
|
-
var GIT_COMMIT_INFO = "
|
|
288971
|
-
var CLI_VERSION = "0.
|
|
288990
|
+
var GIT_COMMIT_INFO = "c89bc30d";
|
|
288991
|
+
var CLI_VERSION = "0.13.0-nightly.20251031.c89bc30d";
|
|
288972
288992
|
|
|
288973
288993
|
// packages/core/dist/src/ide/detect-ide.js
|
|
288974
288994
|
var IDE_DEFINITIONS = {
|
|
@@ -289337,6 +289357,7 @@ var ClearcutLogger = class _ClearcutLogger {
|
|
|
289337
289357
|
gemini_cli_key: EventMetadataKey.GEMINI_CLI_START_SESSION_EXTENSIONS_COUNT,
|
|
289338
289358
|
value: event.extensions_count.toString()
|
|
289339
289359
|
},
|
|
289360
|
+
// We deliberately do not log the names of extensions here, to be safe.
|
|
289340
289361
|
{
|
|
289341
289362
|
gemini_cli_key: EventMetadataKey.GEMINI_CLI_START_SESSION_EXTENSION_IDS,
|
|
289342
289363
|
value: event.extension_ids.toString()
|
|
@@ -289414,6 +289435,12 @@ var ClearcutLogger = class _ClearcutLogger {
|
|
|
289414
289435
|
}
|
|
289415
289436
|
}
|
|
289416
289437
|
}
|
|
289438
|
+
if (event.extension_id) {
|
|
289439
|
+
data.push({
|
|
289440
|
+
gemini_cli_key: EventMetadataKey.GEMINI_CLI_EXTENSION_ID,
|
|
289441
|
+
value: event.extension_id
|
|
289442
|
+
});
|
|
289443
|
+
}
|
|
289417
289444
|
const logEvent = this.createLogEvent(EventNames.TOOL_CALL, data);
|
|
289418
289445
|
this.enqueueLogEvent(logEvent);
|
|
289419
289446
|
this.flushIfNeeded();
|
|
@@ -289594,6 +289621,12 @@ var ClearcutLogger = class _ClearcutLogger {
|
|
|
289594
289621
|
value: JSON.stringify(event.status)
|
|
289595
289622
|
});
|
|
289596
289623
|
}
|
|
289624
|
+
if (event.extension_id) {
|
|
289625
|
+
data.push({
|
|
289626
|
+
gemini_cli_key: EventMetadataKey.GEMINI_CLI_EXTENSION_ID,
|
|
289627
|
+
value: event.extension_id
|
|
289628
|
+
});
|
|
289629
|
+
}
|
|
289597
289630
|
this.enqueueLogEvent(this.createLogEvent(EventNames.SLASH_COMMAND, data));
|
|
289598
289631
|
this.flushIfNeeded();
|
|
289599
289632
|
}
|
|
@@ -291092,14 +291125,22 @@ function logToolCall(config2, event) {
|
|
|
291092
291125
|
function_name: event.function_name,
|
|
291093
291126
|
success: event.success,
|
|
291094
291127
|
decision: event.decision,
|
|
291095
|
-
tool_type: event.tool_type
|
|
291096
|
-
...event.metadata ? {
|
|
291097
|
-
model_added_lines: event.metadata["model_added_lines"],
|
|
291098
|
-
model_removed_lines: event.metadata["model_removed_lines"],
|
|
291099
|
-
user_added_lines: event.metadata["user_added_lines"],
|
|
291100
|
-
user_removed_lines: event.metadata["user_removed_lines"]
|
|
291101
|
-
} : {}
|
|
291128
|
+
tool_type: event.tool_type
|
|
291102
291129
|
});
|
|
291130
|
+
if (event.metadata) {
|
|
291131
|
+
const added = event.metadata["model_added_lines"];
|
|
291132
|
+
if (typeof added === "number" && added > 0) {
|
|
291133
|
+
recordLinesChanged(config2, added, "added", {
|
|
291134
|
+
function_name: event.function_name
|
|
291135
|
+
});
|
|
291136
|
+
}
|
|
291137
|
+
const removed = event.metadata["model_removed_lines"];
|
|
291138
|
+
if (typeof removed === "number" && removed > 0) {
|
|
291139
|
+
recordLinesChanged(config2, removed, "removed", {
|
|
291140
|
+
function_name: event.function_name
|
|
291141
|
+
});
|
|
291142
|
+
}
|
|
291143
|
+
}
|
|
291103
291144
|
}
|
|
291104
291145
|
function logToolOutputTruncated(config2, event) {
|
|
291105
291146
|
ClearcutLogger.getInstance(config2)?.logToolOutputTruncatedEvent(event);
|
|
@@ -291536,6 +291577,26 @@ async function createCodeAssistContentGenerator(httpOptions, authType, config2,
|
|
|
291536
291577
|
throw new Error(`Unsupported authType: ${authType}`);
|
|
291537
291578
|
}
|
|
291538
291579
|
|
|
291580
|
+
// packages/core/dist/src/core/apiKeyCredentialStorage.js
|
|
291581
|
+
var KEYCHAIN_SERVICE_NAME2 = "gemini-cli-api-key";
|
|
291582
|
+
var DEFAULT_API_KEY_ENTRY = "default-api-key";
|
|
291583
|
+
var storage = new HybridTokenStorage(KEYCHAIN_SERVICE_NAME2);
|
|
291584
|
+
async function loadApiKey() {
|
|
291585
|
+
try {
|
|
291586
|
+
const credentials = await storage.getCredentials(DEFAULT_API_KEY_ENTRY);
|
|
291587
|
+
if (credentials?.token?.accessToken) {
|
|
291588
|
+
return credentials.token.accessToken;
|
|
291589
|
+
}
|
|
291590
|
+
return null;
|
|
291591
|
+
} catch (error) {
|
|
291592
|
+
if (error instanceof Error && error.message === "Token file does not exist") {
|
|
291593
|
+
return null;
|
|
291594
|
+
}
|
|
291595
|
+
debugLogger.error("Failed to load API key from storage:", error);
|
|
291596
|
+
return null;
|
|
291597
|
+
}
|
|
291598
|
+
}
|
|
291599
|
+
|
|
291539
291600
|
// packages/core/dist/src/core/fakeContentGenerator.js
|
|
291540
291601
|
import { promises } from "node:fs";
|
|
291541
291602
|
var FakeContentGenerator = class _FakeContentGenerator {
|
|
@@ -291659,8 +291720,8 @@ var AuthType2;
|
|
|
291659
291720
|
AuthType3["USE_VERTEX_AI"] = "vertex-ai";
|
|
291660
291721
|
AuthType3["CLOUD_SHELL"] = "cloud-shell";
|
|
291661
291722
|
})(AuthType2 || (AuthType2 = {}));
|
|
291662
|
-
function createContentGeneratorConfig(config2, authType) {
|
|
291663
|
-
const geminiApiKey = process.env["GEMINI_API_KEY"] || void 0;
|
|
291723
|
+
async function createContentGeneratorConfig(config2, authType) {
|
|
291724
|
+
const geminiApiKey = await loadApiKey() || process.env["GEMINI_API_KEY"] || void 0;
|
|
291664
291725
|
const googleApiKey = process.env["GOOGLE_API_KEY"] || void 0;
|
|
291665
291726
|
const googleCloudProject = process.env["GOOGLE_CLOUD_PROJECT"] || process.env["GOOGLE_CLOUD_PROJECT_ID"] || void 0;
|
|
291666
291727
|
const googleCloudLocation = process.env["GOOGLE_CLOUD_LOCATION"] || void 0;
|
|
@@ -291688,7 +291749,7 @@ async function createContentGenerator(config2, gcConfig, sessionId2) {
|
|
|
291688
291749
|
if (gcConfig.fakeResponses) {
|
|
291689
291750
|
return FakeContentGenerator.fromFile(gcConfig.fakeResponses);
|
|
291690
291751
|
}
|
|
291691
|
-
const version3 = "0.
|
|
291752
|
+
const version3 = "0.13.0-nightly.20251031.c89bc30d";
|
|
291692
291753
|
const userAgent = `GeminiCLI/${version3} (${process.platform}; ${process.arch})`;
|
|
291693
291754
|
const baseHeaders = {
|
|
291694
291755
|
"User-Agent": userAgent
|
|
@@ -300244,6 +300305,7 @@ var McpClient = class {
|
|
|
300244
300305
|
if (this.status !== MCPServerStatus.CONNECTED) {
|
|
300245
300306
|
return;
|
|
300246
300307
|
}
|
|
300308
|
+
this.toolRegistry.removeMcpToolsByServer(this.serverName);
|
|
300247
300309
|
this.updateStatus(MCPServerStatus.DISCONNECTING);
|
|
300248
300310
|
const client = this.client;
|
|
300249
300311
|
this.client = void 0;
|
|
@@ -300809,40 +300871,123 @@ init_events();
|
|
|
300809
300871
|
var McpClientManager = class {
|
|
300810
300872
|
clients = /* @__PURE__ */ new Map();
|
|
300811
300873
|
toolRegistry;
|
|
300874
|
+
cliConfig;
|
|
300875
|
+
// If we have ongoing MCP client discovery, this completes once that is done.
|
|
300876
|
+
discoveryPromise;
|
|
300812
300877
|
discoveryState = MCPDiscoveryState.NOT_STARTED;
|
|
300813
300878
|
eventEmitter;
|
|
300814
|
-
constructor(toolRegistry, eventEmitter) {
|
|
300879
|
+
constructor(toolRegistry, cliConfig, eventEmitter) {
|
|
300815
300880
|
this.toolRegistry = toolRegistry;
|
|
300881
|
+
this.cliConfig = cliConfig;
|
|
300816
300882
|
this.eventEmitter = eventEmitter;
|
|
300883
|
+
if (this.cliConfig.getEnableExtensionReloading()) {
|
|
300884
|
+
this.cliConfig.getExtensionLoader().extensionEvents().on("extensionLoaded", (event) => this.loadExtension(event.extension)).on("extensionEnabled", (event) => this.loadExtension(event.extension)).on("extensionDisabled", (event) => this.unloadExtension(event.extension)).on("extensionUnloaded", (event) => this.unloadExtension(event.extension));
|
|
300885
|
+
}
|
|
300886
|
+
}
|
|
300887
|
+
/**
|
|
300888
|
+
* For all the MCP servers associated with this extension:
|
|
300889
|
+
*
|
|
300890
|
+
* - Removes all its MCP servers from the global configuration object.
|
|
300891
|
+
* - Disconnects all MCP clients from their servers.
|
|
300892
|
+
* - Updates the Gemini chat configuration to load the new tools.
|
|
300893
|
+
*/
|
|
300894
|
+
async unloadExtension(extension) {
|
|
300895
|
+
debugLogger.log(`Unloading extension: ${extension.name}`);
|
|
300896
|
+
await Promise.all(Object.keys(extension.mcpServers ?? {}).map((name4) => {
|
|
300897
|
+
const newMcpServers = {
|
|
300898
|
+
...this.cliConfig.getMcpServers()
|
|
300899
|
+
};
|
|
300900
|
+
delete newMcpServers[name4];
|
|
300901
|
+
this.cliConfig.setMcpServers(newMcpServers);
|
|
300902
|
+
return this.disconnectClient(name4);
|
|
300903
|
+
}));
|
|
300904
|
+
this.cliConfig.getGeminiClient().setTools();
|
|
300905
|
+
}
|
|
300906
|
+
/**
|
|
300907
|
+
* For all the MCP servers associated with this extension:
|
|
300908
|
+
*
|
|
300909
|
+
* - Adds all its MCP servers to the global configuration object.
|
|
300910
|
+
* - Connects MCP clients to each server and discovers their tools.
|
|
300911
|
+
* - Updates the Gemini chat configuration to load the new tools.
|
|
300912
|
+
*/
|
|
300913
|
+
async loadExtension(extension) {
|
|
300914
|
+
debugLogger.log(`Loading extension: ${extension.name}`);
|
|
300915
|
+
await Promise.all(Object.entries(extension.mcpServers ?? {}).map(([name4, config2]) => {
|
|
300916
|
+
this.cliConfig.setMcpServers({
|
|
300917
|
+
...this.cliConfig.getMcpServers(),
|
|
300918
|
+
[name4]: config2
|
|
300919
|
+
});
|
|
300920
|
+
return this.discoverMcpTools(name4, config2);
|
|
300921
|
+
}));
|
|
300922
|
+
this.cliConfig.getGeminiClient().setTools();
|
|
300923
|
+
}
|
|
300924
|
+
async disconnectClient(name4) {
|
|
300925
|
+
const existing = this.clients.get(name4);
|
|
300926
|
+
if (existing) {
|
|
300927
|
+
try {
|
|
300928
|
+
this.clients.delete(name4);
|
|
300929
|
+
this.eventEmitter?.emit("mcp-client-update", this.clients);
|
|
300930
|
+
await existing.disconnect();
|
|
300931
|
+
} catch (error) {
|
|
300932
|
+
debugLogger.warn(`Error stopping client '${name4}': ${getErrorMessage(error)}`);
|
|
300933
|
+
}
|
|
300934
|
+
}
|
|
300935
|
+
}
|
|
300936
|
+
discoverMcpTools(name4, config2) {
|
|
300937
|
+
if (!this.cliConfig.isTrustedFolder()) {
|
|
300938
|
+
return;
|
|
300939
|
+
}
|
|
300940
|
+
if (config2.extension && !config2.extension.isActive) {
|
|
300941
|
+
return;
|
|
300942
|
+
}
|
|
300943
|
+
const currentDiscoveryPromise = new Promise((resolve13, _reject) => {
|
|
300944
|
+
(async () => {
|
|
300945
|
+
try {
|
|
300946
|
+
await this.disconnectClient(name4);
|
|
300947
|
+
const client = new McpClient(name4, config2, this.toolRegistry, this.cliConfig.getPromptRegistry(), this.cliConfig.getWorkspaceContext(), this.cliConfig.getDebugMode());
|
|
300948
|
+
this.clients.set(name4, client);
|
|
300949
|
+
this.eventEmitter?.emit("mcp-client-update", this.clients);
|
|
300950
|
+
try {
|
|
300951
|
+
await client.connect();
|
|
300952
|
+
await client.discover(this.cliConfig);
|
|
300953
|
+
this.eventEmitter?.emit("mcp-client-update", this.clients);
|
|
300954
|
+
} catch (error) {
|
|
300955
|
+
this.eventEmitter?.emit("mcp-client-update", this.clients);
|
|
300956
|
+
coreEvents.emitFeedback("error", `Error during discovery for server '${name4}': ${getErrorMessage(error)}`, error);
|
|
300957
|
+
}
|
|
300958
|
+
} finally {
|
|
300959
|
+
resolve13();
|
|
300960
|
+
}
|
|
300961
|
+
})();
|
|
300962
|
+
});
|
|
300963
|
+
if (this.discoveryPromise) {
|
|
300964
|
+
this.discoveryPromise = this.discoveryPromise.then(() => currentDiscoveryPromise);
|
|
300965
|
+
} else {
|
|
300966
|
+
this.discoveryState = MCPDiscoveryState.IN_PROGRESS;
|
|
300967
|
+
this.discoveryPromise = currentDiscoveryPromise;
|
|
300968
|
+
}
|
|
300969
|
+
const currentPromise = this.discoveryPromise;
|
|
300970
|
+
currentPromise.then((_) => {
|
|
300971
|
+
if (currentPromise === this.discoveryPromise) {
|
|
300972
|
+
this.discoveryPromise = void 0;
|
|
300973
|
+
this.discoveryState = MCPDiscoveryState.COMPLETED;
|
|
300974
|
+
}
|
|
300975
|
+
});
|
|
300976
|
+
return currentPromise;
|
|
300817
300977
|
}
|
|
300818
300978
|
/**
|
|
300819
300979
|
* Initiates the tool discovery process for all configured MCP servers.
|
|
300820
300980
|
* It connects to each server, discovers its available tools, and registers
|
|
300821
300981
|
* them with the `ToolRegistry`.
|
|
300822
300982
|
*/
|
|
300823
|
-
async discoverAllMcpTools(
|
|
300824
|
-
if (!cliConfig.isTrustedFolder()) {
|
|
300983
|
+
async discoverAllMcpTools() {
|
|
300984
|
+
if (!this.cliConfig.isTrustedFolder()) {
|
|
300825
300985
|
return;
|
|
300826
300986
|
}
|
|
300827
300987
|
await this.stop();
|
|
300828
|
-
const servers = populateMcpServerCommand(cliConfig.getMcpServers() || {}, cliConfig.getMcpServerCommand());
|
|
300829
|
-
this.discoveryState = MCPDiscoveryState.IN_PROGRESS;
|
|
300988
|
+
const servers = populateMcpServerCommand(this.cliConfig.getMcpServers() || {}, this.cliConfig.getMcpServerCommand());
|
|
300830
300989
|
this.eventEmitter?.emit("mcp-client-update", this.clients);
|
|
300831
|
-
|
|
300832
|
-
const client = new McpClient(name4, config2, this.toolRegistry, cliConfig.getPromptRegistry(), cliConfig.getWorkspaceContext(), cliConfig.getDebugMode());
|
|
300833
|
-
this.clients.set(name4, client);
|
|
300834
|
-
this.eventEmitter?.emit("mcp-client-update", this.clients);
|
|
300835
|
-
try {
|
|
300836
|
-
await client.connect();
|
|
300837
|
-
await client.discover(cliConfig);
|
|
300838
|
-
this.eventEmitter?.emit("mcp-client-update", this.clients);
|
|
300839
|
-
} catch (error) {
|
|
300840
|
-
this.eventEmitter?.emit("mcp-client-update", this.clients);
|
|
300841
|
-
coreEvents.emitFeedback("error", `Error during discovery for server '${name4}': ${getErrorMessage(error)}`, error);
|
|
300842
|
-
}
|
|
300843
|
-
});
|
|
300844
|
-
await Promise.all(discoveryPromises);
|
|
300845
|
-
this.discoveryState = MCPDiscoveryState.COMPLETED;
|
|
300990
|
+
await Promise.all(Object.entries(servers).map(async ([name4, config2]) => this.discoverMcpTools(name4, config2)));
|
|
300846
300991
|
}
|
|
300847
300992
|
/**
|
|
300848
300993
|
* Stops all running local MCP servers and closes all client connections.
|
|
@@ -300990,7 +301135,7 @@ var ToolRegistry = class {
|
|
|
300990
301135
|
messageBus;
|
|
300991
301136
|
constructor(config2, eventEmitter) {
|
|
300992
301137
|
this.config = config2;
|
|
300993
|
-
this.mcpClientManager = new McpClientManager(this, eventEmitter);
|
|
301138
|
+
this.mcpClientManager = new McpClientManager(this, config2, eventEmitter);
|
|
300994
301139
|
}
|
|
300995
301140
|
setMessageBus(messageBus) {
|
|
300996
301141
|
this.messageBus = messageBus;
|
|
@@ -301039,7 +301184,7 @@ var ToolRegistry = class {
|
|
|
301039
301184
|
this.removeDiscoveredTools();
|
|
301040
301185
|
this.config.getPromptRegistry().clear();
|
|
301041
301186
|
await this.discoverAndRegisterToolsFromCommand();
|
|
301042
|
-
await this.mcpClientManager.discoverAllMcpTools(
|
|
301187
|
+
await this.mcpClientManager.discoverAllMcpTools();
|
|
301043
301188
|
}
|
|
301044
301189
|
/**
|
|
301045
301190
|
* Discovers tools from project (if available and configured).
|
|
@@ -301049,7 +301194,7 @@ var ToolRegistry = class {
|
|
|
301049
301194
|
async discoverMcpTools() {
|
|
301050
301195
|
this.removeDiscoveredTools();
|
|
301051
301196
|
this.config.getPromptRegistry().clear();
|
|
301052
|
-
await this.mcpClientManager.discoverAllMcpTools(
|
|
301197
|
+
await this.mcpClientManager.discoverAllMcpTools();
|
|
301053
301198
|
}
|
|
301054
301199
|
/**
|
|
301055
301200
|
* Restarts all MCP servers and re-discovers tools.
|
|
@@ -326421,8 +326566,7 @@ var EditToolInvocation2 = class extends BaseToolInvocation {
|
|
|
326421
326566
|
"Proposed",
|
|
326422
326567
|
DEFAULT_DIFF_OPTIONS
|
|
326423
326568
|
);
|
|
326424
|
-
const
|
|
326425
|
-
const diffStat = getDiffStat(fileName, editData.currentContent ?? "", originallyProposedContent, this.params.new_string);
|
|
326569
|
+
const diffStat = getDiffStat(fileName, editData.currentContent ?? "", editData.newContent, this.params.new_string);
|
|
326426
326570
|
displayResult = {
|
|
326427
326571
|
fileDiff,
|
|
326428
326572
|
fileName,
|
|
@@ -332285,7 +332429,7 @@ var ShellToolInvocation = class extends BaseToolInvocation {
|
|
|
332285
332429
|
const pgrepLines = fs41.readFileSync(tempFilePath, "utf8").split(EOL3).filter(Boolean);
|
|
332286
332430
|
for (const line of pgrepLines) {
|
|
332287
332431
|
if (!/^\d+$/.test(line)) {
|
|
332288
|
-
|
|
332432
|
+
debugLogger.error(`pgrep: ${line}`);
|
|
332289
332433
|
}
|
|
332290
332434
|
const pid2 = Number(line);
|
|
332291
332435
|
if (pid2 !== result.pid) {
|
|
@@ -332294,7 +332438,7 @@ var ShellToolInvocation = class extends BaseToolInvocation {
|
|
|
332294
332438
|
}
|
|
332295
332439
|
} else {
|
|
332296
332440
|
if (!signal.aborted) {
|
|
332297
|
-
|
|
332441
|
+
debugLogger.error("missing pgrep output");
|
|
332298
332442
|
}
|
|
332299
332443
|
}
|
|
332300
332444
|
}
|
|
@@ -332446,7 +332590,7 @@ var ShellTool = class _ShellTool extends BaseDeclarativeTool {
|
|
|
332446
332590
|
const commandCheck = isCommandAllowed(params.command, this.config);
|
|
332447
332591
|
if (!commandCheck.allowed) {
|
|
332448
332592
|
if (!commandCheck.reason) {
|
|
332449
|
-
|
|
332593
|
+
debugLogger.error("Unexpected: isCommandAllowed returned false without a reason");
|
|
332450
332594
|
return `Command is not allowed: ${params.command}`;
|
|
332451
332595
|
}
|
|
332452
332596
|
return commandCheck.reason;
|
|
@@ -339853,6 +339997,7 @@ var GeminiChat = class {
|
|
|
339853
339997
|
// model.
|
|
339854
339998
|
sendPromise = Promise.resolve();
|
|
339855
339999
|
chatRecordingService;
|
|
340000
|
+
lastPromptTokenCount;
|
|
339856
340001
|
constructor(config2, generationConfig = {}, history = []) {
|
|
339857
340002
|
this.config = config2;
|
|
339858
340003
|
this.generationConfig = generationConfig;
|
|
@@ -339860,6 +340005,7 @@ var GeminiChat = class {
|
|
|
339860
340005
|
validateHistory2(history);
|
|
339861
340006
|
this.chatRecordingService = new ChatRecordingService(config2);
|
|
339862
340007
|
this.chatRecordingService.initialize();
|
|
340008
|
+
this.lastPromptTokenCount = Math.ceil(JSON.stringify(this.history).length / 4);
|
|
339863
340009
|
}
|
|
339864
340010
|
setSystemInstruction(sysInstr) {
|
|
339865
340011
|
this.generationConfig.systemInstruction = sysInstr;
|
|
@@ -340075,7 +340221,7 @@ This error was probably caused by cyclic schema references in one of the followi
|
|
|
340075
340221
|
if (chunk2.usageMetadata) {
|
|
340076
340222
|
this.chatRecordingService.recordMessageTokens(chunk2.usageMetadata);
|
|
340077
340223
|
if (chunk2.usageMetadata.promptTokenCount !== void 0) {
|
|
340078
|
-
|
|
340224
|
+
this.lastPromptTokenCount = chunk2.usageMetadata.promptTokenCount;
|
|
340079
340225
|
}
|
|
340080
340226
|
}
|
|
340081
340227
|
yield chunk2;
|
|
@@ -340106,6 +340252,9 @@ This error was probably caused by cyclic schema references in one of the followi
|
|
|
340106
340252
|
}
|
|
340107
340253
|
this.history.push({ role: "model", parts: consolidatedParts });
|
|
340108
340254
|
}
|
|
340255
|
+
getLastPromptTokenCount() {
|
|
340256
|
+
return this.lastPromptTokenCount;
|
|
340257
|
+
}
|
|
340109
340258
|
/**
|
|
340110
340259
|
* Gets the chat recording service instance.
|
|
340111
340260
|
*/
|
|
@@ -341164,9 +341313,9 @@ var ChatCompressionService = class {
|
|
|
341164
341313
|
}
|
|
341165
341314
|
};
|
|
341166
341315
|
}
|
|
341167
|
-
const originalTokenCount =
|
|
341316
|
+
const originalTokenCount = chat.getLastPromptTokenCount();
|
|
341168
341317
|
if (!force) {
|
|
341169
|
-
const threshold = config2.
|
|
341318
|
+
const threshold = config2.getCompressionThreshold() ?? DEFAULT_COMPRESSION_TOKEN_THRESHOLD;
|
|
341170
341319
|
if (originalTokenCount < threshold * tokenLimit(model)) {
|
|
341171
341320
|
return {
|
|
341172
341321
|
newHistory: null,
|
|
@@ -341236,7 +341385,6 @@ var ChatCompressionService = class {
|
|
|
341236
341385
|
}
|
|
341237
341386
|
};
|
|
341238
341387
|
} else {
|
|
341239
|
-
uiTelemetryService.setLastPromptTokenCount(newTokenCount);
|
|
341240
341388
|
return {
|
|
341241
341389
|
newHistory: extraHistory,
|
|
341242
341390
|
info: {
|
|
@@ -341279,8 +341427,14 @@ var GeminiClient = class {
|
|
|
341279
341427
|
this.compressionService = new ChatCompressionService();
|
|
341280
341428
|
this.lastPromptId = this.config.getSessionId();
|
|
341281
341429
|
}
|
|
341430
|
+
updateTelemetryTokenCount() {
|
|
341431
|
+
if (this.chat) {
|
|
341432
|
+
uiTelemetryService.setLastPromptTokenCount(this.chat.getLastPromptTokenCount());
|
|
341433
|
+
}
|
|
341434
|
+
}
|
|
341282
341435
|
async initialize() {
|
|
341283
341436
|
this.chat = await this.startChat();
|
|
341437
|
+
this.updateTelemetryTokenCount();
|
|
341284
341438
|
}
|
|
341285
341439
|
getContentGeneratorOrFail() {
|
|
341286
341440
|
if (!this.config.getContentGenerator()) {
|
|
@@ -341318,6 +341472,7 @@ var GeminiClient = class {
|
|
|
341318
341472
|
}
|
|
341319
341473
|
async resetChat() {
|
|
341320
341474
|
this.chat = await this.startChat();
|
|
341475
|
+
this.updateTelemetryTokenCount();
|
|
341321
341476
|
}
|
|
341322
341477
|
getChatRecordingService() {
|
|
341323
341478
|
return this.chat?.getChatRecordingService();
|
|
@@ -341515,7 +341670,7 @@ var GeminiClient = class {
|
|
|
341515
341670
|
}
|
|
341516
341671
|
const modelForLimitCheck = this._getEffectiveModelForCurrentTurn();
|
|
341517
341672
|
const estimatedRequestTokenCount = Math.floor(JSON.stringify(request3).length / 4);
|
|
341518
|
-
const remainingTokenCount = tokenLimit(modelForLimitCheck) -
|
|
341673
|
+
const remainingTokenCount = tokenLimit(modelForLimitCheck) - this.getChat().getLastPromptTokenCount();
|
|
341519
341674
|
if (estimatedRequestTokenCount > remainingTokenCount * 0.95) {
|
|
341520
341675
|
yield {
|
|
341521
341676
|
type: GeminiEventType.ContextWindowWillOverflow,
|
|
@@ -341574,6 +341729,7 @@ var GeminiClient = class {
|
|
|
341574
341729
|
return turn;
|
|
341575
341730
|
}
|
|
341576
341731
|
yield event;
|
|
341732
|
+
this.updateTelemetryTokenCount();
|
|
341577
341733
|
if (event.type === GeminiEventType.InvalidStream) {
|
|
341578
341734
|
if (this.config.getContinueOnFailedApiCall()) {
|
|
341579
341735
|
if (isInvalidStreamRetry) {
|
|
@@ -341661,6 +341817,7 @@ var GeminiClient = class {
|
|
|
341661
341817
|
} else if (info2.compressionStatus === CompressionStatus.COMPRESSED) {
|
|
341662
341818
|
if (newHistory) {
|
|
341663
341819
|
this.chat = await this.startChat(newHistory);
|
|
341820
|
+
this.updateTelemetryTokenCount();
|
|
341664
341821
|
this.forceFullIdeContext = true;
|
|
341665
341822
|
}
|
|
341666
341823
|
}
|
|
@@ -346411,9 +346568,9 @@ var simpleGit = gitInstanceFactory;
|
|
|
346411
346568
|
var GitService = class {
|
|
346412
346569
|
projectRoot;
|
|
346413
346570
|
storage;
|
|
346414
|
-
constructor(projectRoot,
|
|
346571
|
+
constructor(projectRoot, storage2) {
|
|
346415
346572
|
this.projectRoot = path53.resolve(projectRoot);
|
|
346416
|
-
this.storage =
|
|
346573
|
+
this.storage = storage2;
|
|
346417
346574
|
}
|
|
346418
346575
|
getHistoryDir() {
|
|
346419
346576
|
return this.storage.getHistoryDir();
|
|
@@ -349505,13 +349662,14 @@ var Config = class {
|
|
|
349505
349662
|
listExtensions;
|
|
349506
349663
|
_extensionLoader;
|
|
349507
349664
|
_enabledExtensions;
|
|
349665
|
+
enableExtensionReloading;
|
|
349508
349666
|
_blockedMcpServers;
|
|
349509
349667
|
fallbackModelHandler;
|
|
349510
349668
|
quotaErrorOccurred = false;
|
|
349511
349669
|
summarizeToolOutput;
|
|
349512
349670
|
experimentalZedIntegration = false;
|
|
349513
349671
|
loadMemoryFromIncludeDirectories = false;
|
|
349514
|
-
|
|
349672
|
+
compressionThreshold;
|
|
349515
349673
|
interactive;
|
|
349516
349674
|
ptyInfo;
|
|
349517
349675
|
trustedFolder;
|
|
@@ -349599,7 +349757,7 @@ var Config = class {
|
|
|
349599
349757
|
this.folderTrust = params.folderTrust ?? false;
|
|
349600
349758
|
this.ideMode = params.ideMode ?? false;
|
|
349601
349759
|
this.loadMemoryFromIncludeDirectories = params.loadMemoryFromIncludeDirectories ?? false;
|
|
349602
|
-
this.
|
|
349760
|
+
this.compressionThreshold = params.compressionThreshold;
|
|
349603
349761
|
this.interactive = params.interactive ?? false;
|
|
349604
349762
|
this.ptyInfo = params.ptyInfo ?? "child_process";
|
|
349605
349763
|
this.trustedFolder = params.trustedFolder;
|
|
@@ -349619,9 +349777,7 @@ var Config = class {
|
|
|
349619
349777
|
this.useWriteTodos = params.useWriteTodos ?? false;
|
|
349620
349778
|
this.initialUseModelRouter = params.useModelRouter ?? false;
|
|
349621
349779
|
this.useModelRouter = this.initialUseModelRouter;
|
|
349622
|
-
this.disableModelRouterForAuth = params.disableModelRouterForAuth ?? [
|
|
349623
|
-
AuthType2.LOGIN_WITH_GOOGLE
|
|
349624
|
-
];
|
|
349780
|
+
this.disableModelRouterForAuth = params.disableModelRouterForAuth ?? [];
|
|
349625
349781
|
this.enableMessageBusIntegration = params.enableMessageBusIntegration ?? false;
|
|
349626
349782
|
this.codebaseInvestigatorSettings = {
|
|
349627
349783
|
enabled: params.codebaseInvestigatorSettings?.enabled ?? false,
|
|
@@ -349633,6 +349789,7 @@ var Config = class {
|
|
|
349633
349789
|
this.continueOnFailedApiCall = params.continueOnFailedApiCall ?? true;
|
|
349634
349790
|
this.enableShellOutputEfficiency = params.enableShellOutputEfficiency ?? true;
|
|
349635
349791
|
this.extensionManagement = params.extensionManagement ?? true;
|
|
349792
|
+
this.enableExtensionReloading = params.enableExtensionReloading ?? false;
|
|
349636
349793
|
this.storage = new Storage2(this.targetDir);
|
|
349637
349794
|
this.fakeResponses = params.fakeResponses;
|
|
349638
349795
|
this.recordResponses = params.recordResponses;
|
|
@@ -349692,7 +349849,7 @@ var Config = class {
|
|
|
349692
349849
|
if (this.contentGeneratorConfig?.authType === AuthType2.USE_GEMINI && authMethod === AuthType2.LOGIN_WITH_GOOGLE) {
|
|
349693
349850
|
this.geminiClient.stripThoughtsFromHistory();
|
|
349694
349851
|
}
|
|
349695
|
-
const newContentGeneratorConfig = createContentGeneratorConfig(this, authMethod);
|
|
349852
|
+
const newContentGeneratorConfig = await createContentGeneratorConfig(this, authMethod);
|
|
349696
349853
|
this.contentGenerator = await createContentGenerator(newContentGeneratorConfig, this, this.getSessionId());
|
|
349697
349854
|
this.contentGeneratorConfig = newContentGeneratorConfig;
|
|
349698
349855
|
this.baseLlmClient = new BaseLlmClient(this.contentGenerator, this);
|
|
@@ -349806,6 +349963,9 @@ var Config = class {
|
|
|
349806
349963
|
getMcpServers() {
|
|
349807
349964
|
return this.mcpServers;
|
|
349808
349965
|
}
|
|
349966
|
+
setMcpServers(mcpServers) {
|
|
349967
|
+
this.mcpServers = mcpServers;
|
|
349968
|
+
}
|
|
349809
349969
|
getUserMemory() {
|
|
349810
349970
|
return this.userMemory;
|
|
349811
349971
|
}
|
|
@@ -349936,6 +350096,9 @@ var Config = class {
|
|
|
349936
350096
|
getEnabledExtensions() {
|
|
349937
350097
|
return this._enabledExtensions;
|
|
349938
350098
|
}
|
|
350099
|
+
getEnableExtensionReloading() {
|
|
350100
|
+
return this.enableExtensionReloading;
|
|
350101
|
+
}
|
|
349939
350102
|
getBlockedMcpServers() {
|
|
349940
350103
|
return this._blockedMcpServers;
|
|
349941
350104
|
}
|
|
@@ -349983,8 +350146,8 @@ var Config = class {
|
|
|
349983
350146
|
setFileSystemService(fileSystemService) {
|
|
349984
350147
|
this.fileSystemService = fileSystemService;
|
|
349985
350148
|
}
|
|
349986
|
-
|
|
349987
|
-
return this.
|
|
350149
|
+
getCompressionThreshold() {
|
|
350150
|
+
return this.compressionThreshold;
|
|
349988
350151
|
}
|
|
349989
350152
|
isInteractiveShellEnabled() {
|
|
349990
350153
|
return this.interactive && this.ptyInfo !== "child_process" && this.enableInteractiveShell;
|