paseo-agy-acp 2.3.0 → 2.3.1
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/README.zh-CN.md
CHANGED
|
@@ -1,461 +1,144 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# paseo-agy-acp
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**Google 官方 Antigravity ACP 内核面向 Paseo 的可靠产品适配器**
|
|
6
6
|
|
|
7
7
|
[](./LICENSE)
|
|
8
|
-
[](./package.json)
|
|
9
9
|
[](https://www.npmjs.com/package/paseo-agy-acp)
|
|
10
|
-
[](
|
|
10
|
+
[](./package.json)
|
|
11
11
|
[](https://agentclientprotocol.com)
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<div align="center">
|
|
16
|
-
|
|
17
|
-
[🇺🇸 English](./README.md) | [🇨🇳 中文](./README.zh-CN.md)
|
|
13
|
+
[English](./README.md) | [中文](./README.zh-CN.md) | [Changelog](./CHANGELOG.md)
|
|
18
14
|
|
|
19
15
|
</div>
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
`paseo-agy-acp` 是面向 Paseo 的 Google Antigravity ACP 产品。从 **2.1.0.0** 起,
|
|
24
|
-
它以薄层 NDJSON 代理运行 Google 官方 Antigravity ACP 内核(`agy_acp_server` /
|
|
25
|
-
Registry id `antigravity-acp`),再补上 Generic ACP 本身给不了的 Paseo 行为:
|
|
26
|
-
daemon 上下文、session 模式映射、MCP 改写、产品身份,以及账户级 Admission
|
|
27
|
-
队列——让 Paseo 主控可以一次委派多个 Antigravity agent,而不把启动打成风暴。
|
|
28
|
-
|
|
29
|
-
**2.2** 仍使用同一套官方 ACP 内核。它只增加一层明确的 **本机 opt-in**
|
|
30
|
-
兼容:有资格的 Claude 4.6 与 GPT-OSS 120B 可以在这条路径上跑完回合。
|
|
31
|
-
如果未 opt-in,官方路径默认只支持 Gemini 系模型。
|
|
32
|
-
|
|
33
|
-
**2.3.0** 新增可由用户调用的 skill slash command 提示,支持 Gemini、Agents、
|
|
34
|
-
Codex、用户配置和 workspace roots。原生 ACP 命令保持不变,workspace skills
|
|
35
|
-
按 session cwd 隔离,并发创建 session 时不会跨 workspace 混入命令提示。
|
|
36
|
-
|
|
37
|
-
> **非 Paseo 官方支持。非 Google 官方支持。** 社区维护产品,使用风险自负。
|
|
38
|
-
|
|
39
|
-
## 30 秒摘要
|
|
40
|
-
|
|
41
|
-
如果你在 Paseo 里使用 Google Antigravity,`paseo-agy-acp` 给 Paseo 提供一条
|
|
42
|
-
接入 Google 官方 Antigravity ACP 内核的产品化路径。模型工作仍然由官方内核完成,
|
|
43
|
-
本仓库补上 Generic ACP 桥本身不提供的 Paseo 侧行为:
|
|
44
|
-
|
|
45
|
-
- daemon 上下文注入
|
|
46
|
-
- session 模式映射
|
|
47
|
-
- MCP `http` 到官方 `sse` 的改写
|
|
48
|
-
- 稳定产品身份
|
|
49
|
-
- 面向 ACP slash command 提示的本地与 workspace skill discovery
|
|
50
|
-
- 面向多 agent 委派的账户级 Admission 队列
|
|
51
|
-
- 本机 opt-in 后可跑 Claude 4.6 与 GPT-OSS 120B;未 opt-in 则只支持 Gemini 系
|
|
52
|
-
|
|
53
|
-
## 适合谁
|
|
54
|
-
|
|
55
|
-
适合你,如果:
|
|
56
|
-
|
|
57
|
-
- 你运行 Paseo
|
|
58
|
-
- 你本机已经安装并登录 Google Antigravity
|
|
59
|
-
- 你想通过 Generic ACP 使用 Antigravity
|
|
60
|
-
- 你会一次委派多个 agent,希望启动突发被限速而不是同时砸到内核上
|
|
61
|
-
- 你想在官方 ACP 内核上通过 Paseo 使用 Claude 4.6 或 GPT-OSS 120B(本机 opt-in)
|
|
62
|
-
|
|
63
|
-
可能不适合你,如果:
|
|
64
|
-
|
|
65
|
-
- 你不使用 Paseo
|
|
66
|
-
- 你想要一个独立的 Antigravity 替代品
|
|
67
|
-
- 你期待这个包重新分发 Google 的专有内核
|
|
68
|
-
|
|
69
|
-
## 快速开始
|
|
70
|
-
|
|
71
|
-
前提:**Paseo**、**Node.js >= 22**,以及本机已安装的官方 Antigravity ACP 内核
|
|
72
|
-
(本包装 **不会** 安装 Google 的 `.par`)。`--login` 完成官方 OAuth
|
|
73
|
-
(`authenticate` / `oauth-personal`)。把 `PASEO_AGY_ACP_OFFICIAL_BIN` 指到你的
|
|
74
|
-
内核 wrapper 或 `.par`(除非已在维护者主机默认 pin 路径,否则必填)。
|
|
17
|
+
<!-- readme:positioning -->
|
|
18
|
+
## 这个产品是什么
|
|
75
19
|
|
|
76
|
-
|
|
77
|
-
|
|
20
|
+
`paseo-agy-acp` 是 Paseo 与 Google 官方 Antigravity ACP 内核之间的产品适配层。
|
|
21
|
+
认证、模型、工具、MCP 和推理仍由官方内核负责;本适配器补齐 Paseo 多 agent
|
|
22
|
+
可靠运行所需要的上下文、协议兼容、并发治理、skill discovery 和失败语义。
|
|
78
23
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
npx -y paseo-agy-acp@2.3.0 --login
|
|
24
|
+
它不是第二个 Antigravity 实现,也不重新分发 Google 的专有内核。npm 包只包含
|
|
25
|
+
这个 Apache-2.0 代理;官方内核需要单独在本机安装和认证。
|
|
82
26
|
|
|
83
|
-
|
|
84
|
-
install -d -m 700 "$AGY_ACP_STATE_DIR"
|
|
85
|
-
npx -y --package=paseo-agy-acp@2.3.0 agy-acp-prepare-state "$AGY_ACP_STATE_DIR"
|
|
86
|
-
export AGY_ACP_ADMISSION_ENABLED=true
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
再把 Paseo Generic ACP 的 `command` 指到 npx(见
|
|
90
|
-
[Paseo Provider 配置](#paseo-provider-配置))。下面这一行 **不是** 独立聊天程序,
|
|
91
|
-
而是 Paseo spawn 的 stdio ACP 服务:
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
npx -y paseo-agy-acp@2.3.0
|
|
95
|
-
```
|
|
27
|
+
> 社区维护项目。非 Paseo 官方支持,非 Google 官方支持。
|
|
96
28
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
(`git clone` + `npm ci` + `npm run build`)见 [安装](#安装)。
|
|
29
|
+
<!-- readme:value -->
|
|
30
|
+
## 为什么需要 paseo-agy-acp
|
|
100
31
|
|
|
101
|
-
|
|
32
|
+
ACP 提供协议,但一条可用于生产的 Paseo provider 仍需要协议之外的产品行为:
|
|
102
33
|
|
|
103
|
-
|
|
104
|
-
补上 Generic ACP 桥本身不提供的 Paseo 侧行为。
|
|
105
|
-
|
|
106
|
-
| 亮点 | 为什么重要 |
|
|
107
|
-
|---|---|
|
|
108
|
-
| **官方 ACP 内核** | 原生 ACP / NDJSON。未 opt-in 时官方路径只支持 Gemini;本机 opt-in 后,有资格的 Claude 4.6 与 GPT-OSS 120B 可以跑完回合。 |
|
|
109
|
-
| **Paseo 侧胶水** | daemon `appendSystemPrompt`、Paseo 已在用的 mode id、以及 MCP `http` server,都会改写成官方内核认识的形态,Generic ACP agent 不用再写一层适配。仍须安装 Paseo、官方内核,并把 `command` 指到本代理。 |
|
|
110
|
-
| **突发委派更稳健** | 账户级持久 Admission 队列给 `session/prompt` 限速,Paseo 主控可以一次派出很多 Antigravity agent,不会让每个 turn 同时砸到内核上。 |
|
|
111
|
-
| **生产实测默认值** | 默认 **8 个共享席位 / 8 路同时启动 / 2 秒间隔**,来自真实 Paseo 派发(含 10 agent 突发)和隔离压测。整数 **≥ 1** 可以继续试更高并发;本仓库 **不编** 一个产品上限。 |
|
|
112
|
-
| **失败即关闭** | 非法环境变量、policy 分叉、无法证明的写入一律 fail closed。排队超时、取消、内核错误仍然能区分。 |
|
|
113
|
-
| **空白回合守卫** | 官方 `end_turn` 且没有任何可见助手/工具输出时,改成 JSON-RPC 错误,避免 Paseo 记成静默成功。 |
|
|
114
|
-
| **许可证分层清楚** | 本仓库保持 **Apache-2.0**。官方内核是专有软件:只 **spawn** 你本机已安装的二进制;npm **不** 附带约 1.5GiB 的 `.par`。 |
|
|
115
|
-
|
|
116
|
-
```text
|
|
117
|
-
Paseo Generic ACP (NDJSON)
|
|
118
|
-
→ paseo-agy-acp 产品代理
|
|
119
|
-
身份 · daemon 上下文 · 模式映射 · MCP 改写 · Admission 围栏
|
|
120
|
-
→ 官方 agy_acp_server (NDJSON)
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
| 层 | 许可证 | 我们怎么做 |
|
|
34
|
+
| 需求 | 直接连接 Generic ACP | 使用 `paseo-agy-acp` |
|
|
124
35
|
|---|---|---|
|
|
125
|
-
|
|
|
126
|
-
|
|
|
127
|
-
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
本产品 **不重新实现** Antigravity。它拉起 Google 原生 ACP 服务器,转发 Agent
|
|
134
|
-
Client Protocol NDJSON。下表是**官方内核**通过该协议提供的能力。
|
|
135
|
-
|
|
136
|
-
| 范围 | 官方内核提供什么 |
|
|
137
|
-
|---|---|
|
|
138
|
-
| 协议 | 原生 **ACP v1 / NDJSON** |
|
|
139
|
-
| 鉴权 | `authenticate`,`methodId=oauth-personal`(内核内 OAuth) |
|
|
140
|
-
| 会话生命周期 | `initialize`、`session/new`、`session/prompt`、`session/cancel`、`session/set_mode`、`session/set_config_option` |
|
|
141
|
-
| 流式输出 | `session/update`:助手文本、思考、工具调用 / 工具更新 |
|
|
142
|
-
| 在线 session 模式 | `default`、`auto_edit`、`yolo`(官方 **没有** plan 模式) |
|
|
143
|
-
| 工具 | 文件编辑、shell/终端等,以 Google 实现为准 |
|
|
144
|
-
| MCP | 官方 MCP 客户端;在 `session/new` 上声明 server |
|
|
145
|
-
| 模型 | 未 opt-in:只支持 Gemini 系。本机 opt-in:有资格的 Claude 4.6 与 GPT-OSS 120B([§2](#2-我们为-paseo-做了哪些适配))。 |
|
|
146
|
-
| 回合结束 | 官方 `end_turn` / stop reason |
|
|
147
|
-
|
|
148
|
-
### 模型
|
|
149
|
-
|
|
150
|
-
未 opt-in 时,官方 ACP 路径**默认只支持 Gemini 系模型**。Antigravity IDE 里
|
|
151
|
-
有资格的账号已经能看到 Claude 4.6 与 GPT-OSS 120B;在这条 ACP 路径上,请求
|
|
152
|
-
仍按 Gemini 对齐(JSON Schema、工具 ID、GPT generation config),所以它们
|
|
153
|
-
不是默认可工作集合。
|
|
154
|
-
|
|
155
|
-
本机 opt-in(同一套官方内核)见 [§2](#2-我们为-paseo-做了哪些适配)。
|
|
156
|
-
操作步骤:[runbook](docs/operations/official-kernel-compat-runbook.md)。
|
|
157
|
-
|
|
158
|
-
工具质量、生图、供应商 503/配额文案,由官方内核和 Google 后端负责。
|
|
159
|
-
本产品只 **代理** 这层能力。
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
## 2. 我们为 Paseo 做了哪些适配
|
|
164
|
-
|
|
165
|
-
下面这些才是本仓库存在的理由:**Paseo 侧**加在官方内核之上的适配。
|
|
166
|
-
|
|
167
|
-
| # | 适配 | 做什么 |
|
|
168
|
-
|---|---|---|
|
|
169
|
-
| 1 | 产品身份 | `initialize` 的 `agentInfo` 叠加为 `agy-acp` / `paseo-agy-acp`,Paseo 看到的是稳定产品名。 |
|
|
170
|
-
| 2 | Daemon 上下文桥 | 设置了 `PASEO_AGENT_ID` 时,把 Paseo daemon 的 `appendSystemPrompt` 注入官方 `session/prompt`,工作区/agent 上下文才能到达 Antigravity。 |
|
|
171
|
-
| 3 | Session 模式映射 | 把 Paseo / 旧 id 映射到官方在线模式:`accept-edits` → `auto_edit`,`dangerously-skip-permissions` → `yolo`,`plan` → `default`。 |
|
|
172
|
-
| 4 | MCP `http` → `sse` | Paseo 常给出 `type: "http"` 加 header 对象;官方内核要 `sse` 和 `{name,value}` 数组。代理在 `session/new` 上改写。 |
|
|
173
|
-
| 5 | Admission 围栏 | 启用 Admission 时,官方 `session/prompt` **写入前**先占账户级持久席位,回合结束/失败/取消再释放。 |
|
|
174
|
-
| 6 | 空白回合守卫 | 官方 `end_turn` 且 **没有任何** 可见助手/工具输出时,改成 JSON-RPC 错误(`-32000`),避免 Paseo 当成空成功回合。 |
|
|
175
|
-
| 7 | 隔离 Admission 账本 | 官方内核队列状态在 `$AGY_ACP_STATE_DIR/official-kernel`,不与历史账本混用。 |
|
|
176
|
-
| 8 | 单一内核 | `PASEO_AGY_ACP_KERNEL=legacy` 和 `--legacy-kernel` 直接失败。官方内核是唯一 ACP 执行路径。 |
|
|
177
|
-
| 9 | 本机模型兼容(opt-in) | 同一套官方内核:本机解开 + 请求转换,让有资格的 Claude 4.6 与 GPT-OSS 120B 跑完回合。未 opt-in 则关闭。 |
|
|
178
|
-
|
|
179
|
-
`PASEO_HOME` 可选;未设置或为空时回退到 `~/.paseo`。Paseo 通常会给 ACP
|
|
180
|
-
provider 进程提供 `PASEO_AGENT_ID`(以及 `PASEO_AGENT_CWD`)。
|
|
181
|
-
|
|
182
|
-
### 本机 opt-in:Claude 4.6 与 GPT-OSS 120B
|
|
183
|
-
|
|
184
|
-
**2.2 仍使用同一套官方 ACP 内核。** 它只增加这一层。如果未 opt-in,
|
|
185
|
-
官方路径默认只支持 Gemini 系模型。
|
|
186
|
-
|
|
187
|
-
opt-in 是 **本机、显式** 的:
|
|
188
|
-
|
|
189
|
-
1. 对本机已安装的官方 RC01 构件做 pin(hash 校验;不匹配则 fail closed)。
|
|
190
|
-
2. **只在本机**解开。npm 和 git **不**分发 Google 的 `.par` 或 runfiles。
|
|
191
|
-
3. 加载 `paseo_model_compat.py`:只保留同时出现在 live CCPA 目录 **和** 本地
|
|
192
|
-
profile 里的模型;转换工具 JSON Schema(`$schema`、`parameters`)、配对
|
|
193
|
-
工具 ID、处理 GPT-OSS generation config。Gemini 与未知 id 走 identity,
|
|
194
|
-
不加变换。
|
|
195
|
-
4. `prepare` → `verify` → lifecycle `activate`,再把
|
|
196
|
-
`PASEO_AGY_ACP_OFFICIAL_BIN` 指到 **stable** wrapper
|
|
197
|
-
(`agy-acp-kernel-compat-active` / `status.stableWrapperPath`)。不要把
|
|
198
|
-
生产指到 per-release 冒烟 wrapper。
|
|
199
|
-
|
|
200
|
-
命令:`agy-acp-prepare-official-kernel-compat`(或
|
|
201
|
-
`node ./scripts/prepare-official-kernel-compat.mjs`)。完整参数、JSON 字段和
|
|
202
|
-
回滚见 [runbook](docs/operations/official-kernel-compat-runbook.md)。
|
|
203
|
-
|
|
204
|
-
维护者主机在具备 raw CCPA 资格时核验过:`claude-sonnet-4-6`、
|
|
205
|
-
`claude-opus-4-6-thinking`、`gpt-oss-120b-medium` —— 文本、顺序工具、warm
|
|
206
|
-
resume。你的账号仍须在 raw CCPA 目录里拥有这些 id。
|
|
207
|
-
|
|
208
|
-
本机 opt-in 之后,同一台主机上的 Paseo 活回合(Yolo)。仍是同一套官方内核;
|
|
209
|
-
npm **不**分发 Google 的 `.par`。
|
|
210
|
-
|
|
211
|
-
**Claude Opus 4.6 (Thinking)** — hello 回合,5s:
|
|
212
|
-
|
|
213
|
-

|
|
214
|
-
|
|
215
|
-
**GPT-OSS 120B (Medium)** — hello 回合,4s:
|
|
216
|
-
|
|
217
|
-

|
|
218
|
-
|
|
219
|
-
请在自己的环境测试 Claude 与 GPT-OSS(单个 agent 和一次开多个)。模型缺失、
|
|
220
|
-
回合失败或工具异常,请 [开 Issue](https://github.com/tiezbro/paseo-agy-acp/issues)。
|
|
221
|
-
我们会按反馈做优化和修复。
|
|
222
|
-
|
|
223
|
-
---
|
|
224
|
-
|
|
225
|
-
## 3. 为什么需要 Admission 队列
|
|
226
|
-
|
|
227
|
-
### 背景
|
|
228
|
-
|
|
229
|
-
Paseo 是 **主控**。它会 **一次委派很多个 Antigravity agent**。这种突发下,
|
|
230
|
-
高并发曾经把回合挂死:助手气泡一直空着、进程卡住,或 ACP **Internal Error
|
|
231
|
-
`-32603`**。当时的 **3+1**(3 个共享席位、1 路同时启动、启动间隔 2 秒)是给
|
|
232
|
-
那种故障 **止血**用的,不是测出来的官方 ACP 上限。
|
|
233
|
-
|
|
234
|
-
换成官方内核后,生产环境实测默认 **8 个共享席位 / 8 路同时启动 / 2 秒间隔**,
|
|
235
|
-
包括一次 10 个 Antigravity agent 的派发,没有复现旧的挂死。隔离环境
|
|
236
|
-
`127.0.0.1:6768` 上 6 路 yolo 压测同样没有复现。官方 ACP **仍未**被证明无限
|
|
237
|
-
并发。**8 是实测默认值,不是已经公布的产品上限。**
|
|
238
|
-
|
|
239
|
-
### 原理
|
|
240
|
-
|
|
241
|
-
```text
|
|
242
|
-
Paseo 主控
|
|
243
|
-
一次委派多个 Antigravity agent
|
|
244
|
-
|
|
|
245
|
-
v
|
|
246
|
-
账户级持久 Admission 队列
|
|
247
|
-
|
|
|
248
|
-
共享 active 席位(默认 8)
|
|
249
|
-
限速同时启动(默认 8,间隔 ≥ 2s)
|
|
250
|
-
|
|
|
251
|
-
官方 session/prompt 写入
|
|
252
|
-
|
|
|
253
|
-
回合结束 / 失败 / 取消后释放席位
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
多出来的 turn **在队列里等**,而不是一起打到 `agy_acp_server` 上。队列按最早
|
|
257
|
-
可调度者排队,并带 agent fairness,跨 connector 进程持久,非法环境变量失败
|
|
258
|
-
关闭(非整数、`< 1`、启动间隔 `< 2000ms`)。共用同一状态目录的多个 Paseo
|
|
259
|
-
agent 共用一份账户席位池,不会各自再乘一倍并发。
|
|
260
|
-
|
|
261
|
-
### 优势
|
|
262
|
-
|
|
263
|
-
队列不是为了把 Paseo 永久锁在 8 个 agent。它是为了让 **Paseo 主控委派
|
|
264
|
-
Antigravity 更稳健**:
|
|
265
|
-
|
|
266
|
-
- 主控仍然可以一次派出一批;
|
|
267
|
-
- 超出席位的工作排队,而不是把官方内核打满;
|
|
268
|
-
- 席位是账户级的,跨进程、跨重启仍然一致;
|
|
269
|
-
- 排队超时 / 取消 / 内核错误仍然能和崩溃区分开;
|
|
270
|
-
- 可以把席位/启动整数调到 **≥ 1** 去试更高并发,测到结果欢迎反馈。
|
|
271
|
-
|
|
272
|
-
所以换成官方内核之后,Admission 仍然留在产品里。
|
|
273
|
-
|
|
274
|
-
---
|
|
275
|
-
|
|
276
|
-
## Admission Controller v2
|
|
277
|
-
|
|
278
|
-
Admission 是上面这套队列的落地实现:持久席位、启动限速、故障恢复、typed
|
|
279
|
-
terminal。通过环境变量 **显式启用**(`AGY_ACP_ADMISSION_ENABLED=true`,加上
|
|
280
|
-
绝对路径 `AGY_ACP_STATE_DIR` 和合法 `PASEO_AGENT_ID`)。只要 Paseo 会委派
|
|
281
|
-
不止一个 Antigravity agent,就建议打开。
|
|
282
|
-
|
|
283
|
-
### 启用 Admission
|
|
284
|
-
|
|
285
|
-
每个 Antigravity 账号准备一个 owner-only 状态目录,并跑随包发布的预检:
|
|
286
|
-
|
|
287
|
-
```bash
|
|
288
|
-
export AGY_ACP_STATE_DIR="$HOME/.local/state/paseo-agy-acp/account-name"
|
|
289
|
-
install -d -m 700 "$AGY_ACP_STATE_DIR"
|
|
290
|
-
agy-acp-prepare-state "$AGY_ACP_STATE_DIR"
|
|
291
|
-
export AGY_ACP_ADMISSION_ENABLED=true
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
预检会以 `0700` 创建缺失目录,并核验类型、owner 和精确权限。已经存在的宽权限
|
|
295
|
-
目录会被 **拒绝**,不会静默改权。确认路径和归属后执行
|
|
296
|
-
`chmod 700 -- "$AGY_ACP_STATE_DIR"`,再重新跑预检。Admission key 与 SQLite
|
|
297
|
-
文件以 `0600` 创建。
|
|
36
|
+
| 官方执行链 | 可以启动 ACP server | OAuth、模型、工具、MCP 和推理继续留在 Google 官方内核 |
|
|
37
|
+
| Paseo 上下文 | 没有产品级保证 | 将 Paseo daemon 与 workspace/agent context 注入官方 prompt |
|
|
38
|
+
| Modes 与 MCP | 客户端和内核数据形态可能不同 | 映射 Paseo modes,并把 MCP `http` 声明改写为官方 `sse` 形态 |
|
|
39
|
+
| 多 agent 突发 | 多个 prompt 可能同时打入内核 | 使用跨 connector 共享的账户级持久 Admission 队列 |
|
|
40
|
+
| Slash command discovery | 官方命令更新不包含本地 skills | 加入可由用户调用的 Gemini、Agents、Codex、配置和 workspace skills |
|
|
41
|
+
| 空白回合 | 无输出的 `end_turn` 可能看起来成功 | 返回明确 JSON-RPC 错误,避免记录静默成功 |
|
|
42
|
+
| 额外授权模型 | 官方 ACP 默认走 Gemini 系路径 | 为有资格的 Claude 4.6 与 GPT-OSS 120B 提供显式本机兼容 runbook |
|
|
43
|
+
| 产品身份 | 跟随底层 server | 向 Paseo 暴露稳定的 `agy-acp` / `paseo-agy-acp` 身份 |
|
|
298
44
|
|
|
299
|
-
|
|
45
|
+
### 多 agent 稳定性
|
|
300
46
|
|
|
301
|
-
|
|
47
|
+
Paseo 主控可以一次委派多个 Antigravity agent。Admission 允许主控保留这种批量
|
|
48
|
+
派发能力,同时让超额 turn 排队,而不是一起写入 `agy_acp_server`。使用同一状态
|
|
49
|
+
目录的所有 connector 共享账户席位,回合完成、失败或取消后释放。
|
|
302
50
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
| 同时启动路数 | **8**(实测) | `AGY_ACP_ADMISSION_MAX_CONCURRENT_STARTS`,整数 **≥ 1** |
|
|
307
|
-
| 最小启动间隔 | **2000 ms** | `AGY_ACP_ADMISSION_MIN_START_INTERVAL_MS`,整数 **≥ 2000** |
|
|
308
|
-
| 最长排队时间 | 30 分钟 | `AGY_ACP_ADMISSION_QUEUE_TIMEOUT_MS`,整数 `1`–`1800000` |
|
|
309
|
-
| 容量 cooldown | 30 秒 | `AGY_ACP_ADMISSION_CAPACITY_COOLDOWN_MS`,整数 **≥ 30000** |
|
|
51
|
+
实测默认策略是 **8 个 active turns / 8 路同时启动 / 最少 2 秒启动间隔**。
|
|
52
|
+
这些是可调整的运行默认值,不是对 Google 产品上限的声明。启用后的非法配置会
|
|
53
|
+
fail closed。
|
|
310
54
|
|
|
311
|
-
|
|
312
|
-
oldest-eligible 调度并带 agent fairness。可信的 provider 容量故障只暂停受影响
|
|
313
|
-
的 provider/model。排队超时会在同一事务中取消请求并删除加密 prompt。
|
|
55
|
+
### Skill discovery
|
|
314
56
|
|
|
315
|
-
|
|
316
|
-
|
|
57
|
+
适配器将原生 ACP 命令与配置目录及默认 Gemini、Agents、Codex、workspace roots
|
|
58
|
+
中的 `SKILL.md` 元数据合并。同名时原生命令优先,workspace skills 优先于全局
|
|
59
|
+
skills,`user-invocable: false` 不会出现在 slash command 提示中。Discovery 按
|
|
60
|
+
session cwd 隔离,并发 workspace 不会互相泄漏命令元数据。
|
|
317
61
|
|
|
318
|
-
|
|
62
|
+
### 模型边界
|
|
319
63
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
soft drain 可以降低席位,而不杀死进行中的工作、不丢弃排队请求。
|
|
326
|
-
|
|
327
|
-
### 持久化、dispatch 与恢复
|
|
328
|
-
|
|
329
|
-
本地实现使用 `shared-admission-queue` **schema v3**。持久 policy
|
|
330
|
-
(`policy_state` / `policy_fingerprint`)、queued owner、带 suspect metadata 的
|
|
331
|
-
lease(给 runtime reaper 用)以及 `schema_migrations` 都在同一份 SQLite 账本里。
|
|
332
|
-
额外的 delivery-authority 表仍然 fail closed。
|
|
333
|
-
|
|
334
|
-
每个启用 Admission 的 runtime opener 都会在 startup recovery 前 claim 或核验
|
|
335
|
-
这份持久 policy。第二个 connector 对同一目录使用 **不同** policy 时直接失败
|
|
336
|
-
关闭,不会形成只存在于进程内的 policy 分叉。
|
|
337
|
-
|
|
338
|
-
空闲 session 不占席位,也不保留常驻 turn 进程。获得席位的 turn 走一次 fenced
|
|
339
|
-
的 `session/prompt` 写入;无法证明的写入进入 `dispatch_ambiguous` 或
|
|
340
|
-
`recovery_required`,绝不静默重放。Heartbeat、owner 身份和 runtime reaper 只
|
|
341
|
-
在 owner 被证实退出时回收容量。关闭 session 会取消尚未开始的排队请求;已经
|
|
342
|
-
运行的 turn 走 connector 取消路径(`session/cancel`)。
|
|
343
|
-
|
|
344
|
-
Admission **不会**再做第二套 live 输出、outbox、ACK、terminal replay 或手工
|
|
345
|
-
requeue API。官方 session 历史仍由 ACP Connector / 内核负责。
|
|
346
|
-
|
|
347
|
-
### 设计 authority 与实现边界
|
|
64
|
+
未修改的官方 ACP 路径默认以 Gemini 系模型为工作集合。已获得 Claude 4.6 或
|
|
65
|
+
GPT-OSS 120B 资格的账号,可以按
|
|
66
|
+
[官方内核兼容 runbook](docs/operations/official-kernel-compat-runbook.md)
|
|
67
|
+
显式启用本机兼容生命周期。推理仍由同一套官方内核和 Google backend 负责;本仓库
|
|
68
|
+
不打包也不替换它们。
|
|
348
69
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
historical input。
|
|
352
|
-
|
|
353
|
-
仓库严格只有两个源码功能区:
|
|
70
|
+
<!-- readme:architecture -->
|
|
71
|
+
## 架构与职责
|
|
354
72
|
|
|
355
73
|
```text
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
74
|
+
Paseo / Generic ACP client
|
|
75
|
+
-> paseo-agy-acp 产品适配器
|
|
76
|
+
身份 | daemon context | mode map | MCP rewrite
|
|
77
|
+
skill hints | blank-turn guard | 可选 Admission fence
|
|
78
|
+
-> 官方 agy_acp_server(ACP v1 over NDJSON)
|
|
79
|
+
OAuth | 模型 | 工具 | MCP | 推理
|
|
359
80
|
```
|
|
360
81
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
`ACP
|
|
82
|
+
| 层 | 职责 | 许可证边界 |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| Paseo | Agent 生命周期、workspace、委派和 provider 配置 | Paseo 项目 |
|
|
85
|
+
| `paseo-agy-acp` | Paseo 专用 ACP 适配与 Admission | Apache-2.0;发布到 npm |
|
|
86
|
+
| 官方 `agy_acp_server` | 认证、模型目录、工具、MCP 和推理 | Google 专有软件;只在本机安装 |
|
|
365
87
|
|
|
366
|
-
|
|
88
|
+
每个 connector 进程运行一个官方内核子进程。Admission 是可选项,但当一个
|
|
89
|
+
Antigravity 账号服务多个并发 Paseo agent 时建议启用。
|
|
367
90
|
|
|
91
|
+
<!-- readme:requirements -->
|
|
368
92
|
## 环境要求
|
|
369
93
|
|
|
370
|
-
-
|
|
371
|
-
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
用 `PASEO_AGY_ACP_OFFICIAL_BIN` 覆盖。如果路径就是 `.par` 本身,进程会
|
|
376
|
-
`cd` 到该目录并以 `--uid=` 启动(没有可用 group 的主机,例如 `nogroup`,
|
|
377
|
-
必须带 `--uid=`)。
|
|
94
|
+
- 支持 Generic ACP provider 的 **Paseo**
|
|
95
|
+
- **Node.js 22 或更新版本**
|
|
96
|
+
- 本机已安装的官方 Antigravity ACP kernel wrapper 或 `.par`
|
|
97
|
+
- 可以完成官方 `oauth-personal` 的 Antigravity 账号
|
|
98
|
+
- 启用 Admission 时,系统需支持 Linux 文件 owner 与 mode
|
|
378
99
|
|
|
379
|
-
|
|
380
|
-
|
|
100
|
+
除非官方内核已经位于维护者主机默认 pin 路径,否则必须设置
|
|
101
|
+
`PASEO_AGY_ACP_OFFICIAL_BIN`。若它直接指向 `.par`,适配器会从该文件所在目录
|
|
102
|
+
启动并提供所需 uid。
|
|
381
103
|
|
|
382
|
-
|
|
104
|
+
<!-- readme:quickstart -->
|
|
105
|
+
## 快速开始
|
|
383
106
|
|
|
384
|
-
|
|
385
|
-
请用 npm,不要默认 `git clone`。
|
|
107
|
+
### 1. 指定官方内核并完成认证
|
|
386
108
|
|
|
387
109
|
```bash
|
|
388
|
-
|
|
389
|
-
npx -y paseo-agy-acp@2.3.
|
|
110
|
+
export PASEO_AGY_ACP_OFFICIAL_BIN="/absolute/path/to/agy-acp-server-wrapper-or.par"
|
|
111
|
+
npx -y paseo-agy-acp@2.3.1 --login
|
|
390
112
|
```
|
|
391
113
|
|
|
392
|
-
|
|
393
|
-
`agy-acp-prepare-official-kernel-compat`。第一次 `npx` 可能要编译
|
|
394
|
-
`better-sqlite3`(本机需要 C++ 工具链)。
|
|
114
|
+
OAuth 由官方内核完成。Token 保留在内核自己的状态中,本适配器不会打印。
|
|
395
115
|
|
|
396
|
-
|
|
116
|
+
### 2. 准备 Admission 状态
|
|
397
117
|
|
|
398
|
-
|
|
399
|
-
git clone https://github.com/tiezbro/paseo-agy-acp.git
|
|
400
|
-
cd paseo-agy-acp
|
|
401
|
-
npm ci
|
|
402
|
-
npm run build
|
|
403
|
-
npm test
|
|
404
|
-
```
|
|
118
|
+
单 agent 可以不启用 Admission;多 agent 委派建议启用。
|
|
405
119
|
|
|
406
120
|
```bash
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
121
|
+
export AGY_ACP_STATE_DIR="$HOME/.local/state/paseo-agy-acp/account-name"
|
|
122
|
+
install -d -m 700 "$AGY_ACP_STATE_DIR"
|
|
123
|
+
npx -y --package=paseo-agy-acp@2.3.1 \
|
|
124
|
+
agy-acp-prepare-state "$AGY_ACP_STATE_DIR"
|
|
410
125
|
```
|
|
411
126
|
|
|
412
|
-
|
|
127
|
+
每个 Antigravity 账号使用一个 owner-only 状态目录。预检会创建或验证目录,并拒绝
|
|
128
|
+
已经存在的宽权限路径。
|
|
413
129
|
|
|
414
|
-
|
|
415
|
-
npx -y paseo-agy-acp@2.3.0 --login
|
|
416
|
-
```
|
|
417
|
-
|
|
418
|
-
## 环境变量
|
|
130
|
+
### 3. 配置 Paseo provider
|
|
419
131
|
|
|
420
|
-
|
|
421
|
-
|---|---|
|
|
422
|
-
| `PASEO_AGY_ACP_OFFICIAL_BIN` | 官方内核 wrapper 或 `.par` 路径 |
|
|
423
|
-
| `PASEO_AGENT_ID` | 启用 daemon 上下文 + Admission agent 绑定 |
|
|
424
|
-
| `PASEO_HOME` | 可选 Paseo home;缺省 `~/.paseo` |
|
|
425
|
-
| `AGY_ACP_ADMISSION_ENABLED` | `true` / `1` 时把 prompt 围进 Admission |
|
|
426
|
-
| `AGY_ACP_STATE_DIR` | Admission 状态目录(官方运行时用下面的 `official-kernel/`) |
|
|
427
|
-
| `AGY_ACP_ADMISSION_MAX_ACTIVE_TURNS` | 共享 active 席位。整数 **≥ 1**。默认 **8**(实测)。 |
|
|
428
|
-
| `AGY_ACP_ADMISSION_MAX_CONCURRENT_STARTS` | 同时启动路数。整数 **≥ 1**。默认 **8**(实测)。 |
|
|
429
|
-
| `AGY_ACP_ADMISSION_MIN_START_INTERVAL_MS` | 最小启动间隔。默认 **2000**;低于 2000 失败关闭。 |
|
|
430
|
-
| `AGY_ACP_ADMISSION_QUEUE_TIMEOUT_MS` | 最长排队。默认 30 分钟;上限 1800000。 |
|
|
431
|
-
| `AGY_ACP_ADMISSION_CAPACITY_COOLDOWN_MS` | 可信容量故障后的 provider/model cooldown。默认 30000;最小 30000。 |
|
|
432
|
-
|
|
433
|
-
`PASEO_AGY_ACP_KERNEL=legacy` 和 `--legacy-kernel` 失败关闭。
|
|
434
|
-
|
|
435
|
-
## 架构
|
|
436
|
-
|
|
437
|
-
```text
|
|
438
|
-
Paseo / Generic ACP 客户端
|
|
439
|
-
└─ paseo-agy-acp (agy-acp)
|
|
440
|
-
├─ 产品代理:身份、daemon 上下文、模式映射、MCP 改写
|
|
441
|
-
├─ session/prompt 上的 Admission 围栏(可选,建议打开)
|
|
442
|
-
└─ 官方 agy_acp_server (NDJSON)
|
|
443
|
-
└─ Antigravity 账号、工具、MCP、模型
|
|
444
|
-
```
|
|
445
|
-
|
|
446
|
-
每个 connector 进程一个官方内核子进程。Admission 通过持久账本协调这些进程之间的
|
|
447
|
-
**账户级**席位。
|
|
448
|
-
|
|
449
|
-
## Paseo Provider 配置
|
|
132
|
+
在 `$PASEO_HOME/config.json` 或 `~/.paseo/config.json` 中增加或更新 provider:
|
|
450
133
|
|
|
451
134
|
```json
|
|
452
135
|
{
|
|
453
136
|
"providers": {
|
|
454
137
|
"antigravity": {
|
|
455
138
|
"type": "acp",
|
|
456
|
-
"command": ["npx", "-y", "paseo-agy-acp@2.3.
|
|
139
|
+
"command": ["npx", "-y", "paseo-agy-acp@2.3.1"],
|
|
457
140
|
"env": {
|
|
458
|
-
"PASEO_AGY_ACP_OFFICIAL_BIN": "/
|
|
141
|
+
"PASEO_AGY_ACP_OFFICIAL_BIN": "/absolute/path/to/agy-acp-server-wrapper-or.par",
|
|
459
142
|
"AGY_ACP_ADMISSION_ENABLED": "true",
|
|
460
143
|
"AGY_ACP_STATE_DIR": "/home/YOU/.local/state/paseo-agy-acp/account-name"
|
|
461
144
|
}
|
|
@@ -464,109 +147,95 @@ Paseo / Generic ACP 客户端
|
|
|
464
147
|
}
|
|
465
148
|
```
|
|
466
149
|
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
`["/path/to/paseo-agy-acp/dist/ACP Connector/main.js"]`。
|
|
470
|
-
Paseo 会给 provider 进程提供 `PASEO_AGENT_ID`。
|
|
150
|
+
Paseo 会向 provider 进程提供 `PASEO_AGENT_ID` 和 `PASEO_AGENT_CWD`。只有在明确
|
|
151
|
+
需要不受 Admission 约束的单 agent 运行时,才省略两个 Admission 变量。
|
|
471
152
|
|
|
472
|
-
|
|
153
|
+
### 4. 重启并验证
|
|
473
154
|
|
|
474
|
-
|
|
155
|
+
重启 Paseo daemon,创建 provider 为 `antigravity` 的 agent,选择受支持模式并
|
|
156
|
+
发送一个简单 prompt。`npx` 启动的是 Paseo 使用的 stdio ACP server,不是独立
|
|
157
|
+
聊天程序。
|
|
475
158
|
|
|
476
|
-
|
|
159
|
+
<!-- readme:configuration -->
|
|
160
|
+
## 配置
|
|
477
161
|
|
|
478
|
-
|
|
479
|
-
Configure the Paseo daemon to add an ACP provider for Google Antigravity.
|
|
162
|
+
### 必要环境变量
|
|
480
163
|
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
- env.AGY_ACP_ADMISSION_ENABLED: "true"
|
|
488
|
-
- env.AGY_ACP_STATE_DIR: absolute owner-only directory (mode 0700)
|
|
489
|
-
4. Prepare Admission state: npx -y --package=paseo-agy-acp@2.3.0 agy-acp-prepare-state "$AGY_ACP_STATE_DIR"
|
|
490
|
-
5. Login once: npx -y paseo-agy-acp@2.3.0 --login
|
|
491
|
-
6. Restart the Paseo daemon.
|
|
492
|
-
7. Verify: create a test agent with provider "antigravity", send a simple prompt.
|
|
493
|
-
~~~
|
|
164
|
+
| 变量 | 作用 |
|
|
165
|
+
|---|---|
|
|
166
|
+
| `PASEO_AGY_ACP_OFFICIAL_BIN` | 官方 kernel wrapper 或 `.par` 的绝对路径 |
|
|
167
|
+
| `PASEO_HOME` | 可选 Paseo home;默认 `~/.paseo` |
|
|
168
|
+
| `AGY_ACP_ADMISSION_ENABLED` | `true` / `1` 启用 prompt fence |
|
|
169
|
+
| `AGY_ACP_STATE_DIR` | 一个账号共享的 owner-only 绝对状态目录 |
|
|
494
170
|
|
|
495
|
-
|
|
171
|
+
高级席位、启动限速、排队超时、cooldown、权限、恢复和 policy 变更流程见
|
|
172
|
+
[Admission 运维](docs/operations/admission.md)。
|
|
496
173
|
|
|
497
|
-
|
|
498
|
-
# 冒烟(需要官方二进制)
|
|
499
|
-
printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":1}}' \
|
|
500
|
-
| node 'dist/ACP Connector/main.js'
|
|
174
|
+
### Mode 映射
|
|
501
175
|
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
176
|
+
| Paseo 或旧 id | 官方在线 mode |
|
|
177
|
+
|---|---|
|
|
178
|
+
| `default` | `default` |
|
|
179
|
+
| `accept-edits` | `auto_edit` |
|
|
180
|
+
| `dangerously-skip-permissions` | `yolo` |
|
|
181
|
+
| `plan` | `default`(官方内核没有 plan mode) |
|
|
505
182
|
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
排队、空白回合拒绝。
|
|
183
|
+
`PASEO_AGY_ACP_KERNEL=legacy` 和 `--legacy-kernel` 会 fail closed。官方内核是唯一
|
|
184
|
+
执行路径。
|
|
509
185
|
|
|
510
|
-
|
|
511
|
-
上下文。
|
|
186
|
+
### Skill roots
|
|
512
187
|
|
|
513
|
-
|
|
188
|
+
Discovery 从 workspace `.agents/skills.json` 或 `skills.json`,以及全局
|
|
189
|
+
`~/.gemini/config/skills.json` 读取配置目录。默认 roots 覆盖 workspace
|
|
190
|
+
Agents/Codex 目录和全局 Gemini/Agents/Codex 目录。每个 skill 目录需要包含带
|
|
191
|
+
可用 name 与 description frontmatter 的 `SKILL.md`。
|
|
514
192
|
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
- 官方 RC01 的 active cancel 在我们的 harness 里未确认;真实 503/配额未对
|
|
518
|
-
线上后端做诱导验证。
|
|
519
|
-
- 官方内核二进制必须本机已安装;本包装不会随包分发它。`npx` 只拉起代理。
|
|
520
|
-
- 在 `AGY_ACP_ADMISSION_ENABLED`、`AGY_ACP_STATE_DIR`、`PASEO_AGENT_ID` 都合法
|
|
521
|
-
之前,Admission 保持关闭。没有 agent id 的 discovery / `--login` 不会打开账本。
|
|
522
|
-
- 官方 ACP 没有 plan 模式;Paseo 的 `plan` 映射到 `default`。
|
|
523
|
-
- 生图和线上 503 文案由官方内核负责。本适配器 **不声称** 已在此重新验证这些能力。
|
|
524
|
-
- 当 `PASEO_AGENT_ID` 指向正在运行的 Paseo agent 时,裸 prompt 测试可能看到
|
|
525
|
-
被前置的 daemon 上下文:
|
|
193
|
+
<!-- readme:operations -->
|
|
194
|
+
## 运维与故障排查
|
|
526
195
|
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
196
|
+
- 官方内核必须已在本机安装;`npx` 只安装代理。
|
|
197
|
+
- npm 首次运行可能编译 `better-sqlite3`,需要本机 C++ 工具链。
|
|
198
|
+
- 修改 provider command、环境变量或内核路径后要重启 Paseo。
|
|
199
|
+
- 已启用 Admission 但 identity 缺失、状态权限不安全或 policy 非法时,系统拒绝启动,
|
|
200
|
+
不会静默变成 unfenced 运行。
|
|
201
|
+
- 工具质量、生图、backend 配额与 provider 错误文案仍由官方内核和 Google backend
|
|
202
|
+
负责。
|
|
203
|
+
- 可复现升级或回滚应在 provider command 中固定三段 npm 版本,然后重启 Paseo。
|
|
530
204
|
|
|
531
|
-
|
|
205
|
+
当前运维入口:
|
|
532
206
|
|
|
533
|
-
|
|
534
|
-
|
|
207
|
+
- [Admission 运维](docs/operations/admission.md)
|
|
208
|
+
- [Claude / GPT-OSS 本机兼容](docs/operations/official-kernel-compat-runbook.md)
|
|
209
|
+
- [npm Trusted Publishing](docs/operations/npm-publishing.md)
|
|
210
|
+
- [Changelog](CHANGELOG.md)
|
|
211
|
+
- [GitHub Releases](https://github.com/tiezbro/paseo-agy-acp/releases)
|
|
212
|
+
- [Issue tracker](https://github.com/tiezbro/paseo-agy-acp/issues)
|
|
535
213
|
|
|
536
|
-
|
|
214
|
+
详细实现与研究记录保留在 `docs/design/`、`docs/evidence/` 和 `docs/research/`;它们
|
|
215
|
+
不是发布历史或安装说明。
|
|
537
216
|
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
git pull && npm ci && npm run build && npm test
|
|
217
|
+
<!-- readme:development -->
|
|
218
|
+
## 开发
|
|
541
219
|
|
|
542
|
-
|
|
543
|
-
git
|
|
220
|
+
```bash
|
|
221
|
+
git clone https://github.com/tiezbro/paseo-agy-acp.git
|
|
222
|
+
cd paseo-agy-acp
|
|
223
|
+
npm ci
|
|
224
|
+
npm run validate
|
|
544
225
|
```
|
|
545
226
|
|
|
546
|
-
|
|
547
|
-
时,如果持久 fingerprint 会把新 policy 失败关闭,请换一个 **全新** 的
|
|
548
|
-
`AGY_ACP_STATE_DIR`。
|
|
549
|
-
|
|
550
|
-
## 权威文档(v2.0.0.0 closeout)
|
|
227
|
+
官方内核 smoke 还需要 `PASEO_AGY_ACP_OFFICIAL_BIN`:
|
|
551
228
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
- [ACP source map](docs/design/v2.0.0.0-stage2-acp-source-map.md)
|
|
556
|
-
- [Admission source map](docs/design/v2.0.0.0-stage2-admission-source-map.md)
|
|
557
|
-
- [Architecture](docs/design/v2.0.0.0-stage2-architecture.md)
|
|
558
|
-
- [Domain model](docs/design/v2.0.0.0-stage2-domain-model.md)
|
|
559
|
-
- [Test contracts](docs/design/v2.0.0.0-stage2-test-contracts.md)
|
|
560
|
-
- [Specification](docs/design/v2.0.0.0-stage2-spec.md)
|
|
561
|
-
|
|
562
|
-
→ [本地技术说明](./docs/PASEO_LOCAL_CHANGES.md)
|
|
563
|
-
|
|
564
|
-
## 免责声明
|
|
229
|
+
```bash
|
|
230
|
+
node scripts/official-kernel-smoke.mjs
|
|
231
|
+
```
|
|
565
232
|
|
|
566
|
-
|
|
567
|
-
|
|
233
|
+
<!-- readme:license -->
|
|
234
|
+
## 许可证与免责声明
|
|
568
235
|
|
|
569
|
-
|
|
570
|
-
|
|
236
|
+
适配器源码使用 [Apache-2.0](LICENSE)。官方 Antigravity 内核不包含在本项目中,
|
|
237
|
+
并继续受 [Google Antigravity 条款](https://antigravity.google/terms) 约束。本社区
|
|
238
|
+
项目只 spawn 你在本机安装的内核,不重新实现、不重新授权、不重新分发该软件。
|
|
571
239
|
|
|
572
|
-
|
|
240
|
+
第三方使用可能带来账号或服务风险。应使用经过授权的账号与官方凭据。本软件按现状
|
|
241
|
+
提供,不作任何担保。
|