dsh-antigravity-auth 0.1.3 → 0.1.4-alpha.6
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 +14 -1
- package/README.md +45 -27
- package/README.zh.md +44 -25
- package/docs/dsh-source-verification.md +67 -0
- package/lib/client.cjs +6 -2
- package/lib/client.cjs.map +1 -1
- package/lib/image.js +14 -13
- package/lib/index.js +36 -4
- package/lib/llm-adapter.js +46 -23
- package/lib/media-admission.js +1 -1
- package/lib/{private-failure-B9vzUkQ7.js → private-failure-DaQoTCkz.js} +1 -1
- package/lib/{private-transport-urF138qW.js → private-transport-BQshWFmk.js} +18 -2
- package/lib/private-transport.js +1 -1
- package/lib/project-context.js +2 -2
- package/lib/quota.js +2 -2
- package/lib/{rpc-contract-BFWfdKKs.js → rpc-contract-CKmz9a1z.js} +3 -1
- package/lib/rpc-contract.js +1 -1
- package/lib/search.js +14 -13
- package/lib/types/client/AntigravityAuthSettings.d.ts +1 -1
- package/lib/types/client/AntigravityAuthSettings.d.ts.map +1 -1
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/image.d.ts +1 -1
- package/lib/types/image.d.ts.map +1 -1
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/llm-adapter.d.ts.map +1 -1
- package/lib/types/loopback-rpc.d.ts +19 -0
- package/lib/types/loopback-rpc.d.ts.map +1 -0
- package/lib/types/rpc-contract.d.ts +2 -2
- package/lib/types/rpc-contract.d.ts.map +1 -1
- package/lib/types/rpc-vocabulary.d.ts +1 -1
- package/lib/types/rpc-vocabulary.d.ts.map +1 -1
- package/lib/types/rpc.d.ts +2 -2
- package/lib/types/rpc.d.ts.map +1 -1
- package/lib/types/search.d.ts +1 -1
- package/lib/types/search.d.ts.map +1 -1
- package/lib/types/video.d.ts +1 -1
- package/lib/types/video.d.ts.map +1 -1
- package/lib/types/wire-identity.d.ts +1 -3
- package/lib/types/wire-identity.d.ts.map +1 -1
- package/lib/video.js +14 -13
- package/lib/wire-identity.js +9 -19
- package/package.json +51 -44
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [
|
|
3
|
+
## [0.1.4-alpha.6] - 2026-09-07
|
|
4
|
+
|
|
5
|
+
- Add explicit DSH `0.1.3-alpha.1` source compatibility alongside the npm alpha.5 baseline; keep dependency graphs separate.
|
|
6
|
+
- Add reproducible isolated source-package checks and coherent lockfile validation.
|
|
7
|
+
|
|
8
|
+
## [0.1.4-alpha.5] - 2026-09-03
|
|
9
|
+
|
|
10
|
+
- Raised the development and peer baseline to DSH `0.1.2-alpha.5`, Cordis `4.0.2`, and Schemastery `3.18.2`, with one coherent prerelease dependency graph.
|
|
11
|
+
- Migrated tool-call IDs, Settings registration, Session event reads, Connection result types, browser Context owners, and client injection metadata to alpha.5 public APIs; removed the retired client-runtime and Host apiproxy packages.
|
|
12
|
+
- Preserved fail-closed account controls after alpha.5 removed per-method RPC authority: only an explicit `127.0.0.1` Web bind uses the real dispatcher; absent, all-interface, and unknown binds receive an inert value-free denial, while non-loopback clients hide the settings section.
|
|
13
|
+
- Updated the audited community core snapshot to `2.2.0`, normalizing the live `gemini-3.8-flash-tiered` directory alias so Gemini 3.8 Flash survives live intersection with its native Medium default and captured Low/Medium/High wire routes and request metadata.
|
|
14
|
+
- Realigned private requests with the audited AGY 1.1.24 wire identity and envelope: the fixed CLI User-Agent replaces obsolete desktop/X-Goog metadata headers while preserving the mandatory DSH secondary attribution, and Gemini 3.8 sends captured numeric thinking budgets plus the `userAgent` field.
|
|
15
|
+
- Drained successful SSE bodies after provider terminal events and replaced Node's race-prone `Readable.toWeb()` bridge with its async-iterable Web Stream bridge, preventing legitimate response cancellation from crashing the Host with `ERR_INVALID_STATE`.
|
|
16
|
+
- Refreshed the release README with current Gemini 3.8 behavior, exact prerelease/tag/tarball installs, the real Host row ID, and no obsolete rc.2 migration warnings.
|
|
4
17
|
|
|
5
18
|
## [0.1.3] - 2026-08-31
|
|
6
19
|
|
package/README.md
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
# dsh-antigravity-auth
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **DSH compatibility:** Supports separately verified `0.1.2-alpha.5` and `0.1.3-alpha.1` graphs. The new DSH prerelease is source-only while its npm packages are unavailable; development dependencies retain alpha.5. See [source verification](docs/dsh-source-verification.md).
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/dsh-antigravity-auth)
|
|
4
6
|
[](https://awesome-dsh-plugin.com)
|
|
5
7
|
|
|
6
8
|
English | [中文](README.zh.md)
|
|
7
9
|
|
|
8
|
-
Current release: **v0.1.2
|
|
10
|
+
Current alpha release: **v0.1.4-alpha.6**, supporting DSH `0.1.2-alpha.5` and `0.1.3-alpha.1`, with, Cordis `4.0.2`, and Schemastery `3.18.2`.
|
|
9
11
|
|
|
10
12
|
A self-contained [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)
|
|
11
13
|
**Antigravity Capability Bundle**. It integrates Antigravity's private OAuth session
|
|
12
14
|
and Wire Identity for:
|
|
13
15
|
|
|
14
|
-
- the `google-antigravity` LLM route (Gemini Flash, Gemini Pro, Claude Opus, Claude Sonnet, GPT-OSS);
|
|
16
|
+
- the `google-antigravity` LLM route (Gemini 3.8/3.7/3.6 Flash, Gemini 3.1 Pro, Claude Opus, Claude Sonnet, GPT-OSS);
|
|
15
17
|
- a Global Antigravity Search Provider behind DSH's stock `web_search` tool;
|
|
16
18
|
- durable image generation and editing through `generate_image`, plus the model-facing `list_images` catalog;
|
|
17
19
|
- multimodal workspace MP4 video understanding through `analyze_video`;
|
|
@@ -23,6 +25,14 @@ and Wire Identity for:
|
|
|
23
25
|
> may be rate-limited or changed without notice. Do not rely on it for
|
|
24
26
|
> production workloads.
|
|
25
27
|
|
|
28
|
+
## v0.1.4-alpha.5 highlights
|
|
29
|
+
|
|
30
|
+
- Moves the development graph and peer baseline to DSH `0.1.2-alpha.5`, including current Settings, Session, Connection, client-injection, and `ToolCallId` APIs; this repository's lockfile contains no older DSH family.
|
|
31
|
+
- Adds authenticated Gemini 3.8 Flash discovery with a Medium default and captured Low/Medium/High routes, model enums, and numeric thinking budgets.
|
|
32
|
+
- Realigns every private Cloud Code `v1internal:` operation with the audited AGY CLI 1.1.24 wire identity while retaining mandatory truthful DSH secondary attribution.
|
|
33
|
+
- Drains successful provider terminal SSE framing and bodies, then uses the cancellation-safe async-iterable Web Stream bridge to prevent Node `ERR_INVALID_STATE` crashes.
|
|
34
|
+
- Keeps account RPC fail-closed on alpha.5: only an explicit `127.0.0.1` Web bind reaches authentication services.
|
|
35
|
+
|
|
26
36
|
## Features
|
|
27
37
|
|
|
28
38
|
### Shared Antigravity Login State
|
|
@@ -33,14 +43,14 @@ and Wire Identity for:
|
|
|
33
43
|
- Resolves credentials through versioned owner-only storage (POSIX `0600`; Windows user-data ACLs), short-lived in-memory cache, and proactive refresh before expiry.
|
|
34
44
|
- Coalesces concurrent refreshes in-process and enforces account/lineage consistency before persisting refreshed tokens.
|
|
35
45
|
- Shows connection state plus real-time visual progress bars for 5-hour and weekly quotas across Gemini and Claude/GPT model families.
|
|
36
|
-
- Sends no token value over the
|
|
46
|
+
- Sends no token value over `/antigravity-auth`. On DSH alpha.5, the real account dispatcher is mounted only for an explicit `127.0.0.1` Web bind; an absent, all-interface, or unknown bind receives an inert value-free denial handler.
|
|
37
47
|
|
|
38
48
|
### LLM Routing & Models
|
|
39
49
|
|
|
40
50
|
- Registers the `google-antigravity` provider through DSH's public `LlmAdapter` seam.
|
|
41
|
-
- Intersects the
|
|
42
|
-
- Keeps DSH's stock model selector usable when live discovery is temporarily unavailable or drifts by falling back to the pinned text snapshot; Settings still reports the live-catalog state. A successful empty intersection stays empty, while missing authentication, authorization denial, cancellation, and explicit attribution rejection remain fail-closed.
|
|
43
|
-
- Supports streaming with pre-delta authentication replay and preserve-by-id function call correlation across fragmented provider names.
|
|
51
|
+
- Intersects the audited `@cortexkit/antigravity-auth-core@2.2.0` model snapshot with live account discovery, normalizing the provider's `gemini-3.8-flash-tiered` directory alias. Gemini 3.8 Flash uses the captured AGY 1.1.24 Low/Medium/High wire routes, numeric thinking budgets, model enums, `userAgent` envelope field, and Medium default.
|
|
52
|
+
- Keeps DSH's stock model selector usable when live discovery is temporarily unavailable or drifts by falling back to the pinned text snapshot; Settings still reports the live-catalog state. This advisory fallback can temporarily retain a legacy route such as Gemini 3.5 Flash, while a successful live intersection filters routes absent for the account. A successful empty intersection stays empty, while missing authentication, authorization denial, cancellation, and explicit attribution rejection remain fail-closed.
|
|
53
|
+
- Supports streaming with pre-delta authentication replay and preserve-by-id function call correlation across fragmented provider names. Successful terminal events drain the remaining SSE framing before DSH completion, while required cancellation paths use Node's async-iterable Web Stream bridge instead of the race-prone `Readable.toWeb()` adapter.
|
|
44
54
|
|
|
45
55
|
### Web Search
|
|
46
56
|
|
|
@@ -69,46 +79,55 @@ Multimodal `analyze_video` tool accepts workspace MP4 videos, performing bounded
|
|
|
69
79
|
|
|
70
80
|
## Requirements
|
|
71
81
|
|
|
72
|
-
- DeepSeek Harness `0.1.
|
|
82
|
+
- DeepSeek Harness `0.1.2-alpha.5` or `0.1.3-alpha.1` (separately verified graphs; direct peers accept both prerelease lines).
|
|
73
83
|
- Node.js `^22.19.0` or `>=24.0.0`.
|
|
84
|
+
- `pnpm` available on `PATH` (`11.7.0` is the tested project package manager).
|
|
74
85
|
- A Google account with Antigravity access.
|
|
75
86
|
|
|
76
|
-
## Install from npm
|
|
87
|
+
## Install from npm
|
|
88
|
+
|
|
89
|
+
The npm package includes prebuilt Host and browser bundles. Install the release for either verified DSH graph explicitly:
|
|
90
|
+
|
|
91
|
+
```sh
|
|
92
|
+
dsh plugin --profile web add dsh-antigravity-auth@0.1.4-alpha.6
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
With the Web Host bound explicitly to `127.0.0.1`, restart `dsh web`, open Settings, and select **Antigravity Auth**.
|
|
77
96
|
|
|
78
|
-
|
|
97
|
+
## Install a prebuilt GitHub release
|
|
98
|
+
|
|
99
|
+
These GitHub examples pin the earlier 0.1.4-alpha.5 release; use the npm command above for 0.1.4-alpha.6.
|
|
79
100
|
|
|
80
101
|
```sh
|
|
81
|
-
dsh plugin --profile web add dsh-antigravity-auth
|
|
102
|
+
dsh plugin --profile web add https://github.com/suntianc/dsh-antigravity-auth/releases/download/v0.1.4-alpha.5/dsh-antigravity-auth-0.1.4-alpha.5.tgz
|
|
82
103
|
```
|
|
83
104
|
|
|
84
|
-
|
|
105
|
+
## Install from the tagged GitHub source
|
|
85
106
|
|
|
86
|
-
|
|
107
|
+
These GitHub examples pin the earlier 0.1.4-alpha.5 release; use the npm command above for 0.1.4-alpha.6.
|
|
87
108
|
|
|
88
109
|
```sh
|
|
89
|
-
dsh plugin --profile web add github:suntianc/dsh-antigravity-auth
|
|
110
|
+
dsh plugin --profile web add github:suntianc/dsh-antigravity-auth#v0.1.4-alpha.5
|
|
90
111
|
```
|
|
91
112
|
|
|
92
113
|
Git dependencies are built by the package's `prepare` script. If prompted by pnpm,
|
|
93
|
-
add the printed `allowBuilds` key to
|
|
94
|
-
then run the command again.
|
|
114
|
+
add the printed `allowBuilds` key to the `pnpm-workspace.yaml` path printed by
|
|
115
|
+
dsh, then run the command again. Only grant this permission after reviewing the source.
|
|
95
116
|
|
|
96
117
|
## Install a tarball
|
|
97
118
|
|
|
98
119
|
```sh
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
pnpm install
|
|
102
|
-
pnpm pack
|
|
103
|
-
dsh plugin --profile web add ./dsh-antigravity-auth-0.1.2.tgz
|
|
120
|
+
npm pack dsh-antigravity-auth@0.1.4-alpha.6
|
|
121
|
+
dsh plugin --profile web add ./dsh-antigravity-auth-0.1.4-alpha.6.tgz
|
|
104
122
|
```
|
|
105
123
|
|
|
106
124
|
## Upgrade
|
|
107
125
|
|
|
108
|
-
Stop the running `dsh web` process and
|
|
126
|
+
Stop the running `dsh web` process and verify that the Host itself is already on DSH `0.1.2-alpha.5` or `0.1.3-alpha.1`; upgrade DSH first if it is not. Then install the matching plugin release and verify the profile entry:
|
|
109
127
|
|
|
110
128
|
```sh
|
|
111
|
-
dsh
|
|
129
|
+
dsh --version # must report 0.1.2-alpha.5 or 0.1.3-alpha.1
|
|
130
|
+
dsh plugin --profile web add dsh-antigravity-auth@0.1.4-alpha.6
|
|
112
131
|
dsh plugin --profile web list
|
|
113
132
|
```
|
|
114
133
|
|
|
@@ -120,15 +139,14 @@ The bundle patch activates independent Host rows in dependency order:
|
|
|
120
139
|
|
|
121
140
|
| Row | Export | Purpose |
|
|
122
141
|
|---|---|---|
|
|
123
|
-
| `
|
|
142
|
+
| `antigravity-auth` | `dsh-antigravity-auth` | Shared auth coordinator and LLM route |
|
|
124
143
|
| `antigravity-search` | `dsh-antigravity-auth/search` | Global Search Provider |
|
|
125
144
|
| `antigravity-image` | `dsh-antigravity-auth/image` | Image generation & editing tools |
|
|
126
145
|
| `antigravity-video` | `dsh-antigravity-auth/video` | Video understanding tools |
|
|
127
146
|
|
|
128
147
|
## Wire Identity
|
|
129
148
|
|
|
130
|
-
The Wire Identity module keeps the audited
|
|
131
|
-
returned by DSH's public `attributionHeaders()` formatter as the secondary carrier:
|
|
149
|
+
The Wire Identity module keeps the audited AGY CLI 1.1.24 content-request User-Agent and adds the truthful DSH identity returned by DSH's public `attributionHeaders()` formatter as the mandatory secondary carrier:
|
|
132
150
|
|
|
133
151
|
```text
|
|
134
152
|
X-DeepSeek-Harness-Attribution: deepseek-harness/<version> (+repository-url)
|
|
@@ -142,7 +160,7 @@ Requests are code-owned: only fixed HTTPS Antigravity origins and enumerated `v1
|
|
|
142
160
|
- POSIX owner-only modes are enforced for auth, gate-evidence, and controlled live-image files. Windows access is governed by ACLs, so synthetic POSIX group/other bits are not treated as an access decision; symlink, file-type, size, schema, and content checks remain enforced.
|
|
143
161
|
- Single-account only: no account arrays, switching, rotation, quota pools, or identity fallback.
|
|
144
162
|
- Local logout clears local storage and in-memory caches immediately.
|
|
145
|
-
- The
|
|
163
|
+
- DSH alpha.5 no longer exposes a per-method or Host-side carrier authority tier. The plugin therefore enables the real account RPC handler only when the public WebServer bind is exactly `127.0.0.1`; absent, all-interface, and unknown binds receive only `loopback-required`. The browser also hides the section when `ConnectionHandle.isLoopback` is false, but that client hint is UX only: an owner-contained custom carrier cannot be authorized until DSH exposes a corresponding Host-side fact.
|
|
146
164
|
- Raw media base64 never enters session text or browser RPC.
|
|
147
165
|
|
|
148
166
|
## Development
|
package/README.zh.md
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
# dsh-antigravity-auth
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **DSH 兼容性:** 已分别验证 `0.1.2-alpha.5` 与 `0.1.3-alpha.1` 两套依赖图。目标 DSH npm 包尚未发布,开发锁文件暂保留 alpha.5;新版本使用固定源码制品验证。见[源码验证说明](docs/dsh-source-verification.md)。
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/dsh-antigravity-auth)
|
|
4
6
|
[](https://awesome-dsh-plugin.com)
|
|
5
7
|
|
|
6
8
|
[English](README.md) | 中文
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
当前 alpha 版本:**v0.1.4-alpha.6**,支持 DSH `0.1.2-alpha.5` 与 `0.1.3-alpha.1`,使用 Cordis `4.0.2` 与 Schemastery `3.18.2`。
|
|
9
11
|
|
|
10
12
|
这是一个自包含的 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)
|
|
11
13
|
**Antigravity 能力包**。它集成了 Antigravity 的私有 OAuth 登录态与 Wire Identity 线路身份,提供:
|
|
12
14
|
|
|
13
|
-
- `google-antigravity` LLM 路由(Gemini Flash、Gemini Pro、Claude Opus、Claude Sonnet、GPT-OSS);
|
|
15
|
+
- `google-antigravity` LLM 路由(Gemini 3.8/3.7/3.6 Flash、Gemini 3.1 Pro、Claude Opus、Claude Sonnet、GPT-OSS);
|
|
14
16
|
- 接入 DSH 内置 `web_search` 工具的全局 Antigravity 搜索提供方;
|
|
15
17
|
- 通过 `generate_image` 实现持久图片生成与编辑,并提供供模型使用的 `list_images` 目录;
|
|
16
18
|
- 支持本地工作区 MP4 文件的多模态 `analyze_video` 视频理解;
|
|
@@ -20,6 +22,14 @@
|
|
|
20
22
|
> **⚠️ 非官方通道——仅限个人开发。** 私有、受账户权限控制的 Antigravity
|
|
21
23
|
> 后端服务未获官方支持、可随时撤销,也可能在没有通知的情况下被限流或变更。请勿依赖它承载生产任务。
|
|
22
24
|
|
|
25
|
+
## v0.1.4-alpha.5 重点更新
|
|
26
|
+
|
|
27
|
+
- 将开发依赖图与 peer 基线迁移到 DSH `0.1.2-alpha.5`,采用当前 Settings、Session、Connection、client injection 与 `ToolCallId` API;本仓库 lockfile 不含旧 DSH 包族。
|
|
28
|
+
- 新增经过登录态目录确认的 Gemini 3.8 Flash,默认 Medium,并使用抓取的 Low/Medium/High route、model enum 与 numeric thinking budget。
|
|
29
|
+
- 所有私有 Cloud Code `v1internal:` 操作重新对齐已审计的 AGY CLI 1.1.24 wire identity,同时保留强制、真实的 DSH 二级归因。
|
|
30
|
+
- 排空成功的 provider terminal SSE framing 与 body,并改用 cancellation-safe async-iterable Web Stream bridge,避免 Node `ERR_INVALID_STATE` 崩溃。
|
|
31
|
+
- 在 alpha.5 上保持账号 RPC fail-closed:只有明确绑定 `127.0.0.1` 的 Web Host 才能触达认证服务。
|
|
32
|
+
|
|
23
33
|
## 功能特性
|
|
24
34
|
|
|
25
35
|
### 共享 Antigravity 登录态
|
|
@@ -30,14 +40,14 @@
|
|
|
30
40
|
- 通过属主权限文件存储(POSIX `0600`;Windows 用户数据目录 ACL)、短时内存缓存解析凭证,并在到期前主动刷新。
|
|
31
41
|
- 进程内合并并发刷新请求;仅在账号与 lineage 未变化时原子提交新 token。
|
|
32
42
|
- 仪表盘实时显示连接状态以及 Gemini 与 Claude/GPT 模型家族的 5 小时和每周额度进度条。
|
|
33
|
-
-
|
|
43
|
+
- `/antigravity-auth` 绝不向前端泄露 token。DSH alpha.5 下,真实账号 dispatcher 只在明确的 `127.0.0.1` Web bind 上启用;缺失、all-interface 或未知 bind 只能得到不含状态的安全拒绝。
|
|
34
44
|
|
|
35
45
|
### LLM 路由与模型发现
|
|
36
46
|
|
|
37
47
|
- 通过 DSH 公开的 `LlmAdapter` 接口注册 `google-antigravity` 提供方。
|
|
38
|
-
-
|
|
39
|
-
- 当真实模型发现暂时不可用或发生协议漂移时,DSH 内置模型选择器会回退到固定文本模型快照,设置页仍诚实显示 live catalog
|
|
40
|
-
- 流式传输支持首个数据块前的一次认证重放,并支持跨分片提供方函数名的 call-id
|
|
48
|
+
- 将已审计的 `@cortexkit/antigravity-auth-core@2.2.0` 固定社区模型快照与真实登录账号的可用模型取交集,并规范化服务端返回的 `gemini-3.8-flash-tiered` 目录别名;Gemini 3.8 Flash 使用 AGY 1.1.24 抓取的 Low/Medium/High wire route、numeric thinking budget、model enum、`userAgent` envelope 字段与 Medium 默认档位。
|
|
49
|
+
- 当真实模型发现暂时不可用或发生协议漂移时,DSH 内置模型选择器会回退到固定文本模型快照,设置页仍诚实显示 live catalog 状态;该 advisory 降级可能暂时保留 Gemini 3.5 Flash 等旧路由,而成功的 live intersection 会过滤账号目录中不存在的路由。成功但零交集的结果仍保持为空,未登录、授权拒绝、取消与明确的 attribution 拒绝仍保持 fail-closed。
|
|
50
|
+
- 流式传输支持首个数据块前的一次认证重放,并支持跨分片提供方函数名的 call-id 稳定关联;成功的 terminal event 会先排空剩余 SSE framing 再向 DSH 完成流,必要的取消路径则使用 Node 的 async-iterable Web Stream bridge,避开存在竞态的 `Readable.toWeb()` 适配器。
|
|
41
51
|
|
|
42
52
|
### 网页搜索
|
|
43
53
|
|
|
@@ -63,44 +73,53 @@
|
|
|
63
73
|
|
|
64
74
|
## 环境要求
|
|
65
75
|
|
|
66
|
-
- DeepSeek Harness `0.1.
|
|
76
|
+
- DeepSeek Harness `0.1.2-alpha.5` 或 `0.1.3-alpha.1`(两套依赖图分别验证;直接 peer 接受这两条 prerelease 版本线)。
|
|
67
77
|
- Node.js `^22.19.0` 或 `>=24.0.0`。
|
|
78
|
+
- `PATH` 中可用 `pnpm`(本项目测试版本为 `11.7.0`)。
|
|
68
79
|
- 具有 Antigravity 权限的 Google 账号。
|
|
69
80
|
|
|
70
|
-
## 从 npm
|
|
81
|
+
## 从 npm 安装
|
|
82
|
+
|
|
83
|
+
npm 包包含预构建的 Host 与浏览器 bundle。请显式安装支持上述两套 DSH 依赖图的版本:
|
|
84
|
+
|
|
85
|
+
```sh
|
|
86
|
+
dsh plugin --profile web add dsh-antigravity-auth@0.1.4-alpha.6
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
确认 Web Host 明确绑定 `127.0.0.1` 后,重启 `dsh web`,打开设置并选择 **Antigravity Auth**。
|
|
71
90
|
|
|
72
|
-
|
|
91
|
+
## 安装 GitHub 预构建 Release
|
|
92
|
+
|
|
93
|
+
以下 GitHub 示例固定到先前的 0.1.4-alpha.5;本次 0.1.4-alpha.6 请使用上面的 npm 安装命令。
|
|
73
94
|
|
|
74
95
|
```sh
|
|
75
|
-
dsh plugin --profile web add dsh-antigravity-auth
|
|
96
|
+
dsh plugin --profile web add https://github.com/suntianc/dsh-antigravity-auth/releases/download/v0.1.4-alpha.5/dsh-antigravity-auth-0.1.4-alpha.5.tgz
|
|
76
97
|
```
|
|
77
98
|
|
|
78
|
-
|
|
99
|
+
## 从 GitHub tag 源码安装
|
|
79
100
|
|
|
80
|
-
|
|
101
|
+
以下 GitHub 示例固定到先前的 0.1.4-alpha.5;本次 0.1.4-alpha.6 请使用上面的 npm 安装命令。
|
|
81
102
|
|
|
82
103
|
```sh
|
|
83
|
-
dsh plugin --profile web add github:suntianc/dsh-antigravity-auth
|
|
104
|
+
dsh plugin --profile web add github:suntianc/dsh-antigravity-auth#v0.1.4-alpha.5
|
|
84
105
|
```
|
|
85
106
|
|
|
86
|
-
Git 依赖会通过包内 `prepare` 脚本从源码构建。如遇 pnpm 提示,将输出的 `allowBuilds` 键添加到
|
|
107
|
+
Git 依赖会通过包内 `prepare` 脚本从源码构建。如遇 pnpm 提示,将输出的 `allowBuilds` 键添加到 dsh 输出的 `pnpm-workspace.yaml` 路径,再重新执行安装。只应在审查并信任源码后授权。
|
|
87
108
|
|
|
88
109
|
## 从 tarball 安装
|
|
89
110
|
|
|
90
111
|
```sh
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
pnpm install
|
|
94
|
-
pnpm pack
|
|
95
|
-
dsh plugin --profile web add ./dsh-antigravity-auth-0.1.2.tgz
|
|
112
|
+
npm pack dsh-antigravity-auth@0.1.4-alpha.6
|
|
113
|
+
dsh plugin --profile web add ./dsh-antigravity-auth-0.1.4-alpha.6.tgz
|
|
96
114
|
```
|
|
97
115
|
|
|
98
116
|
## 升级
|
|
99
117
|
|
|
100
|
-
先停止正在运行的 `dsh web
|
|
118
|
+
先停止正在运行的 `dsh web`,确认 Host 本身已经是 DSH `0.1.2-alpha.5` 或 `0.1.3-alpha.1`;若不是,必须先升级 DSH。随后安装匹配的插件版本并核对 profile 条目:
|
|
101
119
|
|
|
102
120
|
```sh
|
|
103
|
-
dsh
|
|
121
|
+
dsh --version # 必须显示 0.1.2-alpha.5 或 0.1.3-alpha.1
|
|
122
|
+
dsh plugin --profile web add dsh-antigravity-auth@0.1.4-alpha.6
|
|
104
123
|
dsh plugin --profile web list
|
|
105
124
|
```
|
|
106
125
|
|
|
@@ -112,14 +131,14 @@ dsh plugin --profile web list
|
|
|
112
131
|
|
|
113
132
|
| 行 | Export | 作用 |
|
|
114
133
|
|---|---|---|
|
|
115
|
-
| `
|
|
134
|
+
| `antigravity-auth` | `dsh-antigravity-auth` | 共享认证协调器与 LLM 路由 |
|
|
116
135
|
| `antigravity-search` | `dsh-antigravity-auth/search` | 全局搜索提供方 |
|
|
117
136
|
| `antigravity-image` | `dsh-antigravity-auth/image` | 图片生成与编辑工具 |
|
|
118
137
|
| `antigravity-video` | `dsh-antigravity-auth/video` | 视频理解工具 |
|
|
119
138
|
|
|
120
139
|
## Wire Identity(线路身份)
|
|
121
140
|
|
|
122
|
-
Wire Identity
|
|
141
|
+
Wire Identity 模块保留已审计的 AGY CLI 1.1.24 content-request User-Agent,并调用 DSH 公开的 `attributionHeaders()` formatter,把真实 DSH 身份放入强制二级 carrier:
|
|
123
142
|
|
|
124
143
|
```text
|
|
125
144
|
X-DeepSeek-Harness-Attribution: deepseek-harness/<version> (+repository-url)
|
|
@@ -133,7 +152,7 @@ X-DeepSeek-Harness-Attribution: deepseek-harness/<version> (+repository-url)
|
|
|
133
152
|
- auth、gate evidence 与受控 live image 文件在 POSIX 上严格校验属主 mode;Windows 由 ACL 管理访问权限,因此不把合成的 POSIX group/other bits 作为访问判据,但仍执行 symlink、文件类型、大小、schema 与内容校验。
|
|
134
153
|
- 严格单账号模式:不提供账号池、轮换、身份回退或账号切换。
|
|
135
154
|
- 本地登出立即清除 Host 内存与本地存储。
|
|
136
|
-
- RPC
|
|
155
|
+
- DSH alpha.5 不再提供逐 method 或 Host 侧 carrier authority。插件只在公开 WebServer bind 恰为 `127.0.0.1` 时启用真实 account RPC;缺失、all-interface 与未知 bind 只返回 `loopback-required`。浏览器在 `ConnectionHandle.isLoopback` 为 false 时也不会注册该设置分区,但该客户端提示仅用于 UX:在 DSH 提供对应 Host 侧事实前,owner-contained 自定义 carrier 仍不能获得授权。
|
|
137
156
|
- 原始多媒体 base64 绝不注入会话正文或前端 RPC。
|
|
138
157
|
|
|
139
158
|
## 本地开发
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# DSH source compatibility verification
|
|
2
|
+
|
|
3
|
+
This plugin supports two separately checked DSH graphs: npm `0.1.2-alpha.5` and
|
|
4
|
+
the official `0.1.3-alpha.1` source tag at
|
|
5
|
+
`d347e703908d0406b7a7ef80e3a0e594d86b2215`.
|
|
6
|
+
The latter was not available on npm when this upgrade was verified. Therefore the
|
|
7
|
+
ordinary development dependencies and lockfile retain the installable alpha.5
|
|
8
|
+
baseline. Peer ranges explicitly include the new prerelease; they do not imply
|
|
9
|
+
support for arbitrary prereleases. Do not mix the two graphs.
|
|
10
|
+
|
|
11
|
+
## Build the official artifacts once
|
|
12
|
+
|
|
13
|
+
Use a separate scratch directory, outside any plugin or live DSH installation:
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
git clone --depth 1 --branch dsh-v0.1.3-alpha.1 https://github.com/deepseek-ai/deepseek-harness.git harness
|
|
17
|
+
cd harness
|
|
18
|
+
git rev-parse HEAD
|
|
19
|
+
# Must be d347e703908d0406b7a7ef80e3a0e594d86b2215.
|
|
20
|
+
pnpm install --frozen-lockfile --ignore-scripts
|
|
21
|
+
pnpm run build:lib
|
|
22
|
+
pnpm --filter './packages/**' --filter './vendor/*' -r pack --pack-destination ../dsh-packages
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The Host and Client library build is required. Packing does not publish anything.
|
|
26
|
+
The resulting directory can be reused to check each of the four plugins.
|
|
27
|
+
|
|
28
|
+
## Check this plugin
|
|
29
|
+
|
|
30
|
+
From this plugin's own repository:
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
pnpm install --frozen-lockfile
|
|
34
|
+
pnpm run check
|
|
35
|
+
pnpm run check:dsh-source -- /absolute/path/to/dsh-packages
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
The source check copies the current plugin into a new temporary directory,
|
|
39
|
+
reads the supplied tarball manifests, rejects mixed DSH versions, explicitly
|
|
40
|
+
supplies the complete DSH dependency/peer closure, and pins pi-ai to the plugin's
|
|
41
|
+
development version when present. It installs that isolated graph and runs
|
|
42
|
+
`pnpm peers check` followed by the unmodified `pnpm run check` command.
|
|
43
|
+
|
|
44
|
+
The runner leaves the verification directory and `artifacts.json` with SHA-512
|
|
45
|
+
checksums for review. The fixed-tag build recipe establishes provenance; the
|
|
46
|
+
runner identifies the supplied bytes and checks their versions, and does not
|
|
47
|
+
claim to authenticate arbitrary user-supplied tarballs. Its local file overrides
|
|
48
|
+
and generated lockfile stay in the temporary directory. They never enter this
|
|
49
|
+
repository, an installed package, or a user profile.
|
|
50
|
+
|
|
51
|
+
Package smoke checks accept both registry and source-artifact lock identities
|
|
52
|
+
while continuing to verify the selected version. The default check remains on
|
|
53
|
+
alpha.5; the source runner selects alpha.1 using `DSH_VERIFY_VERSION`.
|
|
54
|
+
|
|
55
|
+
## 中文说明
|
|
56
|
+
|
|
57
|
+
本次增加对 DSH `0.1.3-alpha.1` 固定源码版本的支持,同时保留
|
|
58
|
+
`0.1.2-alpha.5` 的可安装开发依赖与锁文件。原因是目标 DSH npm 包尚未发布。
|
|
59
|
+
两套图分别完成验证,不能混用;这不是跳过 peer 检查。
|
|
60
|
+
|
|
61
|
+
按上面的固定 tag 构建、打包一次,然后在本插件目录运行
|
|
62
|
+
`pnpm run check:dsh-source -- /绝对路径/dsh-packages`。脚本在临时目录内安装
|
|
63
|
+
完整源码包图并运行全部检查,输出位置和制品哈希供复核。正式 package.json
|
|
64
|
+
和锁文件不会写入本机临时路径,也不会安装到现用 profile。
|
|
65
|
+
|
|
66
|
+
升级验证覆盖离线类型检查、测试、构建、打包 smoke 和 publint;
|
|
67
|
+
真实 OAuth、私有服务请求和用户现用 profile 不属于这些离线检查的证明范围。
|
package/lib/client.cjs
CHANGED
|
@@ -78,6 +78,7 @@ window.__ModuleLoader__.load({
|
|
|
78
78
|
//#region src/rpc-vocabulary.ts
|
|
79
79
|
/** Closed, browser-safe RPC error vocabulary shared by Host and client. */
|
|
80
80
|
const OPERATION_ERROR_CODES = [
|
|
81
|
+
"loopback-required",
|
|
81
82
|
"invalid-grant",
|
|
82
83
|
"network",
|
|
83
84
|
"timeout",
|
|
@@ -95,6 +96,7 @@ window.__ModuleLoader__.load({
|
|
|
95
96
|
];
|
|
96
97
|
const SAFE_RPC_ERROR_MESSAGES = Object.freeze({
|
|
97
98
|
"bad-request": "antigravity-auth: invalid request",
|
|
99
|
+
"loopback-required": "Antigravity account controls require a loopback-bound DSH Host",
|
|
98
100
|
cancelled: "The operation was cancelled",
|
|
99
101
|
"risk-acknowledgement-required": "Risk acknowledgement is required before login",
|
|
100
102
|
"port-conflict": "The fixed OAuth callback port is already in use",
|
|
@@ -151,7 +153,7 @@ window.__ModuleLoader__.load({
|
|
|
151
153
|
//#endregion
|
|
152
154
|
//#region src/rpc-contract.ts
|
|
153
155
|
const ANTIGRAVITY_AUTH_RPC_CHANNEL = "/antigravity-auth";
|
|
154
|
-
/** Build the browser face over the plugin-owned
|
|
156
|
+
/** Build the browser face over the plugin-owned guarded account channel. */
|
|
155
157
|
function createAntigravityAuthRpcClient(rpc) {
|
|
156
158
|
return {
|
|
157
159
|
status: (signal) => callValidated(rpc, "status", {}, signal, (value) => {
|
|
@@ -2038,7 +2040,9 @@ window.__ModuleLoader__.load({
|
|
|
2038
2040
|
zh,
|
|
2039
2041
|
en
|
|
2040
2042
|
}), "antigravity-auth: copy dictionaries");
|
|
2041
|
-
const
|
|
2043
|
+
const connection = ctx.get("connection");
|
|
2044
|
+
if (!connection.isLoopback) return;
|
|
2045
|
+
const rpc = createAntigravityAuthRpcClient(connection.rpc);
|
|
2042
2046
|
const t = ctx.locale.bind(NS);
|
|
2043
2047
|
const settingsScope = ctx.settingsScope;
|
|
2044
2048
|
const searchScope = settingsScope?.bind({
|