opencode-gemini-business 2.0.4 → 2.1.0
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/CHANGELOG.md +19 -0
- package/README.md +139 -266
- package/README.ru.md +143 -276
- package/bin/cli.js +1 -1
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +195 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +7 -55
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -246
- package/dist/index.js.map +1 -1
- package/dist/opencode-gemini-business-2.1.0.tgz +0 -0
- package/dist/src/gemini-business-api.d.ts.map +1 -1
- package/dist/src/gemini-business-api.js +83 -24
- package/dist/src/gemini-business-api.js.map +1 -1
- package/package.json +1 -1
- package/dist/opencode-gemini-business-2.0.4.tgz +0 -0
package/README.ru.md
CHANGED
|
@@ -1,100 +1,63 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# 🔄 opencode-gemini-business
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
**Мульти-аккаунтный пул Gemini Business с интеллектуальной ротацией для OpenCode**
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
[](https://www.npmjs.com/package/opencode-gemini-business)
|
|
8
|
+
[](https://www.npmjs.com/package/opencode-gemini-business)
|
|
9
|
+
[](https://github.com/izzzzzi/opencode-gemini-business/releases)
|
|
10
|
+
[](LICENSE)
|
|
11
|
+
[](https://www.typescriptlang.org/)
|
|
12
|
+
[](https://nodejs.org/)
|
|
6
13
|
|
|
7
|
-
[
|
|
8
|
-
[](https://www.npmjs.com/package/opencode-gemini-business)
|
|
9
|
-
[](https://nodejs.org/)
|
|
14
|
+
**🇷🇺 Русский** | [🇬🇧 English](README.md)
|
|
10
15
|
|
|
11
|
-
|
|
16
|
+
<br />
|
|
12
17
|
|
|
13
|
-
|
|
18
|
+
*Auth-плагин для [OpenCode](https://github.com/anomalyco/opencode) — пул из нескольких аккаунтов Gemini Business с автоматической ротацией, фейловером и балансировкой нагрузки.*
|
|
14
19
|
|
|
15
|
-
|
|
20
|
+
</div>
|
|
16
21
|
|
|
17
|
-
|
|
22
|
+
---
|
|
18
23
|
|
|
19
|
-
##
|
|
24
|
+
## 📖 Обзор
|
|
20
25
|
|
|
21
|
-
|
|
22
|
-
|---------|----------|
|
|
23
|
-
| 🔄 **Мульти-аккаунт ротация** | Автоматическое переключение между аккаунтами |
|
|
24
|
-
| 🛡️ **Автоматический Failover** | Повтор неудачных запросов с другими аккаунтами |
|
|
25
|
-
| 🔐 **Управление сессиями** | Встроенное управление XSRF токенами и сессиями |
|
|
26
|
-
| ⚙️ **Гибкие стратегии** | Round-robin, least-used или случайная ротация |
|
|
27
|
-
| 📊 **Мониторинг здоровья** | Отслеживание статистики и ошибок по аккаунтам |
|
|
28
|
-
| 🚀 **Совместимость с OpenCode** | Бесшовная работа с системой провайдеров OpenCode |
|
|
29
|
-
| 💾 **Постоянная конфигурация** | Безопасное хранение в `~/.config/opencode/gemini-business-accounts.json` |
|
|
26
|
+
**opencode-gemini-business** — плагин для OpenCode, который обеспечивает ротацию между несколькими аккаунтами **Gemini Business API** (`business.gemini.google`), предоставляя автоматическое переключение при ошибках и балансировку нагрузки.
|
|
30
27
|
|
|
31
|
-
|
|
28
|
+
> **Важно**: Плагин использует **Gemini Business / Enterprise API**, НЕ Google AI Studio.
|
|
32
29
|
|
|
33
|
-
|
|
34
|
-
|--------|----------|-------------|-----------------|
|
|
35
|
-
| `gemini-2.5-pro` | 1M токенов | 32K токенов | Сложные рассуждения, длинные документы |
|
|
36
|
-
| `gemini-2.5-flash` | 1M токенов | 8K токенов | Быстрые ответы, простые задачи |
|
|
37
|
-
| `gemini-2.0-pro` | 2M токенов | 32K токенов | Массивный контекст, глубокий анализ |
|
|
38
|
-
| `gemini-1.5-pro` | 2M токенов | 8K токенов | Производственные нагрузки |
|
|
39
|
-
| `gemini-1.5-flash` | 1M токенов | 8K токенов | Экономичная разработка |
|
|
30
|
+
---
|
|
40
31
|
|
|
41
|
-
##
|
|
32
|
+
## ✨ Возможности
|
|
42
33
|
|
|
43
|
-
|
|
34
|
+
| Возможность | Описание |
|
|
35
|
+
|-------------|----------|
|
|
36
|
+
| 🔄 **Ротация аккаунтов** | Автоматическое переключение между несколькими аккаунтами Gemini Business |
|
|
37
|
+
| 🛡️ **Автоматический фейловер** | Повторные запросы с другим аккаунтом при ошибках |
|
|
38
|
+
| 🔐 **JWT-аутентификация** | Встроенное получение XSRF-токена и подписание JWT (HS256) |
|
|
39
|
+
| 📡 **Поддержка стриминга** | Полная поддержка SSE, JSON-lines и fallback-парсинга |
|
|
40
|
+
| ⚙️ **Гибкие стратегии** | Round-robin, least-used или случайный выбор |
|
|
41
|
+
| 🔑 **Автонастройка auth** | `add-account` автоматически создаёт auth-запись OpenCode |
|
|
44
42
|
|
|
45
|
-
|
|
46
|
-
npm install -g opencode-gemini-business
|
|
47
|
-
```
|
|
43
|
+
---
|
|
48
44
|
|
|
49
|
-
|
|
45
|
+
## 🤖 Поддерживаемые модели
|
|
50
46
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
| Модель | Internal API ID | Для чего |
|
|
48
|
+
|--------|:---------------:|----------|
|
|
49
|
+
| `gemini-2.5-flash` | `gemini-2.5-flash` | Повседневные задачи, быстрые ответы |
|
|
50
|
+
| `gemini-2.5-pro` | `gemini-2.5-pro` | Сложные рассуждения |
|
|
51
|
+
| `gemini-3-flash` | `gemini-3-flash-preview` | Новое поколение, быстрая |
|
|
52
|
+
| `gemini-3-pro` | `gemini-3-pro-preview` | Новое поколение, рассуждения |
|
|
54
53
|
|
|
55
|
-
|
|
54
|
+
---
|
|
56
55
|
|
|
57
|
-
|
|
56
|
+
## 🚀 Быстрый старт
|
|
58
57
|
|
|
59
|
-
|
|
60
|
-
{
|
|
61
|
-
"$schema": "https://opencode.ai/config.json",
|
|
62
|
-
"plugin": ["opencode-gemini-business@latest"],
|
|
63
|
-
"provider": {
|
|
64
|
-
"gemini-business": {
|
|
65
|
-
"models": {
|
|
66
|
-
"gemini-2.5-pro": {
|
|
67
|
-
"name": "Gemini 2.5 Pro (Business)",
|
|
68
|
-
"limit": { "context": 1048576, "output": 32768 },
|
|
69
|
-
"modalities": { "input": ["text"], "output": ["text"] }
|
|
70
|
-
},
|
|
71
|
-
"gemini-2.5-flash": {
|
|
72
|
-
"name": "Gemini 2.5 Flash (Business)",
|
|
73
|
-
"limit": { "context": 1048576, "output": 8192 },
|
|
74
|
-
"modalities": { "input": ["text"], "output": ["text"] }
|
|
75
|
-
},
|
|
76
|
-
"gemini-2.0-pro": {
|
|
77
|
-
"name": "Gemini 2.0 Pro (Business)",
|
|
78
|
-
"limit": { "context": 2097152, "output": 32768 },
|
|
79
|
-
"modalities": { "input": ["text"], "output": ["text"] }
|
|
80
|
-
},
|
|
81
|
-
"gemini-1.5-pro": {
|
|
82
|
-
"name": "Gemini 1.5 Pro (Business)",
|
|
83
|
-
"limit": { "context": 2097152, "output": 8192 },
|
|
84
|
-
"modalities": { "input": ["text"], "output": ["text"] }
|
|
85
|
-
},
|
|
86
|
-
"gemini-1.5-flash": {
|
|
87
|
-
"name": "Gemini 1.5 Flash (Business)",
|
|
88
|
-
"limit": { "context": 1048576, "output": 8192 },
|
|
89
|
-
"modalities": { "input": ["text"], "output": ["text"] }
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
```
|
|
58
|
+
### Шаг 1: Настроить OpenCode
|
|
96
59
|
|
|
97
|
-
|
|
60
|
+
Добавьте в `~/.config/opencode/opencode.json`:
|
|
98
61
|
|
|
99
62
|
```json
|
|
100
63
|
{
|
|
@@ -102,91 +65,55 @@ npx opencode-gemini-business@latest
|
|
|
102
65
|
"plugin": ["opencode-gemini-business@latest"],
|
|
103
66
|
"provider": {
|
|
104
67
|
"gemini-business": {
|
|
68
|
+
"name": "Gemini Business",
|
|
69
|
+
"options": {
|
|
70
|
+
"baseURL": "https://business.gemini.google/v1",
|
|
71
|
+
"apiKey": "unused"
|
|
72
|
+
},
|
|
105
73
|
"models": {
|
|
106
|
-
"gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
|
|
107
74
|
"gemini-2.5-flash": { "name": "Gemini 2.5 Flash" },
|
|
108
|
-
"gemini-2.
|
|
109
|
-
"gemini-
|
|
110
|
-
"gemini-
|
|
75
|
+
"gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
|
|
76
|
+
"gemini-3-flash": { "name": "Gemini 3 Flash" },
|
|
77
|
+
"gemini-3-pro": { "name": "Gemini 3 Pro" }
|
|
111
78
|
}
|
|
112
79
|
}
|
|
113
80
|
}
|
|
114
81
|
}
|
|
115
82
|
```
|
|
116
83
|
|
|
117
|
-
###
|
|
118
|
-
|
|
119
|
-
#### Метод 1: Использование расширения браузера (РЕКОМЕНДУЕТСЯ) ⚡
|
|
120
|
-
|
|
121
|
-
**Используйте расширение "Get cookies.txt LOCALLY"** для экспорта cookies, включая HttpOnly:
|
|
122
|
-
|
|
123
|
-
1. **Установите расширение**:
|
|
124
|
-
- [Chrome Web Store: Get cookies.txt LOCALLY](https://chromewebstore.google.com/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc)
|
|
125
|
-
- Это расширение может экспортировать **все cookies**, включая HttpOnly (которые недоступны JavaScript)
|
|
126
|
-
|
|
127
|
-
2. **Войдите** в [Gemini Business](https://business.gemini.google)
|
|
128
|
-
|
|
129
|
-
3. **Нажмите на иконку расширения** → Экспортируйте cookies для `business.gemini.google`
|
|
130
|
-
|
|
131
|
-
4. **Найдите в экспортированном файле**:
|
|
132
|
-
- `__Secure-C_SES`: `CSE.xxx...`
|
|
133
|
-
- `__Host-C_OSES`: `COS.xxx...`
|
|
134
|
-
|
|
135
|
-
5. **Получите csesidx из URL**:
|
|
136
|
-
- Посмотрите на URL в браузере: `?csesidx=1370433092`
|
|
137
|
-
- Скопируйте число после `csesidx=`
|
|
138
|
-
|
|
139
|
-
6. **Получите team_id из URL**:
|
|
140
|
-
- Посмотрите на URL в браузере: `/cid/e1f353e7-0291-44cf-9085-e0b6efd20e41/`
|
|
141
|
-
- Скопируйте UUID после `/cid/` - это ваш `team_id`
|
|
142
|
-
- Формат: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
|
|
143
|
-
|
|
144
|
-
7. **Добавьте аккаунт** (см. ниже)
|
|
145
|
-
|
|
146
|
-
#### Метод 2: Ручное извлечение через DevTools
|
|
147
|
-
|
|
148
|
-
1. **Войдите** в [Gemini Business](https://business.gemini.google)
|
|
84
|
+
### Шаг 2: Добавить аккаунт Gemini Business
|
|
149
85
|
|
|
150
|
-
|
|
151
|
-
- Посмотрите на URL в браузере: `/cid/e1f353e7-0291-44cf-9085-e0b6efd20e41/`
|
|
152
|
-
- Скопируйте UUID после `/cid/` - это ваш `team_id`
|
|
153
|
-
|
|
154
|
-
3. **Получите csesidx из URL**:
|
|
155
|
-
- Посмотрите на URL в браузере: `?csesidx=1370433092`
|
|
156
|
-
- Скопируйте число после `csesidx=`
|
|
157
|
-
|
|
158
|
-
4. **Откройте DevTools** (F12) → вкладка **Application** → **Cookies** → `https://business.gemini.google`
|
|
159
|
-
|
|
160
|
-
5. **Скопируйте cookies**:
|
|
161
|
-
- Найдите `__Secure-C_SES` → скопируйте значение
|
|
162
|
-
- Найдите `__Host-C_OSES` → скопируйте значение
|
|
163
|
-
|
|
164
|
-
6. **Добавьте аккаунт**:
|
|
86
|
+
Установите CLI-инструмент:
|
|
165
87
|
|
|
166
88
|
```bash
|
|
167
|
-
opencode-gemini-business
|
|
168
|
-
"Основной аккаунт" \
|
|
169
|
-
"e1f353e7-0291-44cf-9085-e0b6efd20e41" \
|
|
170
|
-
"CSE.AXUaAj_MKeqeFLr_..." \
|
|
171
|
-
"COS.AfQtEyCcW1aLwKb3..." \
|
|
172
|
-
"1370433092"
|
|
89
|
+
npm install -g opencode-gemini-business
|
|
173
90
|
```
|
|
174
91
|
|
|
175
|
-
|
|
92
|
+
Добавьте аккаунт:
|
|
176
93
|
|
|
177
94
|
```bash
|
|
178
95
|
opencode-gemini-business add-account \
|
|
179
|
-
"
|
|
96
|
+
"Мой аккаунт" \
|
|
180
97
|
"e1f353e7-0291-44cf-9085-e0b6efd20e41" \
|
|
181
98
|
"CSE.AXUaAj_MKeqeFLr_..." \
|
|
182
99
|
"COS.AfQtEyCcW1aLwKb3..." \
|
|
183
100
|
"1370433092"
|
|
184
101
|
```
|
|
185
102
|
|
|
186
|
-
|
|
103
|
+
Аргументы:
|
|
104
|
+
|
|
105
|
+
| # | Аргумент | Описание |
|
|
106
|
+
|:-:|----------|----------|
|
|
107
|
+
| 1 | Имя аккаунта | Отображаемое имя аккаунта |
|
|
108
|
+
| 2 | `team_id` | UUID из URL `/cid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/` |
|
|
109
|
+
| 3 | `__Secure-C_SES` | Значение cookie (начинается с `CSE.`) |
|
|
110
|
+
| 4 | `__Host-C_OSES` | Значение cookie (начинается с `COS.`) |
|
|
111
|
+
| 5 | `csesidx` | Число из URL `?csesidx=...` |
|
|
112
|
+
|
|
113
|
+
Или через переменные окружения:
|
|
187
114
|
|
|
188
115
|
```bash
|
|
189
|
-
export GEMINI_ACCOUNT_NAME="
|
|
116
|
+
export GEMINI_ACCOUNT_NAME="Мой аккаунт"
|
|
190
117
|
export GEMINI_TEAM_ID="e1f353e7-0291-44cf-9085-e0b6efd20e41"
|
|
191
118
|
export GEMINI_SECURE_C_SES="CSE.AXUaAj_MKeqeFLr_..."
|
|
192
119
|
export GEMINI_HOST_C_OSES="COS.AfQtEyCcW1aLwKb3..."
|
|
@@ -195,55 +122,66 @@ export GEMINI_CSESIDX="1370433092"
|
|
|
195
122
|
opencode-gemini-business add-account
|
|
196
123
|
```
|
|
197
124
|
|
|
198
|
-
|
|
125
|
+
> **Примечание:** `add-account` автоматически создаёт auth-запись в `~/.local/share/opencode/auth.json`, поэтому запускать `opencode auth login` не нужно.
|
|
199
126
|
|
|
200
|
-
###
|
|
127
|
+
### Шаг 3: Использовать
|
|
201
128
|
|
|
202
129
|
```bash
|
|
203
|
-
#
|
|
204
|
-
opencode run
|
|
130
|
+
# Flash (быстрая)
|
|
131
|
+
opencode run --model=gemini-business/gemini-2.5-flash "Исправь баг"
|
|
205
132
|
|
|
206
|
-
#
|
|
207
|
-
opencode run
|
|
133
|
+
# Pro (лучшее качество)
|
|
134
|
+
opencode run --model=gemini-business/gemini-2.5-pro "Спроектируй архитектуру"
|
|
208
135
|
|
|
209
|
-
#
|
|
210
|
-
opencode run
|
|
136
|
+
# Модели нового поколения
|
|
137
|
+
opencode run --model=gemini-business/gemini-3-flash "Быстрая задача"
|
|
138
|
+
opencode run --model=gemini-business/gemini-3-pro "Сложное рассуждение"
|
|
211
139
|
```
|
|
212
140
|
|
|
213
|
-
|
|
141
|
+
Установить модель по умолчанию в `opencode.json`:
|
|
214
142
|
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"model": "gemini-business/gemini-2.5-flash"
|
|
146
|
+
}
|
|
147
|
+
```
|
|
218
148
|
|
|
219
|
-
|
|
220
|
-
opencode run "Напиши hello world" --model=gemini-flash
|
|
149
|
+
---
|
|
221
150
|
|
|
222
|
-
|
|
223
|
-
opencode run "Проанализируй весь codebase" --model=gemini-2-pro
|
|
151
|
+
## 🔍 Извлечение учётных данных
|
|
224
152
|
|
|
225
|
-
|
|
226
|
-
opencode run "Ревью этого PR" --model=gemini-1.5-pro
|
|
153
|
+
### Где найти каждое значение
|
|
227
154
|
|
|
228
|
-
|
|
229
|
-
|
|
155
|
+
Войдите в [business.gemini.google](https://business.gemini.google) и посмотрите URL:
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
https://business.gemini.google/home/cid/e1f353e7-0291-44cf-9085-e0b6efd20e41/r/session/123?csesidx=1370433092
|
|
159
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^
|
|
160
|
+
team_id (UUID после /cid/) csesidx
|
|
230
161
|
```
|
|
231
162
|
|
|
232
|
-
###
|
|
163
|
+
### Cookies
|
|
233
164
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
165
|
+
**Способ 1: Расширение браузера (рекомендуется)**
|
|
166
|
+
|
|
167
|
+
1. Установите [Get cookies.txt LOCALLY](https://chromewebstore.google.com/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc)
|
|
168
|
+
2. Откройте `business.gemini.google` и экспортируйте cookies
|
|
169
|
+
3. Найдите `__Secure-C_SES` (начинается с `CSE.`) и `__Host-C_OSES` (начинается с `COS.`)
|
|
239
170
|
|
|
240
|
-
|
|
171
|
+
**Способ 2: DevTools**
|
|
172
|
+
|
|
173
|
+
1. Откройте DevTools (F12) → **Application** → **Cookies** → `https://business.gemini.google`
|
|
174
|
+
2. Скопируйте значения `__Secure-C_SES` и `__Host-C_OSES`
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 🔧 Управление аккаунтами
|
|
241
179
|
|
|
242
180
|
```bash
|
|
243
|
-
# Список
|
|
181
|
+
# Список аккаунтов
|
|
244
182
|
opencode-gemini-business list-accounts
|
|
245
183
|
|
|
246
|
-
# Тест
|
|
184
|
+
# Тест подключения
|
|
247
185
|
opencode-gemini-business test-account <account_id>
|
|
248
186
|
|
|
249
187
|
# Удалить аккаунт
|
|
@@ -253,145 +191,74 @@ opencode-gemini-business remove-account <account_id>
|
|
|
253
191
|
opencode-gemini-business help
|
|
254
192
|
```
|
|
255
193
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
| Стратегия | Поведение | Применение |
|
|
259
|
-
|-----------|-----------|------------|
|
|
260
|
-
| `round-robin` | Циклическое переключение по порядку | Сбалансированное использование всех аккаунтов |
|
|
261
|
-
| `least-used` | Выбор аккаунта с самой старой меткой last_used | Минимизация использования отдельных аккаунтов |
|
|
262
|
-
| `random` | Случайный вероятностный выбор | Непредсказуемое распределение нагрузки |
|
|
263
|
-
|
|
264
|
-
**Настройка стратегии** в конфиге OpenCode:
|
|
265
|
-
|
|
266
|
-
```json
|
|
267
|
-
{
|
|
268
|
-
"$schema": "https://opencode.ai/config.json",
|
|
269
|
-
"plugin": ["opencode-gemini-business@latest"],
|
|
270
|
-
"provider": {
|
|
271
|
-
"gemini-business": {
|
|
272
|
-
"rotation_strategy": "least-used", // ← Измените здесь
|
|
273
|
-
"models": {
|
|
274
|
-
"gemini-2.5-pro": {
|
|
275
|
-
"name": "Gemini 2.5 Pro (Business)",
|
|
276
|
-
"limit": { "context": 1048576, "output": 32768 },
|
|
277
|
-
"modalities": { "input": ["text"], "output": ["text"] }
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
```
|
|
194
|
+
---
|
|
284
195
|
|
|
196
|
+
## ⚙️ Стратегии ротации
|
|
285
197
|
|
|
286
|
-
|
|
198
|
+
| Стратегия | Поведение |
|
|
199
|
+
|-----------|-----------|
|
|
200
|
+
| `round-robin` (по умолчанию) | Циклический обход аккаунтов по порядку |
|
|
201
|
+
| `least-used` | Выбор наименее недавно использованного |
|
|
202
|
+
| `random` | Случайный выбор |
|
|
287
203
|
|
|
288
|
-
|
|
289
|
-
<summary><b>В: Как обработать истечение сессии?</b></summary>
|
|
204
|
+
Настраивается в `~/.config/opencode/gemini-business-accounts.json` (создаётся автоматически при первом `add-account`).
|
|
290
205
|
|
|
291
|
-
|
|
206
|
+
---
|
|
292
207
|
|
|
293
|
-
|
|
208
|
+
## 🛠️ Как это работает
|
|
294
209
|
|
|
295
|
-
|
|
296
|
-
|
|
210
|
+
1. Плагин регистрируется как auth-провайдер `gemini-business` в OpenCode
|
|
211
|
+
2. При запросе `loader()` возвращает кастомную функцию `fetch()`
|
|
212
|
+
3. Кастомный `fetch()` перехватывает запрос от `@ai-sdk/openai-compatible`
|
|
213
|
+
4. Вместо вызова `baseURL/chat/completions` он:
|
|
214
|
+
- Выбирает аккаунт по стратегии ротации
|
|
215
|
+
- Получает XSRF-токен и создаёт JWT (HS256)
|
|
216
|
+
- Создаёт сессию через `widgetCreateSession`
|
|
217
|
+
- Отправляет запрос на `widgetStreamAssist`
|
|
218
|
+
- Конвертирует ответ в OpenAI-совместимый формат
|
|
219
|
+
5. Поддерживает стриминг (SSE) и обычные ответы
|
|
297
220
|
|
|
298
|
-
|
|
299
|
-
- **Быстрые задачи**: `gemini-2.5-flash` или `gemini-1.5-flash` для скорости
|
|
300
|
-
- **Большой контекст**: `gemini-2.0-pro` поддерживает до 2M токенов
|
|
221
|
+
---
|
|
301
222
|
|
|
302
|
-
|
|
223
|
+
## ❓ FAQ
|
|
303
224
|
|
|
304
225
|
<details>
|
|
305
|
-
<summary><b>В:
|
|
226
|
+
<summary><b>В: Где найти team_id?</b></summary>
|
|
306
227
|
|
|
307
|
-
|
|
228
|
+
Посмотрите URL в браузере: `https://business.gemini.google/home/cid/e1f353e7-0291-44cf-9085-e0b6efd20e41/...`
|
|
308
229
|
|
|
230
|
+
UUID после `/cid/` — это ваш `team_id`.
|
|
309
231
|
</details>
|
|
310
232
|
|
|
311
233
|
<details>
|
|
312
|
-
<summary><b>В:
|
|
313
|
-
|
|
314
|
-
**Простой способ:** Посмотрите на URL в браузере, когда вы вошли в Gemini Business:
|
|
315
|
-
```
|
|
316
|
-
https://business.gemini.google/home/cid/e1f353e7-0291-44cf-9085-e0b6efd20e41/...
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
UUID после `/cid/` - это ваш `team_id`. Формат: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
|
|
320
|
-
|
|
321
|
-
Этот ID идентифицирует вашу организацию/команду в Google Workspace и требуется для всех API запросов.
|
|
234
|
+
<summary><b>В: Нужно ли запускать `opencode auth login`?</b></summary>
|
|
322
235
|
|
|
236
|
+
Нет. Команда `add-account` автоматически создаёт auth-запись в `~/.local/share/opencode/auth.json`. Если по какой-то причине запись не создалась, запустите `opencode auth login`, выберите **gemini-business** и введите любой ключ (например `unused`).
|
|
323
237
|
</details>
|
|
324
238
|
|
|
325
239
|
<details>
|
|
326
|
-
<summary><b>В:
|
|
327
|
-
|
|
328
|
-
**ДА, 100% безопасен!** Скрипт:
|
|
329
|
-
- ✅ Работает ТОЛЬКО в вашем браузере (локально)
|
|
330
|
-
- ✅ НЕ отправляет данные на внешние серверы
|
|
331
|
-
- ✅ Только читает cookies с business.gemini.google
|
|
332
|
-
- ✅ Открытый исходный код - можете проверить
|
|
333
|
-
|
|
334
|
-
**Никогда** не запускайте скрипты из ненадежных источников. Используйте только из официального репозитория.
|
|
240
|
+
<summary><b>В: Ошибки истечения сессии?</b></summary>
|
|
335
241
|
|
|
242
|
+
Плагин автоматически обновляет сессии (кешируются на 50 минут). Если ошибки не проходят — cookies могли истечь, извлеките их заново из браузера.
|
|
336
243
|
</details>
|
|
337
244
|
|
|
338
245
|
<details>
|
|
339
|
-
<summary><b>В:
|
|
340
|
-
|
|
341
|
-
Этот плагин использует **Gemini Business API** (`business.gemini.google`):
|
|
342
|
-
- ✅ Корпоративные/бизнес аккаунты
|
|
343
|
-
- ✅ Более высокие лимиты
|
|
344
|
-
- ✅ Бизнес-функции
|
|
345
|
-
|
|
346
|
-
**НЕ** Google AI Studio (`aistudio.google.com`):
|
|
347
|
-
- ❌ Бесплатный/разработческий уровень
|
|
348
|
-
- ❌ Более низкие лимиты
|
|
349
|
-
- ❌ Другие эндпоинты API
|
|
246
|
+
<summary><b>В: Чем отличается от Google AI Studio?</b></summary>
|
|
350
247
|
|
|
248
|
+
Плагин использует **Gemini Business API** (`business.gemini.google`) — корпоративные аккаунты с высокими лимитами. НЕ Google AI Studio (`aistudio.google.com`).
|
|
351
249
|
</details>
|
|
352
250
|
|
|
353
|
-
|
|
251
|
+
---
|
|
354
252
|
|
|
355
|
-
|
|
253
|
+
## 🔒 Безопасность
|
|
356
254
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
- Храните credentials только в ~/.config/opencode/gemini-business-accounts.json
|
|
362
|
-
- Используйте переменные окружения для временного доступа
|
|
363
|
-
- Регулярно меняйте учетные данные
|
|
364
|
-
- Добавьте *.json в .gitignore
|
|
365
|
-
|
|
366
|
-
❌ НЕ ДЕЛАЙТЕ:
|
|
367
|
-
- Не коммитьте credentials в git репозитории
|
|
368
|
-
- Не передавайте credentials другим
|
|
369
|
-
- Не храните credentials в открытых текстовых файлах
|
|
370
|
-
- Не используйте credentials в публичных окружениях
|
|
371
|
-
```
|
|
255
|
+
- Учётные данные хранятся локально в `~/.config/opencode/gemini-business-accounts.json`
|
|
256
|
+
- Не коммитьте credentials в git
|
|
257
|
+
- Регулярно обновляйте cookies
|
|
258
|
+
- Плагин не отправляет данные третьим сторонам
|
|
372
259
|
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
```
|
|
376
|
-
✅ Скрипт БЕЗОПАСЕН, потому что:
|
|
377
|
-
- Работает 100% локально в вашем браузере
|
|
378
|
-
- НЕ делает внешних сетевых запросов
|
|
379
|
-
- НЕ передает данные на серверы
|
|
380
|
-
- Открытый исходный код и проверяемый
|
|
381
|
-
|
|
382
|
-
⚠️ Советы по безопасности:
|
|
383
|
-
- Используйте только из официального репозитория
|
|
384
|
-
- Проверьте код перед запуском (он короткий!)
|
|
385
|
-
- Никогда не вставляйте модифицированные скрипты
|
|
386
|
-
- Проверяйте консоль браузера на предупреждения
|
|
387
|
-
```
|
|
260
|
+
---
|
|
388
261
|
|
|
389
262
|
## 📄 Лицензия
|
|
390
263
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
## 💬 Нужна помощь?
|
|
394
|
-
|
|
395
|
-
- Проверьте [FAQ](#-часто-задаваемые-вопросы) для частых вопросов
|
|
396
|
-
- Тестируйте аккаунты: `opencode-gemini-business test-account <account_id>`
|
|
397
|
-
- Сообщайте о проблемах: [GitHub Issues](https://github.com/izzzzzi/opencode-gemini-business/issues)
|
|
264
|
+
[MIT](LICENSE) © opencode-gemini-business contributors
|
package/bin/cli.js
CHANGED
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";AASA;;GAEG;AACH,wBAAsB,GAAG,kBAkCxB"}
|