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 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](https://img.shields.io/badge/license-Apache%202.0-blue?style=flat-square)](./LICENSE)
8
- [![Version](https://img.shields.io/badge/version-2.4.2-blue?style=flat-square)](./package.json)
8
+ [![Version](https://img.shields.io/badge/version-2.5.1-blue?style=flat-square)](./package.json)
9
9
  [![npm](https://img.shields.io/npm/v/paseo-agy-acp?style=flat-square)](https://www.npmjs.com/package/paseo-agy-acp)
10
10
  [![Node](https://img.shields.io/badge/node-%3E%3D22-brightgreen?style=flat-square)](./package.json)
11
11
  [![ACP](https://img.shields.io/badge/ACP-NDJSON%20v1-8A2BE2?style=flat-square)](https://agentclientprotocol.com)
@@ -102,12 +102,12 @@ Paseo agents.
102
102
  <!-- readme:requirements -->
103
103
  ## Requirements
104
104
 
105
- - **Paseo** with Generic ACP provider support
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.2.1 archive
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.4.2 --login
122
+ npx -y paseo-agy-acp@2.5.1 --login
123
123
  ```
124
124
 
125
- The first run downloads and configures official kernel 1.2.1. That download is
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.4.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
- "providers": {
154
- "antigravity": {
155
- "type": "acp",
156
- "command": ["npx", "-y", "paseo-agy-acp@2.4.2"],
157
- "env": {
158
- "AGY_ACP_ADMISSION_ENABLED": "true",
159
- "AGY_ACP_STATE_DIR": "/home/YOU/.local/state/paseo-agy-acp/account-name"
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 `antigravity`, select a
173
- supported mode, and send a simple prompt. `npx` starts a stdio ACP server for
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](https://img.shields.io/badge/license-Apache%202.0-blue?style=flat-square)](./LICENSE)
8
- [![Version](https://img.shields.io/badge/version-2.4.2-blue?style=flat-square)](./package.json)
8
+ [![Version](https://img.shields.io/badge/version-2.5.1-blue?style=flat-square)](./package.json)
9
9
  [![npm](https://img.shields.io/npm/v/paseo-agy-acp?style=flat-square)](https://www.npmjs.com/package/paseo-agy-acp)
10
10
  [![Node](https://img.shields.io/badge/node-%3E%3D22-brightgreen?style=flat-square)](./package.json)
11
11
  [![ACP](https://img.shields.io/badge/ACP-NDJSON%20v1-8A2BE2?style=flat-square)](https://agentclientprotocol.com)
@@ -91,12 +91,12 @@ Antigravity 账号服务多个并发 Paseo agent 时建议启用。
91
91
  <!-- readme:requirements -->
92
92
  ## 环境要求
93
93
 
94
- - 支持 Generic ACP provider 的 **Paseo**
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.2.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.4.2 --login
110
+ npx -y paseo-agy-acp@2.5.1 --login
111
111
  ```
112
112
 
113
- 第一次运行会下载并配置官方内核 1.2.1。下载约 320 MiB,放在 `~/.local/opt/`。
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.4.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
- "providers": {
138
- "antigravity": {
139
- "type": "acp",
140
- "command": ["npx", "-y", "paseo-agy-acp@2.4.2"],
141
- "env": {
142
- "AGY_ACP_ADMISSION_ENABLED": "true",
143
- "AGY_ACP_STATE_DIR": "/home/YOU/.local/state/paseo-agy-acp/account-name"
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 为 `antigravity` 的 agent,选择受支持模式并
156
- 发送一个简单 prompt。`npx` 启动的是 Paseo 使用的 stdio ACP server,不是独立
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.2.1-adbf34295671-";
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.2.1-linux-x86_64.zip",
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.2.1-linux-arm64.zip",
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.2.1-darwin-arm64.zip",
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.2.1-darwin-x86_64.zip",
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.2.1-windows-x86_64.zip",
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.2.1-windows-arm64.zip",
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.2.1 download for ${platform} ${arch}`);
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.2.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.2.1 kernel at ${wrapper}\n`);
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.2.1 kernel at ${binaryPath}\n`);
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.2.1 for ${download.id}\n${download.url}\n`);
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.2.1",
4
- parSha256: "adbf34295671d1fd68b347efe4e4e2587816023cf41b9eff92c451834eb3de95",
5
- externalHarnessSha256: "428236f899a22181ecb47b2885b167e71d4f1a661f8ce0046225174a32018f72",
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: "1348ec7c5d9e2b157e22be00730c265c0e396af9b1e87113ca28c28f55dd684d",
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: "63101334b325e70d5fe58b1c36f64c0901eb305ffcc51b17c2bda8b32aa4df4c",
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
- find: "if not ccpa_id.startswith(\"gemini\"):",
14
- replacement: "if not is_catalog_model(ccpa_id):"
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,wCAAwC;YAC9C,WAAW,EAAE,mCAAmC;SACjD,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
+ {"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.2.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.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.2.1/agy-acp-server-canary");
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paseo-agy-acp",
3
- "version": "2.4.2",
3
+ "version": "2.5.1",
4
4
  "description": "Paseo product ACP adapter that proxies the official Google Antigravity ACP kernel (NDJSON) with Admission and daemon context",
5
5
  "type": "module",
6
6
  "author": {
@@ -24,7 +24,7 @@ const defaultOfficialKernelRoot = path.join(
24
24
  os.homedir(),
25
25
  ".local",
26
26
  "opt",
27
- "agy-acp-server-1.2.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");