paseo-agy-acp 2.4.2 → 2.5.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/CHANGELOG.md +82 -0
- package/README.md +46 -17
- package/README.zh-CN.md +42 -16
- package/dist/ACP Connector/official-kernel/ensure-managed-kernel.js +12 -12
- package/dist/ACP Connector/official-kernel/kernel-compat-pins.js +5 -5
- package/dist/ACP Connector/official-kernel/kernel-compat-rc01-recipe.js +6 -2
- package/dist/ACP Connector/official-kernel/kernel-compat-rc01-recipe.js.map +1 -1
- package/dist/ACP Connector/official-kernel/mode-map.d.ts +1 -1
- package/dist/ACP Connector/official-kernel/mode-map.js +1 -1
- package/dist/ACP Connector/official-kernel/spawn.js +1 -1
- package/package.json +1 -1
- package/scripts/prepare-official-kernel-compat.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,88 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `paseo-agy-acp` are recorded here.
|
|
4
4
|
|
|
5
|
+
## 2.5.1 - 2026-10-11
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Upgrade the managed official Antigravity ACP kernel from 1.2.1 to 1.3.0 for
|
|
10
|
+
every supported platform. New downloads land in
|
|
11
|
+
`~/.local/opt/agy-acp-server-1.3.0` and are verified against the 1.3.0
|
|
12
|
+
SHA-256 pins before use; a mismatch fails closed.
|
|
13
|
+
- Re-pin the Linux compatibility lifecycle to the 1.3.0 artifact hashes. The
|
|
14
|
+
CCPA request transform is unchanged because
|
|
15
|
+
`ccpa_connection/proxy_server.py` is byte-identical to 1.2.1. The catalog
|
|
16
|
+
patch keeps its behavior: the 1.3.0 `allow_third_party` client gate
|
|
17
|
+
(JetBrains/Zed/Xcode only) is replaced with the same local
|
|
18
|
+
`is_catalog_model` filter used on 1.2.1, so Paseo still sees the entitled
|
|
19
|
+
non-Gemini models.
|
|
20
|
+
- README (EN/ZH), the compatibility runbook, version pins, the version badge,
|
|
21
|
+
tests, and the official-kernel smoke now expect `2.5.1` / kernel `1.3.0`.
|
|
22
|
+
|
|
23
|
+
### Unchanged
|
|
24
|
+
|
|
25
|
+
- The Paseo provider id stays `paseo-agy-acp` with display name **Antigravity
|
|
26
|
+
Pro**; Paseo's built-in provider keeps the id `antigravity`. Admission keeps
|
|
27
|
+
`provider: "antigravity"`, the ACP identity stays `agy-acp`, and the npm
|
|
28
|
+
keyword stays `antigravity`.
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- The model-parity acceptance harness now waits for the whole process group
|
|
33
|
+
to disappear within the existing SIGTERM/SIGKILL grace budgets before it
|
|
34
|
+
claims process-group cleanup, instead of trusting the direct child's exit
|
|
35
|
+
event. Under CPU load the spawned grandchild could still be alive or
|
|
36
|
+
unreaped at that instant, which made `process_cleanup_unconfirmed`
|
|
37
|
+
intermittent in CI. Race timers are also cleared once they are settled, so
|
|
38
|
+
the harness process no longer sits idle for up to a grace period after a
|
|
39
|
+
run finishes.
|
|
40
|
+
|
|
41
|
+
### Verification
|
|
42
|
+
|
|
43
|
+
- Complete validation: 43 test files, 258 passed, 1 skipped; architecture and
|
|
44
|
+
secret checks passed.
|
|
45
|
+
- Local lifecycle `prepare`/`verify` against the downloaded 1.3.0 Linux x86_64
|
|
46
|
+
archive succeeded for artifact
|
|
47
|
+
`1.3.0-cf6feaebdacf-compat-v1-0c966320bdbb-110677625daa`, and the patched
|
|
48
|
+
`model_selection.py` and `proxy_server.py` compile.
|
|
49
|
+
|
|
50
|
+
## 2.5.0 - 2026-10-10
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
|
|
54
|
+
- Use the Paseo provider id `paseo-agy-acp` with display name **Antigravity
|
|
55
|
+
Pro** instead of `antigravity`. Paseo v0.11.2 added its own built-in agy
|
|
56
|
+
provider (id `antigravity`, display name Antigravity) that starts the host
|
|
57
|
+
`agy` CLI (`/home/tiezbro/.local/bin/agy`); its login lives in
|
|
58
|
+
`~/.gemini/antigravity-cli`. This adapter does not start that `agy` CLI; it
|
|
59
|
+
starts `agy-acp`, which runs the official ACP kernel `agy_acp_server`, and
|
|
60
|
+
its login lives in `~/.gemini/antigravity-acp`.
|
|
61
|
+
- The built-in provider and this adapter can run at the same time: the built-in
|
|
62
|
+
provider runs its `agy` processes, and this adapter runs its `agy_acp_server`
|
|
63
|
+
processes. Separate logins mean two Antigravity accounts, so both accounts'
|
|
64
|
+
Gemini Pro quotas can be used at the same time. Admission only limits
|
|
65
|
+
`agy_acp_server`; it does not limit the built-in provider's `agy` processes.
|
|
66
|
+
- Configure the custom provider with the Paseo v0.11.2 shape
|
|
67
|
+
`extends: "acp"` plus `label: "Antigravity Pro"` under `agents.providers`.
|
|
68
|
+
README (EN/ZH) examples, version pins, the version badge, tests, and the
|
|
69
|
+
official-kernel smoke now expect `2.5.0`.
|
|
70
|
+
- Existing users who keyed this adapter as `antigravity` must rename that key
|
|
71
|
+
to `paseo-agy-acp`. While the old key remains, Paseo hides the built-in agy
|
|
72
|
+
provider and routes the id `antigravity` to this adapter.
|
|
73
|
+
|
|
74
|
+
### Unchanged
|
|
75
|
+
|
|
76
|
+
- Admission keeps the internal partition string `provider: "antigravity"`; the
|
|
77
|
+
live state directory keys seats with it, so changing it would split the
|
|
78
|
+
queue.
|
|
79
|
+
- ACP `agentInfo` name stays `agy-acp`, and the npm keyword stays
|
|
80
|
+
`antigravity`.
|
|
81
|
+
|
|
82
|
+
### Verification
|
|
83
|
+
|
|
84
|
+
- Complete validation: 43 test files, 257 passed, 1 skipped; architecture and
|
|
85
|
+
secret checks passed.
|
|
86
|
+
|
|
5
87
|
## 2.4.2 - 2026-10-10
|
|
6
88
|
|
|
7
89
|
### Fixed
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
**Reliable Paseo adapter for Google's official Antigravity ACP kernel**
|
|
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)
|
|
@@ -102,12 +102,12 @@ Paseo agents.
|
|
|
102
102
|
<!-- readme:requirements -->
|
|
103
103
|
## Requirements
|
|
104
104
|
|
|
105
|
-
- **Paseo** with
|
|
105
|
+
- **Paseo** v0.11.2 or newer with custom ACP provider support
|
|
106
106
|
- **Node.js 22 or newer**
|
|
107
107
|
- An Antigravity account able to complete official `oauth-personal`
|
|
108
108
|
- Linux filesystem ownership and mode support when Admission is enabled
|
|
109
109
|
|
|
110
|
-
On first start the adapter downloads the official Antigravity ACP 1.
|
|
110
|
+
On first start the adapter downloads the official Antigravity ACP 1.3.0 archive
|
|
111
111
|
for the current operating system from Google. The npm package does not contain
|
|
112
112
|
those archives. Linux x86_64 also installs the local compatibility wrapper.
|
|
113
113
|
Leave `PASEO_AGY_ACP_OFFICIAL_BIN` unset, or keep it pointed at the managed
|
|
@@ -119,10 +119,10 @@ wrapper. A different existing path is used as-is.
|
|
|
119
119
|
### 1. Authenticate
|
|
120
120
|
|
|
121
121
|
```bash
|
|
122
|
-
npx -y paseo-agy-acp@2.
|
|
122
|
+
npx -y paseo-agy-acp@2.5.1 --login
|
|
123
123
|
```
|
|
124
124
|
|
|
125
|
-
The first run downloads and configures official kernel 1.
|
|
125
|
+
The first run downloads and configures official kernel 1.3.0. That download is
|
|
126
126
|
about 320 MiB and stays under `~/.local/opt/`.
|
|
127
127
|
|
|
128
128
|
OAuth is completed by the official kernel. Its tokens remain in the kernel's
|
|
@@ -136,7 +136,7 @@ delegation.
|
|
|
136
136
|
```bash
|
|
137
137
|
export AGY_ACP_STATE_DIR="$HOME/.local/state/paseo-agy-acp/account-name"
|
|
138
138
|
install -d -m 700 "$AGY_ACP_STATE_DIR"
|
|
139
|
-
npx -y --package=paseo-agy-acp@2.
|
|
139
|
+
npx -y --package=paseo-agy-acp@2.5.1 \
|
|
140
140
|
agy-acp-prepare-state "$AGY_ACP_STATE_DIR"
|
|
141
141
|
```
|
|
142
142
|
|
|
@@ -146,32 +146,61 @@ creates or validates the directory and refuses an existing permissive path.
|
|
|
146
146
|
### 3. Configure the Paseo provider
|
|
147
147
|
|
|
148
148
|
Add or update the provider in `$PASEO_HOME/config.json` or
|
|
149
|
-
`~/.paseo/config.json`:
|
|
149
|
+
`~/.paseo/config.json`. The provider id is the key under `agents.providers`:
|
|
150
150
|
|
|
151
151
|
```json
|
|
152
152
|
{
|
|
153
|
-
"
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
"
|
|
159
|
-
"
|
|
153
|
+
"agents": {
|
|
154
|
+
"providers": {
|
|
155
|
+
"paseo-agy-acp": {
|
|
156
|
+
"extends": "acp",
|
|
157
|
+
"label": "Antigravity Pro",
|
|
158
|
+
"command": ["npx", "-y", "paseo-agy-acp@2.5.1"],
|
|
159
|
+
"env": {
|
|
160
|
+
"AGY_ACP_ADMISSION_ENABLED": "true",
|
|
161
|
+
"AGY_ACP_STATE_DIR": "/home/YOU/.local/state/paseo-agy-acp/account-name"
|
|
162
|
+
}
|
|
160
163
|
}
|
|
161
164
|
}
|
|
162
165
|
}
|
|
163
166
|
}
|
|
164
167
|
```
|
|
165
168
|
|
|
169
|
+
Paseo v0.11.2 requires `extends: "acp"` and a `label` for a custom ACP
|
|
170
|
+
provider. Provider ids must match `^[a-z][a-z0-9-]*$`; `paseo-agy-acp` does.
|
|
171
|
+
|
|
166
172
|
Paseo supplies `PASEO_AGENT_ID` and `PASEO_AGENT_CWD` to the provider process.
|
|
167
173
|
Omit the two Admission variables only when you intentionally want unfenced
|
|
168
174
|
single-agent operation.
|
|
169
175
|
|
|
176
|
+
#### Coexistence with Paseo's built-in agy provider
|
|
177
|
+
|
|
178
|
+
Paseo v0.11.2 added its own built-in Antigravity provider. The two providers
|
|
179
|
+
are separate programs:
|
|
180
|
+
|
|
181
|
+
- Paseo's built-in agy provider (id `antigravity`, display name **Antigravity**)
|
|
182
|
+
starts the host `agy` CLI (resolved from `PATH`). Its login lives in
|
|
183
|
+
`~/.gemini/antigravity-cli`.
|
|
184
|
+
- `paseo-agy-acp` (id `paseo-agy-acp`, display name **Antigravity Pro**) does
|
|
185
|
+
not start that `agy` CLI. It starts `agy-acp`, which runs the official ACP
|
|
186
|
+
kernel `agy_acp_server`. Its login lives in `~/.gemini/antigravity-acp`.
|
|
187
|
+
|
|
188
|
+
Both can be enabled at the same time: Paseo's built-in provider runs its `agy`
|
|
189
|
+
processes, and this adapter runs its `agy_acp_server` processes. Because the
|
|
190
|
+
logins are separate, they can be signed into two Antigravity accounts, so each
|
|
191
|
+
account's Gemini Pro quota can be used at the same time. The adapter's
|
|
192
|
+
Admission queue only limits `agy_acp_server`; it does not limit the built-in
|
|
193
|
+
provider's `agy` processes.
|
|
194
|
+
|
|
195
|
+
Existing users who configured this adapter under the key `antigravity` must
|
|
196
|
+
rename that key to `paseo-agy-acp`. While the old key remains, Paseo hides the
|
|
197
|
+
built-in agy provider and routes the id `antigravity` to this adapter.
|
|
198
|
+
|
|
170
199
|
### 4. Restart and verify
|
|
171
200
|
|
|
172
|
-
Restart the Paseo daemon, create an agent with provider `
|
|
173
|
-
supported mode, and send a simple prompt. `npx` starts a stdio ACP
|
|
174
|
-
Paseo; it is not a standalone chat application.
|
|
201
|
+
Restart the Paseo daemon, create an agent with provider `paseo-agy-acp`,
|
|
202
|
+
select a supported mode, and send a simple prompt. `npx` starts a stdio ACP
|
|
203
|
+
server for Paseo; it is not a standalone chat application.
|
|
175
204
|
|
|
176
205
|
<!-- readme:configuration -->
|
|
177
206
|
## Configuration
|
package/README.zh-CN.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
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)
|
|
@@ -91,12 +91,12 @@ Antigravity 账号服务多个并发 Paseo agent 时建议启用。
|
|
|
91
91
|
<!-- readme:requirements -->
|
|
92
92
|
## 环境要求
|
|
93
93
|
|
|
94
|
-
-
|
|
94
|
+
- **Paseo** v0.11.2 或更新版本,支持自定义 ACP provider
|
|
95
95
|
- **Node.js 22 或更新版本**
|
|
96
96
|
- 可以完成官方 `oauth-personal` 的 Antigravity 账号
|
|
97
97
|
- 启用 Admission 时,系统需支持 Linux 文件 owner 与 mode
|
|
98
98
|
|
|
99
|
-
首次启动时,适配器按当前操作系统从 Google 下载对应的官方 Antigravity ACP 1.
|
|
99
|
+
首次启动时,适配器按当前操作系统从 Google 下载对应的官方 Antigravity ACP 1.3.0
|
|
100
100
|
包。npm 包本身不包含这些内核。Linux x86_64 还会装上本机兼容包装器。
|
|
101
101
|
`PASEO_AGY_ACP_OFFICIAL_BIN` 留空,或继续指向托管包装器即可。指向其他已存在路径时,
|
|
102
102
|
按该路径启动。
|
|
@@ -107,10 +107,10 @@ Antigravity 账号服务多个并发 Paseo agent 时建议启用。
|
|
|
107
107
|
### 1. 完成认证
|
|
108
108
|
|
|
109
109
|
```bash
|
|
110
|
-
npx -y paseo-agy-acp@2.
|
|
110
|
+
npx -y paseo-agy-acp@2.5.1 --login
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
第一次运行会下载并配置官方内核 1.
|
|
113
|
+
第一次运行会下载并配置官方内核 1.3.0。下载约 320 MiB,放在 `~/.local/opt/`。
|
|
114
114
|
|
|
115
115
|
OAuth 由官方内核完成。Token 保留在内核自己的状态中,本适配器不会打印。
|
|
116
116
|
|
|
@@ -121,7 +121,7 @@ OAuth 由官方内核完成。Token 保留在内核自己的状态中,本适
|
|
|
121
121
|
```bash
|
|
122
122
|
export AGY_ACP_STATE_DIR="$HOME/.local/state/paseo-agy-acp/account-name"
|
|
123
123
|
install -d -m 700 "$AGY_ACP_STATE_DIR"
|
|
124
|
-
npx -y --package=paseo-agy-acp@2.
|
|
124
|
+
npx -y --package=paseo-agy-acp@2.5.1 \
|
|
125
125
|
agy-acp-prepare-state "$AGY_ACP_STATE_DIR"
|
|
126
126
|
```
|
|
127
127
|
|
|
@@ -130,30 +130,56 @@ npx -y --package=paseo-agy-acp@2.4.2 \
|
|
|
130
130
|
|
|
131
131
|
### 3. 配置 Paseo provider
|
|
132
132
|
|
|
133
|
-
在 `$PASEO_HOME/config.json` 或 `~/.paseo/config.json` 中增加或更新 provider
|
|
133
|
+
在 `$PASEO_HOME/config.json` 或 `~/.paseo/config.json` 中增加或更新 provider。
|
|
134
|
+
provider id 是 `agents.providers` 下的键:
|
|
134
135
|
|
|
135
136
|
```json
|
|
136
137
|
{
|
|
137
|
-
"
|
|
138
|
-
"
|
|
139
|
-
"
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
"
|
|
143
|
-
"
|
|
138
|
+
"agents": {
|
|
139
|
+
"providers": {
|
|
140
|
+
"paseo-agy-acp": {
|
|
141
|
+
"extends": "acp",
|
|
142
|
+
"label": "Antigravity Pro",
|
|
143
|
+
"command": ["npx", "-y", "paseo-agy-acp@2.5.1"],
|
|
144
|
+
"env": {
|
|
145
|
+
"AGY_ACP_ADMISSION_ENABLED": "true",
|
|
146
|
+
"AGY_ACP_STATE_DIR": "/home/YOU/.local/state/paseo-agy-acp/account-name"
|
|
147
|
+
}
|
|
144
148
|
}
|
|
145
149
|
}
|
|
146
150
|
}
|
|
147
151
|
}
|
|
148
152
|
```
|
|
149
153
|
|
|
154
|
+
Paseo v0.11.2 要求自定义 ACP provider 声明 `extends: "acp"` 和 `label`。
|
|
155
|
+
provider id 必须匹配 `^[a-z][a-z0-9-]*$`,`paseo-agy-acp` 符合。
|
|
156
|
+
|
|
150
157
|
Paseo 会向 provider 进程提供 `PASEO_AGENT_ID` 和 `PASEO_AGENT_CWD`。只有在明确
|
|
151
158
|
需要不受 Admission 约束的单 agent 运行时,才省略两个 Admission 变量。
|
|
152
159
|
|
|
160
|
+
#### 与 Paseo 内置 agy provider 共存
|
|
161
|
+
|
|
162
|
+
Paseo v0.11.2 新增了内置的 agy provider,两者是两个不同的程序:
|
|
163
|
+
|
|
164
|
+
- Paseo 内置 agy provider(id `antigravity`,显示名 **Antigravity**)走宿主机的
|
|
165
|
+
`agy` CLI(从 `PATH` 查找),登录保存在 `~/.gemini/antigravity-cli`。
|
|
166
|
+
- `paseo-agy-acp`(id `paseo-agy-acp`,显示名 **Antigravity Pro**)不启动该
|
|
167
|
+
`agy` CLI,而是启动 `agy-acp`,由它运行官方 ACP 内核 `agy_acp_server`,
|
|
168
|
+
登录保存在 `~/.gemini/antigravity-acp`。
|
|
169
|
+
|
|
170
|
+
两者可以同时启用:内置 provider 运行自己的 `agy` 进程,本适配器运行自己的
|
|
171
|
+
`agy_acp_server` 进程。登录互相独立,因此可以分别登录两个 Antigravity 账号,
|
|
172
|
+
同时使用两个账号各自的 Gemini Pro 配额。适配器的 Admission 队列只限制
|
|
173
|
+
`agy_acp_server`,不限制内置 provider 的 `agy` 进程。
|
|
174
|
+
|
|
175
|
+
如果本适配器原先配置在 `antigravity` 键下,必须把该键改名为
|
|
176
|
+
`paseo-agy-acp`。旧键仍然存在时,Paseo 会隐藏内置 agy provider,并把
|
|
177
|
+
`antigravity` 这个 id 路由给本适配器。
|
|
178
|
+
|
|
153
179
|
### 4. 重启并验证
|
|
154
180
|
|
|
155
|
-
重启 Paseo daemon,创建 provider 为 `
|
|
156
|
-
|
|
181
|
+
重启 Paseo daemon,创建 provider 为 `paseo-agy-acp` 的 agent,选择受支持模式
|
|
182
|
+
并发送一个简单 prompt。`npx` 启动的是 Paseo 使用的 stdio ACP server,不是独立
|
|
157
183
|
聊天程序。
|
|
158
184
|
|
|
159
185
|
<!-- readme:configuration -->
|
|
@@ -7,41 +7,41 @@ import { fileURLToPath } from "node:url";
|
|
|
7
7
|
import { OfficialKernelCompatLifecycle } from "./kernel-compat-lifecycle.js";
|
|
8
8
|
import { PRODUCTION_KERNEL_COMPAT_PINS } from "./kernel-compat-pins.js";
|
|
9
9
|
import { RC01_KERNEL_COMPAT_PATCH_PLAN } from "./kernel-compat-rc01-recipe.js";
|
|
10
|
-
const MANAGED_ARTIFACT_PREFIX = "1.
|
|
10
|
+
const MANAGED_ARTIFACT_PREFIX = "1.3.0-cf6feaebdacf-";
|
|
11
11
|
const OFFICIAL_KERNEL_DOWNLOADS = Object.freeze({
|
|
12
12
|
"linux-x64": Object.freeze({
|
|
13
13
|
id: "linux-x64",
|
|
14
|
-
url: "https://dl.google.com/agy-extensions/releases/linux/agy-acp-server-1.
|
|
14
|
+
url: "https://dl.google.com/agy-extensions/releases/linux/agy-acp-server-1.3.0-linux-x86_64.zip",
|
|
15
15
|
binaryName: "agy_acp_server.par",
|
|
16
16
|
compat: true
|
|
17
17
|
}),
|
|
18
18
|
"linux-arm64": Object.freeze({
|
|
19
19
|
id: "linux-arm64",
|
|
20
|
-
url: "https://dl.google.com/agy-extensions/releases/linux/agy-acp-server-1.
|
|
20
|
+
url: "https://dl.google.com/agy-extensions/releases/linux/agy-acp-server-1.3.0-linux-arm64.zip",
|
|
21
21
|
binaryName: "agy_acp_server.par",
|
|
22
22
|
compat: false
|
|
23
23
|
}),
|
|
24
24
|
"darwin-arm64": Object.freeze({
|
|
25
25
|
id: "darwin-arm64",
|
|
26
|
-
url: "https://dl.google.com/agy-extensions/releases/macos/agy-acp-server-1.
|
|
26
|
+
url: "https://dl.google.com/agy-extensions/releases/macos/agy-acp-server-1.3.0-darwin-arm64.zip",
|
|
27
27
|
binaryName: "agy_acp_server.par",
|
|
28
28
|
compat: false
|
|
29
29
|
}),
|
|
30
30
|
"darwin-x64": Object.freeze({
|
|
31
31
|
id: "darwin-x64",
|
|
32
|
-
url: "https://dl.google.com/agy-extensions/releases/macos/agy-acp-server-1.
|
|
32
|
+
url: "https://dl.google.com/agy-extensions/releases/macos/agy-acp-server-1.3.0-darwin-x86_64.zip",
|
|
33
33
|
binaryName: "agy_acp_server.par",
|
|
34
34
|
compat: false
|
|
35
35
|
}),
|
|
36
36
|
"win32-x64": Object.freeze({
|
|
37
37
|
id: "win32-x64",
|
|
38
|
-
url: "https://dl.google.com/agy-extensions/releases/windows/agy-acp-server-1.
|
|
38
|
+
url: "https://dl.google.com/agy-extensions/releases/windows/agy-acp-server-1.3.0-windows-x86_64.zip",
|
|
39
39
|
binaryName: "agy_acp_server.exe",
|
|
40
40
|
compat: false
|
|
41
41
|
}),
|
|
42
42
|
"win32-arm64": Object.freeze({
|
|
43
43
|
id: "win32-arm64",
|
|
44
|
-
url: "https://dl.google.com/agy-extensions/releases/windows/agy-acp-server-1.
|
|
44
|
+
url: "https://dl.google.com/agy-extensions/releases/windows/agy-acp-server-1.3.0-windows-arm64.zip",
|
|
45
45
|
binaryName: "agy_acp_server.exe",
|
|
46
46
|
compat: false
|
|
47
47
|
})
|
|
@@ -49,12 +49,12 @@ const OFFICIAL_KERNEL_DOWNLOADS = Object.freeze({
|
|
|
49
49
|
export function officialKernelDownload(platform = process.platform, arch = process.arch) {
|
|
50
50
|
const download = OFFICIAL_KERNEL_DOWNLOADS[`${platform}-${arch}`];
|
|
51
51
|
if (download === undefined) {
|
|
52
|
-
throw new Error(`no official Antigravity ACP 1.
|
|
52
|
+
throw new Error(`no official Antigravity ACP 1.3.0 download for ${platform} ${arch}`);
|
|
53
53
|
}
|
|
54
54
|
return download;
|
|
55
55
|
}
|
|
56
56
|
export function managedOfficialKernelRoot(home = homedir()) {
|
|
57
|
-
return path.join(home, ".local", "opt", "agy-acp-server-1.
|
|
57
|
+
return path.join(home, ".local", "opt", "agy-acp-server-1.3.0");
|
|
58
58
|
}
|
|
59
59
|
export function managedCompatRoot(home = homedir()) {
|
|
60
60
|
return path.join(home, ".local", "opt", "paseo-agy-acp-kernel-compat");
|
|
@@ -94,7 +94,7 @@ export async function ensureManagedOfficialKernel(environment = process.env) {
|
|
|
94
94
|
patchPlan: RC01_KERNEL_COMPAT_PATCH_PLAN
|
|
95
95
|
});
|
|
96
96
|
await lifecycle.activate(prepared.artifactId);
|
|
97
|
-
process.stderr.write(`paseo-agy-acp is using the managed 1.
|
|
97
|
+
process.stderr.write(`paseo-agy-acp is using the managed 1.3.0 kernel at ${wrapper}\n`);
|
|
98
98
|
return wrapper;
|
|
99
99
|
}
|
|
100
100
|
return ensureStockOfficialBinary(officialRoot, download);
|
|
@@ -113,7 +113,7 @@ async function ensureStockOfficialBinary(root, download) {
|
|
|
113
113
|
const binaryPath = path.join(root, download.binaryName);
|
|
114
114
|
if (!existsSync(binaryPath))
|
|
115
115
|
await ensureOfficialPayload(root, download);
|
|
116
|
-
process.stderr.write(`paseo-agy-acp is using the official 1.
|
|
116
|
+
process.stderr.write(`paseo-agy-acp is using the official 1.3.0 kernel at ${binaryPath}\n`);
|
|
117
117
|
return binaryPath;
|
|
118
118
|
}
|
|
119
119
|
async function ensureOfficialPayload(root, download) {
|
|
@@ -130,7 +130,7 @@ async function ensureOfficialPayload(root, download) {
|
|
|
130
130
|
return;
|
|
131
131
|
}
|
|
132
132
|
const zipPath = path.join(root, "agy-acp-server.zip.partial");
|
|
133
|
-
process.stderr.write(`Downloading the official Antigravity ACP kernel 1.
|
|
133
|
+
process.stderr.write(`Downloading the official Antigravity ACP kernel 1.3.0 for ${download.id}\n${download.url}\n`);
|
|
134
134
|
await downloadFile(download.url, zipPath);
|
|
135
135
|
const finalZip = path.join(root, "agy-acp-server.zip");
|
|
136
136
|
renameSync(zipPath, finalZip);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// These are public integrity pins, not bundled Google artifacts or source context.
|
|
2
2
|
export const PRODUCTION_KERNEL_COMPAT_PINS = Object.freeze({
|
|
3
|
-
profileId: "1.
|
|
4
|
-
parSha256: "
|
|
5
|
-
externalHarnessSha256: "
|
|
3
|
+
profileId: "1.3.0",
|
|
4
|
+
parSha256: "cf6feaebdacfc2255dcfc8883db99b15de8554698554e2a1e78e5ccec1c68a20",
|
|
5
|
+
externalHarnessSha256: "63042ca43fc7a69600683920f7706689b82cf8aecefe21dc18cf35e99c9dde4d",
|
|
6
6
|
targets: Object.freeze({
|
|
7
7
|
modelSelection: Object.freeze({
|
|
8
8
|
relativePath: "google3/cloud/developer_experience/antigravity_extensions/acp_server/model_selection.py",
|
|
9
|
-
preimageSha256: "
|
|
9
|
+
preimageSha256: "0c0ea7564fde8d66f9a789838d6542c6ae2da18710f557ebc30975200e39656b",
|
|
10
10
|
patchable: true
|
|
11
11
|
}),
|
|
12
12
|
proxyServer: Object.freeze({
|
|
@@ -16,7 +16,7 @@ export const PRODUCTION_KERNEL_COMPAT_PINS = Object.freeze({
|
|
|
16
16
|
}),
|
|
17
17
|
serverControl: Object.freeze({
|
|
18
18
|
relativePath: "google3/cloud/developer_experience/antigravity_extensions/acp_server/server.py",
|
|
19
|
-
preimageSha256: "
|
|
19
|
+
preimageSha256: "4b2171c74c116346260a9aa24e5372190bf0ad66cad8acebc350e89203157fe3",
|
|
20
20
|
patchable: false
|
|
21
21
|
})
|
|
22
22
|
})
|
|
@@ -10,8 +10,12 @@ export const RC01_KERNEL_COMPAT_PATCH_PLAN = Object.freeze({
|
|
|
10
10
|
Object.freeze({
|
|
11
11
|
id: "rc01-model-selection-catalog",
|
|
12
12
|
target: "modelSelection",
|
|
13
|
-
|
|
14
|
-
replacement
|
|
13
|
+
// Official 1.3.0 gates non-Gemini models behind `allow_third_party`, which
|
|
14
|
+
// only JetBrains/Zed/Xcode clients satisfy. The replacement keeps the
|
|
15
|
+
// 1.2.1 profile behavior: Gemini plus the locally supported third-party
|
|
16
|
+
// catalog ids, for every client.
|
|
17
|
+
find: " if not allow_third_party and not ccpa_id.startswith(\n _GEMINI_MODEL_ID_PREFIX\n ):\n",
|
|
18
|
+
replacement: " if not is_catalog_model(ccpa_id):\n"
|
|
15
19
|
}),
|
|
16
20
|
Object.freeze({
|
|
17
21
|
id: "rc01-proxy-server-import",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-compat-rc01-recipe.js","sourceRoot":"","sources":["../../../ACP Connector/official-kernel/kernel-compat-rc01-recipe.ts"],"names":[],"mappings":"AAEA,oFAAoF;AACpF,MAAM,CAAC,MAAM,6BAA6B,GAA0B,MAAM,CAAC,MAAM,CAAC;IAChF,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC;YACZ,EAAE,EAAE,6BAA6B;YACjC,MAAM,EAAE,gBAAyB;YACjC,IAAI,EAAE,2BAA2B;YACjC,WAAW,EAAE,8EAA8E;SAC5F,CAAC;QACF,MAAM,CAAC,MAAM,CAAC;YACZ,EAAE,EAAE,8BAA8B;YAClC,MAAM,EAAE,gBAAyB;YACjC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"kernel-compat-rc01-recipe.js","sourceRoot":"","sources":["../../../ACP Connector/official-kernel/kernel-compat-rc01-recipe.ts"],"names":[],"mappings":"AAEA,oFAAoF;AACpF,MAAM,CAAC,MAAM,6BAA6B,GAA0B,MAAM,CAAC,MAAM,CAAC;IAChF,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC;YACZ,EAAE,EAAE,6BAA6B;YACjC,MAAM,EAAE,gBAAyB;YACjC,IAAI,EAAE,2BAA2B;YACjC,WAAW,EAAE,8EAA8E;SAC5F,CAAC;QACF,MAAM,CAAC,MAAM,CAAC;YACZ,EAAE,EAAE,8BAA8B;YAClC,MAAM,EAAE,gBAAyB;YACjC,2EAA2E;YAC3E,sEAAsE;YACtE,wEAAwE;YACxE,iCAAiC;YACjC,IAAI,EAAE,qGAAqG;YAC3G,WAAW,EAAE,yCAAyC;SACvD,CAAC;QACF,MAAM,CAAC,MAAM,CAAC;YACZ,EAAE,EAAE,0BAA0B;YAC9B,MAAM,EAAE,aAAsB;YAC9B,IAAI,EAAE,4FAA4F;YAClG,WAAW,EACT,8FAA8F;gBAC9F,kDAAkD;SACrD,CAAC;QACF,MAAM,CAAC,MAAM,CAAC;YACZ,EAAE,EAAE,6BAA6B;YACjC,MAAM,EAAE,aAAsB;YAC9B,IAAI,EAAE,8BAA8B;YACpC,WAAW,EACT,8BAA8B;gBAC9B,+DAA+D;SAClE,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Official live session modes from antigravity-acp 1.
|
|
1
|
+
/** Official live session modes from antigravity-acp 1.3.0. */
|
|
2
2
|
export declare const OFFICIAL_MODE_IDS: readonly ["default", "auto_edit", "yolo"];
|
|
3
3
|
export type OfficialModeId = (typeof OFFICIAL_MODE_IDS)[number];
|
|
4
4
|
export declare function mapToOfficialModeId(mode: string): OfficialModeId;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isRecord } from "./json-rpc.js";
|
|
2
|
-
/** Official live session modes from antigravity-acp 1.
|
|
2
|
+
/** Official live session modes from antigravity-acp 1.3.0. */
|
|
3
3
|
export const OFFICIAL_MODE_IDS = ["default", "auto_edit", "yolo"];
|
|
4
4
|
const LEGACY_TO_OFFICIAL = Object.freeze({
|
|
5
5
|
default: "default",
|
|
@@ -2,7 +2,7 @@ import { spawn } from "node:child_process";
|
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
export const DEFAULT_OFFICIAL_BIN = path.join(homedir(), ".local/opt/agy-acp-server-1.
|
|
5
|
+
export const DEFAULT_OFFICIAL_BIN = path.join(homedir(), ".local/opt/agy-acp-server-1.3.0/agy-acp-server-canary");
|
|
6
6
|
export function resolveOfficialBinary(environment = process.env) {
|
|
7
7
|
const configured = environment.PASEO_AGY_ACP_OFFICIAL_BIN?.trim();
|
|
8
8
|
return configured && configured.length > 0 ? configured : DEFAULT_OFFICIAL_BIN;
|
package/package.json
CHANGED
|
@@ -24,7 +24,7 @@ const defaultOfficialKernelRoot = path.join(
|
|
|
24
24
|
os.homedir(),
|
|
25
25
|
".local",
|
|
26
26
|
"opt",
|
|
27
|
-
"agy-acp-server-1.
|
|
27
|
+
"agy-acp-server-1.3.0"
|
|
28
28
|
);
|
|
29
29
|
const defaultParPath = path.join(defaultOfficialKernelRoot, "agy_acp_server.par");
|
|
30
30
|
const defaultExternalHarnessPath = path.join(defaultOfficialKernelRoot, "localharness_external");
|