@nanmicoder/dsh-agent-teams 0.1.21 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -14
- package/README_ZH.md +30 -15
- package/compatibility.json +6 -2
- package/lib/git-artifact-stamp.json +5 -0
- package/package.json +55 -51
- package/pnpm-workspace.yaml +288 -0
- package/release-notes/v0.1.22-rc.1.md +24 -0
- package/release-notes/v0.1.22.md +18 -0
- package/scripts/compatibility.mjs +26 -4
- package/scripts/doctor.mjs +9 -4
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@ Ask in natural language. The plugin provides the team protocol, 14 coordination
|
|
|
30
30
|
|
|
31
31
|
## Releases
|
|
32
32
|
|
|
33
|
-
[v0.1.
|
|
33
|
+
[v0.1.22](./release-notes/v0.1.22.md) targets the published Harness `0.2.0-rc.2` packages and retains script-free Git installation. This plugin release uses npm `latest`; the recommended host is Harness `0.2.0-rc.2` (its `next` channel). See the exact [support matrix](./compatibility.json).
|
|
34
34
|
|
|
35
35
|
## Why AgentTeams?
|
|
36
36
|
|
|
@@ -49,38 +49,53 @@ The conversation card and activity panel use Harness's official locale service.
|
|
|
49
49
|
|
|
50
50
|
## Install and choose versions
|
|
51
51
|
|
|
52
|
-
**Recommended pair: DeepSeek Harness `0.
|
|
52
|
+
**Recommended pair: DeepSeek Harness `0.2.0-rc.2` + AgentTeams `0.1.22`. The host remains an RC.**
|
|
53
53
|
|
|
54
54
|
| Use case | DeepSeek Harness | AgentTeams plugin |
|
|
55
55
|
| --- | --- | --- |
|
|
56
|
-
| **Recommended** | **`0.
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
56
|
+
| **Recommended** | **`0.2.0-rc.2`** | **`0.1.22`** |
|
|
57
|
+
| Previous recommended RC | `0.1.7-rc.2` | `0.1.22` |
|
|
58
|
+
| Legacy RC | `0.1.5-rc.1`, `0.1.5-rc.2`, `0.1.5-rc.3` | `0.1.22` |
|
|
59
|
+
| Retaining an older RC | `0.1.2-rc.1` | `0.1.22` |
|
|
60
|
+
| Developer Alpha testing | `0.1.2-alpha.5` | `0.1.22` |
|
|
61
|
+
| Retaining an older Alpha | `0.1.2-alpha.2` | `0.1.22` |
|
|
61
62
|
|
|
62
|
-
###
|
|
63
|
+
### Desktop app
|
|
64
|
+
|
|
65
|
+
In the app sidebar, open **Plugins → Add plugin** and enter the npm package spec:
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
@nanmicoder/dsh-agent-teams@0.1.22
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Install it, then choose **Enable now**. If the host asks for a restart, restart the desktop app. Use the package spec above for the published build; an npm or GitHub webpage URL is not the same install source. For Git installation, use a commit containing the verified build outputs described below.
|
|
72
|
+
|
|
73
|
+
The desktop app supplies its own Harness core and package manager. Upgrading the global CLI does not upgrade that core, and an ordinary standalone CLI cannot manage its desktop profile. The CLI carrier installed by the desktop app can manage that profile in `0.2.0-rc.2`. Check the embedded core against the compatibility list. Harness `0.2.0-rc.2` is now the exact published target; its RC status is unchanged. The earlier source-only `0.2.0` prediction is no longer a support declaration. See the [release migration evidence](./docs/harness-0.2.0-rc.2/README.md).
|
|
74
|
+
|
|
75
|
+
### CLI / Web: 1. Install DeepSeek Harness
|
|
63
76
|
|
|
64
77
|
```sh
|
|
65
|
-
npm install --global @deepseek-ai/dsh@0.
|
|
78
|
+
npm install --global @deepseek-ai/dsh@0.2.0-rc.2
|
|
66
79
|
dsh --version
|
|
67
80
|
```
|
|
68
81
|
|
|
69
82
|
Skip this if you already run this version. Alpha is opt-in: select an exact Alpha version from the table and lock all host dependencies as described in the [maintenance guide](./docs/maintenance-workflow.md).
|
|
70
83
|
|
|
71
|
-
### 2. Install the AgentTeams plugin
|
|
84
|
+
### CLI / Web: 2. Install the AgentTeams plugin
|
|
72
85
|
|
|
73
86
|
Install or upgrade from npm (pinned to this `latest` release):
|
|
74
87
|
|
|
75
88
|
```sh
|
|
76
|
-
dsh plugin --profile web add --save-exact @nanmicoder/dsh-agent-teams@0.1.
|
|
89
|
+
dsh plugin --profile web add --save-exact @nanmicoder/dsh-agent-teams@0.1.22
|
|
77
90
|
```
|
|
78
91
|
|
|
79
|
-
|
|
92
|
+
For a CLI-managed installation, replace `web` with your active CLI profile. **Stop and restart that profile's Harness process, then refresh the browser.** Installing the plugin does not upgrade Harness; the host and plugin have independent `latest` channels.
|
|
93
|
+
|
|
94
|
+
For Git installation, use a Git package spec pinned to a commit containing the verified server, client, and type build outputs in `lib/`, rather than an npm webpage URL. The repository distributes these outputs so installation does not need a `prepare` hook or build-script approval. Source maintainers must run `pnpm build` and update the committed outputs whenever the source changes. Existing npm releases remain immutable.
|
|
80
95
|
|
|
81
|
-
For
|
|
96
|
+
For a manually cloned checkout, run `pnpm install --frozen-lockfile` and `pnpm build` after pulling, then restart the corresponding Harness process. Updating Git alone does not update local build output. See the [maintenance guide](./docs/maintenance-workflow.md).
|
|
82
97
|
|
|
83
|
-
>
|
|
98
|
+
> For older `0.1.0-*` / `0.1.1-*` or unlisted hosts, keep a working pair and follow the [older-version and diagnostic guide](./docs/maintenance-workflow.md).
|
|
84
99
|
|
|
85
100
|
See the full [compatibility matrix](./compatibility.json), [source installation and Alpha testing guide](./docs/maintenance-workflow.md), and [verification coverage and platform limits](./docs/maintenance-2026-09-06/release/README.md).
|
|
86
101
|
|
package/README_ZH.md
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
## 版本更新
|
|
32
32
|
|
|
33
|
-
[v0.1.
|
|
33
|
+
[v0.1.22](./release-notes/v0.1.22.md) 切换到已发布的 Harness `0.2.0-rc.2`,保留无需构建脚本的 Git 安装。本插件正式版使用 npm `latest` 渠道;推荐搭配 Harness `0.2.0-rc.2`(宿主的 `next` 渠道)。精确支持范围见 [compatibility.json](./compatibility.json)。
|
|
34
34
|
|
|
35
35
|
## 为什么需要 AgentTeams?
|
|
36
36
|
|
|
@@ -48,38 +48,53 @@
|
|
|
48
48
|
|
|
49
49
|
## 安装与版本选择
|
|
50
50
|
|
|
51
|
-
**推荐组合:DeepSeek Harness `0.
|
|
51
|
+
**推荐组合:DeepSeek Harness `0.2.0-rc.2` + AgentTeams `0.1.22`。宿主仍为 RC 版本。**
|
|
52
52
|
|
|
53
53
|
| 使用场景 | DeepSeek Harness | AgentTeams 插件 |
|
|
54
54
|
| --- | --- | --- |
|
|
55
|
-
| **推荐版本** | **`0.
|
|
56
|
-
|
|
|
57
|
-
| 保留旧 RC | `0.1.
|
|
58
|
-
|
|
|
59
|
-
|
|
|
55
|
+
| **推荐版本** | **`0.2.0-rc.2`** | **`0.1.22`** |
|
|
56
|
+
| 上一推荐 RC | `0.1.7-rc.2` | `0.1.22` |
|
|
57
|
+
| 保留旧 RC | `0.1.5-rc.1`, `0.1.5-rc.2`, `0.1.5-rc.3` | `0.1.22` |
|
|
58
|
+
| 保留旧 RC | `0.1.2-rc.1` | `0.1.22` |
|
|
59
|
+
| 开发者测试 Alpha | `0.1.2-alpha.5` | `0.1.22` |
|
|
60
|
+
| 保留旧 Alpha | `0.1.2-alpha.2` | `0.1.22` |
|
|
60
61
|
|
|
61
|
-
###
|
|
62
|
+
### 桌面端
|
|
63
|
+
|
|
64
|
+
在应用侧栏打开「插件 → 添加插件」,输入 npm 包名和版本:
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
@nanmicoder/dsh-agent-teams@0.1.22
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
安装完成后点击「立即启用」;宿主提示需要重启时,重启桌面应用。发布版请使用上面的包名,npm 或 GitHub 网页链接与 npm 包名不是同一种安装来源。从 Git 安装时,请选用包含下方所述已验证构建产物的提交。
|
|
71
|
+
|
|
72
|
+
桌面端自带 Harness 内核与包管理器,升级全局 CLI 不会升级桌面端;普通独立 CLI 不能管理桌面 profile,桌面端自带的 CLI carrier 在此版本可以管理。当前精确目标是已发布的 `0.2.0-rc.2`,仍属于 RC;此前源码预测的 `0.2.0` 已退出支持声明。详见[迁移验收记录](./docs/harness-0.2.0-rc.2/README.md)。
|
|
73
|
+
|
|
74
|
+
### CLI / Web:1. 安装 DeepSeek Harness
|
|
62
75
|
|
|
63
76
|
```sh
|
|
64
|
-
npm install --global @deepseek-ai/dsh@0.
|
|
77
|
+
npm install --global @deepseek-ai/dsh@0.2.0-rc.2
|
|
65
78
|
dsh --version
|
|
66
79
|
```
|
|
67
80
|
|
|
68
81
|
已有该版本可跳过。Alpha 仅供主动测试:手动指定表中的 Alpha 版本,并按[维护指南](./docs/maintenance-workflow.md)锁定整组宿主依赖。
|
|
69
82
|
|
|
70
|
-
### 2. 安装 AgentTeams 插件
|
|
83
|
+
### CLI / Web:2. 安装 AgentTeams 插件
|
|
71
84
|
|
|
72
|
-
从 npm 安装或升级插件(命令锁定本次 `latest`
|
|
85
|
+
从 npm 安装或升级插件(命令锁定本次 `latest` 正式版):
|
|
73
86
|
|
|
74
87
|
```sh
|
|
75
|
-
dsh plugin --profile web add --save-exact @nanmicoder/dsh-agent-teams@0.1.
|
|
88
|
+
dsh plugin --profile web add --save-exact @nanmicoder/dsh-agent-teams@0.1.22
|
|
76
89
|
```
|
|
77
90
|
|
|
78
|
-
|
|
91
|
+
CLI 管理的安装可将 `web` 换成实际使用的 CLI profile。**安装后,停止并重新启动该 profile 的 Harness 进程,再刷新浏览器。** 安装插件不会自动升级宿主;Harness 的 `latest` 与插件的 `latest` 是两个独立渠道。
|
|
92
|
+
|
|
93
|
+
从 Git 安装时,使用固定到包含已验证 `lib/` 构建产物的提交的 Git 包规格,不要填 npm 网页链接。仓库随代码分发服务端、客户端和类型产物,安装时不需要执行 `prepare` 或批准构建脚本。源码维护者每次修改源码后,都需运行 `pnpm build` 并更新已提交的产物。已经发布的 npm 产物保持不变。
|
|
79
94
|
|
|
80
|
-
|
|
95
|
+
手动克隆源码的用户,拉取代码后需重新运行 `pnpm install --frozen-lockfile` 和 `pnpm build`,再重启对应的 Harness;只更新 Git 不会更新本地构建产物。详见[维护指南](./docs/maintenance-workflow.md)。
|
|
81
96
|
|
|
82
|
-
>
|
|
97
|
+
> 旧 `0.1.0-*` / `0.1.1-*` 或其他未列出的宿主,请先保留已工作的组合,参考[旧版本与诊断指引](./docs/maintenance-workflow.md)。
|
|
83
98
|
|
|
84
99
|
完整[兼容清单](./compatibility.json)、[源码安装与 Alpha 验证](./docs/maintenance-workflow.md)、[已验证范围与平台限制](./docs/maintenance-2026-09-06/release/README.md)。
|
|
85
100
|
|
package/compatibility.json
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"recommendedHost": "0.
|
|
3
|
+
"recommendedHost": "0.2.0-rc.2",
|
|
4
4
|
"previewTag": "next",
|
|
5
5
|
"supportedHosts": [
|
|
6
6
|
{
|
|
7
|
-
"version": "0.
|
|
7
|
+
"version": "0.2.0-rc.2",
|
|
8
8
|
"track": "recommended"
|
|
9
9
|
},
|
|
10
|
+
{
|
|
11
|
+
"version": "0.1.7-rc.2",
|
|
12
|
+
"track": "legacy"
|
|
13
|
+
},
|
|
10
14
|
{
|
|
11
15
|
"version": "0.1.5-rc.3",
|
|
12
16
|
"track": "legacy"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nanmicoder/dsh-agent-teams",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"description": "AgentTeams for DeepSeek Harness: multi-agent team collaboration (captain, members, tasks with dependencies, messaging) driven by natural language, with a tree monitor in the web GUI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"README_ZH.md",
|
|
29
29
|
"compatibility.json",
|
|
30
30
|
"scripts/doctor.mjs",
|
|
31
|
-
"scripts/compatibility.mjs"
|
|
31
|
+
"scripts/compatibility.mjs",
|
|
32
|
+
"pnpm-workspace.yaml"
|
|
32
33
|
],
|
|
33
34
|
"license": "MIT",
|
|
34
35
|
"author": {
|
|
@@ -82,27 +83,27 @@
|
|
|
82
83
|
},
|
|
83
84
|
"peerDependencies": {
|
|
84
85
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
85
|
-
"@deepseek-ai/dsh-agent": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
86
|
-
"@deepseek-ai/dsh-api-session-controller": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
87
|
-
"@deepseek-ai/dsh-client-connection": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
88
|
-
"@deepseek-ai/dsh-client-locale": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
89
|
-
"@deepseek-ai/dsh-client-store": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
90
|
-
"@deepseek-ai/dsh-client-ui-chat": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
91
|
-
"@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
92
|
-
"@deepseek-ai/dsh-client-ui-layout": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
93
|
-
"@deepseek-ai/dsh-client-ui-model-selection": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
94
|
-
"@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
95
|
-
"@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
96
|
-
"@deepseek-ai/dsh-client-ui-session": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
97
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
98
|
-
"@deepseek-ai/dsh-commands": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
99
|
-
"@deepseek-ai/dsh-llm": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
100
|
-
"@deepseek-ai/dsh-session": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
101
|
-
"@deepseek-ai/dsh-session-projection": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
102
|
-
"@deepseek-ai/dsh-subagent": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
103
|
-
"@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
104
|
-
"@deepseek-ai/dsh-tools": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
105
|
-
"@deepseek-ai/dsh-util-values": "0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
86
|
+
"@deepseek-ai/dsh-agent": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
87
|
+
"@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
88
|
+
"@deepseek-ai/dsh-client-connection": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
89
|
+
"@deepseek-ai/dsh-client-locale": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
90
|
+
"@deepseek-ai/dsh-client-store": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
91
|
+
"@deepseek-ai/dsh-client-ui-chat": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
92
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
93
|
+
"@deepseek-ai/dsh-client-ui-layout": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
94
|
+
"@deepseek-ai/dsh-client-ui-model-selection": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
95
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
96
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
97
|
+
"@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
98
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
99
|
+
"@deepseek-ai/dsh-commands": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
100
|
+
"@deepseek-ai/dsh-llm": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
101
|
+
"@deepseek-ai/dsh-session": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
102
|
+
"@deepseek-ai/dsh-session-projection": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
103
|
+
"@deepseek-ai/dsh-subagent": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
104
|
+
"@deepseek-ai/dsh-system-prompt": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
105
|
+
"@deepseek-ai/dsh-tools": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
106
|
+
"@deepseek-ai/dsh-util-values": "0.2.0-rc.2 || 0.1.7-rc.2 || 0.1.5-rc.3 || 0.1.5-rc.2 || 0.1.5-rc.1 || 0.1.2-rc.1 || 0.1.2-alpha.5 || 0.1.2-alpha.2",
|
|
106
107
|
"@deepseek-ai/schemastery": "^3.18.2",
|
|
107
108
|
"react": "^18.2.0"
|
|
108
109
|
},
|
|
@@ -182,31 +183,31 @@
|
|
|
182
183
|
},
|
|
183
184
|
"devDependencies": {
|
|
184
185
|
"@deepseek-ai/cordis": "4.0.4",
|
|
185
|
-
"@deepseek-ai/dsh": "0.
|
|
186
|
-
"@deepseek-ai/dsh-agent": "0.
|
|
187
|
-
"@deepseek-ai/dsh-api-session-controller": "0.
|
|
188
|
-
"@deepseek-ai/dsh-client-connection": "0.
|
|
189
|
-
"@deepseek-ai/dsh-client-locale": "0.
|
|
190
|
-
"@deepseek-ai/dsh-client-store": "0.
|
|
191
|
-
"@deepseek-ai/dsh-client-ui-chat": "0.
|
|
192
|
-
"@deepseek-ai/dsh-client-ui-conversation": "0.
|
|
193
|
-
"@deepseek-ai/dsh-client-ui-layout": "0.
|
|
194
|
-
"@deepseek-ai/dsh-client-ui-model-selection": "0.
|
|
195
|
-
"@deepseek-ai/dsh-client-ui-primitives": "0.
|
|
196
|
-
"@deepseek-ai/dsh-client-ui-renderer": "0.
|
|
197
|
-
"@deepseek-ai/dsh-client-ui-session": "0.
|
|
198
|
-
"@deepseek-ai/dsh-client-ui-sidebar-right": "0.
|
|
199
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.
|
|
200
|
-
"@deepseek-ai/dsh-commands": "0.
|
|
201
|
-
"@deepseek-ai/dsh-llm": "0.
|
|
202
|
-
"@deepseek-ai/dsh-llm-retry": "0.
|
|
203
|
-
"@deepseek-ai/dsh-session": "0.
|
|
204
|
-
"@deepseek-ai/dsh-session-projection": "0.
|
|
205
|
-
"@deepseek-ai/dsh-subagent": "0.
|
|
206
|
-
"@deepseek-ai/dsh-system-prompt": "0.
|
|
207
|
-
"@deepseek-ai/dsh-tools": "0.
|
|
208
|
-
"@deepseek-ai/dsh-util-values": "0.
|
|
209
|
-
"@deepseek-ai/dsh-workspace": "0.
|
|
186
|
+
"@deepseek-ai/dsh": "0.2.0-rc.2",
|
|
187
|
+
"@deepseek-ai/dsh-agent": "0.2.0-rc.2",
|
|
188
|
+
"@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.2",
|
|
189
|
+
"@deepseek-ai/dsh-client-connection": "0.2.0-rc.2",
|
|
190
|
+
"@deepseek-ai/dsh-client-locale": "0.2.0-rc.2",
|
|
191
|
+
"@deepseek-ai/dsh-client-store": "0.2.0-rc.2",
|
|
192
|
+
"@deepseek-ai/dsh-client-ui-chat": "0.2.0-rc.2",
|
|
193
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.2",
|
|
194
|
+
"@deepseek-ai/dsh-client-ui-layout": "0.2.0-rc.2",
|
|
195
|
+
"@deepseek-ai/dsh-client-ui-model-selection": "0.2.0-rc.2",
|
|
196
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.2.0-rc.2",
|
|
197
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.2",
|
|
198
|
+
"@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.2",
|
|
199
|
+
"@deepseek-ai/dsh-client-ui-sidebar-right": "0.2.0-rc.2",
|
|
200
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.2",
|
|
201
|
+
"@deepseek-ai/dsh-commands": "0.2.0-rc.2",
|
|
202
|
+
"@deepseek-ai/dsh-llm": "0.2.0-rc.2",
|
|
203
|
+
"@deepseek-ai/dsh-llm-retry": "0.2.0-rc.2",
|
|
204
|
+
"@deepseek-ai/dsh-session": "0.2.0-rc.2",
|
|
205
|
+
"@deepseek-ai/dsh-session-projection": "0.2.0-rc.2",
|
|
206
|
+
"@deepseek-ai/dsh-subagent": "0.2.0-rc.2",
|
|
207
|
+
"@deepseek-ai/dsh-system-prompt": "0.2.0-rc.2",
|
|
208
|
+
"@deepseek-ai/dsh-tools": "0.2.0-rc.2",
|
|
209
|
+
"@deepseek-ai/dsh-util-values": "0.2.0-rc.2",
|
|
210
|
+
"@deepseek-ai/dsh-workspace": "0.2.0-rc.2",
|
|
210
211
|
"@deepseek-ai/schemastery": "3.18.4",
|
|
211
212
|
"@types/node": "^24.13.3",
|
|
212
213
|
"@types/react": "~18.3.1",
|
|
@@ -221,13 +222,13 @@
|
|
|
221
222
|
"dsh-agent-teams-doctor": "scripts/doctor.mjs"
|
|
222
223
|
},
|
|
223
224
|
"scripts": {
|
|
224
|
-
"build": "node scripts/clean-build.mjs && tsc -p tsconfig.json && tsc -p tsconfig.client.json && tsdown",
|
|
225
|
+
"build": "node scripts/clean-build.mjs && tsc -p tsconfig.json && tsc -p tsconfig.client.json && tsdown && node scripts/git-artifacts.mjs --write",
|
|
225
226
|
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.client.json --noEmit",
|
|
226
227
|
"sync:skill": "node scripts/sync-skill.mjs",
|
|
227
228
|
"update:skills": "node scripts/update-skills.mjs",
|
|
228
229
|
"test:skills-updater": "node --test scripts/update-skills.test.mjs",
|
|
229
230
|
"verify:skill": "node scripts/sync-skill.mjs --check",
|
|
230
|
-
"verify": "node scripts/verify.mjs && node scripts/fallback-tdd.mjs && node scripts/member-failure-tdd.mjs && pnpm verify:quality-gates && node scripts/lifecycle-verify.mjs && node scripts/stress-verify.mjs && node --test scripts/issue-159.test.mjs && pnpm verify:web-routes && pnpm verify:release && pnpm verify:readme && pnpm verify:skill && pnpm verify:harness-contract && pnpm verify:http-body && pnpm verify:compatibility && pnpm verify:capabilities && pnpm verify:member-spawn-recovery",
|
|
231
|
+
"verify": "node scripts/verify.mjs && node scripts/fallback-tdd.mjs && node scripts/member-failure-tdd.mjs && pnpm verify:quality-gates && node scripts/lifecycle-verify.mjs && node scripts/stress-verify.mjs && node --test scripts/issue-159.test.mjs && pnpm verify:web-routes && pnpm verify:release && pnpm verify:readme && pnpm verify:skill && pnpm verify:harness-contract && pnpm verify:http-body && pnpm verify:compatibility && pnpm verify:capabilities && pnpm verify:member-spawn-recovery && pnpm test:git-install && pnpm verify:source-runner && pnpm verify:git-artifact",
|
|
231
232
|
"verify:quality-gates": "node scripts/quality-gates-tdd.mjs && node --test scripts/quality-gates-repair-scope.test.mjs scripts/quality-gates-amend.test.mjs",
|
|
232
233
|
"verify:web-routes": "node scripts/web-routes-verify.mjs",
|
|
233
234
|
"verify:release": "node --test scripts/release-metadata.test.mjs",
|
|
@@ -237,6 +238,9 @@
|
|
|
237
238
|
"verify:http-body": "node --test scripts/http-body.test.mjs",
|
|
238
239
|
"doctor": "node scripts/doctor.mjs",
|
|
239
240
|
"verify:capabilities": "node --test scripts/capabilities.test.mjs",
|
|
240
|
-
"verify:member-spawn-recovery": "node --test scripts/member-spawn-recovery.test.mjs"
|
|
241
|
+
"verify:member-spawn-recovery": "node --test scripts/member-spawn-recovery.test.mjs",
|
|
242
|
+
"test:git-install": "node --test scripts/git-artifacts.test.mjs",
|
|
243
|
+
"verify:source-runner": "node --test scripts/harness-source-verify.test.mjs",
|
|
244
|
+
"verify:git-artifact": "node scripts/git-artifacts.mjs"
|
|
241
245
|
}
|
|
242
246
|
}
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
{
|
|
2
|
+
"packages": [
|
|
3
|
+
"."
|
|
4
|
+
],
|
|
5
|
+
"overrides": {
|
|
6
|
+
"@deepseek-ai/dsh": "0.2.0-rc.2",
|
|
7
|
+
"@deepseek-ai/dsh-hmr": "0.2.0-rc.2",
|
|
8
|
+
"@deepseek-ai/dsh-base": "0.2.0-rc.2",
|
|
9
|
+
"@deepseek-ai/dsh-goal": "0.2.0-rc.2",
|
|
10
|
+
"@deepseek-ai/dsh-skill": "0.2.0-rc.2",
|
|
11
|
+
"@deepseek-ai/dsh-acp-app": "0.2.0-rc.2",
|
|
12
|
+
"@deepseek-ai/dsh-cmdline": "0.2.0-rc.2",
|
|
13
|
+
"@deepseek-ai/dsh-persona": "0.2.0-rc.2",
|
|
14
|
+
"@deepseek-ai/dsh-sdk-app": "0.2.0-rc.2",
|
|
15
|
+
"@deepseek-ai/dsh-tool-fs": "0.2.0-rc.2",
|
|
16
|
+
"@deepseek-ai/dsh-web-app": "0.2.0-rc.2",
|
|
17
|
+
"@deepseek-ai/dsh-webhook": "0.2.0-rc.2",
|
|
18
|
+
"@deepseek-ai/dsh-app-boot": "0.2.0-rc.2",
|
|
19
|
+
"@deepseek-ai/dsh-fs-local": "0.2.0-rc.2",
|
|
20
|
+
"@deepseek-ai/dsh-headless": "0.2.0-rc.2",
|
|
21
|
+
"@deepseek-ai/dsh-schedule": "0.2.0-rc.2",
|
|
22
|
+
"@deepseek-ai/dsh-terminal": "0.2.0-rc.2",
|
|
23
|
+
"@deepseek-ai/dsh-tool-web": "0.2.0-rc.2",
|
|
24
|
+
"@deepseek-ai/dsh-plan-mode": "0.2.0-rc.2",
|
|
25
|
+
"@deepseek-ai/dsh-tool-bash": "0.2.0-rc.2",
|
|
26
|
+
"@deepseek-ai/dsh-tool-goal": "0.2.0-rc.2",
|
|
27
|
+
"@deepseek-ai/dsh-tool-jobs": "0.2.0-rc.2",
|
|
28
|
+
"@deepseek-ai/dsh-tool-pwsh": "0.2.0-rc.2",
|
|
29
|
+
"@deepseek-ai/dsh-tool-todo": "0.2.0-rc.2",
|
|
30
|
+
"@deepseek-ai/dsh-home-paths": "0.2.0-rc.2",
|
|
31
|
+
"@deepseek-ai/dsh-http-proxy": "0.2.0-rc.2",
|
|
32
|
+
"@deepseek-ai/dsh-jobs-local": "0.2.0-rc.2",
|
|
33
|
+
"@deepseek-ai/dsh-mcp-client": "0.2.0-rc.2",
|
|
34
|
+
"@deepseek-ai/dsh-pwsh-local": "0.2.0-rc.2",
|
|
35
|
+
"@deepseek-ai/dsh-tool-ralph": "0.2.0-rc.2",
|
|
36
|
+
"@deepseek-ai/dsh-tool-skill": "0.2.0-rc.2",
|
|
37
|
+
"@deepseek-ai/dsh-hooks-codex": "0.2.0-rc.2",
|
|
38
|
+
"@deepseek-ai/dsh-sdk-minimal": "0.2.0-rc.2",
|
|
39
|
+
"@deepseek-ai/dsh-token-meter": "0.2.0-rc.2",
|
|
40
|
+
"@deepseek-ai/dsh-tool-cordis": "0.2.0-rc.2",
|
|
41
|
+
"@deepseek-ai/dsh-agent-preset": "0.2.0-rc.2",
|
|
42
|
+
"@deepseek-ai/dsh-atomic-write": "0.2.0-rc.2",
|
|
43
|
+
"@deepseek-ai/dsh-command-goal": "0.2.0-rc.2",
|
|
44
|
+
"@deepseek-ai/dsh-pwsh-sandbox": "0.2.0-rc.2",
|
|
45
|
+
"@deepseek-ai/dsh-skill-office": "0.2.0-rc.2",
|
|
46
|
+
"@deepseek-ai/dsh-time-context": "0.2.0-rc.2",
|
|
47
|
+
"@deepseek-ai/dsh-tmux-context": "0.2.0-rc.2",
|
|
48
|
+
"@deepseek-ai/dsh-tool-present": "0.2.0-rc.2",
|
|
49
|
+
"@deepseek-ai/dsh-workflow-ptc": "0.2.0-rc.2",
|
|
50
|
+
"@deepseek-ai/dsh-mcp-resources": "0.2.0-rc.2",
|
|
51
|
+
"@deepseek-ai/dsh-terminal-bash": "0.2.0-rc.2",
|
|
52
|
+
"@deepseek-ai/dsh-tool-ask-user": "0.2.0-rc.2",
|
|
53
|
+
"@deepseek-ai/dsh-tool-subagent": "0.2.0-rc.2",
|
|
54
|
+
"@deepseek-ai/dsh-tool-workflow": "0.2.0-rc.2",
|
|
55
|
+
"@deepseek-ai/dsh-plugin-manager": "0.2.0-rc.2",
|
|
56
|
+
"@deepseek-ai/dsh-tool-fs-search": "0.2.0-rc.2",
|
|
57
|
+
"@deepseek-ai/dsh-webhook-github": "0.2.0-rc.2",
|
|
58
|
+
"@deepseek-ai/dsh-command-compact": "0.2.0-rc.2",
|
|
59
|
+
"@deepseek-ai/dsh-client-ui-cordis": "0.2.0-rc.2",
|
|
60
|
+
"@deepseek-ai/dsh-compaction-basic": "0.2.0-rc.2",
|
|
61
|
+
"@deepseek-ai/dsh-skill-filesystem": "0.2.0-rc.2",
|
|
62
|
+
"@deepseek-ai/dsh-goal-round-driver": "0.2.0-rc.2",
|
|
63
|
+
"@deepseek-ai/dsh-hooks-claude-code": "0.2.0-rc.2",
|
|
64
|
+
"@deepseek-ai/dsh-session-reference": "0.2.0-rc.2",
|
|
65
|
+
"@deepseek-ai/dsh-agent-instructions": "0.2.0-rc.2",
|
|
66
|
+
"@deepseek-ai/dsh-launch-environment": "0.2.0-rc.2",
|
|
67
|
+
"@deepseek-ai/dsh-session-projection": "0.2.0-rc.2",
|
|
68
|
+
"@deepseek-ai/dsh-cordis-client-runner": "0.2.0-rc.2",
|
|
69
|
+
"@deepseek-ai/dsh-tool-bash-persistent": "0.2.0-rc.2",
|
|
70
|
+
"@deepseek-ai/dsh-tool-pwsh-persistent": "0.2.0-rc.2",
|
|
71
|
+
"@deepseek-ai/dsh-tool-subagent-control": "0.2.0-rc.2",
|
|
72
|
+
"@deepseek-ai/dsh-client-ui-agent-preset": "0.2.0-rc.2",
|
|
73
|
+
"@deepseek-ai/dsh-agent-tool-presentation": "0.2.0-rc.2",
|
|
74
|
+
"@deepseek-ai/dsh-tool-str-replace-editor": "0.2.0-rc.2",
|
|
75
|
+
"@deepseek-ai/dsh-experimental-auto-review": "0.2.0-rc.2",
|
|
76
|
+
"@deepseek-ai/dsh-tool-workspace-dependencies": "0.2.0-rc.2",
|
|
77
|
+
"@deepseek-ai/dsh-compaction-tool-result-pruner": "0.2.0-rc.2",
|
|
78
|
+
"@deepseek-ai/dsh-experimental-agent-team-profile": "0.2.0-rc.2",
|
|
79
|
+
"@deepseek-ai/dsh-experimental-voice-input-bundle": "0.2.0-rc.2",
|
|
80
|
+
"@deepseek-ai/dsh-llm": "0.2.0-rc.2",
|
|
81
|
+
"@deepseek-ai/dsh-web": "0.2.0-rc.2",
|
|
82
|
+
"@deepseek-ai/dsh-agent": "0.2.0-rc.2",
|
|
83
|
+
"@deepseek-ai/dsh-tools": "0.2.0-rc.2",
|
|
84
|
+
"@deepseek-ai/dsh-session": "0.2.0-rc.2",
|
|
85
|
+
"@deepseek-ai/dsh-storage": "0.2.0-rc.2",
|
|
86
|
+
"@deepseek-ai/dsh-commands": "0.2.0-rc.2",
|
|
87
|
+
"@deepseek-ai/dsh-settings": "0.2.0-rc.2",
|
|
88
|
+
"@deepseek-ai/dsh-subagent": "0.2.0-rc.2",
|
|
89
|
+
"@deepseek-ai/dsh-llm-pi-ai": "0.2.0-rc.2",
|
|
90
|
+
"@deepseek-ai/dsh-llm-retry": "0.2.0-rc.2",
|
|
91
|
+
"@deepseek-ai/dsh-shell-env": "0.2.0-rc.2",
|
|
92
|
+
"@deepseek-ai/dsh-agent-loop": "0.2.0-rc.2",
|
|
93
|
+
"@deepseek-ai/dsh-fs-sandbox": "0.2.0-rc.2",
|
|
94
|
+
"@deepseek-ai/dsh-api-gateway": "0.2.0-rc.2",
|
|
95
|
+
"@deepseek-ai/dsh-skill-badge": "0.2.0-rc.2",
|
|
96
|
+
"@deepseek-ai/dsh-spill-local": "0.2.0-rc.2",
|
|
97
|
+
"@deepseek-ai/dsh-bash-sandbox": "0.2.0-rc.2",
|
|
98
|
+
"@deepseek-ai/dsh-spill-policy": "0.2.0-rc.2",
|
|
99
|
+
"@deepseek-ai/dsh-storage-json": "0.2.0-rc.2",
|
|
100
|
+
"@deepseek-ai/dsh-authorization": "0.2.0-rc.2",
|
|
101
|
+
"@deepseek-ai/dsh-config-editor": "0.2.0-rc.2",
|
|
102
|
+
"@deepseek-ai/dsh-sandbox-local": "0.2.0-rc.2",
|
|
103
|
+
"@deepseek-ai/dsh-session-title": "0.2.0-rc.2",
|
|
104
|
+
"@deepseek-ai/dsh-system-prompt": "0.2.0-rc.2",
|
|
105
|
+
"@deepseek-ai/dsh-typert-loader": "0.2.0-rc.2",
|
|
106
|
+
"@deepseek-ai/dsh-user-approval": "0.2.0-rc.2",
|
|
107
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.2",
|
|
108
|
+
"@deepseek-ai/dsh-storage-domain": "0.2.0-rc.2",
|
|
109
|
+
"@deepseek-ai/dsh-user-questions": "0.2.0-rc.2",
|
|
110
|
+
"@deepseek-ai/dsh-web-fetch-http": "0.2.0-rc.2",
|
|
111
|
+
"@deepseek-ai/dsh-typert-registry": "0.2.0-rc.2",
|
|
112
|
+
"@deepseek-ai/dsh-attachment-local": "0.2.0-rc.2",
|
|
113
|
+
"@deepseek-ai/dsh-command-feedback": "0.2.0-rc.2",
|
|
114
|
+
"@deepseek-ai/dsh-ptc-runtime-node": "0.2.0-rc.2",
|
|
115
|
+
"@deepseek-ai/dsh-subprocess-local": "0.2.0-rc.2",
|
|
116
|
+
"@deepseek-ai/dsh-credentials-local": "0.2.0-rc.2",
|
|
117
|
+
"@deepseek-ai/dsh-permission-presets": "0.2.0-rc.2",
|
|
118
|
+
"@deepseek-ai/dsh-agent-default-model": "0.2.0-rc.2",
|
|
119
|
+
"@deepseek-ai/dsh-web-search-deepseek": "0.2.0-rc.2",
|
|
120
|
+
"@deepseek-ai/dsh-llm-deepseek-account": "0.2.0-rc.2",
|
|
121
|
+
"@deepseek-ai/dsh-llm-deepseek-api-key": "0.2.0-rc.2",
|
|
122
|
+
"@deepseek-ai/dsh-repeat-tool-reminder": "0.2.0-rc.2",
|
|
123
|
+
"@deepseek-ai/dsh-session-log-deepseek": "0.2.0-rc.2",
|
|
124
|
+
"@deepseek-ai/dsh-session-query-sqlite": "0.2.0-rc.2",
|
|
125
|
+
"@deepseek-ai/dsh-fs-observation-policy": "0.2.0-rc.2",
|
|
126
|
+
"@deepseek-ai/dsh-session-telemetry-otel": "0.2.0-rc.2",
|
|
127
|
+
"@deepseek-ai/dsh-compaction-image-offload": "0.2.0-rc.2",
|
|
128
|
+
"@deepseek-ai/dsh-session-projection-cache": "0.2.0-rc.2",
|
|
129
|
+
"@deepseek-ai/dsh-subagent-fork-in-process": "0.2.0-rc.2",
|
|
130
|
+
"@deepseek-ai/dsh-tool-call-timeout-policy": "0.2.0-rc.2",
|
|
131
|
+
"@deepseek-ai/dsh-deepseek-account-platform": "0.2.0-rc.2",
|
|
132
|
+
"@deepseek-ai/dsh-session-checkpoint-policy": "0.2.0-rc.2",
|
|
133
|
+
"@deepseek-ai/dsh-session-persistence-jsonl": "0.2.0-rc.2",
|
|
134
|
+
"@deepseek-ai/dsh-subagent-spawn-in-process": "0.2.0-rc.2",
|
|
135
|
+
"@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.2.0-rc.2",
|
|
136
|
+
"@deepseek-ai/dsh-session-title-first-prompt-llm": "0.2.0-rc.2",
|
|
137
|
+
"@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.2.0-rc.2",
|
|
138
|
+
"@deepseek-ai/dsh-brand": "0.2.0-rc.2",
|
|
139
|
+
"@deepseek-ai/dsh-scope": "0.2.0-rc.2",
|
|
140
|
+
"@deepseek-ai/dsh-invariants": "0.2.0-rc.2",
|
|
141
|
+
"@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.2",
|
|
142
|
+
"@deepseek-ai/dsh-util-values": "0.2.0-rc.2",
|
|
143
|
+
"@deepseek-ai/dsh-acp": "0.2.0-rc.2",
|
|
144
|
+
"@deepseek-ai/dsh-sdk-jsonrpc-server": "0.2.0-rc.2",
|
|
145
|
+
"@deepseek-ai/dsh-util-code-language": "0.2.0-rc.2",
|
|
146
|
+
"@deepseek-ai/dsh-fs": "0.2.0-rc.2",
|
|
147
|
+
"@deepseek-ai/dsh-sandbox": "0.2.0-rc.2",
|
|
148
|
+
"@deepseek-ai/dsh-attachment": "0.2.0-rc.2",
|
|
149
|
+
"@deepseek-ai/dsh-workspace": "0.2.0-rc.2",
|
|
150
|
+
"@deepseek-ai/dsh-client-hmr": "0.2.0-rc.2",
|
|
151
|
+
"@deepseek-ai/dsh-subprocess": "0.2.0-rc.2",
|
|
152
|
+
"@deepseek-ai/dsh-api-remotes": "0.2.0-rc.2",
|
|
153
|
+
"@deepseek-ai/dsh-web-frontend": "0.2.0-rc.2",
|
|
154
|
+
"@deepseek-ai/dsh-client-locale": "0.2.0-rc.2",
|
|
155
|
+
"@deepseek-ai/dsh-office-to-pdf": "0.2.0-rc.2",
|
|
156
|
+
"@deepseek-ai/dsh-session-stats": "0.2.0-rc.2",
|
|
157
|
+
"@deepseek-ai/dsh-client-modules": "0.2.0-rc.2",
|
|
158
|
+
"@deepseek-ai/dsh-client-ui-chat": "0.2.0-rc.2",
|
|
159
|
+
"@deepseek-ai/dsh-client-ui-goal": "0.2.0-rc.2",
|
|
160
|
+
"@deepseek-ai/dsh-client-ui-jobs": "0.2.0-rc.2",
|
|
161
|
+
"@deepseek-ai/dsh-client-ui-plan": "0.2.0-rc.2",
|
|
162
|
+
"@deepseek-ai/dsh-client-ui-tool": "0.2.0-rc.2",
|
|
163
|
+
"@deepseek-ai/dsh-file-reference": "0.2.0-rc.2",
|
|
164
|
+
"@deepseek-ai/dsh-host-webserver": "0.2.0-rc.2",
|
|
165
|
+
"@deepseek-ai/dsh-client-ui-skill": "0.2.0-rc.2",
|
|
166
|
+
"@deepseek-ai/dsh-client-ui-theme": "0.2.0-rc.2",
|
|
167
|
+
"@deepseek-ai/dsh-client-resources": "0.2.0-rc.2",
|
|
168
|
+
"@deepseek-ai/dsh-client-shortcuts": "0.2.0-rc.2",
|
|
169
|
+
"@deepseek-ai/dsh-client-ui-layout": "0.2.0-rc.2",
|
|
170
|
+
"@deepseek-ai/dsh-host-open-in-app": "0.2.0-rc.2",
|
|
171
|
+
"@deepseek-ai/dsh-message-feedback": "0.2.0-rc.2",
|
|
172
|
+
"@deepseek-ai/dsh-client-connection": "0.2.0-rc.2",
|
|
173
|
+
"@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.2",
|
|
174
|
+
"@deepseek-ai/dsh-client-ui-sidebar": "0.2.0-rc.2",
|
|
175
|
+
"@deepseek-ai/dsh-workspace-changes": "0.2.0-rc.2",
|
|
176
|
+
"@deepseek-ai/dsh-api-job-controller": "0.2.0-rc.2",
|
|
177
|
+
"@deepseek-ai/dsh-client-file-upload": "0.2.0-rc.2",
|
|
178
|
+
"@deepseek-ai/dsh-client-ui-approval": "0.2.0-rc.2",
|
|
179
|
+
"@deepseek-ai/dsh-client-ui-commands": "0.2.0-rc.2",
|
|
180
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.2",
|
|
181
|
+
"@deepseek-ai/dsh-client-ui-schedule": "0.2.0-rc.2",
|
|
182
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.2.0-rc.2",
|
|
183
|
+
"@deepseek-ai/dsh-client-ui-subagent": "0.2.0-rc.2",
|
|
184
|
+
"@deepseek-ai/dsh-cordis-host-runner": "0.2.0-rc.2",
|
|
185
|
+
"@deepseek-ai/dsh-session-log-export": "0.2.0-rc.2",
|
|
186
|
+
"@deepseek-ai/dsh-api-workspace-files": "0.2.0-rc.2",
|
|
187
|
+
"@deepseek-ai/dsh-client-ui-reference": "0.2.0-rc.2",
|
|
188
|
+
"@deepseek-ai/dsh-client-ui-shortcuts": "0.2.0-rc.2",
|
|
189
|
+
"@deepseek-ai/dsh-client-ui-workspace": "0.2.0-rc.2",
|
|
190
|
+
"@deepseek-ai/dsh-client-ui-attachment": "0.2.0-rc.2",
|
|
191
|
+
"@deepseek-ai/dsh-client-ui-trajectory": "0.2.0-rc.2",
|
|
192
|
+
"@deepseek-ai/dsh-file-reference-local": "0.2.0-rc.2",
|
|
193
|
+
"@deepseek-ai/dsh-host-frontend-static": "0.2.0-rc.2",
|
|
194
|
+
"@deepseek-ai/dsh-session-turn-outline": "0.2.0-rc.2",
|
|
195
|
+
"@deepseek-ai/dsh-agent-preset-registry": "0.2.0-rc.2",
|
|
196
|
+
"@deepseek-ai/dsh-client-ui-open-in-app": "0.2.0-rc.2",
|
|
197
|
+
"@deepseek-ai/dsh-host-plugin-inventory": "0.2.0-rc.2",
|
|
198
|
+
"@deepseek-ai/dsh-api-account-controller": "0.2.0-rc.2",
|
|
199
|
+
"@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.2",
|
|
200
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.2",
|
|
201
|
+
"@deepseek-ai/dsh-client-ui-deliverables": "0.2.0-rc.2",
|
|
202
|
+
"@deepseek-ai/dsh-client-ui-workflow-run": "0.2.0-rc.2",
|
|
203
|
+
"@deepseek-ai/dsh-api-settings-controller": "0.2.0-rc.2",
|
|
204
|
+
"@deepseek-ai/dsh-api-terminal-controller": "0.2.0-rc.2",
|
|
205
|
+
"@deepseek-ai/dsh-client-ui-input-trigger": "0.2.0-rc.2",
|
|
206
|
+
"@deepseek-ai/dsh-client-ui-sidebar-files": "0.2.0-rc.2",
|
|
207
|
+
"@deepseek-ai/dsh-client-ui-sidebar-right": "0.2.0-rc.2",
|
|
208
|
+
"@deepseek-ai/dsh-api-workspace-controller": "0.2.0-rc.2",
|
|
209
|
+
"@deepseek-ai/dsh-client-ui-brand-official": "0.2.0-rc.2",
|
|
210
|
+
"@deepseek-ai/dsh-client-ui-plugin-manager": "0.2.0-rc.2",
|
|
211
|
+
"@deepseek-ai/dsh-client-ui-settings-shell": "0.2.0-rc.2",
|
|
212
|
+
"@deepseek-ai/dsh-client-ui-user-questions": "0.2.0-rc.2",
|
|
213
|
+
"@deepseek-ai/dsh-client-ui-model-selection": "0.2.0-rc.2",
|
|
214
|
+
"@deepseek-ai/dsh-client-ui-settings-models": "0.2.0-rc.2",
|
|
215
|
+
"@deepseek-ai/dsh-client-ui-sidebar-browser": "0.2.0-rc.2",
|
|
216
|
+
"@deepseek-ai/dsh-client-ui-message-feedback": "0.2.0-rc.2",
|
|
217
|
+
"@deepseek-ai/dsh-client-ui-settings-account": "0.2.0-rc.2",
|
|
218
|
+
"@deepseek-ai/dsh-client-ui-settings-general": "0.2.0-rc.2",
|
|
219
|
+
"@deepseek-ai/dsh-client-ui-settings-plugins": "0.2.0-rc.2",
|
|
220
|
+
"@deepseek-ai/dsh-client-ui-sidebar-terminal": "0.2.0-rc.2",
|
|
221
|
+
"@deepseek-ai/dsh-host-directory-picker-auto": "0.2.0-rc.2",
|
|
222
|
+
"@deepseek-ai/dsh-client-ui-settings-subagent": "0.2.0-rc.2",
|
|
223
|
+
"@deepseek-ai/dsh-client-ui-permission-presets": "0.2.0-rc.2",
|
|
224
|
+
"@deepseek-ai/dsh-host-directory-picker-browse": "0.2.0-rc.2",
|
|
225
|
+
"@deepseek-ai/dsh-host-directory-picker-native": "0.2.0-rc.2",
|
|
226
|
+
"@deepseek-ai/dsh-client-ui-settings-agent-loop": "0.2.0-rc.2",
|
|
227
|
+
"@deepseek-ai/dsh-client-ui-settings-web-search": "0.2.0-rc.2",
|
|
228
|
+
"@deepseek-ai/dsh-client-ui-directory-picker-browse": "0.2.0-rc.2",
|
|
229
|
+
"@deepseek-ai/dsh-client-ui-directory-picker-native": "0.2.0-rc.2",
|
|
230
|
+
"@deepseek-ai/dsh-client-ui-sidebar-documentpreview": "0.2.0-rc.2",
|
|
231
|
+
"@deepseek-ai/dsh-client-ui-settings-plugin-inventory": "0.2.0-rc.2",
|
|
232
|
+
"@deepseek-ai/dsh-package-manifest": "0.2.0-rc.2",
|
|
233
|
+
"@deepseek-ai/dsh-session-query": "0.2.0-rc.2",
|
|
234
|
+
"@deepseek-ai/dsh-session-persistence": "0.2.0-rc.2",
|
|
235
|
+
"@deepseek-ai/dsh-jobs": "0.2.0-rc.2",
|
|
236
|
+
"@deepseek-ai/dsh-shell": "0.2.0-rc.2",
|
|
237
|
+
"@deepseek-ai/dsh-output-retention": "0.2.0-rc.2",
|
|
238
|
+
"@deepseek-ai/dsh-timeout": "0.2.0-rc.2",
|
|
239
|
+
"@deepseek-ai/dsh-workflow": "0.2.0-rc.2",
|
|
240
|
+
"@deepseek-ai/dsh-hook-protocol": "0.2.0-rc.2",
|
|
241
|
+
"@deepseek-ai/dsh-compaction": "0.2.0-rc.2",
|
|
242
|
+
"@deepseek-ai/dsh-ptc-runtime": "0.2.0-rc.2",
|
|
243
|
+
"@deepseek-ai/dsh-lazy-require": "0.2.0-rc.2",
|
|
244
|
+
"@deepseek-ai/dsh-spill": "0.2.0-rc.2",
|
|
245
|
+
"@deepseek-ai/dsh-credentials": "0.2.0-rc.2",
|
|
246
|
+
"@deepseek-ai/dsh-experimental-agent-team": "0.2.0-rc.2",
|
|
247
|
+
"@deepseek-ai/dsh-experimental-tool-agent-team": "0.2.0-rc.2",
|
|
248
|
+
"@deepseek-ai/dsh-experimental-client-ui-agent-team": "0.2.0-rc.2",
|
|
249
|
+
"@deepseek-ai/dsh-experimental-speech-to-text": "0.2.0-rc.2",
|
|
250
|
+
"@deepseek-ai/dsh-experimental-api-speech-to-text": "0.2.0-rc.2",
|
|
251
|
+
"@deepseek-ai/dsh-experimental-client-ui-voice-input": "0.2.0-rc.2",
|
|
252
|
+
"@deepseek-ai/dsh-experimental-speech-to-text-sensevoice": "0.2.0-rc.2",
|
|
253
|
+
"@deepseek-ai/dsh-util-crypto": "0.2.0-rc.2",
|
|
254
|
+
"@deepseek-ai/dsh-chunked-list": "0.2.0-rc.2",
|
|
255
|
+
"@deepseek-ai/dsh-util-time": "0.2.0-rc.2",
|
|
256
|
+
"@deepseek-ai/dsh-deque": "0.2.0-rc.2",
|
|
257
|
+
"@deepseek-ai/dsh-bash-local": "0.2.0-rc.2",
|
|
258
|
+
"@deepseek-ai/dsh-sandbox-windows-acl": "0.2.0-rc.2",
|
|
259
|
+
"@deepseek-ai/dsh-anonymous-user-id": "0.2.0-rc.2",
|
|
260
|
+
"@deepseek-ai/dsh-win32-process": "0.2.0-rc.2",
|
|
261
|
+
"@deepseek-ai/dsh-llm-deepseek": "0.2.0-rc.2",
|
|
262
|
+
"@deepseek-ai/dsh-deepseek-account": "0.2.0-rc.2",
|
|
263
|
+
"@deepseek-ai/dsh-session-telemetry": "0.2.0-rc.2",
|
|
264
|
+
"@deepseek-ai/dsh-subagent-in-process-driver": "0.2.0-rc.2",
|
|
265
|
+
"@deepseek-ai/dsh-session-format": "0.2.0-rc.2",
|
|
266
|
+
"@deepseek-ai/dsh-session-format-catalog": "0.2.0-rc.2",
|
|
267
|
+
"@deepseek-ai/dsh-session-format-v3-to-v4": "0.2.0-rc.2",
|
|
268
|
+
"@deepseek-ai/dsh-session-title-llm": "0.2.0-rc.2",
|
|
269
|
+
"@deepseek-ai/dsh-sdk-protocol": "0.2.0-rc.2",
|
|
270
|
+
"@deepseek-ai/dsh-native-command": "0.2.0-rc.2",
|
|
271
|
+
"@deepseek-ai/dsh-util-workspace-path": "0.2.0-rc.2",
|
|
272
|
+
"@deepseek-ai/dsh-host-directory-picker": "0.2.0-rc.2",
|
|
273
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.2",
|
|
274
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.2.0-rc.2",
|
|
275
|
+
"@deepseek-ai/dsh-client-store": "0.2.0-rc.2",
|
|
276
|
+
"@deepseek-ai/dsh-session-format-v0-to-v1": "0.2.0-rc.2",
|
|
277
|
+
"@deepseek-ai/dsh-session-format-v1-to-v2": "0.2.0-rc.2",
|
|
278
|
+
"@deepseek-ai/dsh-session-format-v2-to-v3": "0.2.0-rc.2"
|
|
279
|
+
},
|
|
280
|
+
"autoInstallPeers": true,
|
|
281
|
+
"allowBuilds": {
|
|
282
|
+
"@deepseek-ai/dsh-subprocess-local": false,
|
|
283
|
+
"@google/genai": false,
|
|
284
|
+
"koffi": false,
|
|
285
|
+
"node-pty": false,
|
|
286
|
+
"protobufjs": false
|
|
287
|
+
}
|
|
288
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# AgentTeams v0.1.22-rc.1
|
|
2
|
+
|
|
3
|
+
Preview release on npm `next`, preparing for the upcoming Harness desktop 0.2.0 release. The recommended published host remains `0.1.7-rc.2`.
|
|
4
|
+
|
|
5
|
+
- Ship prebuilt host and client entries in Git so desktop GitHub installation can activate without lifecycle build scripts.
|
|
6
|
+
- Move dependency overrides to pnpm-workspace.yaml for pnpm 10 and the desktop bundled pnpm 11.
|
|
7
|
+
- Add exact 0.2.0 peer compatibility, based on official Harness master commit `21638c56315ae6a2b552d6091945d3144c9af32e`. This is source preview evidence, not acceptance of the as-yet-unreleased desktop binary.
|
|
8
|
+
- Add checked-in build artifact integrity checks and an isolated source-host runtime verifier.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
In the desktop Add Plugin field, enter `@nanmicoder/dsh-agent-teams@0.1.22-rc.1`. An npm website URL is not a package specification.
|
|
13
|
+
|
|
14
|
+
```sh
|
|
15
|
+
dsh plugin --profile web add --save-exact @nanmicoder/dsh-agent-teams@0.1.22-rc.1
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Restart the active Harness profile and refresh its Web UI. This preview does not change npm latest.
|
|
19
|
+
|
|
20
|
+
## Validation
|
|
21
|
+
|
|
22
|
+
The pre-adaptation candidate passed ten real CLI scenarios with deterministic model fixtures on the pinned official source checkout, plus Web UI Git installation and activation under pnpm 11. The release pipeline requires Ubuntu and Windows static verification and all seven published host runtime targets against one immutable tarball before publishing.
|
|
23
|
+
|
|
24
|
+
See [the source audit and UI evidence](../docs/harness-0.2.0-pre-adaptation/README.md). Final official 0.2.0 packages and the packaged Electron application still require release-specific acceptance.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# AgentTeams v0.1.22
|
|
2
|
+
|
|
3
|
+
Stable plugin release on npm `latest`, targeting the published DeepSeek Harness `0.2.0-rc.2` release.
|
|
4
|
+
|
|
5
|
+
- Switch the recommended host, exact development dependencies and dependency overrides to `0.2.0-rc.2`.
|
|
6
|
+
- Replace the previous predicted `0.2.0` peer target with the actual published RC; retain the seven earlier supported hosts.
|
|
7
|
+
- Keep prebuilt Git entries and pnpm 11 compatible dependency settings for desktop installation.
|
|
8
|
+
- Preserve source-candidate checks using explicit test fixtures, without declaring an unverified future GA version supported.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
In Plugins → Add plugin, enter `@nanmicoder/dsh-agent-teams@0.1.22`. Use the npm official registry if a mirror has not synchronized the release. GitHub repository installation also includes the prebuilt entrypoints.
|
|
13
|
+
|
|
14
|
+
The host supplies its own core. For CLI installations, the exact host target is `@deepseek-ai/dsh@0.2.0-rc.2`; updating a global CLI does not update a desktop app's embedded core.
|
|
15
|
+
|
|
16
|
+
## Verification scope
|
|
17
|
+
|
|
18
|
+
Publication requires the eight-host runtime matrix and Ubuntu/Windows static checks for the same tarball. See [the migration record](../docs/harness-0.2.0-rc.2/README.md). Deterministic model fixtures and browser checks do not constitute real-provider or packaged Electron acceptance.
|
|
@@ -2,6 +2,8 @@ import { readFileSync } from 'node:fs'
|
|
|
2
2
|
import { pathToFileURL } from 'node:url'
|
|
3
3
|
|
|
4
4
|
export const policy = JSON.parse(readFileSync(new URL('../compatibility.json', import.meta.url), 'utf8'))
|
|
5
|
+
// JSON is valid YAML and keeps this shipped diagnostic dependency-free.
|
|
6
|
+
export const workspacePolicy = JSON.parse(readFileSync(new URL('../pnpm-workspace.yaml', import.meta.url), 'utf8'))
|
|
5
7
|
|
|
6
8
|
// Contract consumed by the published server entry and client module table.
|
|
7
9
|
// Keeping this independent from package.json catches accidentally deleted peers.
|
|
@@ -40,11 +42,30 @@ export function validatePolicy(input) {
|
|
|
40
42
|
const recommended = hosts.filter(host => host.track === 'recommended')
|
|
41
43
|
if (recommended.length !== 1 || recommended[0].version !== input.recommendedHost) throw new Error('Exactly one recommended host is required')
|
|
42
44
|
if (/-(alpha|beta)\./.test(input.recommendedHost)) throw new Error('Alpha/beta hosts cannot be the ordinary-user recommendation')
|
|
45
|
+
const candidates = input.sourceCandidates ?? []
|
|
46
|
+
if (!Array.isArray(candidates)) throw new Error('sourceCandidates must be an array')
|
|
47
|
+
for (const candidate of candidates) {
|
|
48
|
+
if (typeof candidate.version !== 'string' || candidate.version.trim() !== candidate.version
|
|
49
|
+
|| !/^\d+\.\d+\.\d+(?:-(?:alpha|beta|rc)\.\d+)?$/.test(candidate.version)
|
|
50
|
+
|| versions.has(candidate.version)
|
|
51
|
+
|| candidate.repository !== 'https://github.com/deepseek-ai/deepseek-harness'
|
|
52
|
+
|| typeof candidate.commit !== 'string' || candidate.commit.length !== 40 || !/^[a-f0-9]{40}$/.test(candidate.commit)
|
|
53
|
+
|| typeof candidate.evidence !== 'string' || !candidate.evidence.startsWith('docs/')) {
|
|
54
|
+
throw new Error('Source candidates require a unique exact version, official repository, commit and evidence')
|
|
55
|
+
}
|
|
56
|
+
versions.add(candidate.version)
|
|
57
|
+
}
|
|
58
|
+
// Only published targets enter the npm download/CI matrix.
|
|
43
59
|
return hosts.map(host => host.version)
|
|
44
60
|
}
|
|
45
61
|
|
|
46
|
-
export function
|
|
62
|
+
export function declaredHostVersions(input = policy) {
|
|
63
|
+
return [...validatePolicy(input), ...(input.sourceCandidates ?? []).map(candidate => candidate.version)]
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export function validatePackageCompatibility(pkg, input = policy, workspace = workspacePolicy) {
|
|
47
67
|
const versions = validatePolicy(input)
|
|
68
|
+
const declaredVersions = declaredHostVersions(input)
|
|
48
69
|
for (const name of requiredHostPeers) {
|
|
49
70
|
if (typeof pkg.peerDependencies?.[name] !== 'string' || pkg.peerDependencies[name].trim() === '') {
|
|
50
71
|
throw new Error(`Missing required host peer declaration: ${name}`)
|
|
@@ -57,7 +78,8 @@ export function validatePackageCompatibility(pkg, input = policy) {
|
|
|
57
78
|
if (version !== baseline) throw new Error(`${name} must match the exact development host ${baseline}`)
|
|
58
79
|
}
|
|
59
80
|
}
|
|
60
|
-
|
|
81
|
+
if (pkg.pnpm?.overrides) throw new Error('Move pnpm.overrides to pnpm-workspace.yaml for pnpm 11')
|
|
82
|
+
const overrides = workspace.overrides ?? {}
|
|
61
83
|
const dshNames = Object.keys(pkg.devDependencies ?? {}).filter(name => name === '@deepseek-ai/dsh' || name.startsWith('@deepseek-ai/dsh-'))
|
|
62
84
|
for (const name of dshNames) {
|
|
63
85
|
if (overrides[name] !== baseline) throw new Error(`${name} requires an exact pnpm override to ${baseline}`)
|
|
@@ -73,8 +95,8 @@ export function validatePackageCompatibility(pkg, input = policy) {
|
|
|
73
95
|
for (const [name, range] of Object.entries(pkg.peerDependencies ?? {})) {
|
|
74
96
|
if (name === '@deepseek-ai/dsh' || name.startsWith('@deepseek-ai/dsh-')) {
|
|
75
97
|
const declared = range.split('||').map(value => value.trim())
|
|
76
|
-
if (declared.length !==
|
|
77
|
-
throw new Error(`${name} peer range must enumerate the supported host targets`)
|
|
98
|
+
if (declared.length !== declaredVersions.length || declaredVersions.some(version => !declared.includes(version))) {
|
|
99
|
+
throw new Error(`${name} peer range must enumerate the supported host targets and source candidates`)
|
|
78
100
|
}
|
|
79
101
|
}
|
|
80
102
|
}
|
package/scripts/doctor.mjs
CHANGED
|
@@ -20,8 +20,8 @@ function locatePackage(name, from) {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/** Inspect manifests only; never execute packages or read credentials/configuration. */
|
|
23
|
-
export function inspectInstallation(hostRoot, profileRoot) {
|
|
24
|
-
const allowed = validatePolicy(
|
|
23
|
+
export function inspectInstallation(hostRoot, profileRoot, support = policy) {
|
|
24
|
+
const allowed = validatePolicy(support)
|
|
25
25
|
const root = resolve(hostRoot)
|
|
26
26
|
const own = join(root, 'package.json')
|
|
27
27
|
const hostPath = existsSync(own) && manifest(own).name === '@deepseek-ai/dsh'
|
|
@@ -68,11 +68,12 @@ export function inspectInstallation(hostRoot, profileRoot) {
|
|
|
68
68
|
}
|
|
69
69
|
const mixed = packages.filter(pkg => pkg.version !== host.version)
|
|
70
70
|
const problems = []
|
|
71
|
+
const sourceCandidate = support.sourceCandidates?.find(candidate => candidate.version === host.version)
|
|
71
72
|
const policyPackage = manifest(new URL('../package.json', import.meta.url))
|
|
72
73
|
if (plugin && plugin.version !== policyPackage.version) {
|
|
73
74
|
problems.push(`Installed plugin ${plugin.version} differs from this policy's plugin ${policyPackage.version}; verify its own host compatibility`)
|
|
74
75
|
}
|
|
75
|
-
if (!allowed.includes(host.version)) problems.push(`Unsupported host ${host.version}; recommended target is ${
|
|
76
|
+
if (!allowed.includes(host.version) && !sourceCandidate) problems.push(`Unsupported host ${host.version}; recommended target is ${support.recommendedHost}`)
|
|
76
77
|
if (mixed.length) problems.push(`${mixed.length} resolved DSH packages differ from host ${host.version}`)
|
|
77
78
|
if (missing.length) problems.push(`Missing packages: ${[...new Set(missing)].join(', ')}`)
|
|
78
79
|
const identities = new Map()
|
|
@@ -88,8 +89,12 @@ export function inspectInstallation(hostRoot, profileRoot) {
|
|
|
88
89
|
host: { version: host.version, path: dirname(hostPath) },
|
|
89
90
|
...(plugin ? { plugin } : {}),
|
|
90
91
|
checkedPackages: packages.length, supportedHosts: allowed,
|
|
92
|
+
validation: sourceCandidate ? { kind: 'source-preview', ...sourceCandidate, sourceCommitVerified: false } : { kind: allowed.includes(host.version) ? 'published-matrix' : 'unsupported' },
|
|
91
93
|
problems, packages,
|
|
92
|
-
limits: [
|
|
94
|
+
limits: [
|
|
95
|
+
'Checks files resolved from the supplied roots; does not identify the running process or prove plugin behavior.',
|
|
96
|
+
...(sourceCandidate ? [`Host ${host.version} is pre-adapted against source ${sourceCandidate.commit}; this inspection does not verify that the installed release matches that source.`] : []),
|
|
97
|
+
],
|
|
93
98
|
}
|
|
94
99
|
}
|
|
95
100
|
|