magpie-gemini-web 0.5.1 → 0.5.2
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/LICENSE-AISTUDIO +21 -0
- package/README.en.md +108 -126
- package/README.md +118 -136
- package/docs/studio-release.md +49 -0
- package/lib/studio-native.mjs +218 -45
- package/lib/studio-release.json +26 -15
- package/lib/studio.mjs +5 -3
- package/package.json +9 -2
- package/patches/studio-managed.patch +625 -0
- package/scripts/studio-archive.go +92 -0
- package/scripts/studio-managed-smoke.mjs +66 -0
- package/scripts/studio-release.mjs +85 -0
- package/scripts/studio.mjs +8 -4
package/README.md
CHANGED
|
@@ -2,177 +2,159 @@
|
|
|
2
2
|
|
|
3
3
|
中文 | [English](README.en.md)
|
|
4
4
|
|
|
5
|
-
让 [Magpie](https://usemagpie.ai/) 通过你的 Google 账号使用
|
|
5
|
+
让 [Magpie](https://usemagpie.ai/) 通过你的 Google 账号使用 **Google AI Studio** 与 **Gemini 网页版**。插件在本机自动运行 [AIStudio2API](https://github.com/Mag1cFall/AIStudio2API) 与 [gemini-web2api-go](https://github.com/zexadev/gemini-web2api-go),将网页端能力转为 OpenAI 兼容接口。
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- `gemini-web`:Gemini 网页版,见下面的[开始使用](#开始使用-gemini-web);
|
|
9
|
-
- `ai-studio`:Google AI Studio,原生工具调用,见 [Google AI Studio](#google-ai-studio-ai-studio)。
|
|
7
|
+
> **2026-10-16 更新**:正价支付的 Google AI Pro 现可直接在 Antigravity 中使用 `gemini-4-argon`,同理也可直接用 Magpie 反代。
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
## 怎么选?
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
插件提供两个互相独立的 Provider,可按使用场景选择(也可同时配置):
|
|
14
12
|
|
|
15
|
-
|
|
16
|
-
2. 登录 Gemini Web,选 **「一键配置本地 Gemini Web(推荐)」**。插件会自动下载本项目发布的优化后端、校验 SHA-256,并在后台启动;不需要安装 Go 或手动打补丁。
|
|
17
|
-
3. 按提示复制 Cookie,**一定要用无痕 / 隐私窗口**(推荐 Firefox):
|
|
18
|
-
1. 在无痕窗口打开 <https://gemini.google.com/app>,登录要使用的 Google 账号;
|
|
19
|
-
2. 按 F12(macOS 按 ⌥⌘I),切到 **Network(网络)**,刷新页面;
|
|
20
|
-
3. 点任意一个 `gemini.google.com` 请求 → **Headers(标头)** → **Request Headers(请求标头)**;
|
|
21
|
-
4. 复制 `cookie` 那一行的值,粘贴回 Magpie;
|
|
22
|
-
5. 直接关掉无痕窗口,**不要点退出登录**(退出会让这份 Cookie 失效)。
|
|
23
|
-
4. 插件检测账号可用后自动完成登录。
|
|
24
|
-
|
|
25
|
-
> **为什么要用无痕窗口?** 后端会定时刷新这份登录来保活。如果它和你平时用的浏览器是同一个登录会话,Google 会把会话作废,你的浏览器就会退出所有 Google 服务。无痕窗口能给后端一份独立的会话;更稳妥的做法是给后端单独用一个 Google 小号。
|
|
26
|
-
|
|
27
|
-
之后 Magpie 每次启动都会自动拉起后端,不用再管。想加更多账号,再走一遍一键配置即可。
|
|
28
|
-
|
|
29
|
-
> 需要代理才能访问 Google?后端不读 `HTTP_PROXY`,请在管理面板 `http://127.0.0.1:8083/admin` 的代理池里添加(登录口令是数据目录 `secrets.json` 里的 `adminToken`)。
|
|
30
|
-
|
|
31
|
-
**连接已有后端**:如果你自己运行了 gemini-web2api-go,登录时选「连接已有后端(自定义地址 + API key)」,填后端地址(以 `/v1` 结尾)和它的 `API_KEY`。
|
|
32
|
-
|
|
33
|
-
## 插件选项 (Gemini Web)
|
|
34
|
-
|
|
35
|
-
工具调用默认开启(Coding Agent 每个请求都带工具),图片输入默认关闭。需要图片输入时:
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
magpie plugin options magpie-gemini-web '{"allowImages":true}'
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
| 选项 | 默认值 | 说明 |
|
|
13
|
+
| 对比项 | Google AI Studio (`ai-studio`) | Gemini Web (`gemini-web`) |
|
|
42
14
|
| :--- | :--- | :--- |
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
| `
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
50
|
-
## 思考档位
|
|
15
|
+
| **适用场景** | **推荐 Coding Agent 使用** | 日常对话、使用网页版专属模型与额度 |
|
|
16
|
+
| **工具调用** | **原生 Function Calling**,稳定可靠 | 提示词模拟(实验性,Flash 系列常不调工具) |
|
|
17
|
+
| **思考档位** | `minimal` / `low` / `medium` / `high` 四档(`minimal` 最快最省) | `low`(普通)/ `high`(`-thinking` 扩展思考)两档 |
|
|
18
|
+
| **登录方式** | 弹出独立浏览器窗口直接登录 Google | 用无痕窗口登录并复制 `cookie` |
|
|
19
|
+
| **额度卡片** | 显示冷却中的模型与恢复时间 | 同步网页版 **5 小时** 与 **每周** 用量及重置时间 |
|
|
20
|
+
| **本地后端** | AIStudio2API (`v0.2.13`) | gemini-web2api-go (`4.22.0-magpie.1` 优化版) |
|
|
51
21
|
|
|
52
|
-
|
|
22
|
+
---
|
|
53
23
|
|
|
54
|
-
##
|
|
24
|
+
## 快速开始
|
|
55
25
|
|
|
56
|
-
-
|
|
57
|
-
- 默认后端为本项目发布的 **4.22.0-magpie.1**,基于固定的上游 v4.22.0 源码应用本仓库补丁。下载和启动新进程前校验 SHA-256。支持 macOS、Linux、Windows(x64 / arm64),发布页提供源码、构建记录和校验和。
|
|
58
|
-
- 数据目录:`~/.local/share/magpie-gemini-web`(可用 `GEMINI_WEB_DATA_DIR` 修改),日志在 `backend.log`。
|
|
59
|
-
- 插件限制并发为 1,但无法保证账号不被 Google 风控,请自行承担风险。
|
|
26
|
+
在 Magpie 插件市场安装 **magpie-gemini-web** 后,按需登录以下任一(或两个)Provider。插件会自动下载对应后端、校验 SHA-256 并在后台自启,无需安装 Go 或其它依赖。
|
|
60
27
|
|
|
61
|
-
|
|
28
|
+
### 方式一:Google AI Studio (`ai-studio`)
|
|
62
29
|
|
|
63
|
-
|
|
30
|
+
1. 在 Magpie 中登录 **Google AI Studio**,选择 **「用 Google 账号登录(推荐)」**。
|
|
31
|
+
2. 在弹出的独立登录窗口中登录 Google 账号(不影响日常浏览器),完成后直接关闭窗口。
|
|
32
|
+
> 首次使用会自动下载登录浏览器 Camoufox(约 300 MB),弹窗可能需要等几分钟才出现;请在 15 分钟内完成登录。
|
|
33
|
+
3. **后续管理**:再次点击「用 Google 账号登录」,可选择**添加新账号**、为本机已有账号建卡,或为过期账号**重新登录**。
|
|
64
34
|
|
|
65
|
-
-
|
|
66
|
-
- 后端里已有的账号(比如旧版本添加的),在 Magpie 里给 Gemini Web 再添加一个账号,选 **「添加本地后端里已有的 Google 账号」**,从列表里选择即可。之后可以删掉旧的 `API key …` 登录,它显示的是整个账号池合在一起的用量(每个窗口取用得最多的那个账号)。
|
|
35
|
+
### 方式二:Gemini Web (`gemini-web`)
|
|
67
36
|
|
|
68
|
-
|
|
37
|
+
1. 在 Magpie 中登录 **Gemini Web**,选择 **「一键配置本地 Gemini Web(推荐)」**。
|
|
38
|
+
2. 打开浏览器**无痕 / 隐私窗口**(推荐 Firefox)获取 Cookie:
|
|
39
|
+
1. 访问 <https://gemini.google.com/app> 并登录 Google 账号;
|
|
40
|
+
2. 按 `F12`(macOS 按 `⌥⌘I`)切到 **Network(网络)**,刷新页面;
|
|
41
|
+
3. 点击任意 `gemini.google.com` 请求 → **Headers** → **Request Headers**,复制 `cookie` 的值粘贴回 Magpie;
|
|
42
|
+
4. **直接关闭无痕窗口,不要点退出登录**(点退出会使 Cookie 失效)。
|
|
43
|
+
3. 插件验证账号可用后即完成登录。想添加更多账号,重复上述步骤即可。
|
|
69
44
|
|
|
70
|
-
|
|
45
|
+
> **为什么必须用无痕窗口?** 后端会定时刷新会话来保活。若与日常浏览器共用同一登录会话,Google 会将整个会话作废,导致你的浏览器退出所有 Google 服务。使用无痕窗口(或单独准备 Google 小号)可提供独立会话。
|
|
71
46
|
|
|
72
|
-
|
|
47
|
+
---
|
|
73
48
|
|
|
74
|
-
|
|
75
|
-
- 账号绑定的代理已停用,或者是 SOCKS 代理。
|
|
49
|
+
## 多账号与额度卡片
|
|
76
50
|
|
|
77
|
-
|
|
51
|
+
- **一账号一卡片**:每个 Google 账号单独生成一张以邮箱命名的额度卡片。
|
|
52
|
+
- *旧版迁移(Gemini Web)*:若后端里已有早期版本添加的账号,在登录时选 **「添加本地后端里已有的 Google 账号」** 即可生成独立卡片,随后可删掉旧的 `API key …` 汇总卡片。
|
|
53
|
+
- **账号池自动调度**:请求实际使用哪个账号由本地后端决定(Gemini Web 在账号池中轮流挑选;AI Studio 先用一个,进入冷却再切下一个)。在 Magpie 界面切换卡片不会改变后端的账号调度。
|
|
54
|
+
- **用量刷新说明**:
|
|
55
|
+
- `gemini-web`:仅一键配置的本地后端可读取用量。为减少向 Google 发请求,仅在账号被使用或窗口重置后低频刷新(最短间隔 10 分钟,闲置时最多 6 小时刷新一次)。
|
|
56
|
+
- `ai-studio`:AI Studio 不提供剩余总额度,卡片会展示当前账号正在冷却的模型、恢复时间或重新登录提示。
|
|
78
57
|
|
|
79
|
-
|
|
58
|
+
---
|
|
80
59
|
|
|
81
|
-
|
|
82
|
-
- 只开放 `gemini-` 开头的文本模型;`cost` 显示为 0 不代表 Google 的实际配额。
|
|
60
|
+
## 配置与进阶
|
|
83
61
|
|
|
84
|
-
|
|
62
|
+
<details>
|
|
63
|
+
<summary><b>⚙️ 插件选项与代理配置</b>(开启图片输入、设置代理、连接自建后端)</summary>
|
|
85
64
|
|
|
86
|
-
|
|
65
|
+
<br>
|
|
87
66
|
|
|
88
|
-
|
|
67
|
+
工具调用默认开启,图片输入默认关闭。可通过命令行修改插件配置:
|
|
89
68
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
之后再选「用 Google 账号登录」,会列出:
|
|
94
|
-
|
|
95
|
-
- **添加新的 Google 账号**:打开登录窗口,再加一个账号;
|
|
96
|
-
- **本机已有的账号**:直接给它建卡片;标着「需要重新登录」的账号会打开登录窗口重新登录。
|
|
97
|
-
|
|
98
|
-
每个 Google 账号一张卡片。和 Gemini Web 一样,每个请求实际用哪个账号由本地服务决定(先用一个,冷却了再换下一个),Magpie 在卡片之间怎么切换不影响这一点。
|
|
69
|
+
```bash
|
|
70
|
+
# 开启图片输入(对两个 Provider 生效)
|
|
71
|
+
magpie plugin options magpie-gemini-web '{"allowImages":true}'
|
|
99
72
|
|
|
100
|
-
|
|
73
|
+
# 为 AI Studio 配置代理
|
|
74
|
+
magpie plugin options magpie-gemini-web '{"studio":{"proxy":"http://127.0.0.1:7890"}}'
|
|
75
|
+
```
|
|
101
76
|
|
|
102
|
-
|
|
77
|
+
| 选项 | 默认值 | 适用范围 | 说明 |
|
|
78
|
+
| :--- | :--- | :--- | :--- |
|
|
79
|
+
| `allowTools` | `true` | 共用(可用 `studio.allowTools` 单独覆盖) | 允许工具调用。设为 `false` 时带工具的请求返回 400 |
|
|
80
|
+
| `allowImages` | `false` | 共用(可用 `studio.allowImages` 单独覆盖) | 允许图片输入 |
|
|
81
|
+
| `requestTimeoutMs` / `modelTimeoutMs` | Web:`240000` / `10000`;Studio:`1800000` / `10000` | 共用(`studio.*` 可覆盖) | 单次等待后端 / 拉取模型列表的超时(毫秒);收到流数据后重新计时,显式配置优先 |
|
|
82
|
+
| `stripCitations` | `true` | 仅 `gemini-web` | 剥离回复与工具参数中的 `[cite: 1]`、`[cite_start]` 标记(AI Studio 不支持剥离) |
|
|
83
|
+
| `baseURL` | `http://127.0.0.1:8083/v1` | 仅 `gemini-web` | Gemini Web 默认后端地址 |
|
|
84
|
+
| `contextLimit` / `outputLimit` | `1000000` / `8192` | 仅 `gemini-web` | 向客户端声明的上下文 / 输出上限 |
|
|
85
|
+
| `studio.proxy` | 无 | 仅 `ai-studio` | 访问 Google 的代理(`http` / `https` / `socks5`),也可用环境变量 `AI_STUDIO_PROXY` |
|
|
86
|
+
| `studio.baseURL` | `http://127.0.0.1:2048/v1` | 仅 `ai-studio` | 连接已有 AIStudio2API 时的默认地址 |
|
|
87
|
+
| `studio.contextLimit` / `studio.outputLimit` | 模型目录默认值 | 仅 `ai-studio` | 向客户端声明的上限(仅支持在目录值基础上调低) |
|
|
103
88
|
|
|
104
|
-
|
|
89
|
+
**配置代理访问 Google:**
|
|
90
|
+
- **AI Studio**:配置上表中的 `studio.proxy` 或环境变量 `AI_STUDIO_PROXY`。
|
|
91
|
+
- **Gemini Web**:后端不读取 `HTTP_PROXY`,请打开本地管理面板 `http://127.0.0.1:8083/admin` 在代理池中添加(登录口令为数据目录 `secrets.json` 中的 `adminToken`)。
|
|
92
|
+
- *注意*:配置代理池后,新添加的账号需先发送一次请求以绑定代理,再通过「添加本地后端里已有的 Google 账号」重新添加,才能正常读取邮箱和用量(不支持通过 SOCKS 代理读取用量)。
|
|
105
93
|
|
|
106
|
-
|
|
94
|
+
**连接自建后端:**
|
|
95
|
+
如果你自己运行了 `gemini-web2api-go` 或 `AIStudio2API`,登录时选择 **「连接已有后端 / 连接已有 AIStudio2API」**,填入以 `/v1` 结尾的地址和对应的 API Key 即可。
|
|
107
96
|
|
|
108
|
-
|
|
109
|
-
magpie
|
|
110
|
-
```
|
|
97
|
+
**刷新模型列表:**
|
|
98
|
+
升级插件后,可执行 `magpie provider models gemini-web` 刷新模型列表。
|
|
111
99
|
|
|
112
|
-
|
|
113
|
-
| :--- | :--- | :--- |
|
|
114
|
-
| `studio.proxy` | 无 | 访问 Google 用的代理(http / https / socks5)。也可以用环境变量 `AI_STUDIO_PROXY` |
|
|
115
|
-
| `studio.baseURL` | `http://127.0.0.1:2048/v1` | 「连接已有 AIStudio2API」的默认地址 |
|
|
116
|
-
| `studio.contextLimit` / `studio.outputLimit` | 模型目录的值 | 向客户端声明的上限,只会调低 |
|
|
117
|
-
| `studio.allowTools` 等 | 同根级别 | 只对 AI Studio 覆盖根级别的同名选项 |
|
|
100
|
+
</details>
|
|
118
101
|
|
|
119
|
-
|
|
102
|
+
<details>
|
|
103
|
+
<summary><b>🛠️ AI Studio 命令行工具</b>(查看状态、重新登录、离线安装)</summary>
|
|
120
104
|
|
|
121
|
-
|
|
105
|
+
<br>
|
|
122
106
|
|
|
123
|
-
|
|
107
|
+
当插件报错提示运行命令时,直接复制报错中的完整命令执行即可。在插件目录下也可使用:
|
|
124
108
|
|
|
125
109
|
| 命令 | 作用 |
|
|
126
110
|
| :--- | :--- |
|
|
127
|
-
| `npm run studio:status` |
|
|
111
|
+
| `npm run studio:status` | 查看本地服务与账号状态 |
|
|
128
112
|
| `npm run studio:start` / `studio:stop` | 启动 / 停止本地服务 |
|
|
129
113
|
| `npm run studio:login` | 添加 Google 账号 |
|
|
130
|
-
| `npm run studio:relogin -- [<账号>]` |
|
|
131
|
-
| `npm run studio:install -- --archive <文件>` |
|
|
132
|
-
| `node scripts/studio.mjs import <目录>` |
|
|
133
|
-
| `npm run studio:smoke` |
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
npm run backend:install
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
构建脚本从固定的上游提交提取干净源码、应用 `patches/argon.patch`,不会修改本地 `backend-source` 的工作内容。发布流程见 [docs/backend-release.md](docs/backend-release.md)。
|
|
114
|
+
| `npm run studio:relogin -- [<账号>]` | 重新登录过期账号(仅一个账号时可省略参数) |
|
|
115
|
+
| `npm run studio:install -- --archive <文件>` | 使用已下载的安装包离线安装 |
|
|
116
|
+
| `node scripts/studio.mjs import <目录>` | 在服务停止状态下导入已有账号 |
|
|
117
|
+
| `npm run studio:smoke` | 发起真实请求验收(会消耗账号额度) |
|
|
118
|
+
|
|
119
|
+
</details>
|
|
120
|
+
|
|
121
|
+
<details>
|
|
122
|
+
<summary><b>🔒 安全、数据目录与后端版本管理</b>(日志位置、升级与回退、macOS 原生 Task)</summary>
|
|
123
|
+
|
|
124
|
+
<br>
|
|
125
|
+
|
|
126
|
+
**安全与数据目录:**
|
|
127
|
+
- 两个后端均只监听 `127.0.0.1`,Cookie 与登录态仅保存在本机,Magpie 仅保存本地生成的随机 API Key。
|
|
128
|
+
- **Gemini Web 数据目录**:`~/.local/share/magpie-gemini-web`(可通过 `GEMINI_WEB_DATA_DIR` 修改),日志位于 `backend.log`。支持 macOS、Linux、Windows(x64 / arm64)。
|
|
129
|
+
- **AI Studio 数据目录**:`~/.local/share/magpie-ai-studio`(可通过 `AI_STUDIO_DATA_DIR` 修改),日志位于 `backend.log`(超 10 MB 下次启动自动轮转)。默认使用 2048 端口,被占用时自动顺延并记录在 `config.json`。支持 macOS、Linux(x64 / arm64)与 Windows x64。
|
|
130
|
+
- 插件将请求并发限制为 1,但仍无法完全排除 Google 账号风控风险,请自行评估使用。
|
|
131
|
+
|
|
132
|
+
**AI Studio 升级与模型范围:**
|
|
133
|
+
- 插件固定使用经过 SHA-256 校验的 `v0.2.13-magpie.1`(基于上游 `v0.2.13`),通过升级插件更新后端。同基线或更旧的官方托管后端在下次管理启动时自动升级,保留账号、端口与登录凭据。
|
|
134
|
+
- **托管后端已在 macOS、Linux、Windows 统一禁用在线更新**:管理页提示“请通过 Magpie 插件升级”,更新接口返回 HTTP 403,检查更新也不会访问 GitHub。用户自行连接的外部服务不受影响。补丁和可复现构建流程见 [docs/studio-release.md](docs/studio-release.md)。
|
|
135
|
+
- Unix 的 `package/` 仍尽力设置为 `0555`,作为额外的文件保护;权限设置失败不阻断服务,在线更新的禁用也不依赖该权限。若要手动删除数据目录来重置,请先停止服务,再运行 `chmod -R u+w "<数据目录>/package"` 恢复可写权限,然后删除;将 `<数据目录>` 替换为实际路径。
|
|
136
|
+
- 若自行更新到更新版或定制版,插件会提示版本冲突,并提供带正确 `--data-dir` 的 `stop`、`install`、`start` 命令。停止时会找回更新后的监听进程 PID,并核对可执行文件路径;无法核实身份就不会发送终止信号。HTTP 端口关闭但进程尚未退出时,插件不会重装或启动第二个进程。
|
|
137
|
+
- 已停止但文件被替换的后端会从校验通过的固定版本安装包恢复;校验失败不会启动替换文件。安装会保留账号和运行数据文件,但**不保证旧版本能读取新版迁移过的数据**。手动降级前先停止服务并备份整个数据目录(包括 `auth/`、`runtime/requests.db` 等);已知发生数据迁移时应升级插件以匹配新版后端。
|
|
138
|
+
- AI Studio 后端基础请求期限为 30 分钟;插件默认单次响应等待/流空闲超时也是 30 分钟(仍可用 `studio.requestTimeoutMs` 调整)。这允许非流式长回复在服务端完整收集;后端卡死时也可能等满 30 分钟,且单 worker 会拖住后续请求。可主动取消请求或设置更短的等待时间,但较短期限可能中断正常长回复。上游自动续写的期限按其规则计算。
|
|
139
|
+
- 已核对本机 Magpie `v0.1.1285`(`d783df46`)源码:插件请求走 `Provider.Do → plugin.Fetch → loader.fetch`,绕过普通 HTTP transport 的 10 分钟响应头限制;此插件生成路径没有发现更短的固定总超时。网关 5 分钟 `IdleTimeout` 仅针对请求之间的空闲连接。客户端或反向代理仍可设置更短期限;这不是一次实等 30 分钟的端到端验证。
|
|
140
|
+
- 模型列表过滤 `-build` / `assistant_route` 模型:这类模型附带 Build 写代码助手的系统提示词,不作为普通 Agent 模型提供。升级后可执行 `magpie provider models ai-studio` 刷新列表。
|
|
141
|
+
|
|
142
|
+
**Gemini Web 优化后端升级与回退:**
|
|
143
|
+
- 插件默认使用本仓库发布的 [4.22.0-magpie.1](https://github.com/BUKOWSKIREAL/magpie-gemini-web/releases/tag/backend-v4.22.0-magpie.1)(基于上游 v4.22.0 集成 XSRF 缓存、请求取消传播、工具调用提前收尾与 Argon 校验补丁)。
|
|
144
|
+
- **旧版升级**:插件不会打断运行中的后端。先停止旧进程(PID 见数据目录 `backend.pid`),下次启动 Magpie 或发请求时会自动更新二进制并保留原有配置与账号。
|
|
145
|
+
- **回退官方版 / 恢复优化版**(停止后端后在插件目录执行):
|
|
146
|
+
```bash
|
|
147
|
+
npm run backend:install:upstream # 回退并固定使用官方 v4.22.0
|
|
148
|
+
npm run backend:install # 恢复默认优化版
|
|
149
|
+
```
|
|
150
|
+
- 源码复现构建与发布流程见 [docs/backend-release.md](docs/backend-release.md)。
|
|
151
|
+
|
|
152
|
+
**macOS 原生 Task(实验性):**
|
|
153
|
+
macOS 用户登录 Gemini Web 时会额外看到「macOS 原生 Task(实验性)」选项,通过本机 `Gemini.app` 的原生 Task 通道调用 `gemini-task-argon`(原生 Function Calling)。当前处于 Alpha 阶段,需预先完成本机配置,详见 [native-task/README.md](native-task/README.md)。
|
|
154
|
+
|
|
155
|
+
</details>
|
|
156
|
+
|
|
157
|
+
---
|
|
176
158
|
|
|
177
159
|
## 友链
|
|
178
160
|
|
|
@@ -180,4 +162,4 @@ npm run backend:release:build
|
|
|
180
162
|
|
|
181
163
|
## 许可证
|
|
182
164
|
|
|
183
|
-
MIT。上游 gemini-web2api-go 同为 MIT(见 `LICENSE-UPSTREAM`)。
|
|
165
|
+
MIT。上游 `gemini-web2api-go` 同为 MIT(见 `LICENSE-UPSTREAM`)。
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# AI Studio 托管后端构建
|
|
2
|
+
|
|
3
|
+
插件使用 `0.2.13-magpie.1`,基于 AIStudio2API `v0.2.13` 的固定 commit。上游版本、commit、Go 工具链、安装包及二进制 SHA-256 均记录在 `lib/studio-release.json`。MIT 许可见 `LICENSE-AISTUDIO`。
|
|
4
|
+
|
|
5
|
+
## 在线更新策略
|
|
6
|
+
|
|
7
|
+
`patches/studio-managed.patch` 包含后端与管理页面修改:
|
|
8
|
+
|
|
9
|
+
- 后端移除在线更新的下载、文件替换逻辑;`GET /api/update`(包括 `?refresh=1`)仅返回本地版本及 `mode: managed`,不访问 GitHub。
|
|
10
|
+
- `POST /api/update` 返回 HTTP 403,提示通过 Magpie 插件升级;不替换文件、不重启。此策略无环境变量或管理页开关,在所有构建平台相同。
|
|
11
|
+
- 管理页版本面板显示当前版本及中英文升级提示,不提供检查更新或安装更新按钮。
|
|
12
|
+
- 设置明确的 `v0.2.13-magpie.1` 版本标识。插件将同基线或更旧的官方版视为需要升级;更新的官方版或不认识的定制版仍提示冲突。
|
|
13
|
+
- 普通插件升级、账户登录、模型调用及管理功能继续保留。用户自行连接的外部 AIStudio2API 服务不受此补丁控制。
|
|
14
|
+
|
|
15
|
+
## 复现构建
|
|
16
|
+
|
|
17
|
+
维护者需要 Git、tar、Node.js 26.8.2(构建页面用)、Go 1.27.1。Windows 使用 Git Bash 执行以下命令,安装包运行和解压使用 Windows 自带 PowerShell。最终用户不需要这些构建工具。
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# 按固定源代码和补丁构建所有五个平台,并核对现有 pin。
|
|
21
|
+
npm run studio:release:build
|
|
22
|
+
|
|
23
|
+
# 仅构建当前平台。
|
|
24
|
+
node scripts/studio-release.mjs --target=host --verify
|
|
25
|
+
|
|
26
|
+
# 制作新版本:审查源码/补丁后重新生成所有平台 pin。
|
|
27
|
+
node scripts/studio-release.mjs --write-pins
|
|
28
|
+
|
|
29
|
+
# 可复用本地上游 git 仓库,但始终导出固定 commit,不使用工作区修改。
|
|
30
|
+
node scripts/studio-release.mjs --source=/path/to/AIStudio2API --verify
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
输出在 `studio-build/release/`,不进入 npm 包。包含 macOS x64/arm64、Linux x64/arm64、Windows x64 安装包,以及构建记录、SHA256SUMS 和上游许可证。每个安装包携带许可证和托管升级说明。Go 的标准 tar/zip/gzip 写入器固定文件顺序、权限与时间;编译使用 `-trimpath -buildvcs=false`。
|
|
34
|
+
|
|
35
|
+
## 验证与发布
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# 在独立临时数据目录中安装当前平台真实安装包,无需 Google 账号。
|
|
39
|
+
npm run studio:managed:smoke
|
|
40
|
+
|
|
41
|
+
# 可选:让插件离线恢复测试使用刚构建的安装包。
|
|
42
|
+
AI_STUDIO_TEST_ARCHIVE=/absolute/path/to/archive.tar.gz npm test
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
真实安装验证检查启动、版本、GET 更新状态、POST 更新返回 403、二进制及 PID 不变、管理页面无更新入口、停止与状态。`.github/workflows/studio.yml` 在五种系统/架构上重新构建、对比 SHA-256 并运行该验证;本机交叉编译不代替 Windows 真机验证。
|
|
46
|
+
|
|
47
|
+
发布时先审查构建记录和各平台 CI 结果,再将安装包及许可证上传到本仓库 `studio-v0.2.13-magpie.1` release。该 release 可公开下载后,才能发布引用它的插件版本,否则新安装会遇到 404。构建脚本及 CI 不自动发布 release,也不发布 npm 包。
|
|
48
|
+
|
|
49
|
+
本地试用无需发布:先停止当前托管后端,再执行 `node scripts/studio.mjs install --archive /absolute/path/to/archive` 和 `node scripts/studio.mjs start`。可用 `--data-dir` 指定目录。修改前备份账号和配置;该定制版本与上游 v0.2.13 使用相同的数据格式。
|