opencode-gemini-cli-oauth 1.1.3 ā 1.1.4
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/cli/setup.js +69 -34
- package/dist/cli/setup.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/setup.js
CHANGED
|
@@ -5,7 +5,7 @@ import os from 'os';
|
|
|
5
5
|
import http from 'http';
|
|
6
6
|
import url from 'url';
|
|
7
7
|
import { OAuth2Client } from 'google-auth-library';
|
|
8
|
-
import { OAUTH_CLIENT_ID, OAUTH_CLIENT_SECRET, OAUTH_SCOPES, OAUTH_CREDS_PATH, GEMINI_DIR } from '../constants.js';
|
|
8
|
+
import { OAUTH_CLIENT_ID, OAUTH_CLIENT_SECRET, OAUTH_SCOPES, OAUTH_CREDS_PATH, GEMINI_DIR, GOOGLE_ACCOUNTS_PATH } from '../constants.js';
|
|
9
9
|
// Setup paths
|
|
10
10
|
const OPENCODE_CONFIG_DIR = path.join(os.homedir(), '.config', 'opencode');
|
|
11
11
|
const OPENCODE_CONFIG_PATH = path.join(OPENCODE_CONFIG_DIR, 'opencode.json');
|
|
@@ -45,11 +45,54 @@ const rl = readline.createInterface({
|
|
|
45
45
|
const question = (query) => {
|
|
46
46
|
return new Promise((resolve) => rl.question(query, resolve));
|
|
47
47
|
};
|
|
48
|
+
async function saveAccount(tokens, client) {
|
|
49
|
+
// Get user info to identify account
|
|
50
|
+
client.setCredentials(tokens);
|
|
51
|
+
const userInfo = await client.getTokenInfo(tokens.access_token);
|
|
52
|
+
const email = userInfo.email || 'unknown';
|
|
53
|
+
console.log(`\nš§ Identified account: ${email}`);
|
|
54
|
+
// 1. Update/Create google_accounts.json (Multi-account storage)
|
|
55
|
+
let accounts = [];
|
|
56
|
+
try {
|
|
57
|
+
const data = await fs.readFile(GOOGLE_ACCOUNTS_PATH, 'utf-8');
|
|
58
|
+
accounts = JSON.parse(data);
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
// File doesn't exist yet
|
|
62
|
+
}
|
|
63
|
+
// Remove existing entry for this email if any
|
|
64
|
+
accounts = accounts.filter(acc => acc.email !== email);
|
|
65
|
+
// Add new entry
|
|
66
|
+
accounts.push({
|
|
67
|
+
email,
|
|
68
|
+
tokens,
|
|
69
|
+
last_active: Date.now()
|
|
70
|
+
});
|
|
71
|
+
await fs.writeFile(GOOGLE_ACCOUNTS_PATH, JSON.stringify(accounts, null, 2));
|
|
72
|
+
console.log(`ā
Saved to account pool (${accounts.length} accounts total)`);
|
|
73
|
+
// 2. Update oauth_creds.json (Current active account)
|
|
74
|
+
// This ensures compatibility with Gemini CLI single-account mode
|
|
75
|
+
await fs.writeFile(OAUTH_CREDS_PATH, JSON.stringify(tokens, null, 2));
|
|
76
|
+
console.log('ā
Set as active account');
|
|
77
|
+
}
|
|
78
|
+
async function listAccounts() {
|
|
79
|
+
try {
|
|
80
|
+
const data = await fs.readFile(GOOGLE_ACCOUNTS_PATH, 'utf-8');
|
|
81
|
+
const accounts = JSON.parse(data);
|
|
82
|
+
console.log('\nš„ Registered Accounts:');
|
|
83
|
+
accounts.forEach((acc, idx) => {
|
|
84
|
+
console.log(` ${idx + 1}. ${acc.email}`);
|
|
85
|
+
});
|
|
86
|
+
console.log('');
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
console.log('\nš„ No accounts registered yet.\n');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
48
92
|
async function performLoopbackLogin() {
|
|
49
93
|
console.log('\nš Initiating Native Google Login (Loopback Flow)...');
|
|
50
94
|
return new Promise((resolve, reject) => {
|
|
51
|
-
let client;
|
|
52
|
-
// Create a local server to receive the code
|
|
95
|
+
let client;
|
|
53
96
|
const server = http.createServer(async (req, res) => {
|
|
54
97
|
try {
|
|
55
98
|
if (!req.url)
|
|
@@ -57,7 +100,6 @@ async function performLoopbackLogin() {
|
|
|
57
100
|
const query = url.parse(req.url, true).query;
|
|
58
101
|
if (query.code) {
|
|
59
102
|
const code = query.code;
|
|
60
|
-
// Close the browser tab
|
|
61
103
|
res.writeHead(200, { 'Content-Type': 'text/html' });
|
|
62
104
|
res.end(`
|
|
63
105
|
<html>
|
|
@@ -67,17 +109,12 @@ async function performLoopbackLogin() {
|
|
|
67
109
|
</body>
|
|
68
110
|
</html>
|
|
69
111
|
`);
|
|
70
|
-
// Close server
|
|
71
112
|
server.close();
|
|
72
113
|
console.log('ā
Authorization code received!');
|
|
73
114
|
console.log('š Exchanging code for token...');
|
|
74
115
|
try {
|
|
75
|
-
// Exchange code for tokens (client is now accessible)
|
|
76
116
|
const { tokens } = await client.getToken(code);
|
|
77
|
-
|
|
78
|
-
await fs.mkdir(GEMINI_DIR, { recursive: true });
|
|
79
|
-
await fs.writeFile(OAUTH_CREDS_PATH, JSON.stringify(tokens, null, 2));
|
|
80
|
-
console.log('ā
Authentication successful! Credentials saved.');
|
|
117
|
+
await saveAccount(tokens, client);
|
|
81
118
|
resolve();
|
|
82
119
|
}
|
|
83
120
|
catch (err) {
|
|
@@ -89,7 +126,6 @@ async function performLoopbackLogin() {
|
|
|
89
126
|
console.error('Server error:', err);
|
|
90
127
|
}
|
|
91
128
|
});
|
|
92
|
-
// Listen on a random available port
|
|
93
129
|
server.listen(0, async () => {
|
|
94
130
|
const address = server.address();
|
|
95
131
|
if (!address || typeof address === 'string') {
|
|
@@ -99,7 +135,6 @@ async function performLoopbackLogin() {
|
|
|
99
135
|
const port = address.port;
|
|
100
136
|
const redirectUri = `http://localhost:${port}`;
|
|
101
137
|
console.log(`š Local server listening on port ${port}`);
|
|
102
|
-
// Initialize OAuth client with dynamic redirect URI
|
|
103
138
|
client = new OAuth2Client({
|
|
104
139
|
clientId: OAUTH_CLIENT_ID,
|
|
105
140
|
clientSecret: OAUTH_CLIENT_SECRET,
|
|
@@ -112,7 +147,6 @@ async function performLoopbackLogin() {
|
|
|
112
147
|
});
|
|
113
148
|
console.log('\nš Opening browser to authorize...');
|
|
114
149
|
console.log(` URL: ${authorizeUrl}`);
|
|
115
|
-
// Try to open browser, or ask user to click
|
|
116
150
|
const { exec } = await import('child_process');
|
|
117
151
|
const start = (process.platform == 'darwin' ? 'open' : process.platform == 'win32' ? 'start' : 'xdg-open');
|
|
118
152
|
exec(`${start} "${authorizeUrl}"`);
|
|
@@ -141,43 +175,44 @@ async function updateOpencodeConfig() {
|
|
|
141
175
|
}
|
|
142
176
|
await fs.writeFile(OPENCODE_CONFIG_PATH, JSON.stringify(config, null, 2));
|
|
143
177
|
console.log('ā
Configuration updated successfully!');
|
|
144
|
-
console.log(` Location: ${OPENCODE_CONFIG_PATH}`);
|
|
145
178
|
}
|
|
146
179
|
catch (error) {
|
|
147
180
|
console.error('ā Failed to update configuration:', error);
|
|
148
181
|
}
|
|
149
182
|
}
|
|
150
183
|
async function main() {
|
|
151
|
-
|
|
152
|
-
console.log('
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
if
|
|
159
|
-
|
|
184
|
+
await fs.mkdir(GEMINI_DIR, { recursive: true });
|
|
185
|
+
console.log('š OpenCode Gemini CLI OAuth Manager');
|
|
186
|
+
console.log('====================================');
|
|
187
|
+
await listAccounts();
|
|
188
|
+
const action = await question('Choose action:\n1. Add/Login new account\n2. Update OpenCode config only\n3. Exit\n> ');
|
|
189
|
+
if (action === '1') {
|
|
190
|
+
await performLoopbackLogin();
|
|
191
|
+
// Ask if want to add another
|
|
192
|
+
while (true) {
|
|
193
|
+
const addMore = await question('\nDo you want to add another account? (y/N) ');
|
|
194
|
+
if (addMore.toLowerCase() === 'y') {
|
|
195
|
+
await performLoopbackLogin();
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
160
200
|
}
|
|
161
201
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
const answer = await question('Do you want to login now? (Y/n) ');
|
|
165
|
-
if (answer.toLowerCase() !== 'n') {
|
|
166
|
-
await performLoopbackLogin();
|
|
167
|
-
}
|
|
202
|
+
else if (action === '3') {
|
|
203
|
+
process.exit(0);
|
|
168
204
|
}
|
|
169
|
-
//
|
|
170
|
-
const updateConfig = await question('
|
|
205
|
+
// Always offer to update config at the end
|
|
206
|
+
const updateConfig = await question('\nUpdate OpenCode configuration? (Y/n) ');
|
|
171
207
|
if (updateConfig.toLowerCase() !== 'n') {
|
|
172
208
|
await updateOpencodeConfig();
|
|
173
209
|
}
|
|
174
|
-
console.log('\nāØ
|
|
175
|
-
console.log('You can now use "Gemini (Google Account)" models in OpenCode.');
|
|
210
|
+
console.log('\n⨠Done!');
|
|
176
211
|
rl.close();
|
|
177
212
|
process.exit(0);
|
|
178
213
|
}
|
|
179
214
|
main().catch((error) => {
|
|
180
|
-
console.error('\nā
|
|
215
|
+
console.error('\nā Operation failed:', error.message);
|
|
181
216
|
rl.close();
|
|
182
217
|
process.exit(1);
|
|
183
218
|
});
|
package/dist/cli/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,UAAU,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED