@google/gemini-cli 0.34.0-preview.2 → 0.34.0-preview.3
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/bundle/gemini.js
CHANGED
|
@@ -89787,161 +89787,6 @@ var init_base_token_storage = __esm({
|
|
|
89787
89787
|
}
|
|
89788
89788
|
});
|
|
89789
89789
|
|
|
89790
|
-
// packages/core/dist/src/mcp/token-storage/file-token-storage.js
|
|
89791
|
-
import { promises as fs14 } from "node:fs";
|
|
89792
|
-
import * as path8 from "node:path";
|
|
89793
|
-
import * as os6 from "node:os";
|
|
89794
|
-
import * as crypto8 from "node:crypto";
|
|
89795
|
-
var FileTokenStorage;
|
|
89796
|
-
var init_file_token_storage = __esm({
|
|
89797
|
-
"packages/core/dist/src/mcp/token-storage/file-token-storage.js"() {
|
|
89798
|
-
"use strict";
|
|
89799
|
-
init_base_token_storage();
|
|
89800
|
-
init_paths();
|
|
89801
|
-
FileTokenStorage = class extends BaseTokenStorage {
|
|
89802
|
-
tokenFilePath;
|
|
89803
|
-
encryptionKey;
|
|
89804
|
-
constructor(serviceName) {
|
|
89805
|
-
super(serviceName);
|
|
89806
|
-
const configDir = path8.join(homedir(), GEMINI_DIR);
|
|
89807
|
-
this.tokenFilePath = path8.join(configDir, "mcp-oauth-tokens-v2.json");
|
|
89808
|
-
this.encryptionKey = this.deriveEncryptionKey();
|
|
89809
|
-
}
|
|
89810
|
-
deriveEncryptionKey() {
|
|
89811
|
-
const salt = `${os6.hostname()}-${os6.userInfo().username}-gemini-cli`;
|
|
89812
|
-
return crypto8.scryptSync("gemini-cli-oauth", salt, 32);
|
|
89813
|
-
}
|
|
89814
|
-
encrypt(text) {
|
|
89815
|
-
const iv = crypto8.randomBytes(16);
|
|
89816
|
-
const cipher = crypto8.createCipheriv("aes-256-gcm", this.encryptionKey, iv);
|
|
89817
|
-
let encrypted = cipher.update(text, "utf8", "hex");
|
|
89818
|
-
encrypted += cipher.final("hex");
|
|
89819
|
-
const authTag = cipher.getAuthTag();
|
|
89820
|
-
return iv.toString("hex") + ":" + authTag.toString("hex") + ":" + encrypted;
|
|
89821
|
-
}
|
|
89822
|
-
decrypt(encryptedData) {
|
|
89823
|
-
const parts2 = encryptedData.split(":");
|
|
89824
|
-
if (parts2.length !== 3) {
|
|
89825
|
-
throw new Error("Invalid encrypted data format");
|
|
89826
|
-
}
|
|
89827
|
-
const iv = Buffer.from(parts2[0], "hex");
|
|
89828
|
-
const authTag = Buffer.from(parts2[1], "hex");
|
|
89829
|
-
const encrypted = parts2[2];
|
|
89830
|
-
const decipher = crypto8.createDecipheriv("aes-256-gcm", this.encryptionKey, iv);
|
|
89831
|
-
decipher.setAuthTag(authTag);
|
|
89832
|
-
let decrypted = decipher.update(encrypted, "hex", "utf8");
|
|
89833
|
-
decrypted += decipher.final("utf8");
|
|
89834
|
-
return decrypted;
|
|
89835
|
-
}
|
|
89836
|
-
async ensureDirectoryExists() {
|
|
89837
|
-
const dir = path8.dirname(this.tokenFilePath);
|
|
89838
|
-
await fs14.mkdir(dir, { recursive: true, mode: 448 });
|
|
89839
|
-
}
|
|
89840
|
-
async loadTokens() {
|
|
89841
|
-
try {
|
|
89842
|
-
const data = await fs14.readFile(this.tokenFilePath, "utf-8");
|
|
89843
|
-
const decrypted = this.decrypt(data);
|
|
89844
|
-
const tokens = JSON.parse(decrypted);
|
|
89845
|
-
return new Map(Object.entries(tokens));
|
|
89846
|
-
} catch (error40) {
|
|
89847
|
-
const err2 = error40;
|
|
89848
|
-
if (err2.code === "ENOENT") {
|
|
89849
|
-
return /* @__PURE__ */ new Map();
|
|
89850
|
-
}
|
|
89851
|
-
if (err2.message?.includes("Invalid encrypted data format") || err2.message?.includes("Unsupported state or unable to authenticate data")) {
|
|
89852
|
-
throw new Error(`Corrupted token file detected at: ${this.tokenFilePath}
|
|
89853
|
-
Please delete or rename this file to resolve the issue.`);
|
|
89854
|
-
}
|
|
89855
|
-
throw error40;
|
|
89856
|
-
}
|
|
89857
|
-
}
|
|
89858
|
-
async saveTokens(tokens) {
|
|
89859
|
-
await this.ensureDirectoryExists();
|
|
89860
|
-
const data = Object.fromEntries(tokens);
|
|
89861
|
-
const json4 = JSON.stringify(data, null, 2);
|
|
89862
|
-
const encrypted = this.encrypt(json4);
|
|
89863
|
-
await fs14.writeFile(this.tokenFilePath, encrypted, { mode: 384 });
|
|
89864
|
-
}
|
|
89865
|
-
async getCredentials(serverName) {
|
|
89866
|
-
const tokens = await this.loadTokens();
|
|
89867
|
-
const credentials2 = tokens.get(serverName);
|
|
89868
|
-
if (!credentials2) {
|
|
89869
|
-
return null;
|
|
89870
|
-
}
|
|
89871
|
-
if (this.isTokenExpired(credentials2)) {
|
|
89872
|
-
return null;
|
|
89873
|
-
}
|
|
89874
|
-
return credentials2;
|
|
89875
|
-
}
|
|
89876
|
-
async setCredentials(credentials2) {
|
|
89877
|
-
this.validateCredentials(credentials2);
|
|
89878
|
-
const tokens = await this.loadTokens();
|
|
89879
|
-
const updatedCredentials = {
|
|
89880
|
-
...credentials2,
|
|
89881
|
-
updatedAt: Date.now()
|
|
89882
|
-
};
|
|
89883
|
-
tokens.set(credentials2.serverName, updatedCredentials);
|
|
89884
|
-
await this.saveTokens(tokens);
|
|
89885
|
-
}
|
|
89886
|
-
async deleteCredentials(serverName) {
|
|
89887
|
-
const tokens = await this.loadTokens();
|
|
89888
|
-
if (!tokens.has(serverName)) {
|
|
89889
|
-
throw new Error(`No credentials found for ${serverName}`);
|
|
89890
|
-
}
|
|
89891
|
-
tokens.delete(serverName);
|
|
89892
|
-
if (tokens.size === 0) {
|
|
89893
|
-
try {
|
|
89894
|
-
await fs14.unlink(this.tokenFilePath);
|
|
89895
|
-
} catch (error40) {
|
|
89896
|
-
const err2 = error40;
|
|
89897
|
-
if (err2.code !== "ENOENT") {
|
|
89898
|
-
throw error40;
|
|
89899
|
-
}
|
|
89900
|
-
}
|
|
89901
|
-
} else {
|
|
89902
|
-
await this.saveTokens(tokens);
|
|
89903
|
-
}
|
|
89904
|
-
}
|
|
89905
|
-
async listServers() {
|
|
89906
|
-
const tokens = await this.loadTokens();
|
|
89907
|
-
return Array.from(tokens.keys());
|
|
89908
|
-
}
|
|
89909
|
-
async getAllCredentials() {
|
|
89910
|
-
const tokens = await this.loadTokens();
|
|
89911
|
-
const result2 = /* @__PURE__ */ new Map();
|
|
89912
|
-
for (const [serverName, credentials2] of tokens) {
|
|
89913
|
-
if (!this.isTokenExpired(credentials2)) {
|
|
89914
|
-
result2.set(serverName, credentials2);
|
|
89915
|
-
}
|
|
89916
|
-
}
|
|
89917
|
-
return result2;
|
|
89918
|
-
}
|
|
89919
|
-
async clearAll() {
|
|
89920
|
-
try {
|
|
89921
|
-
await fs14.unlink(this.tokenFilePath);
|
|
89922
|
-
} catch (error40) {
|
|
89923
|
-
const err2 = error40;
|
|
89924
|
-
if (err2.code !== "ENOENT") {
|
|
89925
|
-
throw error40;
|
|
89926
|
-
}
|
|
89927
|
-
}
|
|
89928
|
-
}
|
|
89929
|
-
};
|
|
89930
|
-
}
|
|
89931
|
-
});
|
|
89932
|
-
|
|
89933
|
-
// packages/core/dist/src/mcp/token-storage/types.js
|
|
89934
|
-
var TokenStorageType;
|
|
89935
|
-
var init_types = __esm({
|
|
89936
|
-
"packages/core/dist/src/mcp/token-storage/types.js"() {
|
|
89937
|
-
"use strict";
|
|
89938
|
-
(function(TokenStorageType2) {
|
|
89939
|
-
TokenStorageType2["KEYCHAIN"] = "keychain";
|
|
89940
|
-
TokenStorageType2["ENCRYPTED_FILE"] = "encrypted_file";
|
|
89941
|
-
})(TokenStorageType || (TokenStorageType = {}));
|
|
89942
|
-
}
|
|
89943
|
-
});
|
|
89944
|
-
|
|
89945
89790
|
// packages/core/dist/src/utils/events.js
|
|
89946
89791
|
import { EventEmitter as EventEmitter4 } from "node:events";
|
|
89947
89792
|
var CoreEvent, CoreEventEmitter, coreEvents;
|
|
@@ -90133,7 +89978,7 @@ function getHookSource(input) {
|
|
|
90133
89978
|
return "project";
|
|
90134
89979
|
}
|
|
90135
89980
|
var PolicyDecision, VALID_HOOK_SOURCES, ApprovalMode, InProcessCheckerType, PRIORITY_SUBAGENT_TOOL;
|
|
90136
|
-
var
|
|
89981
|
+
var init_types = __esm({
|
|
90137
89982
|
"packages/core/dist/src/policy/types.js"() {
|
|
90138
89983
|
"use strict";
|
|
90139
89984
|
(function(PolicyDecision2) {
|
|
@@ -90163,10 +90008,10 @@ var init_types2 = __esm({
|
|
|
90163
90008
|
|
|
90164
90009
|
// packages/core/dist/src/scheduler/types.js
|
|
90165
90010
|
var ROOT_SCHEDULER_ID, CoreToolCallStatus;
|
|
90166
|
-
var
|
|
90011
|
+
var init_types2 = __esm({
|
|
90167
90012
|
"packages/core/dist/src/scheduler/types.js"() {
|
|
90168
90013
|
"use strict";
|
|
90169
|
-
|
|
90014
|
+
init_types();
|
|
90170
90015
|
ROOT_SCHEDULER_ID = "root";
|
|
90171
90016
|
(function(CoreToolCallStatus2) {
|
|
90172
90017
|
CoreToolCallStatus2["Validating"] = "validating";
|
|
@@ -103572,7 +103417,7 @@ var init_schemaValidator = __esm({
|
|
|
103572
103417
|
|
|
103573
103418
|
// packages/core/dist/src/confirmation-bus/types.js
|
|
103574
103419
|
var MessageBusType, QuestionType;
|
|
103575
|
-
var
|
|
103420
|
+
var init_types3 = __esm({
|
|
103576
103421
|
"packages/core/dist/src/confirmation-bus/types.js"() {
|
|
103577
103422
|
"use strict";
|
|
103578
103423
|
init_node();
|
|
@@ -103667,8 +103512,8 @@ var init_tools = __esm({
|
|
|
103667
103512
|
"use strict";
|
|
103668
103513
|
init_tool_error();
|
|
103669
103514
|
init_schemaValidator();
|
|
103670
|
-
|
|
103671
|
-
|
|
103515
|
+
init_types3();
|
|
103516
|
+
init_types();
|
|
103672
103517
|
BaseToolInvocation = class {
|
|
103673
103518
|
params;
|
|
103674
103519
|
messageBus;
|
|
@@ -104589,7 +104434,7 @@ var init_ComponentLogger = __esm({
|
|
|
104589
104434
|
|
|
104590
104435
|
// node_modules/@opentelemetry/api/build/esm/diag/types.js
|
|
104591
104436
|
var DiagLogLevel;
|
|
104592
|
-
var
|
|
104437
|
+
var init_types4 = __esm({
|
|
104593
104438
|
"node_modules/@opentelemetry/api/build/esm/diag/types.js"() {
|
|
104594
104439
|
(function(DiagLogLevel2) {
|
|
104595
104440
|
DiagLogLevel2[DiagLogLevel2["NONE"] = 0] = "NONE";
|
|
@@ -104629,7 +104474,7 @@ function createLogLevelDiagLogger(maxLevel, logger6) {
|
|
|
104629
104474
|
}
|
|
104630
104475
|
var init_logLevelLogger = __esm({
|
|
104631
104476
|
"node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js"() {
|
|
104632
|
-
|
|
104477
|
+
init_types4();
|
|
104633
104478
|
}
|
|
104634
104479
|
});
|
|
104635
104480
|
|
|
@@ -104639,7 +104484,7 @@ var init_diag = __esm({
|
|
|
104639
104484
|
"node_modules/@opentelemetry/api/build/esm/api/diag.js"() {
|
|
104640
104485
|
init_ComponentLogger();
|
|
104641
104486
|
init_logLevelLogger();
|
|
104642
|
-
|
|
104487
|
+
init_types4();
|
|
104643
104488
|
init_global_utils();
|
|
104644
104489
|
__read2 = function(o3, n3) {
|
|
104645
104490
|
var m3 = typeof Symbol === "function" && o3[Symbol.iterator];
|
|
@@ -105948,7 +105793,7 @@ var init_esm = __esm({
|
|
|
105948
105793
|
init_utils();
|
|
105949
105794
|
init_context();
|
|
105950
105795
|
init_consoleLogger();
|
|
105951
|
-
|
|
105796
|
+
init_types4();
|
|
105952
105797
|
init_NoopMeter();
|
|
105953
105798
|
init_Metric();
|
|
105954
105799
|
init_TextMapPropagator();
|
|
@@ -106011,9 +105856,9 @@ var init_constants = __esm({
|
|
|
106011
105856
|
});
|
|
106012
105857
|
|
|
106013
105858
|
// packages/core/dist/src/utils/installationManager.js
|
|
106014
|
-
import * as
|
|
105859
|
+
import * as fs14 from "node:fs";
|
|
106015
105860
|
import { randomUUID as randomUUID2 } from "node:crypto";
|
|
106016
|
-
import * as
|
|
105861
|
+
import * as path8 from "node:path";
|
|
106017
105862
|
var InstallationManager;
|
|
106018
105863
|
var init_installationManager = __esm({
|
|
106019
105864
|
"packages/core/dist/src/utils/installationManager.js"() {
|
|
@@ -106026,17 +105871,17 @@ var init_installationManager = __esm({
|
|
|
106026
105871
|
}
|
|
106027
105872
|
readInstallationIdFromFile() {
|
|
106028
105873
|
const installationIdFile = this.getInstallationIdPath();
|
|
106029
|
-
if (
|
|
106030
|
-
const installationid =
|
|
105874
|
+
if (fs14.existsSync(installationIdFile)) {
|
|
105875
|
+
const installationid = fs14.readFileSync(installationIdFile, "utf-8").trim();
|
|
106031
105876
|
return installationid || null;
|
|
106032
105877
|
}
|
|
106033
105878
|
return null;
|
|
106034
105879
|
}
|
|
106035
105880
|
writeInstallationIdToFile(installationId) {
|
|
106036
105881
|
const installationIdFile = this.getInstallationIdPath();
|
|
106037
|
-
const dir =
|
|
106038
|
-
|
|
106039
|
-
|
|
105882
|
+
const dir = path8.dirname(installationIdFile);
|
|
105883
|
+
fs14.mkdirSync(dir, { recursive: true });
|
|
105884
|
+
fs14.writeFileSync(installationIdFile, installationId, "utf-8");
|
|
106040
105885
|
}
|
|
106041
105886
|
/**
|
|
106042
105887
|
* Retrieves the installation ID from a file, creating it if it doesn't exist.
|
|
@@ -109529,10 +109374,10 @@ function makeChatCompressionEvent({ tokens_before, tokens_after }) {
|
|
|
109529
109374
|
};
|
|
109530
109375
|
}
|
|
109531
109376
|
var EVENT_CLI_CONFIG, StartSessionEvent, EndSessionEvent, EVENT_USER_PROMPT, UserPromptEvent, EVENT_TOOL_CALL, ToolCallEvent, EVENT_API_REQUEST, ApiRequestEvent, EVENT_API_ERROR, ApiErrorEvent, EVENT_API_RESPONSE, EVENT_GEN_AI_OPERATION_DETAILS, ApiResponseEvent, EVENT_FLASH_FALLBACK, FlashFallbackEvent, EVENT_RIPGREP_FALLBACK, RipgrepFallbackEvent, LoopType, LoopDetectedEvent, LoopDetectionDisabledEvent, EVENT_NEXT_SPEAKER_CHECK, NextSpeakerCheckEvent, EVENT_CONSECA_POLICY_GENERATION, ConsecaPolicyGenerationEvent, EVENT_CONSECA_VERDICT, ConsecaVerdictEvent, EVENT_SLASH_COMMAND, SlashCommandStatus, EVENT_REWIND, RewindEvent, EVENT_CHAT_COMPRESSION2, EVENT_MALFORMED_JSON_RESPONSE, MalformedJsonResponseEvent, IdeConnectionType, EVENT_IDE_CONNECTION, IdeConnectionEvent, EVENT_CONVERSATION_FINISHED, ConversationFinishedEvent, EVENT_FILE_OPERATION, FileOperationEvent, EVENT_INVALID_CHUNK, InvalidChunkEvent, EVENT_CONTENT_RETRY, ContentRetryEvent, EVENT_CONTENT_RETRY_FAILURE, ContentRetryFailureEvent, EVENT_MODEL_ROUTING, ModelRoutingEvent, EVENT_EXTENSION_INSTALL, ExtensionInstallEvent, EVENT_TOOL_OUTPUT_TRUNCATED, ToolOutputTruncatedEvent, EVENT_TOOL_OUTPUT_MASKING, ToolOutputMaskingEvent, EVENT_EXTENSION_UNINSTALL, ExtensionUninstallEvent, EVENT_EXTENSION_UPDATE, ExtensionUpdateEvent, EVENT_EXTENSION_ENABLE, ExtensionEnableEvent, EVENT_MODEL_SLASH_COMMAND, ModelSlashCommandEvent, EVENT_LLM_LOOP_CHECK, LlmLoopCheckEvent, EVENT_EXTENSION_DISABLE, ExtensionDisableEvent, EVENT_EDIT_STRATEGY, EditStrategyEvent, EVENT_EDIT_CORRECTION, EditCorrectionEvent, EVENT_STARTUP_STATS, StartupStatsEvent, BaseAgentEvent, EVENT_AGENT_START, AgentStartEvent, EVENT_AGENT_FINISH, AgentFinishEvent, EVENT_AGENT_RECOVERY_ATTEMPT, RecoveryAttemptEvent, EVENT_WEB_FETCH_FALLBACK_ATTEMPT, WebFetchFallbackAttemptEvent, EVENT_HOOK_CALL, EVENT_APPROVAL_MODE_SWITCH, ApprovalModeSwitchEvent, EVENT_APPROVAL_MODE_DURATION, ApprovalModeDurationEvent, EVENT_PLAN_EXECUTION, PlanExecutionEvent, HookCallEvent, EVENT_KEYCHAIN_AVAILABILITY, KeychainAvailabilityEvent, EVENT_TOKEN_STORAGE_INITIALIZATION, TokenStorageInitializationEvent;
|
|
109532
|
-
var
|
|
109377
|
+
var init_types5 = __esm({
|
|
109533
109378
|
"packages/core/dist/src/telemetry/types.js"() {
|
|
109534
109379
|
"use strict";
|
|
109535
|
-
|
|
109380
|
+
init_types2();
|
|
109536
109381
|
init_mcp_tool();
|
|
109537
109382
|
init_contentGenerator();
|
|
109538
109383
|
init_tool_call_decision();
|
|
@@ -111904,7 +111749,7 @@ function custom(check2, _params = {}, fatal) {
|
|
|
111904
111749
|
return ZodAny.create();
|
|
111905
111750
|
}
|
|
111906
111751
|
var ParseInputLazyPath, handleResult, ZodType, cuidRegex, cuid2Regex, ulidRegex, uuidRegex, nanoidRegex, jwtRegex, durationRegex, emailRegex, _emojiRegex, emojiRegex2, ipv4Regex, ipv4CidrRegex, ipv6Regex, ipv6CidrRegex, base64Regex, base64urlRegex, dateRegexSource, dateRegex, ZodString, ZodNumber, ZodBigInt, ZodBoolean, ZodDate, ZodSymbol, ZodUndefined, ZodNull, ZodAny, ZodUnknown, ZodNever, ZodVoid, ZodArray, ZodObject, ZodUnion, getDiscriminator, ZodDiscriminatedUnion, ZodIntersection, ZodTuple, ZodRecord, ZodMap, ZodSet, ZodFunction, ZodLazy, ZodLiteral, ZodEnum, ZodNativeEnum, ZodPromise, ZodEffects, ZodOptional, ZodNullable, ZodDefault, ZodCatch, ZodNaN, BRAND, ZodBranded, ZodPipeline, ZodReadonly, late, ZodFirstPartyTypeKind, instanceOfType, stringType, numberType, nanType, bigIntType, booleanType, dateType, symbolType, undefinedType, nullType, anyType, unknownType, neverType, voidType, arrayType, objectType, strictObjectType, unionType, discriminatedUnionType, intersectionType, tupleType, recordType, mapType, setType, functionType, lazyType, literalType, enumType, nativeEnumType, promiseType, effectsType, optionalType, nullableType, preprocessType, pipelineType, ostring, onumber, oboolean, coerce, NEVER;
|
|
111907
|
-
var
|
|
111752
|
+
var init_types6 = __esm({
|
|
111908
111753
|
"node_modules/zod/v3/types.js"() {
|
|
111909
111754
|
init_ZodError();
|
|
111910
111755
|
init_errors2();
|
|
@@ -115284,7 +115129,7 @@ var init_external = __esm({
|
|
|
115284
115129
|
init_parseUtil();
|
|
115285
115130
|
init_typeAliases();
|
|
115286
115131
|
init_util();
|
|
115287
|
-
|
|
115132
|
+
init_types6();
|
|
115288
115133
|
init_ZodError();
|
|
115289
115134
|
}
|
|
115290
115135
|
});
|
|
@@ -115406,17 +115251,137 @@ var init_markdownUtils = __esm({
|
|
|
115406
115251
|
}
|
|
115407
115252
|
});
|
|
115408
115253
|
|
|
115254
|
+
// packages/core/dist/src/services/fileKeychain.js
|
|
115255
|
+
import { promises as fs15 } from "node:fs";
|
|
115256
|
+
import * as path9 from "node:path";
|
|
115257
|
+
import * as os6 from "node:os";
|
|
115258
|
+
import * as crypto8 from "node:crypto";
|
|
115259
|
+
var FileKeychain;
|
|
115260
|
+
var init_fileKeychain = __esm({
|
|
115261
|
+
"packages/core/dist/src/services/fileKeychain.js"() {
|
|
115262
|
+
"use strict";
|
|
115263
|
+
init_paths();
|
|
115264
|
+
FileKeychain = class {
|
|
115265
|
+
tokenFilePath;
|
|
115266
|
+
encryptionKey;
|
|
115267
|
+
constructor() {
|
|
115268
|
+
const configDir = path9.join(homedir(), GEMINI_DIR);
|
|
115269
|
+
this.tokenFilePath = path9.join(configDir, "gemini-credentials.json");
|
|
115270
|
+
this.encryptionKey = this.deriveEncryptionKey();
|
|
115271
|
+
}
|
|
115272
|
+
deriveEncryptionKey() {
|
|
115273
|
+
const salt = `${os6.hostname()}-${os6.userInfo().username}-gemini-cli`;
|
|
115274
|
+
return crypto8.scryptSync("gemini-cli-oauth", salt, 32);
|
|
115275
|
+
}
|
|
115276
|
+
encrypt(text) {
|
|
115277
|
+
const iv = crypto8.randomBytes(16);
|
|
115278
|
+
const cipher = crypto8.createCipheriv("aes-256-gcm", this.encryptionKey, iv);
|
|
115279
|
+
let encrypted = cipher.update(text, "utf8", "hex");
|
|
115280
|
+
encrypted += cipher.final("hex");
|
|
115281
|
+
const authTag = cipher.getAuthTag();
|
|
115282
|
+
return iv.toString("hex") + ":" + authTag.toString("hex") + ":" + encrypted;
|
|
115283
|
+
}
|
|
115284
|
+
decrypt(encryptedData) {
|
|
115285
|
+
const parts2 = encryptedData.split(":");
|
|
115286
|
+
if (parts2.length !== 3) {
|
|
115287
|
+
throw new Error("Invalid encrypted data format");
|
|
115288
|
+
}
|
|
115289
|
+
const iv = Buffer.from(parts2[0], "hex");
|
|
115290
|
+
const authTag = Buffer.from(parts2[1], "hex");
|
|
115291
|
+
const encrypted = parts2[2];
|
|
115292
|
+
const decipher = crypto8.createDecipheriv("aes-256-gcm", this.encryptionKey, iv);
|
|
115293
|
+
decipher.setAuthTag(authTag);
|
|
115294
|
+
let decrypted = decipher.update(encrypted, "hex", "utf8");
|
|
115295
|
+
decrypted += decipher.final("utf8");
|
|
115296
|
+
return decrypted;
|
|
115297
|
+
}
|
|
115298
|
+
async ensureDirectoryExists() {
|
|
115299
|
+
const dir = path9.dirname(this.tokenFilePath);
|
|
115300
|
+
await fs15.mkdir(dir, { recursive: true, mode: 448 });
|
|
115301
|
+
}
|
|
115302
|
+
async loadData() {
|
|
115303
|
+
try {
|
|
115304
|
+
const data = await fs15.readFile(this.tokenFilePath, "utf-8");
|
|
115305
|
+
const decrypted = this.decrypt(data);
|
|
115306
|
+
return JSON.parse(decrypted);
|
|
115307
|
+
} catch (error40) {
|
|
115308
|
+
const err2 = error40;
|
|
115309
|
+
if (err2.code === "ENOENT") {
|
|
115310
|
+
return {};
|
|
115311
|
+
}
|
|
115312
|
+
if (err2.message?.includes("Invalid encrypted data format") || err2.message?.includes("Unsupported state or unable to authenticate data")) {
|
|
115313
|
+
throw new Error(`Corrupted credentials file detected at: ${this.tokenFilePath}
|
|
115314
|
+
Please delete or rename this file to resolve the issue.`);
|
|
115315
|
+
}
|
|
115316
|
+
throw error40;
|
|
115317
|
+
}
|
|
115318
|
+
}
|
|
115319
|
+
async saveData(data) {
|
|
115320
|
+
await this.ensureDirectoryExists();
|
|
115321
|
+
const json4 = JSON.stringify(data, null, 2);
|
|
115322
|
+
const encrypted = this.encrypt(json4);
|
|
115323
|
+
await fs15.writeFile(this.tokenFilePath, encrypted, { mode: 384 });
|
|
115324
|
+
}
|
|
115325
|
+
async getPassword(service, account) {
|
|
115326
|
+
const data = await this.loadData();
|
|
115327
|
+
return data[service]?.[account] ?? null;
|
|
115328
|
+
}
|
|
115329
|
+
async setPassword(service, account, password) {
|
|
115330
|
+
const data = await this.loadData();
|
|
115331
|
+
if (!data[service]) {
|
|
115332
|
+
data[service] = {};
|
|
115333
|
+
}
|
|
115334
|
+
data[service][account] = password;
|
|
115335
|
+
await this.saveData(data);
|
|
115336
|
+
}
|
|
115337
|
+
async deletePassword(service, account) {
|
|
115338
|
+
const data = await this.loadData();
|
|
115339
|
+
if (data[service] && account in data[service]) {
|
|
115340
|
+
delete data[service][account];
|
|
115341
|
+
if (Object.keys(data[service]).length === 0) {
|
|
115342
|
+
delete data[service];
|
|
115343
|
+
}
|
|
115344
|
+
if (Object.keys(data).length === 0) {
|
|
115345
|
+
try {
|
|
115346
|
+
await fs15.unlink(this.tokenFilePath);
|
|
115347
|
+
} catch (error40) {
|
|
115348
|
+
const err2 = error40;
|
|
115349
|
+
if (err2.code !== "ENOENT") {
|
|
115350
|
+
throw error40;
|
|
115351
|
+
}
|
|
115352
|
+
}
|
|
115353
|
+
} else {
|
|
115354
|
+
await this.saveData(data);
|
|
115355
|
+
}
|
|
115356
|
+
return true;
|
|
115357
|
+
}
|
|
115358
|
+
return false;
|
|
115359
|
+
}
|
|
115360
|
+
async findCredentials(service) {
|
|
115361
|
+
const data = await this.loadData();
|
|
115362
|
+
const serviceData = data[service] || {};
|
|
115363
|
+
return Object.entries(serviceData).map(([account, password]) => ({
|
|
115364
|
+
account,
|
|
115365
|
+
password
|
|
115366
|
+
}));
|
|
115367
|
+
}
|
|
115368
|
+
};
|
|
115369
|
+
}
|
|
115370
|
+
});
|
|
115371
|
+
|
|
115409
115372
|
// packages/core/dist/src/services/keychainService.js
|
|
115410
115373
|
import * as crypto9 from "node:crypto";
|
|
115411
|
-
var KeychainService;
|
|
115374
|
+
var FORCE_FILE_STORAGE_ENV_VAR, KeychainService;
|
|
115412
115375
|
var init_keychainService = __esm({
|
|
115413
115376
|
"packages/core/dist/src/services/keychainService.js"() {
|
|
115414
115377
|
"use strict";
|
|
115415
115378
|
init_events();
|
|
115416
|
-
|
|
115379
|
+
init_types5();
|
|
115417
115380
|
init_debugLogger();
|
|
115418
115381
|
init_keychainTypes();
|
|
115419
115382
|
init_markdownUtils();
|
|
115383
|
+
init_fileKeychain();
|
|
115384
|
+
FORCE_FILE_STORAGE_ENV_VAR = "GEMINI_FORCE_FILE_STORAGE";
|
|
115420
115385
|
KeychainService = class {
|
|
115421
115386
|
serviceName;
|
|
115422
115387
|
// Track an ongoing initialization attempt to avoid race conditions.
|
|
@@ -115430,6 +115395,13 @@ var init_keychainService = __esm({
|
|
|
115430
115395
|
async isAvailable() {
|
|
115431
115396
|
return await this.getKeychain() !== null;
|
|
115432
115397
|
}
|
|
115398
|
+
/**
|
|
115399
|
+
* Returns true if the service is using the encrypted file fallback backend.
|
|
115400
|
+
*/
|
|
115401
|
+
async isUsingFileFallback() {
|
|
115402
|
+
const keychain = await this.getKeychain();
|
|
115403
|
+
return keychain instanceof FileKeychain;
|
|
115404
|
+
}
|
|
115433
115405
|
/**
|
|
115434
115406
|
* Retrieves a secret for the given account.
|
|
115435
115407
|
* @throws Error if the keychain is unavailable.
|
|
@@ -115476,20 +115448,27 @@ var init_keychainService = __esm({
|
|
|
115476
115448
|
// High-level orchestration of the loading and testing cycle.
|
|
115477
115449
|
async initializeKeychain() {
|
|
115478
115450
|
let resultKeychain = null;
|
|
115479
|
-
|
|
115480
|
-
|
|
115481
|
-
|
|
115482
|
-
|
|
115483
|
-
|
|
115484
|
-
|
|
115485
|
-
|
|
115451
|
+
const forceFileStorage = process.env[FORCE_FILE_STORAGE_ENV_VAR] === "true";
|
|
115452
|
+
if (!forceFileStorage) {
|
|
115453
|
+
try {
|
|
115454
|
+
const keychainModule = await this.loadKeychainModule();
|
|
115455
|
+
if (keychainModule) {
|
|
115456
|
+
if (await this.isKeychainFunctional(keychainModule)) {
|
|
115457
|
+
resultKeychain = keychainModule;
|
|
115458
|
+
} else {
|
|
115459
|
+
debugLogger.log("Keychain functional verification failed");
|
|
115460
|
+
}
|
|
115486
115461
|
}
|
|
115462
|
+
} catch (error40) {
|
|
115463
|
+
const message = error40 instanceof Error ? error40.message : String(error40);
|
|
115464
|
+
debugLogger.log("Keychain initialization encountered an error:", message);
|
|
115487
115465
|
}
|
|
115488
|
-
} catch (error40) {
|
|
115489
|
-
const message = error40 instanceof Error ? error40.message : String(error40);
|
|
115490
|
-
debugLogger.log("Keychain initialization encountered an error:", message);
|
|
115491
115466
|
}
|
|
115492
|
-
coreEvents.emitTelemetryKeychainAvailability(new KeychainAvailabilityEvent(resultKeychain !== null));
|
|
115467
|
+
coreEvents.emitTelemetryKeychainAvailability(new KeychainAvailabilityEvent(resultKeychain !== null && !forceFileStorage));
|
|
115468
|
+
if (!resultKeychain) {
|
|
115469
|
+
resultKeychain = new FileKeychain();
|
|
115470
|
+
debugLogger.log("Using FileKeychain fallback for secure storage.");
|
|
115471
|
+
}
|
|
115493
115472
|
return resultKeychain;
|
|
115494
115473
|
}
|
|
115495
115474
|
// Low-level dynamic loading and structural validation.
|
|
@@ -115518,10 +115497,6 @@ var init_keychainService = __esm({
|
|
|
115518
115497
|
});
|
|
115519
115498
|
|
|
115520
115499
|
// packages/core/dist/src/mcp/token-storage/keychain-token-storage.js
|
|
115521
|
-
var keychain_token_storage_exports = {};
|
|
115522
|
-
__export(keychain_token_storage_exports, {
|
|
115523
|
-
KeychainTokenStorage: () => KeychainTokenStorage
|
|
115524
|
-
});
|
|
115525
115500
|
var KeychainTokenStorage;
|
|
115526
115501
|
var init_keychain_token_storage = __esm({
|
|
115527
115502
|
"packages/core/dist/src/mcp/token-storage/keychain-token-storage.js"() {
|
|
@@ -115622,6 +115597,9 @@ var init_keychain_token_storage = __esm({
|
|
|
115622
115597
|
async isAvailable() {
|
|
115623
115598
|
return this.keychainService.isAvailable();
|
|
115624
115599
|
}
|
|
115600
|
+
async isUsingFileFallback() {
|
|
115601
|
+
return this.keychainService.isUsingFileFallback();
|
|
115602
|
+
}
|
|
115625
115603
|
async setSecret(key, value) {
|
|
115626
115604
|
await this.keychainService.setPassword(`${SECRET_PREFIX}${key}`, value);
|
|
115627
115605
|
}
|
|
@@ -115647,17 +115625,29 @@ var init_keychain_token_storage = __esm({
|
|
|
115647
115625
|
}
|
|
115648
115626
|
});
|
|
115649
115627
|
|
|
115628
|
+
// packages/core/dist/src/mcp/token-storage/types.js
|
|
115629
|
+
var TokenStorageType;
|
|
115630
|
+
var init_types7 = __esm({
|
|
115631
|
+
"packages/core/dist/src/mcp/token-storage/types.js"() {
|
|
115632
|
+
"use strict";
|
|
115633
|
+
(function(TokenStorageType2) {
|
|
115634
|
+
TokenStorageType2["KEYCHAIN"] = "keychain";
|
|
115635
|
+
TokenStorageType2["ENCRYPTED_FILE"] = "encrypted_file";
|
|
115636
|
+
})(TokenStorageType || (TokenStorageType = {}));
|
|
115637
|
+
}
|
|
115638
|
+
});
|
|
115639
|
+
|
|
115650
115640
|
// packages/core/dist/src/mcp/token-storage/hybrid-token-storage.js
|
|
115651
|
-
var
|
|
115641
|
+
var HybridTokenStorage;
|
|
115652
115642
|
var init_hybrid_token_storage = __esm({
|
|
115653
115643
|
"packages/core/dist/src/mcp/token-storage/hybrid-token-storage.js"() {
|
|
115654
115644
|
"use strict";
|
|
115655
115645
|
init_base_token_storage();
|
|
115656
|
-
|
|
115657
|
-
|
|
115646
|
+
init_keychain_token_storage();
|
|
115647
|
+
init_types7();
|
|
115658
115648
|
init_events();
|
|
115659
|
-
|
|
115660
|
-
|
|
115649
|
+
init_types5();
|
|
115650
|
+
init_keychainService();
|
|
115661
115651
|
HybridTokenStorage = class extends BaseTokenStorage {
|
|
115662
115652
|
storage = null;
|
|
115663
115653
|
storageType = null;
|
|
@@ -115667,23 +115657,11 @@ var init_hybrid_token_storage = __esm({
|
|
|
115667
115657
|
}
|
|
115668
115658
|
async initializeStorage() {
|
|
115669
115659
|
const forceFileStorage = process.env[FORCE_FILE_STORAGE_ENV_VAR] === "true";
|
|
115670
|
-
|
|
115671
|
-
|
|
115672
|
-
|
|
115673
|
-
|
|
115674
|
-
|
|
115675
|
-
if (isAvailable) {
|
|
115676
|
-
this.storage = keychainStorage;
|
|
115677
|
-
this.storageType = TokenStorageType.KEYCHAIN;
|
|
115678
|
-
coreEvents.emitTelemetryTokenStorageType(new TokenStorageInitializationEvent("keychain", forceFileStorage));
|
|
115679
|
-
return this.storage;
|
|
115680
|
-
}
|
|
115681
|
-
} catch (_e2) {
|
|
115682
|
-
}
|
|
115683
|
-
}
|
|
115684
|
-
this.storage = new FileTokenStorage(this.serviceName);
|
|
115685
|
-
this.storageType = TokenStorageType.ENCRYPTED_FILE;
|
|
115686
|
-
coreEvents.emitTelemetryTokenStorageType(new TokenStorageInitializationEvent("encrypted_file", forceFileStorage));
|
|
115660
|
+
const keychainStorage = new KeychainTokenStorage(this.serviceName);
|
|
115661
|
+
this.storage = keychainStorage;
|
|
115662
|
+
const isUsingFileFallback = await keychainStorage.isUsingFileFallback();
|
|
115663
|
+
this.storageType = isUsingFileFallback ? TokenStorageType.ENCRYPTED_FILE : TokenStorageType.KEYCHAIN;
|
|
115664
|
+
coreEvents.emitTelemetryTokenStorageType(new TokenStorageInitializationEvent(isUsingFileFallback ? "encrypted_file" : "keychain", forceFileStorage));
|
|
115687
115665
|
return this.storage;
|
|
115688
115666
|
}
|
|
115689
115667
|
async getStorage() {
|
|
@@ -115831,10 +115809,10 @@ var DEFAULT_SERVICE_NAME, FORCE_ENCRYPTED_FILE_ENV_VAR;
|
|
|
115831
115809
|
var init_token_storage = __esm({
|
|
115832
115810
|
"packages/core/dist/src/mcp/token-storage/index.js"() {
|
|
115833
115811
|
"use strict";
|
|
115834
|
-
|
|
115812
|
+
init_types7();
|
|
115835
115813
|
init_base_token_storage();
|
|
115836
|
-
init_file_token_storage();
|
|
115837
115814
|
init_hybrid_token_storage();
|
|
115815
|
+
init_keychain_token_storage();
|
|
115838
115816
|
DEFAULT_SERVICE_NAME = "gemini-cli-oauth";
|
|
115839
115817
|
FORCE_ENCRYPTED_FILE_ENV_VAR = "GEMINI_FORCE_ENCRYPTED_FILE_STORAGE";
|
|
115840
115818
|
}
|
|
@@ -195144,8 +195122,8 @@ var GIT_COMMIT_INFO, CLI_VERSION;
|
|
|
195144
195122
|
var init_git_commit = __esm({
|
|
195145
195123
|
"packages/core/dist/src/generated/git-commit.js"() {
|
|
195146
195124
|
"use strict";
|
|
195147
|
-
GIT_COMMIT_INFO = "
|
|
195148
|
-
CLI_VERSION = "0.34.0-preview.
|
|
195125
|
+
GIT_COMMIT_INFO = "810cd6716";
|
|
195126
|
+
CLI_VERSION = "0.34.0-preview.3";
|
|
195149
195127
|
}
|
|
195150
195128
|
});
|
|
195151
195129
|
|
|
@@ -273285,7 +273263,7 @@ var createInitialRoleMetrics, createInitialModelMetrics, createInitialMetrics, U
|
|
|
273285
273263
|
var init_uiTelemetry = __esm({
|
|
273286
273264
|
"packages/core/dist/src/telemetry/uiTelemetry.js"() {
|
|
273287
273265
|
"use strict";
|
|
273288
|
-
|
|
273266
|
+
init_types5();
|
|
273289
273267
|
init_tool_call_decision();
|
|
273290
273268
|
createInitialRoleMetrics = () => ({
|
|
273291
273269
|
totalRequests: 0,
|
|
@@ -274476,7 +274454,7 @@ var init_startupProfiler = __esm({
|
|
|
274476
274454
|
"use strict";
|
|
274477
274455
|
init_metrics2();
|
|
274478
274456
|
init_debugLogger();
|
|
274479
|
-
|
|
274457
|
+
init_types5();
|
|
274480
274458
|
init_loggers();
|
|
274481
274459
|
StartupProfiler = class _StartupProfiler {
|
|
274482
274460
|
phases = /* @__PURE__ */ new Map();
|
|
@@ -274634,9 +274612,9 @@ var init_telemetry = __esm({
|
|
|
274634
274612
|
init_gcp_exporters();
|
|
274635
274613
|
init_loggers();
|
|
274636
274614
|
init_conseca_logger();
|
|
274637
|
-
|
|
274615
|
+
init_types5();
|
|
274638
274616
|
init_llmRole();
|
|
274639
|
-
|
|
274617
|
+
init_types5();
|
|
274640
274618
|
init_esm();
|
|
274641
274619
|
init_esm2();
|
|
274642
274620
|
init_uiTelemetry();
|
|
@@ -275547,7 +275525,7 @@ var init_loggers = __esm({
|
|
|
275547
275525
|
"use strict";
|
|
275548
275526
|
import_api_logs2 = __toESM(require_src12(), 1);
|
|
275549
275527
|
init_constants();
|
|
275550
|
-
|
|
275528
|
+
init_types5();
|
|
275551
275529
|
init_metrics2();
|
|
275552
275530
|
init_sdk();
|
|
275553
275531
|
init_uiTelemetry();
|
|
@@ -325985,7 +325963,7 @@ var init_baseLlmClient = __esm({
|
|
|
325985
325963
|
init_errorReporting();
|
|
325986
325964
|
init_errors();
|
|
325987
325965
|
init_loggers();
|
|
325988
|
-
|
|
325966
|
+
init_types5();
|
|
325989
325967
|
init_retry();
|
|
325990
325968
|
init_policyHelpers();
|
|
325991
325969
|
DEFAULT_MAX_ATTEMPTS2 = 5;
|
|
@@ -326213,7 +326191,7 @@ var init_llm_edit_fixer = __esm({
|
|
|
326213
326191
|
init_mnemonist();
|
|
326214
326192
|
init_promptIdContext();
|
|
326215
326193
|
init_debugLogger();
|
|
326216
|
-
|
|
326194
|
+
init_types5();
|
|
326217
326195
|
MAX_CACHE_SIZE = 50;
|
|
326218
326196
|
GENERATE_JSON_TIMEOUT_MS = 4e4;
|
|
326219
326197
|
EDIT_SYS_PROMPT = `
|
|
@@ -326790,15 +326768,15 @@ var init_edit = __esm({
|
|
|
326790
326768
|
init_paths();
|
|
326791
326769
|
init_errors();
|
|
326792
326770
|
init_pathCorrector();
|
|
326771
|
+
init_types();
|
|
326793
326772
|
init_types2();
|
|
326794
|
-
init_types3();
|
|
326795
326773
|
init_diffOptions();
|
|
326796
326774
|
init_diff_utils();
|
|
326797
326775
|
init_modifiable_tool();
|
|
326798
326776
|
init_ide_client();
|
|
326799
326777
|
init_llm_edit_fixer();
|
|
326800
326778
|
init_textUtils();
|
|
326801
|
-
|
|
326779
|
+
init_types5();
|
|
326802
326780
|
init_loggers();
|
|
326803
326781
|
init_tool_names();
|
|
326804
326782
|
init_debugLogger();
|
|
@@ -327387,7 +327365,7 @@ var init_editCorrector = __esm({
|
|
|
327387
327365
|
init_promptIdContext();
|
|
327388
327366
|
init_debugLogger();
|
|
327389
327367
|
init_mnemonist();
|
|
327390
|
-
|
|
327368
|
+
init_types5();
|
|
327391
327369
|
CODE_CORRECTION_SYSTEM_PROMPT = `
|
|
327392
327370
|
You are an expert code-editing assistant. Your task is to analyze a failed edit attempt and provide a corrected version of the text snippets.
|
|
327393
327371
|
The correction should be as minimal as possible, staying very close to the original.
|
|
@@ -328686,7 +328664,7 @@ var init_write_file = __esm({
|
|
|
328686
328664
|
"use strict";
|
|
328687
328665
|
init_libesm();
|
|
328688
328666
|
init_tool_names();
|
|
328689
|
-
|
|
328667
|
+
init_types();
|
|
328690
328668
|
init_tools();
|
|
328691
328669
|
init_utils4();
|
|
328692
328670
|
init_tool_error();
|
|
@@ -328698,7 +328676,7 @@ var init_write_file = __esm({
|
|
|
328698
328676
|
init_diff_utils();
|
|
328699
328677
|
init_ide_client();
|
|
328700
328678
|
init_loggers();
|
|
328701
|
-
|
|
328679
|
+
init_types5();
|
|
328702
328680
|
init_metrics2();
|
|
328703
328681
|
init_fileUtils();
|
|
328704
328682
|
init_language_detection();
|
|
@@ -334191,7 +334169,7 @@ function getVersion() {
|
|
|
334191
334169
|
}
|
|
334192
334170
|
versionPromise = (async () => {
|
|
334193
334171
|
const pkgJson = await getPackageJson(__dirname3);
|
|
334194
|
-
return "0.34.0-preview.
|
|
334172
|
+
return "0.34.0-preview.3";
|
|
334195
334173
|
})();
|
|
334196
334174
|
return versionPromise;
|
|
334197
334175
|
}
|
|
@@ -334278,7 +334256,7 @@ var init_server = __esm({
|
|
|
334278
334256
|
init_converter();
|
|
334279
334257
|
init_telemetry2();
|
|
334280
334258
|
init_client_metadata();
|
|
334281
|
-
|
|
334259
|
+
init_types5();
|
|
334282
334260
|
CODE_ASSIST_ENDPOINT = "https://cloudcode-pa.googleapis.com";
|
|
334283
334261
|
CODE_ASSIST_API_VERSION = "v1internal";
|
|
334284
334262
|
GENERATE_CONTENT_RETRY_DELAY_IN_MILLISECONDS = 1e3;
|
|
@@ -335015,7 +334993,7 @@ var LoggingContentGenerator;
|
|
|
335015
334993
|
var init_loggingContentGenerator = __esm({
|
|
335016
334994
|
"packages/core/dist/src/core/loggingContentGenerator.js"() {
|
|
335017
334995
|
"use strict";
|
|
335018
|
-
|
|
334996
|
+
init_types5();
|
|
335019
334997
|
init_loggers();
|
|
335020
334998
|
init_server();
|
|
335021
334999
|
init_converter();
|
|
@@ -335998,7 +335976,7 @@ var init_tool_registry = __esm({
|
|
|
335998
335976
|
"packages/core/dist/src/tools/tool-registry.js"() {
|
|
335999
335977
|
"use strict";
|
|
336000
335978
|
init_tools();
|
|
336001
|
-
|
|
335979
|
+
init_types();
|
|
336002
335980
|
init_mcp_tool();
|
|
336003
335981
|
import_shell_quote = __toESM(require_shell_quote(), 1);
|
|
336004
335982
|
init_tool_error();
|
|
@@ -337582,7 +337560,7 @@ var init_read_file = __esm({
|
|
|
337582
337560
|
init_metrics2();
|
|
337583
337561
|
init_telemetry_utils();
|
|
337584
337562
|
init_loggers();
|
|
337585
|
-
|
|
337563
|
+
init_types5();
|
|
337586
337564
|
init_tool_names();
|
|
337587
337565
|
init_fileDiscoveryService();
|
|
337588
337566
|
init_coreTools();
|
|
@@ -387965,7 +387943,7 @@ var init_web_fetch = __esm({
|
|
|
387965
387943
|
init_utils4();
|
|
387966
387944
|
init_tool_error();
|
|
387967
387945
|
init_errors();
|
|
387968
|
-
|
|
387946
|
+
init_types();
|
|
387969
387947
|
init_partUtils();
|
|
387970
387948
|
init_fetch();
|
|
387971
387949
|
init_textUtils();
|
|
@@ -388572,7 +388550,7 @@ var init_ask_user = __esm({
|
|
|
388572
388550
|
"use strict";
|
|
388573
388551
|
init_tools();
|
|
388574
388552
|
init_tool_error();
|
|
388575
|
-
|
|
388553
|
+
init_types3();
|
|
388576
388554
|
init_tool_names();
|
|
388577
388555
|
init_coreTools();
|
|
388578
388556
|
init_resolver();
|
|
@@ -388769,7 +388747,7 @@ function getPlanModeExitMessage(newMode, isManual = false) {
|
|
|
388769
388747
|
var init_approvalModeUtils = __esm({
|
|
388770
388748
|
"packages/core/dist/src/utils/approvalModeUtils.js"() {
|
|
388771
388749
|
"use strict";
|
|
388772
|
-
|
|
388750
|
+
init_types();
|
|
388773
388751
|
init_checks4();
|
|
388774
388752
|
}
|
|
388775
388753
|
});
|
|
@@ -388783,10 +388761,10 @@ var init_exit_plan_mode = __esm({
|
|
|
388783
388761
|
init_tools();
|
|
388784
388762
|
init_tool_names();
|
|
388785
388763
|
init_planUtils();
|
|
388786
|
-
|
|
388764
|
+
init_types();
|
|
388787
388765
|
init_paths();
|
|
388788
388766
|
init_loggers();
|
|
388789
|
-
|
|
388767
|
+
init_types5();
|
|
388790
388768
|
init_coreTools();
|
|
388791
388769
|
init_resolver();
|
|
388792
388770
|
init_approvalModeUtils();
|
|
@@ -388937,7 +388915,7 @@ var init_enter_plan_mode = __esm({
|
|
|
388937
388915
|
"use strict";
|
|
388938
388916
|
init_tools();
|
|
388939
388917
|
init_tool_names();
|
|
388940
|
-
|
|
388918
|
+
init_types();
|
|
388941
388919
|
init_coreTools();
|
|
388942
388920
|
init_resolver();
|
|
388943
388921
|
EnterPlanModeTool = class _EnterPlanModeTool extends BaseDeclarativeTool {
|
|
@@ -389220,8 +389198,8 @@ var init_tool_utils = __esm({
|
|
|
389220
389198
|
init_src2();
|
|
389221
389199
|
init_shell_utils();
|
|
389222
389200
|
import_fast_levenshtein2 = __toESM(require_levenshtein(), 1);
|
|
389201
|
+
init_types();
|
|
389223
389202
|
init_types2();
|
|
389224
|
-
init_types3();
|
|
389225
389203
|
init_tool_names();
|
|
389226
389204
|
}
|
|
389227
389205
|
});
|
|
@@ -389842,7 +389820,7 @@ var init_tool_executor = __esm({
|
|
|
389842
389820
|
init_coreToolHookTriggers();
|
|
389843
389821
|
init_fileUtils();
|
|
389844
389822
|
init_generateContentResponseUtilities();
|
|
389845
|
-
|
|
389823
|
+
init_types2();
|
|
389846
389824
|
init_constants();
|
|
389847
389825
|
ToolExecutor = class {
|
|
389848
389826
|
config;
|
|
@@ -390168,8 +390146,8 @@ var init_policy = __esm({
|
|
|
390168
390146
|
"packages/core/dist/src/scheduler/policy.js"() {
|
|
390169
390147
|
"use strict";
|
|
390170
390148
|
init_tool_error();
|
|
390171
|
-
|
|
390172
|
-
|
|
390149
|
+
init_types();
|
|
390150
|
+
init_types3();
|
|
390173
390151
|
init_tools();
|
|
390174
390152
|
init_utils4();
|
|
390175
390153
|
init_paths();
|
|
@@ -390184,15 +390162,15 @@ var init_coreToolScheduler = __esm({
|
|
|
390184
390162
|
"packages/core/dist/src/core/coreToolScheduler.js"() {
|
|
390185
390163
|
"use strict";
|
|
390186
390164
|
init_tools();
|
|
390187
|
-
|
|
390165
|
+
init_types();
|
|
390188
390166
|
init_loggers();
|
|
390189
390167
|
init_tool_error();
|
|
390190
|
-
|
|
390168
|
+
init_types5();
|
|
390191
390169
|
init_trace3();
|
|
390192
390170
|
init_tool_modifier();
|
|
390193
390171
|
init_tool_utils();
|
|
390194
|
-
init_types4();
|
|
390195
390172
|
init_types3();
|
|
390173
|
+
init_types2();
|
|
390196
390174
|
init_tool_executor();
|
|
390197
390175
|
init_mcp_tool();
|
|
390198
390176
|
init_policy();
|
|
@@ -391388,7 +391366,7 @@ var init_geminiChat = __esm({
|
|
|
391388
391366
|
init_tools();
|
|
391389
391367
|
init_loggers();
|
|
391390
391368
|
init_chatRecordingService();
|
|
391391
|
-
|
|
391369
|
+
init_types5();
|
|
391392
391370
|
init_handler();
|
|
391393
391371
|
init_messageInspectors();
|
|
391394
391372
|
init_geminiRequest();
|
|
@@ -391965,8 +391943,8 @@ var init_turn = __esm({
|
|
|
391965
391943
|
init_geminiChat();
|
|
391966
391944
|
init_thoughtUtils();
|
|
391967
391945
|
init_generateContentResponseUtilities();
|
|
391968
|
-
|
|
391969
|
-
|
|
391946
|
+
init_types5();
|
|
391947
|
+
init_types2();
|
|
391970
391948
|
(function(GeminiEventType2) {
|
|
391971
391949
|
GeminiEventType2["Content"] = "content";
|
|
391972
391950
|
GeminiEventType2["ToolCallRequest"] = "tool_call_request";
|
|
@@ -393586,7 +393564,7 @@ var init_promptProvider = __esm({
|
|
|
393586
393564
|
"packages/core/dist/src/prompts/promptProvider.js"() {
|
|
393587
393565
|
"use strict";
|
|
393588
393566
|
init_paths();
|
|
393589
|
-
|
|
393567
|
+
init_types();
|
|
393590
393568
|
init_snippets();
|
|
393591
393569
|
init_snippets_legacy();
|
|
393592
393570
|
init_utils6();
|
|
@@ -393796,7 +393774,7 @@ var init_nextSpeakerChecker = __esm({
|
|
|
393796
393774
|
"use strict";
|
|
393797
393775
|
init_messageInspectors();
|
|
393798
393776
|
init_debugLogger();
|
|
393799
|
-
|
|
393777
|
+
init_types5();
|
|
393800
393778
|
CHECK_PROMPT = `Analyze *only* the content and structure of your immediately preceding response (your last turn in the conversation history). Based *strictly* on that response, determine who should logically speak next: the 'user' or the 'model' (you).
|
|
393801
393779
|
**Decision Rules (apply in order):**
|
|
393802
393780
|
1. **Model Continues:** If your last response explicitly states an immediate next action *you* intend to take (e.g., "Next, I will...", "Now I'll process...", "Moving on to analyze...", indicates an intended tool call that didn't execute), OR if the response seems clearly incomplete (cut off mid-thought without a natural conclusion), then the **'model'** should speak next.
|
|
@@ -393850,7 +393828,7 @@ var init_loopDetectionService = __esm({
|
|
|
393850
393828
|
"use strict";
|
|
393851
393829
|
init_turn();
|
|
393852
393830
|
init_loggers();
|
|
393853
|
-
|
|
393831
|
+
init_types5();
|
|
393854
393832
|
init_messageInspectors();
|
|
393855
393833
|
init_debugLogger();
|
|
393856
393834
|
TOOL_CALL_LOOP_THRESHOLD = 5;
|
|
@@ -394435,7 +394413,7 @@ var init_chatCompressionService = __esm({
|
|
|
394435
394413
|
init_prompts();
|
|
394436
394414
|
init_partUtils();
|
|
394437
394415
|
init_loggers();
|
|
394438
|
-
|
|
394416
|
+
init_types5();
|
|
394439
394417
|
init_fileUtils();
|
|
394440
394418
|
init_debugLogger();
|
|
394441
394419
|
init_environmentContext();
|
|
@@ -394627,7 +394605,7 @@ var init_toolOutputMaskingService = __esm({
|
|
|
394627
394605
|
init_fileUtils();
|
|
394628
394606
|
init_loggers();
|
|
394629
394607
|
init_tool_names();
|
|
394630
|
-
|
|
394608
|
+
init_types5();
|
|
394631
394609
|
DEFAULT_TOOL_PROTECTION_THRESHOLD = 5e4;
|
|
394632
394610
|
DEFAULT_MIN_PRUNABLE_TOKENS_THRESHOLD = 3e4;
|
|
394633
394611
|
DEFAULT_PROTECT_LATEST_TURN = true;
|
|
@@ -394871,7 +394849,7 @@ var init_client3 = __esm({
|
|
|
394871
394849
|
init_chatCompressionService();
|
|
394872
394850
|
init_ideContext();
|
|
394873
394851
|
init_loggers();
|
|
394874
|
-
|
|
394852
|
+
init_types5();
|
|
394875
394853
|
init_uiTelemetry();
|
|
394876
394854
|
init_handler();
|
|
394877
394855
|
init_debugLogger();
|
|
@@ -401260,7 +401238,7 @@ var init_classifierStrategy = __esm({
|
|
|
401260
401238
|
init_node();
|
|
401261
401239
|
init_messageInspectors();
|
|
401262
401240
|
init_debugLogger();
|
|
401263
|
-
|
|
401241
|
+
init_types5();
|
|
401264
401242
|
HISTORY_TURNS_FOR_CONTEXT2 = 4;
|
|
401265
401243
|
HISTORY_SEARCH_WINDOW2 = 20;
|
|
401266
401244
|
FLASH_MODEL2 = "flash";
|
|
@@ -401425,7 +401403,7 @@ var init_numericalClassifierStrategy = __esm({
|
|
|
401425
401403
|
init_models();
|
|
401426
401404
|
init_node();
|
|
401427
401405
|
init_debugLogger();
|
|
401428
|
-
|
|
401406
|
+
init_types5();
|
|
401429
401407
|
HISTORY_TURNS_FOR_CONTEXT3 = 8;
|
|
401430
401408
|
FLASH_MODEL3 = "flash";
|
|
401431
401409
|
PRO_MODEL3 = "pro";
|
|
@@ -401695,7 +401673,7 @@ var init_approvalModeStrategy = __esm({
|
|
|
401695
401673
|
"packages/core/dist/src/routing/strategies/approvalModeStrategy.js"() {
|
|
401696
401674
|
"use strict";
|
|
401697
401675
|
init_models();
|
|
401698
|
-
|
|
401676
|
+
init_types();
|
|
401699
401677
|
ApprovalModeStrategy = class {
|
|
401700
401678
|
name = "approval-mode";
|
|
401701
401679
|
async route(context2, config2, _baseLlmClient) {
|
|
@@ -401754,7 +401732,7 @@ var init_modelRouterService = __esm({
|
|
|
401754
401732
|
init_overrideStrategy();
|
|
401755
401733
|
init_approvalModeStrategy();
|
|
401756
401734
|
init_loggers();
|
|
401757
|
-
|
|
401735
|
+
init_types5();
|
|
401758
401736
|
init_debugLogger();
|
|
401759
401737
|
ModelRouterService = class {
|
|
401760
401738
|
config;
|
|
@@ -403477,8 +403455,8 @@ var MessageBus;
|
|
|
403477
403455
|
var init_message_bus = __esm({
|
|
403478
403456
|
"packages/core/dist/src/confirmation-bus/message-bus.js"() {
|
|
403479
403457
|
"use strict";
|
|
403480
|
-
|
|
403481
|
-
|
|
403458
|
+
init_types();
|
|
403459
|
+
init_types3();
|
|
403482
403460
|
init_safeJsonStringify();
|
|
403483
403461
|
init_debugLogger();
|
|
403484
403462
|
MessageBus = class extends EventEmitter12 {
|
|
@@ -403738,7 +403716,7 @@ var init_policy_engine = __esm({
|
|
|
403738
403716
|
"packages/core/dist/src/policy/policy-engine.js"() {
|
|
403739
403717
|
"use strict";
|
|
403740
403718
|
init_node();
|
|
403741
|
-
|
|
403719
|
+
init_types();
|
|
403742
403720
|
init_stable_stringify();
|
|
403743
403721
|
init_debugLogger();
|
|
403744
403722
|
init_protocol2();
|
|
@@ -405123,7 +405101,7 @@ var init_hookEventHandler = __esm({
|
|
|
405123
405101
|
init_types16();
|
|
405124
405102
|
init_hookTranslator();
|
|
405125
405103
|
init_loggers();
|
|
405126
|
-
|
|
405104
|
+
init_types5();
|
|
405127
405105
|
init_debugLogger();
|
|
405128
405106
|
init_events();
|
|
405129
405107
|
HookEventHandler = class {
|
|
@@ -413886,7 +413864,7 @@ var init_registry = __esm({
|
|
|
413886
413864
|
init_debugLogger();
|
|
413887
413865
|
init_models();
|
|
413888
413866
|
init_modelConfigService();
|
|
413889
|
-
|
|
413867
|
+
init_types();
|
|
413890
413868
|
init_a2a_errors();
|
|
413891
413869
|
AgentRegistry = class {
|
|
413892
413870
|
config;
|
|
@@ -414352,8 +414330,8 @@ var SchedulerStateManager;
|
|
|
414352
414330
|
var init_state_manager = __esm({
|
|
414353
414331
|
"packages/core/dist/src/scheduler/state-manager.js"() {
|
|
414354
414332
|
"use strict";
|
|
414333
|
+
init_types2();
|
|
414355
414334
|
init_types3();
|
|
414356
|
-
init_types4();
|
|
414357
414335
|
init_tool_utils();
|
|
414358
414336
|
SchedulerStateManager = class {
|
|
414359
414337
|
messageBus;
|
|
@@ -414878,9 +414856,9 @@ async function waitForConfirmation(messageBus, correlationId, signal, ideConfirm
|
|
|
414878
414856
|
var init_confirmation = __esm({
|
|
414879
414857
|
"packages/core/dist/src/scheduler/confirmation.js"() {
|
|
414880
414858
|
"use strict";
|
|
414881
|
-
init_types4();
|
|
414882
|
-
init_tools();
|
|
414883
414859
|
init_types3();
|
|
414860
|
+
init_tools();
|
|
414861
|
+
init_types2();
|
|
414884
414862
|
init_editor();
|
|
414885
414863
|
init_debugLogger();
|
|
414886
414864
|
init_events();
|
|
@@ -414897,15 +414875,15 @@ var init_scheduler2 = __esm({
|
|
|
414897
414875
|
init_policy();
|
|
414898
414876
|
init_tool_executor();
|
|
414899
414877
|
init_tool_modifier();
|
|
414900
|
-
init_types3();
|
|
414901
|
-
init_tool_error();
|
|
414902
414878
|
init_types2();
|
|
414879
|
+
init_tool_error();
|
|
414880
|
+
init_types();
|
|
414903
414881
|
init_tools();
|
|
414904
414882
|
init_tool_utils();
|
|
414905
414883
|
init_trace3();
|
|
414906
414884
|
init_loggers();
|
|
414907
|
-
|
|
414908
|
-
|
|
414885
|
+
init_types5();
|
|
414886
|
+
init_types3();
|
|
414909
414887
|
init_toolCallContext();
|
|
414910
414888
|
init_events();
|
|
414911
414889
|
init_constants();
|
|
@@ -415594,13 +415572,13 @@ var init_local_executor = __esm({
|
|
|
415594
415572
|
init_tools();
|
|
415595
415573
|
init_mcp_tool();
|
|
415596
415574
|
init_turn();
|
|
415575
|
+
init_types2();
|
|
415597
415576
|
init_types3();
|
|
415598
|
-
init_types4();
|
|
415599
415577
|
init_chatCompressionService();
|
|
415600
415578
|
init_environmentContext();
|
|
415601
415579
|
init_promptIdContext();
|
|
415602
415580
|
init_loggers();
|
|
415603
|
-
|
|
415581
|
+
init_types5();
|
|
415604
415582
|
init_types18();
|
|
415605
415583
|
init_errors();
|
|
415606
415584
|
init_utils8();
|
|
@@ -435302,7 +435280,7 @@ var import_fast_levenshtein3, import_toml, MAX_TYPO_DISTANCE, PolicyRuleSchema,
|
|
|
435302
435280
|
var init_toml_loader = __esm({
|
|
435303
435281
|
"packages/core/dist/src/policy/toml-loader.js"() {
|
|
435304
435282
|
"use strict";
|
|
435305
|
-
|
|
435283
|
+
init_types();
|
|
435306
435284
|
init_utils4();
|
|
435307
435285
|
init_tool_names();
|
|
435308
435286
|
init_tool_utils();
|
|
@@ -435759,11 +435737,11 @@ var init_config3 = __esm({
|
|
|
435759
435737
|
"packages/core/dist/src/policy/config.js"() {
|
|
435760
435738
|
"use strict";
|
|
435761
435739
|
init_storage();
|
|
435762
|
-
|
|
435740
|
+
init_types();
|
|
435763
435741
|
init_toml_loader();
|
|
435764
435742
|
init_utils4();
|
|
435765
435743
|
import_toml2 = __toESM(require_toml(), 1);
|
|
435766
|
-
|
|
435744
|
+
init_types3();
|
|
435767
435745
|
init_message_bus();
|
|
435768
435746
|
init_events();
|
|
435769
435747
|
init_debugLogger();
|
|
@@ -436537,7 +436515,7 @@ var init_registry2 = __esm({
|
|
|
436537
436515
|
"packages/core/dist/src/safety/registry.js"() {
|
|
436538
436516
|
"use strict";
|
|
436539
436517
|
init_built_in();
|
|
436540
|
-
|
|
436518
|
+
init_types();
|
|
436541
436519
|
init_conseca();
|
|
436542
436520
|
CheckerRegistry = class _CheckerRegistry {
|
|
436543
436521
|
checkersPath;
|
|
@@ -439894,7 +439872,7 @@ var init_config4 = __esm({
|
|
|
439894
439872
|
init_fileSystemService();
|
|
439895
439873
|
init_trackerTools2();
|
|
439896
439874
|
init_loggers();
|
|
439897
|
-
|
|
439875
|
+
init_types5();
|
|
439898
439876
|
init_modelAvailabilityService();
|
|
439899
439877
|
init_modelRouterService();
|
|
439900
439878
|
init_types17();
|
|
@@ -439907,7 +439885,7 @@ var init_config4 = __esm({
|
|
|
439907
439885
|
init_ignorePatterns();
|
|
439908
439886
|
init_message_bus();
|
|
439909
439887
|
init_policy_engine();
|
|
439910
|
-
|
|
439888
|
+
init_types();
|
|
439911
439889
|
init_hooks();
|
|
439912
439890
|
init_codeAssist();
|
|
439913
439891
|
init_experiments();
|
|
@@ -446824,7 +446802,7 @@ var init_sessionSummaryService = __esm({
|
|
|
446824
446802
|
init_geminiRequest();
|
|
446825
446803
|
init_debugLogger();
|
|
446826
446804
|
init_partUtils();
|
|
446827
|
-
|
|
446805
|
+
init_types5();
|
|
446828
446806
|
DEFAULT_MAX_MESSAGES = 20;
|
|
446829
446807
|
DEFAULT_TIMEOUT_MS = 5e3;
|
|
446830
446808
|
MAX_MESSAGE_LENGTH = 500;
|
|
@@ -447270,7 +447248,7 @@ var init_read_many_files = __esm({
|
|
|
447270
447248
|
init_metrics2();
|
|
447271
447249
|
init_telemetry_utils();
|
|
447272
447250
|
init_loggers();
|
|
447273
|
-
|
|
447251
|
+
init_types5();
|
|
447274
447252
|
init_tool_error();
|
|
447275
447253
|
init_tool_names();
|
|
447276
447254
|
init_coreTools();
|
|
@@ -447730,13 +447708,13 @@ var init_src2 = __esm({
|
|
|
447730
447708
|
init_types17();
|
|
447731
447709
|
init_json_formatter();
|
|
447732
447710
|
init_stream_json_formatter();
|
|
447733
|
-
|
|
447711
|
+
init_types();
|
|
447734
447712
|
init_policy_engine();
|
|
447735
447713
|
init_toml_loader();
|
|
447736
447714
|
init_config3();
|
|
447737
447715
|
init_integrity();
|
|
447738
447716
|
init_billing2();
|
|
447739
|
-
|
|
447717
|
+
init_types3();
|
|
447740
447718
|
init_message_bus();
|
|
447741
447719
|
init_extensions();
|
|
447742
447720
|
init_restore();
|
|
@@ -447755,7 +447733,7 @@ var init_src2 = __esm({
|
|
|
447755
447733
|
init_geminiRequest();
|
|
447756
447734
|
init_coreToolScheduler();
|
|
447757
447735
|
init_scheduler2();
|
|
447758
|
-
|
|
447736
|
+
init_types2();
|
|
447759
447737
|
init_tool_executor();
|
|
447760
447738
|
init_recordingContentGenerator();
|
|
447761
447739
|
init_types20();
|
|
@@ -447794,7 +447772,7 @@ var init_src2 = __esm({
|
|
|
447794
447772
|
init_fileDiffUtils();
|
|
447795
447773
|
init_retry();
|
|
447796
447774
|
init_shell_utils();
|
|
447797
|
-
|
|
447775
|
+
init_types();
|
|
447798
447776
|
init_tool_utils();
|
|
447799
447777
|
init_terminalSerializer();
|
|
447800
447778
|
init_systemEncoding();
|
|
@@ -448141,6 +448119,7 @@ __export(dist_exports, {
|
|
|
448141
448119
|
ExtensionLoader: () => ExtensionLoader,
|
|
448142
448120
|
ExtensionUninstallEvent: () => ExtensionUninstallEvent,
|
|
448143
448121
|
ExtensionUpdateEvent: () => ExtensionUpdateEvent,
|
|
448122
|
+
FORCE_FILE_STORAGE_ENV_VAR: () => FORCE_FILE_STORAGE_ENV_VAR,
|
|
448144
448123
|
FRONTMATTER_REGEX: () => FRONTMATTER_REGEX,
|
|
448145
448124
|
FatalAuthenticationError: () => FatalAuthenticationError,
|
|
448146
448125
|
FatalCancellationError: () => FatalCancellationError,
|
|
@@ -448865,7 +448844,7 @@ var init_dist7 = __esm({
|
|
|
448865
448844
|
init_config4();
|
|
448866
448845
|
init_detect_ide();
|
|
448867
448846
|
init_loggers();
|
|
448868
|
-
|
|
448847
|
+
init_types5();
|
|
448869
448848
|
init_config5();
|
|
448870
448849
|
init_pathReader();
|
|
448871
448850
|
init_clearcut_logger();
|
|
@@ -528081,7 +528060,7 @@ var WarningMessage = ({ text }) => {
|
|
|
528081
528060
|
};
|
|
528082
528061
|
|
|
528083
528062
|
// packages/cli/src/generated/git-commit.ts
|
|
528084
|
-
var GIT_COMMIT_INFO2 = "
|
|
528063
|
+
var GIT_COMMIT_INFO2 = "25bb21ed7";
|
|
528085
528064
|
|
|
528086
528065
|
// packages/cli/src/ui/components/AboutBox.tsx
|
|
528087
528066
|
init_dist7();
|
|
@@ -576962,7 +576941,7 @@ async function loadSandboxConfig(settings, argv) {
|
|
|
576962
576941
|
const sandboxOption = argv.sandbox ?? settings.tools?.sandbox;
|
|
576963
576942
|
const command2 = getSandboxCommand(sandboxOption);
|
|
576964
576943
|
const packageJson2 = await getPackageJson(__dirname13);
|
|
576965
|
-
const image3 = process.env["GEMINI_SANDBOX_IMAGE"] ?? "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.34.0-preview.
|
|
576944
|
+
const image3 = process.env["GEMINI_SANDBOX_IMAGE"] ?? "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.34.0-preview.3" ?? packageJson2?.config?.sandboxImageUri;
|
|
576966
576945
|
return command2 && image3 ? { command: command2, image: image3 } : void 0;
|
|
576967
576946
|
}
|
|
576968
576947
|
|