@quantum-ai/gemini-cli 0.45.7 → 0.45.8
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/index.js +11 -44
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/src/config/auth.js +3 -3
- package/dist/src/config/auth.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import os from 'node:os';
|
|
|
9
9
|
import v8 from 'node:v8';
|
|
10
10
|
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
11
11
|
import { RELAUNCH_EXIT_CODE, getSpawnConfig, getScriptArgs, } from './src/utils/processUtils.js';
|
|
12
|
-
import { saveOpenAIApiKey, loadOpenAIApiKey } from '@google/gemini-cli-core';
|
|
12
|
+
// import { saveOpenAIApiKey, loadOpenAIApiKey } from '@google/gemini-cli-core'; // disabled due to unavailable exports
|
|
13
13
|
// --- Global Entry Point ---
|
|
14
14
|
// Suppress known race condition error in node-pty on Windows and Linux
|
|
15
15
|
// Tracking bug: https://github.com/microsoft/node-pty/issues/827
|
|
@@ -64,22 +64,18 @@ async function getMemoryNodeArgs() {
|
|
|
64
64
|
}
|
|
65
65
|
return [];
|
|
66
66
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
* Also loads saved settings into environment if not already set.
|
|
71
|
-
*/
|
|
67
|
+
// Persist and load OpenAI settings for NVIDIA API integration.
|
|
68
|
+
// Handles OPENAI_BASE_URL and OPENAI_MODEL via a local settings file.
|
|
69
|
+
// OPENAI_API_KEY is expected to be set in the environment; no keychain usage.
|
|
72
70
|
async function persistAndLoadOpenAISettings() {
|
|
73
71
|
const { join } = await import('node:path');
|
|
74
72
|
const geminiDir = join(os.homedir(), '.gemini');
|
|
75
73
|
try {
|
|
76
74
|
await mkdir(geminiDir, { recursive: true });
|
|
77
75
|
}
|
|
78
|
-
catch
|
|
79
|
-
// ignore mkdir errors
|
|
80
|
-
}
|
|
76
|
+
catch { }
|
|
81
77
|
const settingsFile = join(geminiDir, 'openai-settings.json');
|
|
82
|
-
// Load saved settings into
|
|
78
|
+
// Load saved settings into environment if not already set
|
|
83
79
|
try {
|
|
84
80
|
const data = await readFile(settingsFile, 'utf-8');
|
|
85
81
|
const settings = JSON.parse(data);
|
|
@@ -89,9 +85,7 @@ async function persistAndLoadOpenAISettings() {
|
|
|
89
85
|
}
|
|
90
86
|
}
|
|
91
87
|
}
|
|
92
|
-
catch
|
|
93
|
-
// ignore if file doesn't exist or parse fails
|
|
94
|
-
}
|
|
88
|
+
catch { }
|
|
95
89
|
// Save current env vars to settings file (merge with existing)
|
|
96
90
|
const updates = {};
|
|
97
91
|
if (process.env['OPENAI_BASE_URL']) {
|
|
@@ -102,41 +96,14 @@ async function persistAndLoadOpenAISettings() {
|
|
|
102
96
|
}
|
|
103
97
|
if (Object.keys(updates).length > 0) {
|
|
104
98
|
try {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const existingData = await readFile(settingsFile, 'utf-8');
|
|
108
|
-
existing = JSON.parse(existingData);
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
111
|
-
// ignore
|
|
112
|
-
}
|
|
99
|
+
const existingData = await readFile(settingsFile, 'utf-8').catch(() => '{}');
|
|
100
|
+
const existing = JSON.parse(existingData);
|
|
113
101
|
const merged = { ...existing, ...updates };
|
|
114
102
|
await writeFile(settingsFile, JSON.stringify(merged, null, 2));
|
|
115
103
|
}
|
|
116
|
-
catch
|
|
117
|
-
// ignore write errors
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
// Persist OPENAI_API_KEY to keychain, and load from keychain if not in env
|
|
121
|
-
if (process.env['OPENAI_API_KEY']) {
|
|
122
|
-
try {
|
|
123
|
-
await saveOpenAIApiKey(process.env['OPENAI_API_KEY']);
|
|
124
|
-
}
|
|
125
|
-
catch (e) {
|
|
126
|
-
// ignore
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
try {
|
|
131
|
-
const storedKey = await loadOpenAIApiKey();
|
|
132
|
-
if (storedKey && !process.env['OPENAI_API_KEY']) {
|
|
133
|
-
process.env['OPENAI_API_KEY'] = storedKey;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
catch (e) {
|
|
137
|
-
// ignore
|
|
138
|
-
}
|
|
104
|
+
catch { }
|
|
139
105
|
}
|
|
106
|
+
// Note: OPENAI_API_KEY is managed via environment variable only.
|
|
140
107
|
}
|
|
141
108
|
async function run() {
|
|
142
109
|
if (!process.env['GEMINI_CLI_NO_RELAUNCH'] && !process.env['SANDBOX']) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,GACd,MAAM,6BAA6B,CAAC;AACrC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/package.json
CHANGED
package/dist/src/config/auth.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { AuthType, loadApiKey
|
|
6
|
+
import { AuthType, loadApiKey } from '@google/gemini-cli-core';
|
|
7
7
|
import { loadEnvironment, loadSettings } from './settings.js';
|
|
8
8
|
export async function validateAuthMethod(authMethod) {
|
|
9
9
|
loadEnvironment(loadSettings().merged, process.cwd());
|
|
@@ -19,8 +19,8 @@ export async function validateAuthMethod(authMethod) {
|
|
|
19
19
|
}
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
22
|
-
if (authMethod ===
|
|
23
|
-
const key = process.env['OPENAI_API_KEY']
|
|
22
|
+
if (authMethod === 'USE_OPENAI') {
|
|
23
|
+
const key = process.env['OPENAI_API_KEY'];
|
|
24
24
|
if (!key) {
|
|
25
25
|
return ('When using OpenAI-compatible APIs (e.g., NVIDIA), you must specify the OPENAI_API_KEY environment variable.\n' +
|
|
26
26
|
'Update your environment and try again (no reload needed if using .env)!');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/config/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/config/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB;IAElB,eAAe,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,IACE,UAAU,KAAK,QAAQ,CAAC,iBAAiB;QACzC,UAAU,KAAK,QAAQ,CAAC,WAAW,EACnC;QACA,OAAO,IAAI,CAAC;KACb;IAED,IAAI,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAE;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,CACL,oFAAoF;gBACpF,yEAAyE,CAC1E,CAAC;SACH;QACD,OAAO,IAAI,CAAC;KACb;IAED,IAAI,UAAU,KAAK,YAAY,EAAE;QAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,CACL,+GAA+G;gBAC/G,yEAAyE,CAC1E,CAAC;SACH;QACD,OAAO,IAAI,CAAC;KACb;IAED,IAAI,UAAU,KAAK,QAAQ,CAAC,aAAa,EAAE;QACzC,MAAM,8BAA8B,GAClC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;YACrC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACzC,MAAM,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACxD,IAAI,CAAC,8BAA8B,IAAI,CAAC,eAAe,EAAE;YACvD,OAAO,CACL,kDAAkD;gBAClD,2EAA2E;gBAC3E,kEAAkE;gBAClE,yEAAyE,CAC1E,CAAC;SACH;QACD,OAAO,IAAI,CAAC;KACb;IAED,OAAO,+BAA+B,CAAC;AACzC,CAAC"}
|