dsh-grok-provider 1.0.2 → 1.0.4
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 +17 -1
- package/README.en.md +30 -16
- package/README.md +30 -16
- package/SECURITY.md +9 -3
- package/dist/client/client.js +1 -1
- package/dist/host/index.mjs +8 -10
- package/dist/internal/credential-source.mjs +109 -81
- package/dist/internal/grok-adapter.mjs +4 -2
- package/dist/internal/grok-transport.mjs +41 -6
- package/dist/internal/partial-response-recovery.mjs +128 -0
- package/dist/internal/responses-call.mjs +11 -2
- package/dist/internal/responses-codec.mjs +7 -0
- package/dist/internal/responses-request-compiler.mjs +4 -1
- package/docs/01-product-requirements.md +6 -1
- package/docs/03-security-threat-model.md +3 -1
- package/docs/04-harness-contract.md +20 -20
- package/docs/05-test-plan.md +3 -1
- package/docs/06-release-plan.md +15 -9
- package/docs/09-implementation-status.md +29 -6
- package/docs/10-release-checklist.md +36 -7
- package/docs/11-capability-roadmap.md +21 -9
- package/docs/13-upstream-search-evidence.md +4 -2
- package/docs/README.md +13 -8
- package/docs/adr/0003-dual-authentication.md +1 -0
- package/docs/adr/0005-official-cli-only-authentication.md +2 -1
- package/docs/adr/0008-image-input-request-compiler.md +1 -1
- package/docs/adr/0010-default-off-web-x-search.md +6 -4
- package/docs/adr/0011-bounded-auth-recovery-and-partial-stream-preservation.md +37 -0
- package/docs/releases/v1.0.1.md +2 -2
- package/docs/releases/v1.0.2.md +20 -12
- package/docs/releases/v1.0.3.md +62 -0
- package/docs/releases/v1.0.4.md +60 -0
- package/package.json +19 -19
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.4 - 2026-09-04
|
|
4
|
+
|
|
5
|
+
- Stop named-importing the deleted `@deepseek-ai/dsh-settings` helpers `installSettingsSection` and `settingsNamespace`. Register the legal string constant `llm-grok` through `ctx.settings.installSection(...)` so the Host can load on DeepSeek Harness `0.1.2-rc.1`.
|
|
6
|
+
- Keep composition-config fallback when the settings service is missing or reloaded. Enable, disable, and failed-enable rollback still preserve receipts, generations, and account state.
|
|
7
|
+
- Raise required Harness peers to the `0.1.2-rc.1` boundary (`dsh-settings`, `dsh-llm`, `dsh-commands`, `dsh-subprocess`, matching client packages, Cordis `4.0.2`, Schemastery `3.18.2`) and replace the removed Web inject `@deepseek-ai/dsh-client-runtime` with `@deepseek-ai/dsh-client-ui-renderer`. Pass Harness `offloadedImageText` as the required image-offload placeholder.
|
|
8
|
+
- Add a Host import regression against the published `dsh-settings@0.1.2-rc.1` module graph and scan every `dist/**` file so packed artifacts cannot reintroduce the deleted helpers. Authentication recovery, Search protocol, images, fixed endpoints, and the Windows browser-login boundary are unchanged.
|
|
9
|
+
- Code PR #41 merged as `61c80fff0841e44c16dabb2cc803a80c1bdf5456`; main CI run `33870741679` passed on macOS 14 and Windows 2022. Artifact digests and publication evidence remain pending until the release-evidence commit is merged and one tarball is frozen from that exact commit.
|
|
10
|
+
|
|
11
|
+
## 1.0.3 - 2026-08-31
|
|
12
|
+
|
|
13
|
+
- Recover one pre-stream 401/403 by asking the official Grok CLI to refresh its shared session, reloading the validated credential, and retrying the request exactly once. Concurrent rejections from the same credential revision share one bounded refresh; a persistent rejection remains `AUTH`.
|
|
14
|
+
- Never replay a request after a successful response begins. Abort a response after two continuous minutes without any wire bytes; each received byte chunk refreshes this idle deadline. If the source disconnects, idles out, or reaches clean EOF after only bounded text/reasoning chunks, preserve that partial output, close its visible blocks, and append a bilingual interruption notice asking the user to send “continue.” Any observed tool call, unknown chunk, malformed protocol, user abort, or empty partial response keeps the established fail-closed behavior.
|
|
15
|
+
- Distinguish a clean premature SSE EOF from malformed events so only the former is eligible for partial-output preservation. Focused regressions cover one-shot recovery, persistent auth failure, concurrent single-flight refresh, post-start no-retry, idle timeout, transport interruption, clean EOF, status-bearing stream rejection, and partial tool-call rejection. The exact Node `24.19.0` suite passes with 274 tests, 272 pass, 0 fail, and 2 platform skips.
|
|
16
|
+
- Complete one redacted real-account success-path request with exact `grok-4.6` at Low Effort through the production adapter. It produced 2 block starts, 14 reasoning deltas, 2 block ends, 1 text delta, 1 usage chunk, and 1 finish. No response text, prompt output, URL, identity, credential, or raw event was retained; this does not simulate a future 401 or network stall.
|
|
17
|
+
- Code PR #37 merged as `9958f487abf8ebd062eecb4368689e4d049b1d35`; main CI run `33377849906` passed on macOS 14 and Windows 2022. Release-evidence PR #38 produced final release commit `07ebd35c56348a1b3296bd46d1a69f5b0f430241`, whose final CI run `33378215345` also passed on both platforms. Annotated tag object `7ec8a8a1086749e7ac1dfb0ef2bd50c821838363` peels to that commit. Trusted Publisher run `33379149158` attempt 1 published the explicitly authorized unique 77-file artifact: 267,403 bytes packed, 829,862 bytes unpacked, SHA-1 `6197c3d30ec1ef5f559371911d612f6236eee2f9`, SHA-256 `7f740c7258ab7eee0c96e1ddae3398b41a25e718cf267e244f8693c3c99aeb0d`, and SRI `sha512-kJgN0NKKV7Te3oAgbPnEua/EQCLnj5S0KWAWrhP0ixudJBepplRFARYHCxwxOwbG87bnX07Mz/dxCoBiphWhqQ==`. The frozen artifact, GitHub Release asset, and npm Registry tarball are byte-identical; npm reports `latest=1.0.3`. A locked Node `24.19.0` / npm `11.5.1` Registry install passed Host/client smoke and zero-vulnerability production audit. Package metadata exposes 1 Registry signature and 2 attestations, `npm audit signatures` verified 11 signed packages and 2 attested packages, and SLSA provenance exactly binds `release.yml`, `refs/tags/v1.0.3`, the release commit, and publish run. Real-device Windows external-browser launch remains unverified.
|
|
18
|
+
|
|
3
19
|
## 1.0.2 - 2026-08-30
|
|
4
20
|
|
|
5
21
|
- Suppress contentless Harness reasoning blocks for upstream reasoning lifecycles that fully close without any visible summary or raw delta. The decoder now starts a visible block only when the first non-empty reasoning delta arrives; non-empty reasoning items remain separate blocks with their existing ordering.
|
|
6
22
|
- Preserve the strict protocol boundary while changing the projection: ordinary empty items retain their existing ID/type, sequence, output-index, status, summary/content, size, optional encrypted-content, and closure checks; Search-backed same-ID reuse additionally retains exact own-data key/accessor validation. Invalid reuse, ordering violations, and incomplete responses with an open reused lifecycle continue to fail closed.
|
|
7
23
|
- Preserve output-index order when a later visible block must wait for an earlier unresolved reasoning item. The shared delayed-chunk queue now fails closed above 65,536 chunks or 32 MiB of dynamic UTF-8 payload, preventing an unresolved item from amplifying memory across otherwise individually bounded blocks. Response text, tool calls, usage, finish reasons, visible non-empty replay, Search replay suppression, authentication, models, images, fixed endpoints, citation/URL handling, and Harness permissions remain unchanged. A hidden ordinary empty item has no replay-alignment slot, so validated encrypted content from that item is not persisted; existing empty `Think` rows stored in old conversations are not rewritten.
|
|
8
|
-
- Package the bilingual README with durable `1.0.2` wording and an exact `dsh-grok-provider@1.0.2` installation command. The exact Node `24.19.0` local suite passes with 265 tests, 263 pass, 0 fail, and 2 platform skips; production audit reports zero vulnerabilities and the isolated-cache dry-run pack lists 74 files.
|
|
24
|
+
- Package the bilingual README with durable `1.0.2` wording and an exact `dsh-grok-provider@1.0.2` installation command. The exact Node `24.19.0` local suite passes with 265 tests, 263 pass, 0 fail, and 2 platform skips; production audit reports zero vulnerabilities and the isolated-cache dry-run pack lists 74 files. Final release commit `be200f9352afe93b27dd2856d89c01674f0cd637` passed dual-platform final CI run `33318426571`; annotated tag object `b7efd3aabb99c73e1747d2d87890cdf9b284c438` peels to that commit. Trusted Publisher run `33319150964` attempt 1 published the explicitly authorized unique 74-file artifact: 255,282 bytes packed, 789,962 bytes unpacked, SHA-1 `3feddb7048fe4c796037804518999b12ae491802`, SHA-256 `010a21770cb3e4e42b7195984df1f5bf8dc5027066198cf99b7d713ac045f605`, and SRI `sha512-TcvvPUXBJZEA728pVnUrXSZebGfIoB5ATG5041wA1OFzOE+hFTO98C5Fxl99WuFW2y7V89gkusYIKCpGlLNQIg==`. The frozen candidate, GitHub Release asset, and npm Registry tarball are byte-identical; npm reports `latest=1.0.2`, the locked Node `24.19.0` / npm `11.5.1` Host/client smoke and production audit passed, package metadata exposes 1 Registry signature and 2 attestations, `npm audit signatures` verified 11 signed packages and 2 attested packages, and SLSA provenance exactly binds `release.yml`, `refs/tags/v1.0.2`, the release commit, and publish run. Real-device Windows external-browser launch remains unverified.
|
|
9
25
|
|
|
10
26
|
## 1.0.1 - 2026-08-30
|
|
11
27
|
|
package/README.en.md
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
Use an already authenticated official Grok Build account from DeepSeek Harness, with dynamic model discovery, streaming reasoning, image input, optional Web/X Search, tool calls, and an account quota/model capability dashboard.
|
|
6
6
|
|
|
7
|
-
> Unofficial community project; not affiliated with xAI or DeepSeek Harness. This README describes the `dsh-grok-provider@1.0.
|
|
7
|
+
> Unofficial community project; not affiliated with xAI or DeepSeek Harness. This README describes the `dsh-grok-provider@1.0.4` artifact; version `0.1.8` was published and then withdrawn and cannot be reused.
|
|
8
8
|
|
|
9
|
-
`1.0.
|
|
9
|
+
`1.0.4` repairs the `dsh-grok-provider@1.0.3` startup failure on DeepSeek Harness `0.1.2-rc.1`: the Host no longer named-imports the removed `installSettingsSection` / `settingsNamespace` helpers and instead registers `llm-grok` through `ctx.settings.installSection(...)`. Authentication recovery, partial-output preservation, Search, images, and fixed endpoints are unchanged.
|
|
10
10
|
|
|
11
|
-
This README is included in the `1.0.
|
|
11
|
+
This README is included in the `1.0.4` npm tarball, and the exact installation command below is pinned to `1.0.4`. The previous version with completed supply-chain readback is `1.0.3`.
|
|
12
12
|
|
|
13
13
|
## What it provides
|
|
14
14
|
|
|
@@ -19,7 +19,7 @@ This README is included in the `1.0.2` npm tarball, and the exact installation c
|
|
|
19
19
|
| Models | Discovers every model visible to the account at runtime; no static model allowlist |
|
|
20
20
|
| Conversations | Streaming Responses text, reasoning, encrypted reasoning replay, usage, and finish reasons |
|
|
21
21
|
| Images | Only exact `grok-4.6` accepts bounded JPEG/PNG images from Harness attachments; `grok-4.5` and all other models remain text-only |
|
|
22
|
-
| Search | Exact `grok-4.6` provides default-off Web/X Search; `1.0.
|
|
22
|
+
| Search | Exact `grok-4.6` provides default-off Web/X Search; `1.0.4` moves settings registration onto Harness `0.1.2-rc.1` `installSection` without changing the Search protocol |
|
|
23
23
|
| Tools | Returns function calls to the Harness permission layer; the provider never executes tools, and local `web_search` / `x_search` remain when the corresponding Search setting is off |
|
|
24
24
|
| Account dashboard | Login status, weekly/monthly quota, reset time, dynamic model capabilities and reasoning efforts |
|
|
25
25
|
| Surfaces | Bilingual Web settings and a closed `/grok` TUI command set |
|
|
@@ -28,7 +28,7 @@ This README is included in the `1.0.2` npm tarball, and the exact installation c
|
|
|
28
28
|
|
|
29
29
|
### 1. Prerequisites
|
|
30
30
|
|
|
31
|
-
- DeepSeek Harness `0.1.
|
|
31
|
+
- DeepSeek Harness `0.1.2-rc.1`
|
|
32
32
|
- Node.js `24.19.0` or newer
|
|
33
33
|
- macOS arm64 or Windows x64
|
|
34
34
|
- Official Grok Build CLI with `login --oauth` support and the default Grok home
|
|
@@ -44,10 +44,10 @@ When the network is reachable and OIDC discovery succeeds, the official CLI open
|
|
|
44
44
|
|
|
45
45
|
### 2. Install the provider
|
|
46
46
|
|
|
47
|
-
Install the exact version
|
|
47
|
+
Install the exact version:
|
|
48
48
|
|
|
49
49
|
```sh
|
|
50
|
-
dsh plugin --profile web add dsh-grok-provider@1.0.
|
|
50
|
+
dsh plugin --profile web add dsh-grok-provider@1.0.4
|
|
51
51
|
dsh web
|
|
52
52
|
```
|
|
53
53
|
|
|
@@ -74,7 +74,7 @@ The Web settings page shows:
|
|
|
74
74
|
|
|
75
75
|
When protobuf-backed billing includes a complete weekly/monthly period but omits a zero-valued percentage, the page restores “0% used / 100% remaining.” Other incomplete responses remain unknown.
|
|
76
76
|
|
|
77
|
-
Harness `0.1.
|
|
77
|
+
Harness `0.1.2-rc.1` does not expose an icon field on `settings.section`. The Provider embeds the MIT-licensed `IconThinkOutline16` path geometry from `@deepseek-ai/dsh-client-ui-primitives@0.1.0-rc.7` and displays it only when the `Grok Build` label and settings-dialog DOM structure produce one exact match; otherwise it safely keeps the Host gear. The compatibility observer, marker, and style are all removed when the plugin unloads.
|
|
78
78
|
|
|
79
79
|
## Plugin preview
|
|
80
80
|
|
|
@@ -134,10 +134,10 @@ Uninstalling the provider does not remove the official Grok CLI or directly modi
|
|
|
134
134
|
|
|
135
135
|
## Sources and discovery
|
|
136
136
|
|
|
137
|
-
- Exact npm version described by this README: [dsh-grok-provider@1.0.
|
|
138
|
-
-
|
|
139
|
-
- Release evidence: release commit `
|
|
140
|
-
- npm page documentation correction: the `1.0.1` tarball retained an older installation example; the README
|
|
137
|
+
- Exact npm version described by this README: [dsh-grok-provider@1.0.3](https://www.npmjs.com/package/dsh-grok-provider/v/1.0.3)
|
|
138
|
+
- Current GitHub release with completed readback: [v1.0.3](https://github.com/yoshino-xiao7/dsh-grok-provider/releases/tag/v1.0.3)
|
|
139
|
+
- Release evidence: release commit `07ebd35c56348a1b3296bd46d1a69f5b0f430241`, annotated tag object `7ec8a8a1086749e7ac1dfb0ef2bd50c821838363` peeling to that commit, final CI run [`33378215345`](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33378215345), and Trusted Publisher run [`33379149158` attempt 1](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33379149158/attempts/1). The explicitly authorized unique 77-file artifact is 267,403 bytes packed and 829,862 bytes unpacked; SHA-1 is `6197c3d30ec1ef5f559371911d612f6236eee2f9`, SHA-256 is `7f740c7258ab7eee0c96e1ddae3398b41a25e718cf267e244f8693c3c99aeb0d`, and SRI is `sha512-kJgN0NKKV7Te3oAgbPnEua/EQCLnj5S0KWAWrhP0ixudJBepplRFARYHCxwxOwbG87bnX07Mz/dxCoBiphWhqQ==`. The frozen artifact, GitHub Release asset, and Registry tarball are byte-identical. A locked Registry install passed Host/client loading with zero production vulnerabilities; package metadata exposes 1 Registry signature and 2 attestations, while the installed graph has 11 verified signed packages and 2 attested packages. SLSA provenance exactly binds `release.yml`, `refs/tags/v1.0.3`, the release commit, and publish run.
|
|
140
|
+
- npm page documentation correction: the `1.0.1` tarball retained an older installation example; the README in the published `1.0.2` tarball uses the exact `@1.0.2` command. Published `1.0.1` bytes are not replaced.
|
|
141
141
|
- GitHub community discovery: the repository carries the DeepSeek Harness-recommended `dsh-plugin` and `dsh` topics
|
|
142
142
|
- YukiRyou managed source: [deepseek-yukiryou-plugin-catalog](https://github.com/yoshino-xiao7/deepseek-yukiryou-plugin-catalog), still pinned to the real-device-accepted `dsh-grok-provider@0.1.0` and marking only `darwin-arm64`
|
|
143
143
|
|
|
@@ -145,12 +145,25 @@ Directory inclusion is not an endorsement by xAI or DeepSeek Harness. [Listing P
|
|
|
145
145
|
|
|
146
146
|
## Compatibility and scope
|
|
147
147
|
|
|
148
|
+
### `1.0.4` repair boundary
|
|
149
|
+
|
|
150
|
+
- The Host no longer named-imports `installSettingsSection` or `settingsNamespace` from `@deepseek-ai/dsh-settings`; it registers the legal string constant `llm-grok` through the settings service `installSection` API.
|
|
151
|
+
- Composition config remains the fallback when the settings service is missing or reloaded. Enable, disable, and failed-enable rollback still keep receipts, generations, and account state.
|
|
152
|
+
- Required peers now match Harness `0.1.2-rc.1` (`dsh-settings` / `dsh-llm`, Cordis `4.0.2`, Schemastery `3.18.2`). The Web client inject list uses `@deepseek-ai/dsh-client-ui-renderer` in place of the removed `dsh-client-runtime`.
|
|
153
|
+
- Authentication recovery, partial-output preservation, Search protocol, images, fixed endpoints, and the Windows browser-login boundary are unchanged. See [`docs/releases/v1.0.4.md`](docs/releases/v1.0.4.md).
|
|
154
|
+
|
|
155
|
+
### `1.0.3` repair boundary
|
|
156
|
+
|
|
157
|
+
- Only a 401/403 received before 200/SSE begins can trigger one bounded shared-session refresh through the official Grok CLI, credential reload, and at most one retry. A persistent rejection remains `AUTH`; no API-key mode is added.
|
|
158
|
+
- A started stream is never replayed. On transport interruption, clean premature EOF, or two continuous minutes without any wire bytes, only bounded text/reasoning with no tool side effects may be preserved with a “send continue” notice. Tool calls, unknown events, malformed protocol, user abort, and empty partial responses remain fail closed.
|
|
159
|
+
- The exact Node `24.19.0` gate reports 274 tests, 272 pass, 0 fail, and 2 platform skips. Final release commit, dual-platform CI, explicit authorization, isolated installation, Registry, signature, attestations, and provenance readback are complete for the unique 77-file artifact. The real-account success-path check does not simulate a future 401 or disconnect, and this release is not real-device Windows browser-login acceptance. See [`docs/releases/v1.0.3.md`](docs/releases/v1.0.3.md).
|
|
160
|
+
|
|
148
161
|
### `1.0.2` repair boundary
|
|
149
162
|
|
|
150
163
|
- An ordinary strictly empty reasoning item retains the existing ID/type, sequence, output-index, status, empty summary/content, size, optional encrypted-content, and closure checks. A same-ID Search-backed reuse additionally retains exact own-data key and accessor rejection. This release does not expand the accepted protocol domain.
|
|
151
164
|
- The Provider delays creating a Harness reasoning block until the first non-empty summary/raw delta, then emits the existing delta and block-end sequence. A lifecycle that remains empty produces no visible reasoning chunk.
|
|
152
165
|
- Multiple non-empty reasoning items remain separate in output-index order. Text, tool calls, usage, finish reasons, visible non-empty reasoning replay, Search replay suppression, and fail-closed behavior are unchanged. A hidden ordinary empty item occupies no visible block/replay alignment slot, so its validated bounded encrypted content is not persisted.
|
|
153
|
-
- The exact Node `24.19.0` local gate reports 265 tests, 263 pass, 0 fail, and 2 platform skips; production audit reports zero vulnerabilities
|
|
166
|
+
- The exact Node `24.19.0` local gate reports 265 tests, 263 pass, 0 fail, and 2 platform skips; production audit reports zero vulnerabilities. Final release commit `be200f9352afe93b27dd2856d89c01674f0cd637` for the 74-file artifact and final CI run [`33318426571`](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33318426571) pass on macOS 14 and Windows 2022. Unique-artifact authorization, isolated installation, Registry, signature, attestation, and provenance readback are complete.
|
|
154
167
|
- The repair affects new responses after upgrading; empty `Think` rows already persisted in older conversations are not rewritten.
|
|
155
168
|
- Search settings, models, authentication, images, fixed endpoints, citation/URL handling, and the Harness tool-permission boundary are unchanged. This is not real-device Windows browser-login acceptance.
|
|
156
169
|
|
|
@@ -171,11 +184,11 @@ Directory inclusion is not an endorsement by xAI or DeepSeek Harness. [Listing P
|
|
|
171
184
|
- Two-layer redacted real-account verification passed against the final source: raw Web/X probes each completed one 64-event response, observed the requested Search kind, and reached `completed`; the production adapter completed 5 Responses calls, with direct Web/X both ending in `stop` and a Harness-shaped local `x_search` call/result continuation ending `tool-calls`, `tool-calls`, then `stop`, with one local call in each of the first two turns. That continuation did not place a Harness `x_search` function definition beside an xAI `{ type: "x_search" }` server descriptor in the same wire request; `1.0.1` later isolated that combination as an HTTP 400 conflict. No results, URLs, prompts, identity, or credentials were retained; this is not publication, OAuth, or real-device Windows evidence.
|
|
172
185
|
- The manifest and lockfile are synchronized at `1.0.0`; the Node 24 suite reports 245 tests, 243 pass, 0 fail, and 2 platform skips. Production audit reports zero vulnerabilities, and the deterministic build/bundle comparison, 72-entry dry-run pack, secret scan, and diff check pass. Code PR #28, main CI run [`33308371009`](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33308371009), the final release commit, dual-platform final CI, unique artifact, exact authorization, and Registry/signature/attestation/provenance readback are complete.
|
|
173
186
|
|
|
174
|
-
| Item | `1.0.
|
|
187
|
+
| Item | `1.0.4` compatibility boundary |
|
|
175
188
|
| --- | --- |
|
|
176
|
-
| DeepSeek Harness | Exact support for `0.1.
|
|
189
|
+
| DeepSeek Harness | Exact support for `0.1.2-rc.1` |
|
|
177
190
|
| Node.js | `>=24.19.0` |
|
|
178
|
-
| macOS arm64 | Image sending has real-Harness confirmation; `1.0.
|
|
191
|
+
| macOS arm64 | Image sending has real-Harness confirmation; `1.0.4` repairs `0.1.2-rc.1` settings registration |
|
|
179
192
|
| Windows x64 | The code path and existing slow fakes are unchanged. On a reachable network the official CLI generates the URL and opens the browser, and that path still lacks real-device Windows acceptance |
|
|
180
193
|
| macOS x64 / Linux | Unsupported |
|
|
181
194
|
| Grok CLI | No full-version lock; official path, `login --oauth` capability, and production OIDC credential contract are enforced |
|
|
@@ -292,6 +305,7 @@ Read the [contributing guide](CONTRIBUTING.md) before filing an issue or PR. Cha
|
|
|
292
305
|
- [x] Publish `0.1.11`: repair High Effort + Web Search reasoning-lifecycle compatibility; the unique artifact, final dual-platform CI, exact authorization, Registry, signatures, attestations, and provenance readback are complete
|
|
293
306
|
- [x] Publish `1.0.0`: repair multiple strictly empty reasoning-ID reuses and completed Web Search `open_page` actions; the unique artifact, final dual-platform CI, exact authorization, Registry, signatures, attestations, and provenance readback are complete
|
|
294
307
|
- [x] Publish `1.0.1`: repair HTTP 400 conflicts between server Search and same-name Harness function definitions while preserving true transport-error classification; the unique artifact, final dual-platform CI, exact authorization, Registry, signatures, attestations, and provenance readback are complete
|
|
308
|
+
- [x] Publish `1.0.2`: hide contentless `Think` projections for strictly empty reasoning while preserving protocol validation and output-index order; the unique artifact, final dual-platform CI, exact authorization, Registry, signatures, attestations, and provenance readback are complete
|
|
295
309
|
- [ ] A subsequent slice: opt-in image generation (inline results only, committed through Harness attachments)
|
|
296
310
|
- [ ] Complete independent Windows x64 acceptance and publish a later stable fix if needed
|
|
297
311
|
|
package/README.md
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
让 DeepSeek Harness 使用你已登录的官方 Grok Build 账号:动态模型发现、流式推理、图片输入、可选 Web/X Search、工具调用,以及账号额度与模型能力面板。
|
|
6
6
|
|
|
7
|
-
> 非官方社区项目,与 xAI 或 DeepSeek Harness 官方无隶属关系。本说明对应 `dsh-grok-provider@1.0.
|
|
7
|
+
> 非官方社区项目,与 xAI 或 DeepSeek Harness 官方无隶属关系。本说明对应 `dsh-grok-provider@1.0.4` 制品;`0.1.8` 曾发布后撤回且版本号不可复用。
|
|
8
8
|
|
|
9
|
-
`1.0.2`
|
|
9
|
+
`1.0.4` 修复 `dsh-grok-provider@1.0.3` 在 DeepSeek Harness `0.1.2-rc.1` 中启用后 Runtime 无法到达 ready 的问题:Host 不再 named import 已删除的 `installSettingsSection` / `settingsNamespace`,改用 `ctx.settings.installSection(...)` 注册 `llm-grok`。认证恢复、部分输出保留、Search、图片与固定 endpoint 边界不变。
|
|
10
10
|
|
|
11
|
-
本 README 随 `1.0.
|
|
11
|
+
本 README 随 `1.0.4` 一起进入 npm tarball,下面的精确安装命令也固定为 `1.0.4`。上一份已完成供应链回读的版本为 `1.0.3`。
|
|
12
12
|
|
|
13
13
|
## 它解决什么问题
|
|
14
14
|
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
| 模型 | 运行时读取账号可见的全部 Grok Build 模型,不维护静态模型白名单 |
|
|
20
20
|
| 对话 | Responses 流式文本、reasoning、加密 reasoning replay、usage 与 finish reason |
|
|
21
21
|
| 图片 | 仅精确 `grok-4.6` 接收 Harness attachment 中有界的 JPEG/PNG 图片;`grok-4.5` 与其他模型保持 text-only |
|
|
22
|
-
| 搜索 | 精确 `grok-4.6` 提供默认关闭的 Web/X Search;`1.0.
|
|
22
|
+
| 搜索 | 精确 `grok-4.6` 提供默认关闭的 Web/X Search;`1.0.4` 把 settings 注册切到 Harness `0.1.2-rc.1` 的 `installSection`,不改变 Search 协议 |
|
|
23
23
|
| 工具 | 将 function call 交回 Harness 权限层;Provider 本身不执行工具,关闭对应 Search 开关时保留本地 `web_search` / `x_search` |
|
|
24
24
|
| 账户面板 | 登录状态、每周/月额度、重置时间、动态模型能力与 reasoning 档位 |
|
|
25
25
|
| 界面 | Web 设置页中英文切换;TUI 提供闭合的 `/grok` 命令 |
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
### 1. 准备环境
|
|
30
30
|
|
|
31
|
-
- DeepSeek Harness `0.1.
|
|
31
|
+
- DeepSeek Harness `0.1.2-rc.1`
|
|
32
32
|
- Node.js `24.19.0` 或更高版本
|
|
33
33
|
- macOS arm64 或 Windows x64
|
|
34
34
|
- 官方 Grok Build CLI(支持 `login --oauth`,并使用官方默认 Grok home)
|
|
@@ -44,10 +44,10 @@ grok models
|
|
|
44
44
|
|
|
45
45
|
### 2. 安装 Provider
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
安装精确版本:
|
|
48
48
|
|
|
49
49
|
```sh
|
|
50
|
-
dsh plugin --profile web add dsh-grok-provider@1.0.
|
|
50
|
+
dsh plugin --profile web add dsh-grok-provider@1.0.4
|
|
51
51
|
dsh web
|
|
52
52
|
```
|
|
53
53
|
|
|
@@ -74,7 +74,7 @@ Web 设置页展示:
|
|
|
74
74
|
|
|
75
75
|
当 protobuf-backed billing 返回完整的 weekly/monthly 周期但省略零值百分比时,页面会恢复为“已使用 0% / 剩余 100%”;其他不完整响应保持未知,不伪造额度。
|
|
76
76
|
|
|
77
|
-
当前 Harness `0.1.
|
|
77
|
+
当前 Harness `0.1.2-rc.1` 的 `settings.section` 没有插件图标字段。Provider 内嵌来自 `@deepseek-ai/dsh-client-ui-primitives@0.1.0-rc.7`、采用 MIT 许可的 `IconThinkOutline16` 路径几何;仅当设置对话框中的标签与 DOM 结构都精确且唯一匹配时,才用它显示 `Grok Build` 导航项,否则安全保留宿主齿轮。兼容层的观察器、标记和样式均随插件卸载清理。
|
|
78
78
|
|
|
79
79
|
## 插件预览
|
|
80
80
|
|
|
@@ -134,10 +134,10 @@ dsh web
|
|
|
134
134
|
|
|
135
135
|
## 项目来源与发现
|
|
136
136
|
|
|
137
|
-
- 本说明对应的 npm 精确版本:[dsh-grok-provider@1.0.
|
|
138
|
-
-
|
|
139
|
-
- 发布证据:release commit `
|
|
140
|
-
- npm 页面文档修正:`1.0.1` tarball
|
|
137
|
+
- 本说明对应的 npm 精确版本:[dsh-grok-provider@1.0.3](https://www.npmjs.com/package/dsh-grok-provider/v/1.0.3)
|
|
138
|
+
- 当前已完成回读的 GitHub Release:[v1.0.3](https://github.com/yoshino-xiao7/dsh-grok-provider/releases/tag/v1.0.3)
|
|
139
|
+
- 发布证据:release commit `07ebd35c56348a1b3296bd46d1a69f5b0f430241`,annotated tag object `7ec8a8a1086749e7ac1dfb0ef2bd50c821838363` peel 至该提交,final CI run [`33378215345`](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33378215345),Trusted Publisher run [`33379149158` attempt 1](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33379149158/attempts/1)。仓库所有者明确授权的唯一 tarball 含 77 个文件、267,403 bytes,unpacked size 829,862 bytes;SHA-1 为 `6197c3d30ec1ef5f559371911d612f6236eee2f9`,SHA-256 为 `7f740c7258ab7eee0c96e1ddae3398b41a25e718cf267e244f8693c3c99aeb0d`,SRI 为 `sha512-kJgN0NKKV7Te3oAgbPnEua/EQCLnj5S0KWAWrhP0ixudJBepplRFARYHCxwxOwbG87bnX07Mz/dxCoBiphWhqQ==`。冻结制品、GitHub Release asset 与 npm Registry tarball 逐字节一致,Registry 锁定安装通过 Host/client 加载且生产审计为 0 漏洞;本包公开 metadata 含 1 个 Registry signature、2 个 attestations,安装图为 11 个已验证签名包与 2 个 attested 包。SLSA provenance 精确绑定 `release.yml`、`refs/tags/v1.0.3`、release commit 与 publish run。
|
|
140
|
+
- npm 页面文档修正:`1.0.1` tarball 内曾保留旧安装示例;已发布的 `1.0.2` tarball 内,本 README 使用精确 `@1.0.2` 命令。已发布的 `1.0.1` 字节不会被覆盖。
|
|
141
141
|
- GitHub 社区发现:仓库已添加 DeepSeek Harness 官方推荐的 `dsh-plugin` 与 `dsh` Topics
|
|
142
142
|
- YukiRyou 受管来源:[deepseek-yukiryou-plugin-catalog](https://github.com/yoshino-xiao7/deepseek-yukiryou-plugin-catalog),当前仍锁定已完成真机验收的 `dsh-grok-provider@0.1.0`,且只标记 `darwin-arm64`
|
|
143
143
|
|
|
@@ -145,12 +145,25 @@ dsh web
|
|
|
145
145
|
|
|
146
146
|
## 兼容性与范围
|
|
147
147
|
|
|
148
|
+
### `1.0.4` 修复边界
|
|
149
|
+
|
|
150
|
+
- Host 不再从 `@deepseek-ai/dsh-settings` named import `installSettingsSection` 或 `settingsNamespace`;改用 settings service 的 `installSection`,namespace 为合法字符串常量 `llm-grok`。
|
|
151
|
+
- settings service 缺失或重载时仍回退组合配置;启用、停用和失败回滚不删除 receipt、generation 或账号状态。
|
|
152
|
+
- required peer 提升到 Harness `0.1.2-rc.1` 实际提供的 `dsh-settings` / `dsh-llm` 与 Cordis `4.0.2`、Schemastery `3.18.2`;Web client inject 用 `@deepseek-ai/dsh-client-ui-renderer` 取代已删除的 `dsh-client-runtime`。
|
|
153
|
+
- 本版不改变认证恢复、部分输出保留、Search 协议、图片、固定 endpoint 或 Windows 浏览器登录边界。详情见 [`docs/releases/v1.0.4.md`](docs/releases/v1.0.4.md)。
|
|
154
|
+
|
|
155
|
+
### `1.0.3` 修复边界
|
|
156
|
+
|
|
157
|
+
- 仅在 200/SSE 开始前的 401/403 上,通过官方 Grok CLI 做一次有界共享会话刷新、重新读取凭据并最多重试一次;持续拒绝仍返回 `AUTH`,不新增 API Key 模式。
|
|
158
|
+
- 流开始后绝不自动重放。transport interruption、干净过早 EOF 或连续两分钟没有任何 wire bytes 时,只有无工具副作用且有界的 text/reasoning 可以被保留并附加“发送继续”提示;工具调用、未知事件、畸形协议、用户 abort 或空部分响应继续失败关闭。
|
|
159
|
+
- 精确 Node `24.19.0` 门禁为 274 tests、272 pass、0 fail、2 platform skips;唯一 77 文件制品的 final release commit、双平台 CI、明确授权、隔离安装、Registry、签名、attestations 与 provenance 回读均已完成。真实账号成功路径只验证当前连接,不模拟未来 401 或断流;本版也不构成 Windows 真机浏览器登录验收。详情见 [`docs/releases/v1.0.3.md`](docs/releases/v1.0.3.md)。
|
|
160
|
+
|
|
148
161
|
### `1.0.2` 修复边界
|
|
149
162
|
|
|
150
163
|
- 普通严格空 reasoning item 继续执行既有 ID/type、sequence、output index、状态、summary/content 空性、大小、可选 encrypted content 与闭合校验;Search-backed 同 ID 复用项继续额外执行精确 own-data 键集与 accessor 拒绝。本版没有扩大协议接受域。
|
|
151
164
|
- Provider 延迟创建 Harness reasoning block,只有收到首个非空 summary/raw delta 才发送 `block-start`,随后按原顺序发送 delta 和 `block-end`。完整生命周期最终为空时产生零个可见 reasoning chunk。
|
|
152
165
|
- 多个非空 reasoning item 继续按 output index 保持独立块;正文、工具调用、usage、finish reason、可见非空 reasoning replay、Search 后 replay 抑制和失败关闭行为不变。被隐藏的普通空 item 不占可见 block/replay 对齐槽,其有界 encrypted content 通过校验后不持久化。
|
|
153
|
-
- 精确 Node `24.19.0` 本地门禁为 265 tests、263 pass、0 fail、2 platform skips;生产依赖审计 0
|
|
166
|
+
- 精确 Node `24.19.0` 本地门禁为 265 tests、263 pass、0 fail、2 platform skips;生产依赖审计 0 漏洞,74 文件制品的 final release commit `be200f9352afe93b27dd2856d89c01674f0cd637` 与 final CI run [`33318426571`](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33318426571) 已在 macOS 14 / Windows 2022 全绿。唯一授权制品、隔离安装、Registry、签名、attestations 与 provenance 回读均已完成。
|
|
154
167
|
- 修复只影响升级后的新回复;旧会话中已经持久化的空 `Think` 行不会被回写删除。
|
|
155
168
|
- 本版不改变 Search 开关、模型、认证、图片、固定 endpoint、citation/URL 或 Harness 工具权限边界,也不构成 Windows 真机浏览器登录验收。
|
|
156
169
|
|
|
@@ -171,11 +184,11 @@ dsh web
|
|
|
171
184
|
- 最终源码完成两层脱敏真实账号复验:原始 Web/X 协议探针各 1 次请求、各 64 events,分别观察到对应 Search 且终态 `completed`;生产 adapter 共完成 5 次 Responses,direct Web/X 均为 `stop`,Harness 形状的本地 `x_search` call/result 续跑三轮依次为 `tool-calls`、`tool-calls`、`stop`,前两轮各 1 次本地调用。该续跑没有在同一 wire request 中同时放入 Harness `x_search` function definition 与 xAI `{ type: "x_search" }` server descriptor;`1.0.1` 后续才隔离出这一 HTTP 400 冲突。未保存结果、URL、prompt、身份或凭据;这些不是发布、OAuth 或 Windows 真机证据。
|
|
172
185
|
- manifest/lock 已同步为 `1.0.0`;Node 24 全量测试为 245 项、243 pass、0 fail、2 项平台跳过,生产依赖审计为 0 漏洞,确定性 build/bundle、72 项 dry-run pack、秘密模式扫描与 diff 检查均通过。代码 PR #28、main CI run [`33308371009`](https://github.com/yoshino-xiao7/dsh-grok-provider/actions/runs/33308371009)、最终 release commit、双平台 final CI、唯一制品、精确授权及 Registry/signature/attestation/provenance 回读均已完成。
|
|
173
186
|
|
|
174
|
-
| 项目 | `1.0.
|
|
187
|
+
| 项目 | `1.0.4` 兼容边界 |
|
|
175
188
|
| --- | --- |
|
|
176
|
-
| DeepSeek Harness | 精确支持 `0.1.
|
|
189
|
+
| DeepSeek Harness | 精确支持 `0.1.2-rc.1` |
|
|
177
190
|
| Node.js | `>=24.19.0` |
|
|
178
|
-
| macOS arm64 | 图片发送已完成真实 Harness 验证;`1.0.2`
|
|
191
|
+
| macOS arm64 | 图片发送已完成真实 Harness 验证;`1.0.4` 修复 `0.1.2-rc.1` settings 注册 |
|
|
179
192
|
| Windows x64 | 代码路径与现有 slow-fake 保持不变;网络可达时由官方 CLI 生成 URL 并打开浏览器,该路径仍未完成 Windows 真机验收 |
|
|
180
193
|
| macOS x64 / Linux | 不支持 |
|
|
181
194
|
| Grok CLI | 不锁完整版本;严格校验官方路径、`login --oauth` 能力与生产 OIDC 凭据契约 |
|
|
@@ -292,6 +305,7 @@ npm run pack:check
|
|
|
292
305
|
- [x] 发布 `0.1.11`:修复 High Effort + Web Search reasoning 生命周期兼容;唯一制品、双平台 final CI、精确授权、Registry、签名、attestations 与 provenance 回读均已完成
|
|
293
306
|
- [x] 发布 `1.0.0`:修复多次严格空 reasoning ID 复用和完成态 Web Search `open_page` action;唯一制品、双平台 final CI、精确授权、Registry、签名、attestations 与 provenance 回读均已完成
|
|
294
307
|
- [x] 发布 `1.0.1`:修复 server Search 与 Harness 同名 function definition 的 HTTP 400 冲突,并保留真实 transport error 分类;唯一制品、双平台 final CI、精确授权、Registry、签名、attestations 与 provenance 回读均已完成
|
|
308
|
+
- [x] 发布 `1.0.2`:隐藏严格空 reasoning 的无内容 `Think` 投影,同时保持协议校验与 output-index 顺序;唯一制品、双平台 final CI、精确授权、Registry、签名、attestations 与 provenance 回读均已完成
|
|
295
309
|
- [ ] 再后续独立切片:默认关闭的图片生成(只收内联结果,提交 Harness attachment)
|
|
296
310
|
- [ ] 完成 Windows x64 独立真机验收并按需发布后续稳定修复版
|
|
297
311
|
|
package/SECURITY.md
CHANGED
|
@@ -4,12 +4,18 @@
|
|
|
4
4
|
|
|
5
5
|
## 支持范围
|
|
6
6
|
|
|
7
|
-
本安全策略对应 `dsh-grok-provider@1.0.
|
|
7
|
+
本安全策略对应 `dsh-grok-provider@1.0.4` 制品。它把 Host settings 注册从已删除的 `installSettingsSection` named import 改为 `ctx.settings.installSection(...)`,以便在 DeepSeek Harness `0.1.2-rc.1` 中到达 ready。协议接受域、固定 origin、refresh-token 隔离、Search、模型、图片、工具和 URL 边界均不放宽。`1.0.3` 的流前一次官方 CLI 会话刷新与流后不重放规则保持不变。`0.1.8` 曾发布后撤回且版本号不可复用;网络可达 Windows 真机外部浏览器弹出仍未验收。
|
|
8
|
+
|
|
9
|
+
`1.0.3` 不把 HTTP 401/403 解释为 API Key 模式,也不自行刷新 OAuth grant:固定且有界的官方 `grok models` 子进程拥有刷新行为,插件随后重新读取并严格校验共享凭据。第二次拒绝仍为 `AUTH`。SSE source 的无状态 transport failure 和干净过早 EOF 与畸形事件分开;只有前两者能进入安全部分输出保留,status-bearing transport error、工具调用和所有 `INVALID_RESPONSE` 均不得被吞掉。部分内容不生成 replay metadata,提示不包含上游错误正文。
|
|
10
|
+
|
|
11
|
+
`1.0.3` 的发布回读已关闭:最终 release commit `07ebd35c56348a1b3296bd46d1a69f5b0f430241`,annotated tag object `7ec8a8a1086749e7ac1dfb0ef2bd50c821838363`,macOS 14 / Windows 2022 final CI run `33378215345`,Trusted Publisher run `33379149158` attempt 1。仓库所有者明确授权的唯一 77 文件制品为 267,403 bytes packed / 829,862 bytes unpacked,SHA-1 `6197c3d30ec1ef5f559371911d612f6236eee2f9`、SHA-256 `7f740c7258ab7eee0c96e1ddae3398b41a25e718cf267e244f8693c3c99aeb0d`、SRI `sha512-kJgN0NKKV7Te3oAgbPnEua/EQCLnj5S0KWAWrhP0ixudJBepplRFARYHCxwxOwbG87bnX07Mz/dxCoBiphWhqQ==`;冻结制品、GitHub Release asset 与 npm Registry tarball 逐字节一致,npm `latest=1.0.3`。锁定 Registry 安装、本包 1 个 Registry signature / 2 个 package attestations、安装图 11 个 signed / 2 个 attested packages,以及精确绑定 `release.yml` / `refs/tags/v1.0.3` / release commit / publish run 的 SLSA provenance 均已验证。这些供应链证据不构成未来 401/断流、OAuth 完整流程或网络可达 Windows 真机浏览器弹出的验收。
|
|
8
12
|
|
|
9
13
|
`1.0.0` 把 reasoning ID 复用收窄为 Search-backed 且严格空的完整生命周期:可见 summary/content 及 summary/raw lifecycle 必须为空,允许有界 opaque `encrypted_content`;每次复用都必须到达自己的 `response.output_item.done`,仅当 `response.incomplete` 到来时仍有复用段未闭合才失败关闭,所有复用段闭合后的 `max_output_tokens` 终态仍有效。非空、跨类型、未知 terminal 字段或 accessor 字段继续拒绝。完成态 Web Search `open_page` 只允许精确且有界的 `type + url`,streamed/final action 的类型与 URL 必须一致,校验后 URL 被丢弃且不会被访问、预览、下载或回放。脱敏真实账号复验未保存结果、URL、prompt、身份或凭据;供应链回读也不构成 OAuth、完整桌面会话或 Windows 真机浏览器验收。
|
|
10
14
|
|
|
11
15
|
`1.0.1` 已完成同名 function/server-tool 冲突、receipt 和 transport 错误归因修复及其独立供应链回读。`1.0.2` 不改变这些 request 或错误规则:普通空 reasoning 在决定“不可见”前继续执行既有 ID/type、sequence、output-index、状态、summary/content 空性、大小、可选 encrypted-content 与 terminal 闭合校验;Search-backed 同 ID 复用继续额外执行精确 own-data 键集与 accessor 拒绝。非空复用、乱序和未闭合复用项继续归类为 `INVALID_RESPONSE`。隐藏的普通空项不占 replay 对齐槽,其有界 encrypted content 校验后不持久化;server Search 仍不投影为本地工具。
|
|
12
16
|
|
|
17
|
+
`1.0.2` 的发布回读已关闭:最终 release commit `be200f9352afe93b27dd2856d89c01674f0cd637`,annotated tag object `b7efd3aabb99c73e1747d2d87890cdf9b284c438`,macOS 14 / Windows 2022 final CI run `33318426571`,Trusted Publisher run `33319150964` attempt 1。仓库所有者明确授权的唯一 74 文件制品为 255,282 bytes packed / 789,962 bytes unpacked,SHA-1 `3feddb7048fe4c796037804518999b12ae491802`、SHA-256 `010a21770cb3e4e42b7195984df1f5bf8dc5027066198cf99b7d713ac045f605`、SRI `sha512-TcvvPUXBJZEA728pVnUrXSZebGfIoB5ATG5041wA1OFzOE+hFTO98C5Fxl99WuFW2y7V89gkusYIKCpGlLNQIg==`;冻结候选、GitHub Release asset 与 npm Registry tarball 逐字节一致,npm `latest=1.0.2`。锁定隔离安装、本包 1 个 Registry signature / 2 个 package attestations、安装图 11 个 signed / 2 个 attested packages,以及精确绑定 `release.yml` / `refs/tags/v1.0.2` / release commit / publish run 的 SLSA provenance 均已验证。候选源码的真实账号验收只保留 Web `5/1/0/1/1` 与 X `3/1/0/1/1` 的 Search/non-empty-reasoning/empty-reasoning/non-empty-text/finish 计数;不保存内容、URL、身份、凭据或原始响应。上述证据均不构成 OAuth、完整桌面会话或网络可达 Windows 真机外部浏览器弹出验收。
|
|
18
|
+
|
|
13
19
|
`0.1.11` 沿用已发布版本的图片边界:只为精确 `grok-4.6` 提供有界图片输入;`grok-4.5` 与所有其他模型保持 text-only。普通 user/system 历史中的私有 reasoning 会被省略并保留相邻可见 text/image;只有有效的同 Provider assistant 历史可进入加密 reasoning replay,一层 tool-result 仍只接受公开 text/image。图片只能来自 Harness attachment service 的已验证 JPEG/PNG 投影,以 `detail:"high"` 发送,并受单图字节、像素、边长、数量、总字节与最终 JSON 上限约束;URL、路径、file ID 和调用方预制 data URL 都会被拒绝。
|
|
14
20
|
|
|
15
21
|
`0.1.7` 的闭合运行时诊断、CLI 安装恢复、OIDC timeout 脱敏结算和 `IconThinkOutline16` 兼容层在本版保持不变。官方 CLI 仍负责生成登录 URL 与打开外部浏览器;插件不修复系统 DNS、代理、防火墙、VPN 或 CLI 行为。
|
|
@@ -42,8 +48,8 @@
|
|
|
42
48
|
|
|
43
49
|
---
|
|
44
50
|
|
|
45
|
-
Release security note: the `1.0.2` artifact changes visible reasoning projection and its aligned replay envelope. A reasoning lifecycle that remains strictly empty produces no Harness block, while the first non-empty summary/raw delta begins the same visible block lifecycle used previously. Ordinary empty items retain their existing validation, and Search-backed same-ID reuse retains exact own-data/accessor checks. A hidden ordinary empty item's validated encrypted content is not persisted because no visible replay-alignment slot exists. No authentication, model, image, fixed-origin, URL, permission, or protocol-acceptance boundary is expanded.
|
|
51
|
+
Release security note: the published `1.0.2` artifact changes visible reasoning projection and its aligned replay envelope. A reasoning lifecycle that remains strictly empty produces no Harness block, while the first non-empty summary/raw delta begins the same visible block lifecycle used previously. Ordinary empty items retain their existing validation, and Search-backed same-ID reuse retains exact own-data/accessor checks. A hidden ordinary empty item's validated encrypted content is not persisted because no visible replay-alignment slot exists. No authentication, model, image, fixed-origin, URL, permission, or protocol-acceptance boundary is expanded. Version-specific publication and supply-chain facts above come from completed Registry, GitHub Release, signature, attestation, and provenance readback.
|
|
46
52
|
|
|
47
53
|
The `1.0.2` artifact retains the `1.0.1` function/server-tool collision and transport-error rules. An ordinary strictly empty lifecycle keeps the existing ID/type, sequence, output-index, status, empty summary/content, size, optional encrypted-content, and closure checks; a Search-backed same-ID reuse additionally keeps exact own-data key/accessor validation. Invalid reused content, ordering violations, and an open reused lifecycle at an incomplete terminal still fail closed; an ordinary non-reused partial item retains the existing max-token behavior. Visible non-empty replay and Search replay suppression remain unchanged, while a hidden ordinary empty item has no replay slot. Existing stored conversations are not rewritten, and this change does not establish real-device Windows browser login.
|
|
48
54
|
|
|
49
|
-
English summary: GitHub Private vulnerability reporting is enabled and preferred. This policy describes the `1.0.2` artifact, which suppresses the visible block for a reasoning lifecycle that remains strictly empty. The first non-empty summary/raw delta starts the existing block lifecycle in output-index order. Ordinary empty items retain their existing validation; Search-backed same-ID reuse retains exact key/accessor rejection; invalid, out-of-order, or incomplete responses with an open reused lifecycle still fail closed. Hidden ordinary empty items have no replay slot, while visible non-empty replay and Search suppression remain unchanged. Ordinary non-reused partial items retain the existing max-token behavior. The
|
|
55
|
+
English summary: GitHub Private vulnerability reporting is enabled and preferred. This policy describes the published `1.0.2` artifact, which suppresses the visible block for a reasoning lifecycle that remains strictly empty. The first non-empty summary/raw delta starts the existing block lifecycle in output-index order. Ordinary empty items retain their existing validation; Search-backed same-ID reuse retains exact key/accessor rejection; invalid, out-of-order, or incomplete responses with an open reused lifecycle still fail closed. Hidden ordinary empty items have no replay slot, while visible non-empty replay and Search suppression remain unchanged. Ordinary non-reused partial items retain the existing max-token behavior. The final release commit, tag object, CI and Trusted Publisher runs, byte-identical frozen/Release/Registry tarballs, Registry metadata, signatures, attestations, isolated installation, and SLSA provenance have all been read back for `1.0.2`; these supply-chain facts do not prove OAuth, complete live desktop sessions, or real-device Windows browser launch. Version `0.1.8` was published and withdrawn and cannot be reused. Fixed-origin, credential, settings, Search, model, image, URL, permission, and platform boundaries remain unchanged. Network-reachable external-browser launch is still unverified on a physical Windows device. Search results and citations remain untrusted remote data. Never send credentials, identity data, prompts, tool arguments, cookies, image bytes, Search contents, or unreviewed diagnostics.
|
package/dist/client/client.js
CHANGED
|
@@ -94,7 +94,7 @@ window.__ModuleLoader__.load({
|
|
|
94
94
|
const settingsNavSelector = `${settingsDialogSelector} > nav`
|
|
95
95
|
const settingsNavButtonSelector = `${settingsNavSelector} button`
|
|
96
96
|
// IconThinkOutline16 geometry from @deepseek-ai/dsh-client-ui-primitives@0.1.0-rc.7 (MIT); see THIRD_PARTY_NOTICES.md.
|
|
97
|
-
// settings.section has no icon slot in Harness 0.1.
|
|
97
|
+
// settings.section has no icon slot in Harness 0.1.2-rc.1, so the glyph is applied as a scoped mask.
|
|
98
98
|
const thinkIconSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
|
|
99
99
|
<path d="M8.00192 6.64454C8.75026 6.64454 9.35732 7.25169 9.35739 8.00001C9.35739 8.74838 8.7503 9.35548 8.00192 9.35548C7.25367 9.35533 6.64743 8.74829 6.64743 8.00001C6.6475 7.25178 7.25371 6.64468 8.00192 6.64454Z"/>
|
|
100
100
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.97165 1.29981C11.5853 0.718916 13.271 0.642197 14.3144 1.68555C15.3577 2.72902 15.2811 4.41466 14.7002 6.02833C14.4707 6.66561 14.1504 7.32937 13.75 8.00001C14.1504 8.67062 14.4707 9.33444 14.7002 9.97169C15.2811 11.5854 15.3578 13.271 14.3144 14.3145C13.271 15.3579 11.5854 15.2811 9.97165 14.7002C9.3344 14.4708 8.67059 14.1505 7.99997 13.75C7.32933 14.1505 6.66558 14.4708 6.02829 14.7002C4.41461 15.2811 2.72899 15.3578 1.68552 14.3145C0.642155 13.271 0.71887 11.5854 1.29977 9.97169C1.52915 9.33454 1.84865 8.67049 2.24899 8.00001C1.84866 7.32953 1.52915 6.66544 1.29977 6.02833C0.718852 4.41459 0.64207 2.729 1.68552 1.68555C2.72897 0.642112 4.41456 0.718887 6.02829 1.29981C6.66541 1.52918 7.32949 1.8487 7.99997 2.24903C8.67045 1.84869 9.33451 1.52919 9.97165 1.29981ZM12.9404 9.2129C12.4391 9.893 11.8616 10.5681 11.2148 11.2149C10.568 11.8616 9.89296 12.4391 9.21286 12.9404C9.62532 13.1579 10.0271 13.338 10.4121 13.4766C11.9146 14.0174 12.9172 13.8738 13.3955 13.3955C13.8737 12.9173 14.0174 11.9146 13.4765 10.4121C13.3379 10.0271 13.1578 9.62535 12.9404 9.2129ZM3.05856 9.2129C2.84121 9.62523 2.66197 10.0272 2.52341 10.4121C1.98252 11.9146 2.12627 12.9172 2.60446 13.3955C3.08278 13.8737 4.08544 14.0174 5.58786 13.4766C5.97264 13.338 6.37389 13.1577 6.7861 12.9404C6.10624 12.4393 5.43168 11.8614 4.78513 11.2149C4.13823 10.5679 3.55992 9.89313 3.05856 9.2129ZM7.99899 3.792C7.23179 4.31419 6.45306 4.95512 5.70407 5.70411C4.95509 6.45309 4.31415 7.23184 3.79196 7.99903C4.3143 8.76666 4.95471 9.54653 5.70407 10.2959C6.45309 11.0449 7.23271 11.6848 7.99997 12.207C8.76725 11.6848 9.54683 11.0449 10.2959 10.2959C11.0449 9.54686 11.6848 8.76729 12.207 8.00001C11.6848 7.23275 11.0449 6.45312 10.2959 5.70411C9.5465 4.95475 8.76662 4.31434 7.99899 3.792ZM5.58786 2.52344C4.08533 1.98255 3.08272 2.12625 2.60446 2.6045C2.12621 3.08275 1.98252 4.08536 2.52341 5.5879C2.66189 5.97253 2.8414 6.37409 3.05856 6.78614C3.55983 6.10611 4.1384 5.43189 4.78513 4.78516C5.43186 4.13843 6.10606 3.55987 6.7861 3.0586C6.37405 2.84144 5.97249 2.66192 5.58786 2.52344ZM13.3955 2.6045C12.9172 2.12631 11.9146 1.98257 10.4121 2.52344C10.0272 2.66201 9.62519 2.84125 9.21286 3.0586C9.8931 3.55996 10.5679 4.13827 11.2148 4.78516C11.8614 5.43172 12.4392 6.10627 12.9404 6.78614C13.1577 6.37393 13.338 5.97267 13.4765 5.5879C14.0174 4.08549 13.8736 3.08281 13.3955 2.6045Z"/>
|
package/dist/host/index.mjs
CHANGED
|
@@ -4,10 +4,6 @@ import { randomUUID } from "node:crypto"
|
|
|
4
4
|
import packageJson from "../../package.json" with { type: "json" }
|
|
5
5
|
|
|
6
6
|
import { attributionHeaders } from "@deepseek-ai/dsh-llm"
|
|
7
|
-
import {
|
|
8
|
-
installSettingsSection,
|
|
9
|
-
settingsNamespace,
|
|
10
|
-
} from "@deepseek-ai/dsh-settings"
|
|
11
7
|
import Schema from "@deepseek-ai/schemastery"
|
|
12
8
|
|
|
13
9
|
import {
|
|
@@ -31,7 +27,7 @@ import { createRuntimeDiagnostics } from "../internal/runtime-diagnostics.mjs"
|
|
|
31
27
|
|
|
32
28
|
export const name = "llm-grok"
|
|
33
29
|
export const inject = ["llm"]
|
|
34
|
-
const SETTINGS_NAMESPACE =
|
|
30
|
+
const SETTINGS_NAMESPACE = "llm-grok"
|
|
35
31
|
|
|
36
32
|
export const Config = Schema.object({
|
|
37
33
|
webSearch: Schema.boolean().default(false).description("Allow xAI Web Search for regular Grok requests"),
|
|
@@ -84,11 +80,13 @@ export function apply(ctx, config) {
|
|
|
84
80
|
mapError: mapLlmError,
|
|
85
81
|
}),
|
|
86
82
|
})
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
83
|
+
ctx.inject(["settings"], (settingsCtx) => {
|
|
84
|
+
settingsCtx.settings.installSection(ctx, SETTINGS_NAMESPACE, Config, config, {
|
|
85
|
+
setSource(source) {
|
|
86
|
+
currentConfig = source
|
|
87
|
+
},
|
|
88
|
+
onChange() {},
|
|
89
|
+
})
|
|
92
90
|
})
|
|
93
91
|
const authController = createAuthController({
|
|
94
92
|
registry: runtime.auth,
|