dsh-agy-link 0.1.4 → 0.1.5

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.5 (2026-08-19)
4
+
5
+ - README restructured into a single bilingual page: Chinese first, then
6
+ English (README.zh.md removed; package files list updated).
7
+ - Releases now publish to npm automatically (NPM_TOKEN secret configured).
8
+
3
9
  ## 0.1.4 (2026-08-19)
4
10
 
5
11
  - READMEs: added the author promo block (Chinese first, then English).
package/README.md CHANGED
@@ -1,72 +1,147 @@
1
- # dsh-agy-link
1
+ <h1 align="center">🛰️ dsh-agy-link</h1>
2
2
 
3
- [![CI](https://img.shields.io/badge/CI-github--actions-blue)](.github/workflows/ci.yml) [![npm](https://img.shields.io/badge/npm-dsh--agy--link-red)](https://www.npmjs.com/package/dsh-agy-link)
3
+ <p align="center">
4
+ <b>DeepSeek Harness × Google Antigravity</b> — 用官方 agy CLI 把 Antigravity 模型接进 DSH / bring Google Antigravity models into DSH via the official agy CLI
5
+ </p>
4
6
 
5
- Bring **Google Antigravity models into [DeepSeek Harness (DSH)]** — chat,
6
- thinking, tool activity, and token usage from your Antigravity subscription,
7
- driven by the official `agy` CLI.
8
-
9
- English | [简体中文](README.zh.md)
7
+ <p align="center">
8
+ <a href="https://www.npmjs.com/package/dsh-agy-link"><img src="https://img.shields.io/npm/v/dsh-agy-link?color=cb3837&label=npm&logo=npm" alt="npm"/></a>
9
+ <a href="https://github.com/amlyczz/dsh-agy-link/actions/workflows/ci.yml"><img src="https://github.com/amlyczz/dsh-agy-link/actions/workflows/ci.yml/badge.svg" alt="CI"/></a>
10
+ <img src="https://img.shields.io/badge/license-MIT-lightgrey" alt="MIT"/>
11
+ <img src="https://img.shields.io/badge/node-%3E%3D24-green" alt="node"/>
12
+ </p>
10
13
 
11
14
  ---
12
15
 
16
+ # 中文
17
+
13
18
  > 全网统一昵称:**小斯syzs** · B站 [@小斯syzs](https://space.bilibili.com/390211071) · 抖音 · 小红书 · 快手(全网同名)
14
19
  >
15
20
  > 💬 **小斯syzs 邀请你加入飞书群** —— [点此一键加入](https://applink.feishu.cn/client/chat/chatter/add_by_link?link_token=553i2f4a-5cc8-487f-95d3-3c4095bec0d9)
16
21
 
22
+ 把 **Google Antigravity 模型接入 DeepSeek Harness(DSH)** —— 由官方
23
+ `agy` CLI 驱动,完整支持对话输出、思考(thinking)、工具活动与 token
24
+ 用量,全部走你的 Antigravity 订阅。
25
+
26
+ ## ✨ 你能得到什么
27
+
28
+ | 能力 | 说明 |
29
+ | ---- | ---- |
30
+ | 🔌 **模型路由** | 在 DSH 模型配置里注册 `antigravity` 提供方,`/model` 选择器直接挑任意 Antigravity 模型(Gemini / Claude / GPT-OSS) |
31
+ | 🌊 **完整流式** | 文本、思考、agy 工具活动(注记为 reasoning 块)全部映射到 DSH 原生流协议 |
32
+ | 🔗 **会话连续** | 每个 DSH 会话绑定原生 agy 会话(`--conversation`),多轮上下文由 agy 历史承载,不重发全量 |
33
+ | 📊 **token 用量** | 输入/输出/思考/缓存 token 全部进入 DSH 用量统计 |
34
+ | 🔐 **GUI 内 Google 登录** | `/agy auth` 打印授权 URL;侧栏面板提供二维码 + 授权码粘贴框 |
35
+ | 🤝 **`agy_ask` 工具** | 任何 DSH 模型都可以把一次性任务委托给 Antigravity 模型(AskAntigravity 模式) |
36
+ | ⌨️ **`/agy` 命令族** | `status` / `auth` / `auth-code` / `models` / `mode` / `effort` / `clear` / `doctor` / `help` |
37
+ | 😴 **休眠安全** | 没装 agy?没登录?插件照常加载并告诉你怎么修 |
38
+
39
+ ## 🚀 快速开始
40
+
41
+ ```bash
42
+ # 1. 安装(npm 官方包,预构建产物,无需构建许可):
43
+ dsh plugin --profile web add dsh-agy-link
44
+ # 升级:
45
+ # dsh plugin --profile web update dsh-agy-link --latest
46
+
47
+ # 2. 重启 DSH Web GUI,输入框执行:
48
+ # /agy status ← 确认 agy 已被检测到
49
+
50
+ # 3. 登录(一次性):
51
+ # /agy auth ← 打开授权 URL,批准并复制授权码
52
+ # /agy auth-code <授权码> ← 或直接用侧栏面板的二维码 + 粘贴框
53
+
54
+ # 4. /model 选择器里选 antigravity 模型,开聊
55
+ ```
56
+
57
+ > 插件绝不读取/复制/移动 `~/.gemini/antigravity-cli/antigravity-oauth-token`;登录完全通过官方 CLI 自己的流程完成。
58
+
59
+ ## ⚙️ 配置
60
+
61
+ 配置在 `agy-link` 插件条目里(`/plugin` 或 profile patch 层编辑),环境变量优先:
62
+
63
+ | 键 | 环境变量 | 默认值 | 含义 |
64
+ | --- | --- | --- | --- |
65
+ | enabled | `DSH_AGY_ENABLED` | `true` | 总开关 |
66
+ | agyBin | `DSH_AGY_BIN` | 自动 | 显式 agy 路径 |
67
+ | permissionMode | `DSH_AGY_MODE` | `skip` | `skip` / `plan` / `accept-edits`(见下) |
68
+ | defaultModel | `DSH_AGY_DEFAULT_MODEL` | `(agy 默认)` | 模型 slug |
69
+ | defaultEffort | `DSH_AGY_DEFAULT_EFFORT` | `(模型默认)` | `low` / `medium` / `high` |
70
+ | timeoutMs | `DSH_AGY_TIMEOUT_MS` | `600000` | 单轮看门狗 |
71
+ | extraArgs | `DSH_AGY_EXTRA_ARGS` | — | 附加 agy 参数(空格分隔) |
72
+
73
+ ### ⚠️ 权限模式——必读
74
+
75
+ agy 有**自己的**工具循环,会自己做文件编辑和 shell 执行。桥接层映射为三种模式:
76
+
77
+ - **plan** —— 只读,体验桥接的安全默认。
78
+ - **accept-edits** —— agy 可以不经询问改文件。
79
+ - **skip** —— `--dangerously-skip-permissions`:agy **所有**工具免审批。非交互 DSH 轮次需要它(或 plan),因为 agy 的权限提示会卡死 print 模式;但这意味着真实的无人值守 写/执行 权限。设置面板里这个按钮是红色的。
80
+
81
+ DSH 侧的工具与权限不受影响——这里只约束 agy 子进程在自己工作区能做什么。
82
+
83
+ ## 🧩 工作原理
84
+
85
+ 一次 DSH 模型调用 = 一个短生命周期 `agy -p --output-format stream-json` 进程。NDJSON 事件流被解析、归一化并映射为 DSH StreamChunk:思考 → reasoning 块,文本 → text 块,工具活动 → 注记 reasoning 块,结果信封 → usage + finish。会话 id 优先取自流本身,conversations 目录快照对比兜底。**不逆向数据库、不解码 protobuf、不碰 token 文件**——只启动官方未修改的 agy 二进制。
86
+
87
+ ## 📋 已知差距
88
+
89
+ 见 [docs/KNOWN-GAPS.md](docs/KNOWN-GAPS.md)。要点:图片不转发(agy print 模式纯文本);DSH 工具不暴露给 agy(MCP 反向桥接是后续工作)。
90
+
91
+ ## ⚠️ 免责与风险提示
92
+
93
+ 本插件只启动**官方未修改**的 `agy` 二进制并消费其公开 print 输出,不解码内部数据库、不触碰 OAuth token。自动化订阅 CLI 仍可能与提供方服务条款冲突(Google Antigravity ToS §6 语境);风险自负,被要求停止时请停止。
94
+
95
+ ## 许可证
96
+
97
+ MIT
98
+
99
+ ---
100
+
101
+ # English
102
+
17
103
  > Known online as **小斯syzs** — Bilibili [@小斯syzs](https://space.bilibili.com/390211071) · Douyin · Xiaohongshu · Kuaishou (same handle on every platform).
18
104
  >
19
105
  > 💬 **Join the Feishu community group** hosted by 小斯syzs — [one-click invite](https://applink.feishu.cn/client/chat/chatter/add_by_link?link_token=553i2f4a-5cc8-487f-95d3-3c4095bec0d9)
20
106
 
107
+ Bring **Google Antigravity models into DeepSeek Harness (DSH)** — chat, thinking, tool activity, and token usage from your Antigravity subscription, driven by the official `agy` CLI.
21
108
 
22
- ## What you get
23
-
24
- - **A model route, not a proxy** — registers the `antigravity` provider in
25
- DSH's model config; pick any Antigravity model from the `/model` picker.
26
- - **Full streaming** — text, thinking (reasoning), and agy tool activity
27
- (annotated as reasoning blocks), mapped onto DSH's native chunk protocol.
28
- - **Session continuity** — each DSH session binds to a native agy
29
- conversation (`--conversation`), so multi-turn context rides agy history
30
- instead of re-sending everything.
31
- - **Token usage** — input/output/thinking/cache tokens surface in DSH
32
- usage accounting.
33
- - **In-GUI Google login** — `/agy auth` prints the consent URL; the sidebar
34
- panel adds a QR code and a paste box for the authorization code.
35
- - **`agy_ask` tool** — let any DSH model delegate a one-shot task to an
36
- Antigravity model (the AskAntigravity pattern).
37
- - **`/agy` commands** — `status`, `auth`, `auth-code`, `models`, `mode`,
38
- `effort`, `clear`, `doctor`, `help`.
39
- - **Dormant-safe** — no agy binary? Not signed in? The plugin loads anyway
40
- and tells you what to fix.
109
+ ## What you get
41
110
 
42
- ## Requirements
111
+ | Capability | Description |
112
+ | ---- | ---- |
113
+ | 🔌 **A model route, not a proxy** | Registers the `antigravity` provider in DSH's model config; pick any Antigravity model (Gemini / Claude / GPT-OSS) from the `/model` picker |
114
+ | 🌊 **Full streaming** | Text, thinking (reasoning), and agy tool activity (annotated reasoning blocks) mapped onto DSH's native chunk protocol |
115
+ | 🔗 **Session continuity** | Each DSH session binds to a native agy conversation (`--conversation`); multi-turn context rides agy history instead of re-sending everything |
116
+ | 📊 **Token usage** | Input/output/thinking/cache tokens surface in DSH usage accounting |
117
+ | 🔐 **In-GUI Google login** | `/agy auth` prints the consent URL; the sidebar panel adds a QR code and a paste box for the authorization code |
118
+ | 🤝 **`agy_ask` tool** | Let any DSH model delegate a one-shot task to an Antigravity model (the AskAntigravity pattern) |
119
+ | ⌨️ **`/agy` commands** | `status`, `auth`, `auth-code`, `models`, `mode`, `effort`, `clear`, `doctor`, `help` |
120
+ | 😴 **Dormant-safe** | No agy binary? Not signed in? The plugin loads anyway and tells you what to fix |
43
121
 
44
- - DSH (DeepSeek Harness) with a web profile
45
- - Node.js >= 24
46
- - The official `agy` CLI >= 1.1.8, installed and on `PATH`
47
-
48
- ## Install
122
+ ## 🚀 Quick start
49
123
 
50
124
  ```bash
125
+ # 1. Install (npm, prebuilt — no build approval needed):
51
126
  dsh plugin --profile web add dsh-agy-link
52
- ```
127
+ # Upgrade:
128
+ # dsh plugin --profile web update dsh-agy-link --latest
53
129
 
54
- Restart DSH, then run `/agy status` in the GUI.
130
+ # 2. Restart the DSH Web GUI, then in the composer:
131
+ # /agy status <- confirm agy was detected
55
132
 
56
- ## Login (one time)
133
+ # 3. Login (one time):
134
+ # /agy auth <- open the consent URL, approve, copy the code
135
+ # /agy auth-code <code> <- or use the sidebar panel (QR + paste box)
57
136
 
58
- 1. `/agy auth` prints a Google consent URL.
59
- 2. Open it, approve access, copy the authorization code.
60
- 3. `/agy auth-code <code>` — or use the sidebar panel (QR + paste box).
137
+ # 4. Pick an antigravity model in /model and chat
138
+ ```
61
139
 
62
- The plugin never reads, copies, or moves
63
- `~/.gemini/antigravity-cli/antigravity-oauth-token`; login is driven
64
- entirely through the official CLI's own flow.
140
+ > The plugin never reads, copies, or moves `~/.gemini/antigravity-cli/antigravity-oauth-token`; login is driven entirely through the official CLI's own flow.
65
141
 
66
- ## Configuration
142
+ ## ⚙️ Configuration
67
143
 
68
- Config lives in the `agy-link` plugin entry (edit via `/plugin` or the
69
- profile patch layer). Environment variables override the file:
144
+ Config lives in the `agy-link` plugin entry (edit via `/plugin` or the profile patch layer). Environment variables override the file:
70
145
 
71
146
  | Key | Env | Default | Meaning |
72
147
  | --- | --- | --- | --- |
@@ -78,47 +153,28 @@ profile patch layer). Environment variables override the file:
78
153
  | timeoutMs | `DSH_AGY_TIMEOUT_MS` | `600000` | per-turn watchdog |
79
154
  | extraArgs | `DSH_AGY_EXTRA_ARGS` | — | extra agy flags, space-separated |
80
155
 
81
- ### Permission modes — read this
156
+ ### ⚠️ Permission modes — read this
82
157
 
83
- agy runs its **own** tool loop with its own file edits and shell commands.
84
- The bridge maps that to one of three modes:
158
+ agy runs its **own** tool loop with its own file edits and shell commands. The bridge maps that to one of three modes:
85
159
 
86
160
  - **plan** — read-only; the safe default for trying the bridge.
87
161
  - **accept-edits** — agy may edit files without asking.
88
- - **skip** — `--dangerously-skip-permissions`: agy runs **every** tool
89
- without approval. Non-interactive DSH turns need this (or plan) because
90
- agy permission prompts hang print mode, but it means real unattended
91
- write/exec access. The settings panel shows this button in red.
162
+ - **skip** — `--dangerously-skip-permissions`: agy runs **every** tool without approval. Non-interactive DSH turns need this (or plan) because agy permission prompts hang print mode, but it means real unattended write/exec access. The settings panel shows this button in red.
92
163
 
93
- DSH-side tools and permissions are unaffected — this only governs what the
94
- spawned agy process may do in its workspace.
164
+ DSH-side tools and permissions are unaffected — this only governs what the spawned agy process may do in its workspace.
95
165
 
96
- ## How it works
166
+ ## 🧩 How it works
97
167
 
98
- One DSH model call = one short-lived `agy -p --output-format stream-json`
99
- process. The NDJSON event stream is parsed, normalized, and mapped to
100
- DSH StreamChunks: thinking → reasoning blocks, text → text blocks, tool
101
- activity → annotated reasoning blocks, and the result envelope → usage +
102
- finish. Conversation ids are discovered from the stream itself with a
103
- conversations-directory snapshot diff as fallback. No reverse-engineered
104
- database scraping, no protobuf decoding, no token file access.
168
+ One DSH model call = one short-lived `agy -p --output-format stream-json` process. The NDJSON event stream is parsed, normalized, and mapped to DSH StreamChunks: thinking → reasoning blocks, text → text blocks, tool activity → annotated reasoning blocks, and the result envelope → usage + finish. Conversation ids come from the stream itself, with a conversations-directory snapshot diff as fallback. **No reverse-engineered database scraping, no protobuf decoding, no token-file access** — only the official unmodified agy binary is spawned.
105
169
 
106
- ## Known gaps
170
+ ## 📋 Known gaps
107
171
 
108
- See [docs/KNOWN-GAPS.md](docs/KNOWN-GAPS.md). Notably: images are not
109
- forwarded (agy print mode is text-only), and DSH tools are not exposed to
110
- agy (its MCP reverse bridge is future work).
172
+ See [docs/KNOWN-GAPS.md](docs/KNOWN-GAPS.md). Notably: images are not forwarded (agy print mode is text-only), and DSH tools are not exposed to agy (its MCP reverse bridge is future work).
111
173
 
112
- ## Disclaimer & risk note
174
+ ## ⚠️ Disclaimer & risk note
113
175
 
114
- This plugin spawns the **official, unmodified** `agy` binary and consumes
115
- its public print-mode output. It does not decode internal databases or
116
- touch OAuth tokens. Automating a subscription CLI may still conflict with
117
- the provider's terms of service (Google Antigravity ToS §6 context); use
118
- it at your own risk, and stop if asked to.
176
+ This plugin spawns the **official, unmodified** `agy` binary and consumes its public print-mode output. It does not decode internal databases or touch OAuth tokens. Automating a subscription CLI may still conflict with the provider's terms of service (Google Antigravity ToS §6 context); use it at your own risk, and stop if asked to.
119
177
 
120
178
  ## License
121
179
 
122
180
  MIT
123
-
124
- [DeepSeek Harness (DSH)]: https://npmjs.com/package/@deepseek-ai/dsh
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-agy-link",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Google Antigravity (agy CLI) models for DeepSeek Harness — stream Gemini/Claude/GPT-OSS subscriptions into DSH with thinking, tool activity, token usage and in-GUI Google OAuth login.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -75,7 +75,6 @@
75
75
  "dist",
76
76
  "cordis.patch.yml",
77
77
  "README.md",
78
- "README.zh.md",
79
78
  "LICENSE",
80
79
  "CHANGELOG.md",
81
80
  "docs"
package/README.zh.md DELETED
@@ -1,112 +0,0 @@
1
- # dsh-agy-link(简体中文)
2
-
3
- 把 **Google Antigravity 模型接入 [DeepSeek Harness (DSH)]** —— 由官方
4
- `agy` CLI 驱动,完整支持对话输出、思考(thinking)、工具活动与 token
5
- 用量,全部走你的 Antigravity 订阅。
6
-
7
- [English](README.md) | 简体中文
8
-
9
- ---
10
-
11
- > 全网统一昵称:**小斯syzs** · B站 [@小斯syzs](https://space.bilibili.com/390211071) · 抖音 · 小红书 · 快手(全网同名)
12
- >
13
- > 💬 **小斯syzs 邀请你加入飞书群** —— [点此一键加入](https://applink.feishu.cn/client/chat/chatter/add_by_link?link_token=553i2f4a-5cc8-487f-95d3-3c4095bec0d9)
14
-
15
- > Known online as **小斯syzs** — Bilibili [@小斯syzs](https://space.bilibili.com/390211071) · Douyin · Xiaohongshu · Kuaishou (same handle on every platform).
16
- >
17
- > 💬 **Join the Feishu community group** hosted by 小斯syzs — [one-click invite](https://applink.feishu.cn/client/chat/chatter/add_by_link?link_token=553i2f4a-5cc8-487f-95d3-3c4095bec0d9)
18
-
19
-
20
- ## 你能得到什么
21
-
22
- - **模型路由而非代理** —— 在 DSH 模型配置里注册 `antigravity` 提供方,
23
- `/model` 选择器里直接挑任意 Antigravity 模型。
24
- - **完整流式输出** —— 文本、思考、agy 工具活动(注记为 reasoning 块),
25
- 全部映射到 DSH 原生流协议。
26
- - **会话连续性** —— 每个 DSH 会话绑定原生 agy 会话(`--conversation`),
27
- 多轮上下文由 agy 自己的历史承载,不重发全量。
28
- - **token 用量** —— 输入/输出/思考/缓存 token 全部进入 DSH 用量统计。
29
- - **GUI 内 Google 登录** —— `/agy auth` 打印授权 URL;侧栏面板提供
30
- 二维码 + 授权码粘贴框。
31
- - **`agy_ask` 工具** —— 任何 DSH 模型都可以把一次性任务委托给
32
- Antigravity 模型(AskAntigravity 模式)。
33
- - **`/agy` 命令族** —— `status` / `auth` / `auth-code` / `models` /
34
- `mode` / `effort` / `clear` / `doctor` / `help`。
35
- - **休眠安全** —— 没装 agy?没登录?插件照常加载并告诉你怎么修。
36
-
37
- ## 环境要求
38
-
39
- - DSH(DeepSeek Harness)web profile
40
- - Node.js >= 24
41
- - 官方 `agy` CLI >= 1.1.8,已安装并在 `PATH` 上
42
-
43
- ## 安装
44
-
45
- ```bash
46
- dsh plugin --profile web add dsh-agy-link
47
- ```
48
-
49
- 重启 DSH,在 GUI 里执行 `/agy status`。
50
-
51
- ## 登录(一次性)
52
-
53
- 1. `/agy auth` —— 打印 Google 授权 URL。
54
- 2. 打开链接、批准访问、复制授权码。
55
- 3. `/agy auth-code <授权码>` —— 或用侧栏面板(二维码 + 粘贴框)。
56
-
57
- 插件绝不读取/复制/移动
58
- `~/.gemini/antigravity-cli/antigravity-oauth-token`;登录完全通过官方
59
- CLI 自己的流程完成。
60
-
61
- ## 配置
62
-
63
- 配置在 `agy-link` 插件条目里(`/plugin` 或 profile patch 层编辑)。
64
- 环境变量优先于文件:
65
-
66
- | 键 | 环境变量 | 默认值 | 含义 |
67
- | --- | --- | --- | --- |
68
- | enabled | `DSH_AGY_ENABLED` | `true` | 总开关 |
69
- | agyBin | `DSH_AGY_BIN` | 自动 | 显式 agy 路径 |
70
- | permissionMode | `DSH_AGY_MODE` | `skip` | `skip` / `plan` / `accept-edits`(见下) |
71
- | defaultModel | `DSH_AGY_DEFAULT_MODEL` | `(agy 默认)` | 模型 slug |
72
- | defaultEffort | `DSH_AGY_DEFAULT_EFFORT` | `(模型默认)` | `low` / `medium` / `high` |
73
- | timeoutMs | `DSH_AGY_TIMEOUT_MS` | `600000` | 单轮看门狗 |
74
- | extraArgs | `DSH_AGY_EXTRA_ARGS` | — | 附加 agy 参数(空格分隔) |
75
-
76
- ### 权限模式 —— 必读
77
-
78
- agy 有**自己的**工具循环,会自己做文件编辑和 shell 执行。桥接层映射为
79
- 三种模式:
80
-
81
- - **plan** —— 只读,体验桥接的安全默认。
82
- - **accept-edits** —— agy 可以不经询问改文件。
83
- - **skip** —— `--dangerously-skip-permissions`:agy **所有**工具免审批。
84
- 非交互 DSH 轮次需要它(或 plan),因为 agy 的权限提示会卡死 print
85
- 模式;但这意味着真实的无人值守 写/执行 权限。设置面板里这个按钮是
86
- 红色的。
87
-
88
- DSH 侧的工具与权限不受影响 —— 这里只约束 agy 子进程在自己工作区能做什么。
89
-
90
- ## 工作原理
91
-
92
- 一次 DSH 模型调用 = 一个短生命周期 `agy -p --output-format stream-json`
93
- 进程。NDJSON 事件流被解析、归一化并映射为 DSH StreamChunk:思考 →
94
- reasoning 块,文本 → text 块,工具活动 → 注记 reasoning 块,结果信封 →
95
- usage + finish。会话 id 优先取自流本身,conversations 目录快照对比作为
96
- 兜底。不逆向数据库、不解码 protobuf、不碰 token 文件。
97
-
98
- ## 已知差距
99
-
100
- 见 [docs/KNOWN-GAPS.md](docs/KNOWN-GAPS.md)。要点:图片不转发(agy print
101
- 模式纯文本);DSH 工具不暴露给 agy(MCP 反向桥接是后续工作)。
102
-
103
- ## 免责与风险提示
104
-
105
- 本插件只启动**官方未修改**的 `agy` 二进制并消费其公开 print 输出,
106
- 不解码内部数据库、不触碰 OAuth token。自动化订阅 CLI 仍可能与提供方
107
- 服务条款冲突(Google Antigravity ToS §6 语境);风险自负,被要求停止时
108
- 请停止。
109
-
110
- ## 许可证
111
-
112
- MIT