opencode-gemini-cli-oauth 1.1.2 ā 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 +134 -50
- package/dist/cli/setup.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/setup.js
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
import fs from 'fs/promises';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import os from 'os';
|
|
5
|
-
import
|
|
5
|
+
import http from 'http';
|
|
6
|
+
import url from 'url';
|
|
6
7
|
import { OAuth2Client } from 'google-auth-library';
|
|
7
|
-
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
|
+
// Setup paths
|
|
8
10
|
const OPENCODE_CONFIG_DIR = path.join(os.homedir(), '.config', 'opencode');
|
|
9
11
|
const OPENCODE_CONFIG_PATH = path.join(OPENCODE_CONFIG_DIR, 'opencode.json');
|
|
10
12
|
const MODELS_CONFIG = {
|
|
@@ -34,6 +36,8 @@ const MODELS_CONFIG = {
|
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
};
|
|
39
|
+
// Helper for user input
|
|
40
|
+
import readline from 'readline';
|
|
37
41
|
const rl = readline.createInterface({
|
|
38
42
|
input: process.stdin,
|
|
39
43
|
output: process.stdout
|
|
@@ -41,32 +45,113 @@ const rl = readline.createInterface({
|
|
|
41
45
|
const question = (query) => {
|
|
42
46
|
return new Promise((resolve) => rl.question(query, resolve));
|
|
43
47
|
};
|
|
44
|
-
async function
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
});
|
|
56
|
-
console.log('\nš Open this URL in your browser to authorize:\n');
|
|
57
|
-
console.log(authorizeUrl);
|
|
58
|
-
console.log('\n');
|
|
59
|
-
const code = await question('š Paste the authorization code here: ');
|
|
60
|
-
if (!code) {
|
|
61
|
-
throw new Error('No code provided');
|
|
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);
|
|
62
59
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
|
67
75
|
await fs.writeFile(OAUTH_CREDS_PATH, JSON.stringify(tokens, null, 2));
|
|
68
|
-
console.log('ā
|
|
69
|
-
|
|
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
|
+
}
|
|
92
|
+
async function performLoopbackLogin() {
|
|
93
|
+
console.log('\nš Initiating Native Google Login (Loopback Flow)...');
|
|
94
|
+
return new Promise((resolve, reject) => {
|
|
95
|
+
let client;
|
|
96
|
+
const server = http.createServer(async (req, res) => {
|
|
97
|
+
try {
|
|
98
|
+
if (!req.url)
|
|
99
|
+
return;
|
|
100
|
+
const query = url.parse(req.url, true).query;
|
|
101
|
+
if (query.code) {
|
|
102
|
+
const code = query.code;
|
|
103
|
+
res.writeHead(200, { 'Content-Type': 'text/html' });
|
|
104
|
+
res.end(`
|
|
105
|
+
<html>
|
|
106
|
+
<body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
|
|
107
|
+
<h1 style="color: #4CAF50;">Authentication Successful!</h1>
|
|
108
|
+
<p>You can close this window and return to the terminal.</p>
|
|
109
|
+
</body>
|
|
110
|
+
</html>
|
|
111
|
+
`);
|
|
112
|
+
server.close();
|
|
113
|
+
console.log('ā
Authorization code received!');
|
|
114
|
+
console.log('š Exchanging code for token...');
|
|
115
|
+
try {
|
|
116
|
+
const { tokens } = await client.getToken(code);
|
|
117
|
+
await saveAccount(tokens, client);
|
|
118
|
+
resolve();
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
reject(err);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
console.error('Server error:', err);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
server.listen(0, async () => {
|
|
130
|
+
const address = server.address();
|
|
131
|
+
if (!address || typeof address === 'string') {
|
|
132
|
+
reject(new Error('Failed to get server port'));
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const port = address.port;
|
|
136
|
+
const redirectUri = `http://localhost:${port}`;
|
|
137
|
+
console.log(`š Local server listening on port ${port}`);
|
|
138
|
+
client = new OAuth2Client({
|
|
139
|
+
clientId: OAUTH_CLIENT_ID,
|
|
140
|
+
clientSecret: OAUTH_CLIENT_SECRET,
|
|
141
|
+
redirectUri: redirectUri
|
|
142
|
+
});
|
|
143
|
+
const authorizeUrl = client.generateAuthUrl({
|
|
144
|
+
access_type: 'offline',
|
|
145
|
+
scope: OAUTH_SCOPES,
|
|
146
|
+
prompt: 'consent'
|
|
147
|
+
});
|
|
148
|
+
console.log('\nš Opening browser to authorize...');
|
|
149
|
+
console.log(` URL: ${authorizeUrl}`);
|
|
150
|
+
const { exec } = await import('child_process');
|
|
151
|
+
const start = (process.platform == 'darwin' ? 'open' : process.platform == 'win32' ? 'start' : 'xdg-open');
|
|
152
|
+
exec(`${start} "${authorizeUrl}"`);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
70
155
|
}
|
|
71
156
|
async function updateOpencodeConfig() {
|
|
72
157
|
try {
|
|
@@ -79,13 +164,10 @@ async function updateOpencodeConfig() {
|
|
|
79
164
|
catch (e) {
|
|
80
165
|
console.log('Creating new OpenCode configuration file...');
|
|
81
166
|
}
|
|
82
|
-
// Ensure provider section exists
|
|
83
167
|
if (!config.provider)
|
|
84
168
|
config.provider = {};
|
|
85
|
-
// Merge our models
|
|
86
169
|
console.log('\nš¦ Configuring models in opencode.json...');
|
|
87
170
|
config.provider['gemini-cli-oauth'] = MODELS_CONFIG['gemini-cli-oauth'];
|
|
88
|
-
// Ensure plugin is listed
|
|
89
171
|
if (!config.plugin)
|
|
90
172
|
config.plugin = [];
|
|
91
173
|
if (!config.plugin.includes('opencode-gemini-cli-oauth')) {
|
|
@@ -93,42 +175,44 @@ async function updateOpencodeConfig() {
|
|
|
93
175
|
}
|
|
94
176
|
await fs.writeFile(OPENCODE_CONFIG_PATH, JSON.stringify(config, null, 2));
|
|
95
177
|
console.log('ā
Configuration updated successfully!');
|
|
96
|
-
console.log(` Location: ${OPENCODE_CONFIG_PATH}`);
|
|
97
178
|
}
|
|
98
179
|
catch (error) {
|
|
99
180
|
console.error('ā Failed to update configuration:', error);
|
|
100
181
|
}
|
|
101
182
|
}
|
|
102
183
|
async function main() {
|
|
103
|
-
|
|
104
|
-
console.log('
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
if
|
|
111
|
-
|
|
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
|
+
}
|
|
112
200
|
}
|
|
113
201
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const answer = await question('Do you want to login now? (Y/n) ');
|
|
117
|
-
if (answer.toLowerCase() !== 'n') {
|
|
118
|
-
await performNativeLogin();
|
|
119
|
-
}
|
|
202
|
+
else if (action === '3') {
|
|
203
|
+
process.exit(0);
|
|
120
204
|
}
|
|
121
|
-
//
|
|
122
|
-
const updateConfig = await question('
|
|
205
|
+
// Always offer to update config at the end
|
|
206
|
+
const updateConfig = await question('\nUpdate OpenCode configuration? (Y/n) ');
|
|
123
207
|
if (updateConfig.toLowerCase() !== 'n') {
|
|
124
208
|
await updateOpencodeConfig();
|
|
125
209
|
}
|
|
126
|
-
console.log('\nāØ
|
|
127
|
-
console.log('You can now use "Gemini (Google Account)" models in OpenCode.');
|
|
210
|
+
console.log('\n⨠Done!');
|
|
128
211
|
rl.close();
|
|
212
|
+
process.exit(0);
|
|
129
213
|
}
|
|
130
214
|
main().catch((error) => {
|
|
131
|
-
console.error('\nā
|
|
215
|
+
console.error('\nā Operation failed:', error.message);
|
|
132
216
|
rl.close();
|
|
133
217
|
process.exit(1);
|
|
134
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,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED