@bruc3van/dsh-doctor 0.5.4 → 0.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +14 -12
- package/README.md +14 -12
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.2/packages.json +12 -3
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.2/symbols.json +8 -0
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3/behavior.md +14 -0
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3/config-rules.json +36 -0
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3/manifest.json +19 -0
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3/packages.json +74 -0
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3/services.json +28 -0
- package/migrations/dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3/symbols.json +134 -0
- package/package.json +1 -1
- package/skills/dsh-plugin-upgrade/SKILL.md +29 -14
- package/skills/dsh-plugin-upgrade/references/cli-bootstrap.md +6 -4
- package/skills/dsh-plugin-upgrade/references/migration-map.md +15 -1
- package/skills/dsh-plugin-upgrade/references/source-investigation.md +99 -0
- package/skills/dsh-plugin-upgrade/references/verification.md +9 -1
- package/src/cli.mjs +14 -3
- package/src/migrate-verify.mjs +74 -6
- package/src/migrate.mjs +148 -31
- package/src/safe-write.mjs +28 -1
- package/skills/dsh-plugin-upgrade/evals/evals.json +0 -76
package/README.en.md
CHANGED
|
@@ -12,7 +12,7 @@ DSH 0.1.1 → DSH 0.1.2
|
|
|
12
12
|
|
|
13
13
|
The project also diagnoses DSH profiles and installed plugins, checks for compatible versions, and performs safety checks before quarantine or removal.
|
|
14
14
|
|
|
15
|
-
> This is a community-maintained third-party project, not an official DeepSeek project. The current catalog
|
|
15
|
+
> This is a community-maintained third-party project, not an official DeepSeek project. The migration scope remains DSH 0.1.1 → 0.1.2; the current known-latest catalog exactly covers `dsh-v0.1.1-rc.2` through `dsh-v0.1.2-alpha.3`. The older alpha.2 catalog remains as historical rules. When a newer 0.1.2 prerelease appears, inspect its delta before deliberately updating the catalog and skill.
|
|
16
16
|
|
|
17
17
|
## Upgrade a plugin with the skill
|
|
18
18
|
|
|
@@ -99,11 +99,11 @@ Source analysis uses the TypeScript AST and is cross-checked against the manifes
|
|
|
99
99
|
## Safety
|
|
100
100
|
|
|
101
101
|
- `diagnose`, `migrate analyze`, and static verification are read-only and do not load or execute the inspected plugin;
|
|
102
|
-
- `migrate apply` requires `--safe`;
|
|
102
|
+
- `migrate apply` requires `--safe --plan-file`; preview only creates a new plan outside the plugin root, never overwrites an existing file, and persists the complete analysis plus every input-file hash; `--yes` applies only that same reviewed plan;
|
|
103
103
|
- only `exact` migrations are auto-edited; semantic changes are not guessed;
|
|
104
104
|
- SHA-256 is checked before writing, so a file changed after preview is rejected;
|
|
105
105
|
- existing files receive timestamped backups and are replaced atomically through a temporary file;
|
|
106
|
-
- build and runtime verification execute plugin scripts
|
|
106
|
+
- build and runtime verification synchronize dependencies and execute plugin scripts, so they require explicit `--yes --install`; install lifecycle scripts are disabled and lockfile plus resolved-version evidence is recorded;
|
|
107
107
|
- runtime verification uses a temporary `DSH_HOME`, not the normal `~/.dsh`;
|
|
108
108
|
- JSON, baselines, and recovery snapshots redact plugin configuration and common secret/token/password/key fields;
|
|
109
109
|
- global CLI installation, persistent quarantine, plugin removal, and publishing are never performed automatically by the skill.
|
|
@@ -115,7 +115,7 @@ Node.js `^22.19.0` or `>=24.0.0` is required.
|
|
|
115
115
|
First confirm that the CLI contains the required migration:
|
|
116
116
|
|
|
117
117
|
```sh
|
|
118
|
-
|
|
118
|
+
npm exec --yes --package=@bruc3van/dsh-doctor@<selected-version> -- \
|
|
119
119
|
dsh-doctor migrations list
|
|
120
120
|
```
|
|
121
121
|
|
|
@@ -124,43 +124,45 @@ npx --yes --package=@bruc3van/dsh-doctor@0.5.4 \
|
|
|
124
124
|
```sh
|
|
125
125
|
dsh-doctor migrate analyze /path/to/plugin \
|
|
126
126
|
--from dsh-v0.1.1-rc.2 \
|
|
127
|
-
--to dsh-v0.1.2-alpha.
|
|
127
|
+
--to dsh-v0.1.2-alpha.3 \
|
|
128
128
|
--harness-root /path/to/deepseek-harness \
|
|
129
129
|
--json
|
|
130
130
|
```
|
|
131
131
|
|
|
132
|
-
Analysis checks source, dependencies, manifest, client graph, patch targets, and existing build output without executing plugin code.
|
|
132
|
+
Analysis checks source, dependencies, manifest, client graph, patch targets, and existing build output without executing plugin code. `--from`/`--to` select the exact catalog that supplies API rules. Alpha.3 is the current default, so it needs no separate `--target-version`. If a newer 0.1.2 build is explicitly targeted before the catalog is updated, inspect the source delta from alpha.3 first, then use `--target-version` to control dependency ranges, safe-plan pins, and the runtime version check. The report keeps the catalog and actual targets separate.
|
|
133
133
|
|
|
134
134
|
### 2. Apply
|
|
135
135
|
|
|
136
136
|
```sh
|
|
137
137
|
# Preview
|
|
138
138
|
dsh-doctor migrate apply /path/to/plugin --safe \
|
|
139
|
+
--plan-file /temporary/path/reviewed-migration-plan.json \
|
|
139
140
|
--harness-root /path/to/deepseek-harness --json
|
|
140
141
|
|
|
141
142
|
# Write after confirmation
|
|
142
143
|
dsh-doctor migrate apply /path/to/plugin --safe --yes \
|
|
144
|
+
--plan-file /temporary/path/reviewed-migration-plan.json \
|
|
143
145
|
--harness-root /path/to/deepseek-harness --json
|
|
144
146
|
```
|
|
145
147
|
|
|
146
|
-
Apply
|
|
148
|
+
The plan must stay outside the plugin root so it is not analyzed as plugin input. Apply checks the plan digest, every analyzed input, and each edit's before/after hashes; source, manifest, or other analyzed-input changes require a new reviewed plan. Deterministic dependency edits use catalog-owned Client/Host and peer/dev policies instead of inheriting the removed package's dependency section. Every changed file receives a backup.
|
|
147
149
|
|
|
148
150
|
### 3. Verify
|
|
149
151
|
|
|
150
152
|
```sh
|
|
151
153
|
dsh-doctor migrate verify /path/to/plugin --level static \
|
|
152
154
|
--harness-root /path/to/deepseek-harness --json
|
|
153
|
-
dsh-doctor migrate verify /path/to/plugin --level build --yes \
|
|
154
|
-
--harness-root /path/to/deepseek-harness --json
|
|
155
|
-
dsh-doctor migrate verify /path/to/plugin --level runtime --yes \
|
|
155
|
+
dsh-doctor migrate verify /path/to/plugin --level build --yes --install \
|
|
156
156
|
--harness-root /path/to/deepseek-harness --json
|
|
157
|
+
dsh-doctor migrate verify /path/to/plugin --level runtime --yes --install \
|
|
158
|
+
--dsh-command /path/to/dsh --json
|
|
157
159
|
```
|
|
158
160
|
|
|
159
161
|
| Level | What it checks |
|
|
160
162
|
|---|---|
|
|
161
163
|
| `static` | Rechecks source, manifest, client graph, patches, and artifacts |
|
|
162
|
-
| `build` |
|
|
163
|
-
| `runtime` |
|
|
164
|
+
| `build` | Synchronizes and verifies target dependencies and the lockfile, then runs build/test scripts and scans output again |
|
|
165
|
+
| `runtime` | After dependency and build gates, packs the real tarball and checks target DSH, installed package, bundle, and effective configuration in a temporary profile |
|
|
164
166
|
|
|
165
167
|
Verification states are:
|
|
166
168
|
|
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ DSH 0.1.1 → DSH 0.1.2
|
|
|
12
12
|
|
|
13
13
|
项目同时提供 DSH profile 和插件的诊断、兼容版本检查、隔离与删除前检查。
|
|
14
14
|
|
|
15
|
-
> 这是社区维护的第三方工具,不属于 DeepSeek
|
|
15
|
+
> 这是社区维护的第三方工具,不属于 DeepSeek 官方项目。工具的迁移范围保持为 DSH 0.1.1 → 0.1.2;当前已知最新版 catalog 精确覆盖 `dsh-v0.1.1-rc.2` 到 `dsh-v0.1.2-alpha.3`。旧 alpha.2 catalog 作为历史规则保留;出现更新的 0.1.2 预发布版本时,需要先核对增量,再明确更新 catalog 和 Skill。
|
|
16
16
|
|
|
17
17
|
## 使用 Skill 升级插件
|
|
18
18
|
|
|
@@ -99,11 +99,11 @@ Migration catalog 保存 source/target tag 和 Git commit,并记录 package、
|
|
|
99
99
|
## 安全性
|
|
100
100
|
|
|
101
101
|
- `diagnose`、`migrate analyze` 和静态验证只读,不加载或执行待检查插件;
|
|
102
|
-
- `migrate apply` 必须带 `--safe
|
|
102
|
+
- `migrate apply` 必须带 `--safe --plan-file`;预览只会新建插件目录外的 plan,不会覆盖已有文件,并把完整分析和所有输入文件哈希固化下来;`--yes` 只应用同一个已审阅 plan;
|
|
103
103
|
- 只有 `exact` 迁移会自动改代码,语义变化不会自动猜测;
|
|
104
104
|
- 写入前检查文件 SHA-256,预览后文件发生变化会拒绝写入;
|
|
105
105
|
- 修改已有文件前创建时间戳备份,并使用临时文件原子替换;
|
|
106
|
-
- build 和 runtime
|
|
106
|
+
- build 和 runtime 会同步依赖并执行插件脚本,因此必须显式使用 `--yes --install`;依赖安装禁用 lifecycle scripts,并记录 lockfile 和实际解析版本证据;
|
|
107
107
|
- runtime 使用临时 `DSH_HOME`,不会安装到正常的 `~/.dsh`;
|
|
108
108
|
- JSON、baseline 和恢复快照会脱敏插件配置和常见 secret/token/password/key 字段;
|
|
109
109
|
- 全局 CLI 安装、持久隔离、删除插件和发布都不会由 Skill 自动执行。
|
|
@@ -115,7 +115,7 @@ Migration catalog 保存 source/target tag 和 Git commit,并记录 package、
|
|
|
115
115
|
先确认 CLI 包含需要的迁移:
|
|
116
116
|
|
|
117
117
|
```sh
|
|
118
|
-
|
|
118
|
+
npm exec --yes --package=@bruc3van/dsh-doctor@<selected-version> -- \
|
|
119
119
|
dsh-doctor migrations list
|
|
120
120
|
```
|
|
121
121
|
|
|
@@ -124,43 +124,45 @@ npx --yes --package=@bruc3van/dsh-doctor@0.5.4 \
|
|
|
124
124
|
```sh
|
|
125
125
|
dsh-doctor migrate analyze /path/to/plugin \
|
|
126
126
|
--from dsh-v0.1.1-rc.2 \
|
|
127
|
-
--to dsh-v0.1.2-alpha.
|
|
127
|
+
--to dsh-v0.1.2-alpha.3 \
|
|
128
128
|
--harness-root /path/to/deepseek-harness \
|
|
129
129
|
--json
|
|
130
130
|
```
|
|
131
131
|
|
|
132
|
-
分析会检查源码、依赖、manifest、client graph、patch target
|
|
132
|
+
分析会检查源码、依赖、manifest、client graph、patch target 和已有构建产物,不执行插件代码。`--from`/`--to` 选择提供 API 规则的精确 catalog。当前默认目标就是 alpha.3,无需额外指定 `--target-version`;如果在 catalog 更新前明确迁移到更新的 0.1.2 版本,必须先调查 alpha.3 到该版本的源码差异,再用 `--target-version` 单独控制依赖范围、safe plan pin 和 runtime 版本核验。报告会保留 catalog 与实际目标两个值。
|
|
133
133
|
|
|
134
134
|
### 2. 修改
|
|
135
135
|
|
|
136
136
|
```sh
|
|
137
137
|
# 预览
|
|
138
138
|
dsh-doctor migrate apply /path/to/plugin --safe \
|
|
139
|
+
--plan-file /temporary/path/reviewed-migration-plan.json \
|
|
139
140
|
--harness-root /path/to/deepseek-harness --json
|
|
140
141
|
|
|
141
142
|
# 确认后写入
|
|
142
143
|
dsh-doctor migrate apply /path/to/plugin --safe --yes \
|
|
144
|
+
--plan-file /temporary/path/reviewed-migration-plan.json \
|
|
143
145
|
--harness-root /path/to/deepseek-harness --json
|
|
144
146
|
```
|
|
145
147
|
|
|
146
|
-
Apply
|
|
148
|
+
Plan 必须放在插件目录外,避免被当成插件输入。Apply 会核对 plan digest、完整分析输入和每个修改的 before/after hash;源码、manifest 或其他分析输入在预览后变化时必须重新生成并审阅 plan。确定性依赖改写使用 catalog 明确的 Client/Host 与 peer/dev 策略,不再沿用旧包所在的 dependency section。每个被修改的文件都会保留备份。
|
|
147
149
|
|
|
148
150
|
### 3. 验证
|
|
149
151
|
|
|
150
152
|
```sh
|
|
151
153
|
dsh-doctor migrate verify /path/to/plugin --level static \
|
|
152
154
|
--harness-root /path/to/deepseek-harness --json
|
|
153
|
-
dsh-doctor migrate verify /path/to/plugin --level build --yes \
|
|
154
|
-
--harness-root /path/to/deepseek-harness --json
|
|
155
|
-
dsh-doctor migrate verify /path/to/plugin --level runtime --yes \
|
|
155
|
+
dsh-doctor migrate verify /path/to/plugin --level build --yes --install \
|
|
156
156
|
--harness-root /path/to/deepseek-harness --json
|
|
157
|
+
dsh-doctor migrate verify /path/to/plugin --level runtime --yes --install \
|
|
158
|
+
--dsh-command /path/to/dsh --json
|
|
157
159
|
```
|
|
158
160
|
|
|
159
161
|
| 级别 | 验证内容 |
|
|
160
162
|
|---|---|
|
|
161
163
|
| `static` | 再次检查源码、manifest、client graph、patch 和产物 |
|
|
162
|
-
| `build` |
|
|
163
|
-
| `runtime` |
|
|
164
|
+
| `build` | 先同步并核验目标依赖和 lockfile,再运行已有构建/测试脚本并重新扫描产物 |
|
|
165
|
+
| `runtime` | 完成依赖与构建门后,打真实 tarball,在临时 profile 中验证目标 DSH、安装包、bundle 和生效配置 |
|
|
164
166
|
|
|
165
167
|
验证状态依次是:
|
|
166
168
|
|
|
@@ -38,9 +38,18 @@
|
|
|
38
38
|
"@deepseek-ai/dsh-win32-process"
|
|
39
39
|
],
|
|
40
40
|
"targetVersions": {
|
|
41
|
-
"@deepseek-ai/cordis": "4.0.2"
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
"@deepseek-ai/cordis": "4.0.2"
|
|
42
|
+
},
|
|
43
|
+
"dependencyPolicies": {
|
|
44
|
+
"@deepseek-ai/cordis": {
|
|
45
|
+
"client": ["peerDependencies", "devDependencies"]
|
|
46
|
+
},
|
|
47
|
+
"@deepseek-ai/dsh-client-store": {
|
|
48
|
+
"client": ["devDependencies"]
|
|
49
|
+
},
|
|
50
|
+
"@deepseek-ai/dsh-session": {
|
|
51
|
+
"client": ["devDependencies"]
|
|
52
|
+
}
|
|
44
53
|
},
|
|
45
54
|
"semanticReplacements": {
|
|
46
55
|
"@deepseek-ai/dsh-client-runtime": [
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"modules": {
|
|
3
|
+
"@deepseek-ai/dsh-settings": {
|
|
4
|
+
"settingsNamespace": {
|
|
5
|
+
"toModule": "@deepseek-ai/dsh-settings",
|
|
6
|
+
"toSymbol": "SettingsProvider.register",
|
|
7
|
+
"confidence": "semantic",
|
|
8
|
+
"reason": "The settingsNamespace factory was removed. Inject the settings Service and register the namespace through ctx.settings.register(name, schema)."
|
|
9
|
+
}
|
|
10
|
+
},
|
|
3
11
|
"@deepseek-ai/dsh-client-runtime/client": {
|
|
4
12
|
"ClientContext": {
|
|
5
13
|
"toModule": "@deepseek-ai/cordis",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# DSH 0.1.1-rc.2 to 0.1.2-alpha.3 behavior migration
|
|
2
|
+
|
|
3
|
+
The old Client Runtime was split by ownership. There is no aggregate replacement package.
|
|
4
|
+
|
|
5
|
+
- Session control, list state, commands, projections, queue and event windows belong to `api-session-controller/client`.
|
|
6
|
+
- Workspace state and commands belong to `api-workspace-controller/client`; navigation policy belongs to `ui-workspace`.
|
|
7
|
+
- Conversation assembly belongs to `ui-conversation`; Chat and Trajectory own their respective projections.
|
|
8
|
+
- Approval and Question own their pending objects; `ui-session` only aggregates domain publications.
|
|
9
|
+
- The store engine belongs to `client-store`; React hook synthesis belongs to the renderer.
|
|
10
|
+
- The Host API Proxy was removed. Unary browser operations live on their natural Remote service owners.
|
|
11
|
+
- The demo-only `dsh-agent-spine-demo` package and the SQLite session persistence package were removed by alpha.3; neither has a catalog-confirmed drop-in replacement.
|
|
12
|
+
- Alpha.3 adds the `dsh-session-turn-outline` package and extends session submission/load-through APIs. These additions do not justify mechanical rewrites of existing plugin behavior.
|
|
13
|
+
|
|
14
|
+
An import move is safe only when the catalog marks it `exact`. A `semantic` mapping identifies the new owner but still requires the plugin developer to rewrite behavior and verify the real lifecycle.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"platformModules": [
|
|
3
|
+
"react",
|
|
4
|
+
"react/jsx-runtime",
|
|
5
|
+
"react-dom",
|
|
6
|
+
"react-dom/client",
|
|
7
|
+
"@deepseek-ai/cordis",
|
|
8
|
+
"@deepseek-ai/dsh-client-store",
|
|
9
|
+
"@deepseek-ai/dsh-client-ui-slots",
|
|
10
|
+
"@deepseek-ai/dsh-client-ui-primitives"
|
|
11
|
+
],
|
|
12
|
+
"profilePatchPaths": {
|
|
13
|
+
"web": [
|
|
14
|
+
"packages/bundle/base/cordis.patch.yml",
|
|
15
|
+
"packages/bundle/web-app/cordis.patch.yml"
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"rules": [
|
|
19
|
+
{
|
|
20
|
+
"id": "client-inject-is-informational",
|
|
21
|
+
"note": "dsh.client.inject lists package dependency edges; Cordis service inject controls activation."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "baseline-external-is-implicit",
|
|
25
|
+
"note": "Platform modules are implicit and must not be repeated in dsh.client.external."
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "feature-values-use-services-or-slots",
|
|
29
|
+
"note": "Feature plugins must not use dsh.client.external as a feature-to-feature value dependency mechanism."
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "client-export-required",
|
|
33
|
+
"note": "A web dsh.client declaration requires a published exports[\"./client\"] artifact."
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"id": "dsh-v0.1.1-rc.2__dsh-v0.1.2-alpha.3",
|
|
4
|
+
"from": {
|
|
5
|
+
"ref": "dsh-v0.1.1-rc.2",
|
|
6
|
+
"commit": "b150a551b8d465e31e418e1b2eaf5e79bbb7d28e"
|
|
7
|
+
},
|
|
8
|
+
"to": {
|
|
9
|
+
"ref": "dsh-v0.1.2-alpha.3",
|
|
10
|
+
"commit": "dd6322d604e00eec1ba5e0c8541159906a21094a",
|
|
11
|
+
"version": "0.1.2-alpha.3"
|
|
12
|
+
},
|
|
13
|
+
"description": "DeepSeek Harness 0.1.1-rc.2 to 0.1.2-alpha.3 plugin migration",
|
|
14
|
+
"references": {
|
|
15
|
+
"ownership": ".agents/notes/implemented/architecture/2026-08-20-client-session-conversation-ownership.md",
|
|
16
|
+
"remoteMigration": ".agents/notes/implemented/architecture/2026-08-10-unary-apiproxy-remote-migration.md",
|
|
17
|
+
"clientRules": "packages/client/AGENTS.md"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"removed": [
|
|
3
|
+
"@deepseek-ai/dsh-acp-demo",
|
|
4
|
+
"@deepseek-ai/dsh-acp-snapshot",
|
|
5
|
+
"@deepseek-ai/dsh-agent-spine-demo",
|
|
6
|
+
"@deepseek-ai/dsh-client-runtime",
|
|
7
|
+
"@deepseek-ai/dsh-host-apiproxy",
|
|
8
|
+
"@deepseek-ai/dsh-sdk-jsonrpc-demo",
|
|
9
|
+
"@deepseek-ai/dsh-session-persistence-sqlite"
|
|
10
|
+
],
|
|
11
|
+
"added": [
|
|
12
|
+
"@deepseek-ai/dsh-acp-app",
|
|
13
|
+
"@deepseek-ai/dsh-api-session-controller",
|
|
14
|
+
"@deepseek-ai/dsh-api-settings-controller",
|
|
15
|
+
"@deepseek-ai/dsh-api-workspace-controller",
|
|
16
|
+
"@deepseek-ai/dsh-client-store",
|
|
17
|
+
"@deepseek-ai/dsh-client-ui-approval",
|
|
18
|
+
"@deepseek-ai/dsh-client-ui-chat",
|
|
19
|
+
"@deepseek-ai/dsh-client-ui-schedule",
|
|
20
|
+
"@deepseek-ai/dsh-client-ui-session",
|
|
21
|
+
"@deepseek-ai/dsh-deepseek-llm-api-extensions",
|
|
22
|
+
"@deepseek-ai/dsh-deque",
|
|
23
|
+
"@deepseek-ai/dsh-experimental-agent-team-profile",
|
|
24
|
+
"@deepseek-ai/dsh-experimental-agent-team-web-profile",
|
|
25
|
+
"@deepseek-ai/dsh-experimental-client-ui-agent-team",
|
|
26
|
+
"@deepseek-ai/dsh-experimental-inspector",
|
|
27
|
+
"@deepseek-ai/dsh-experimental-webworker-packer",
|
|
28
|
+
"@deepseek-ai/dsh-experimental-webworker-runtime",
|
|
29
|
+
"@deepseek-ai/dsh-plugin-package-inventory-deepseek",
|
|
30
|
+
"@deepseek-ai/dsh-sdk-app",
|
|
31
|
+
"@deepseek-ai/dsh-sdk-minimal",
|
|
32
|
+
"@deepseek-ai/dsh-session-log-deepseek",
|
|
33
|
+
"@deepseek-ai/dsh-session-snapshot",
|
|
34
|
+
"@deepseek-ai/dsh-session-turn-outline",
|
|
35
|
+
"@deepseek-ai/dsh-util-crypto",
|
|
36
|
+
"@deepseek-ai/dsh-util-time",
|
|
37
|
+
"@deepseek-ai/dsh-util-values",
|
|
38
|
+
"@deepseek-ai/dsh-util-workspace-path",
|
|
39
|
+
"@deepseek-ai/dsh-webhook",
|
|
40
|
+
"@deepseek-ai/dsh-webhook-github",
|
|
41
|
+
"@deepseek-ai/dsh-win32-process"
|
|
42
|
+
],
|
|
43
|
+
"targetVersions": {
|
|
44
|
+
"@deepseek-ai/cordis": "4.0.2"
|
|
45
|
+
},
|
|
46
|
+
"dependencyPolicies": {
|
|
47
|
+
"@deepseek-ai/cordis": {
|
|
48
|
+
"client": ["peerDependencies", "devDependencies"]
|
|
49
|
+
},
|
|
50
|
+
"@deepseek-ai/dsh-client-store": {
|
|
51
|
+
"client": ["devDependencies"]
|
|
52
|
+
},
|
|
53
|
+
"@deepseek-ai/dsh-session": {
|
|
54
|
+
"client": ["devDependencies"]
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"semanticReplacements": {
|
|
58
|
+
"@deepseek-ai/dsh-client-runtime": [
|
|
59
|
+
"@deepseek-ai/dsh-api-session-controller",
|
|
60
|
+
"@deepseek-ai/dsh-api-workspace-controller",
|
|
61
|
+
"@deepseek-ai/dsh-client-store",
|
|
62
|
+
"@deepseek-ai/dsh-client-ui-session",
|
|
63
|
+
"@deepseek-ai/dsh-client-ui-conversation",
|
|
64
|
+
"@deepseek-ai/dsh-client-ui-chat",
|
|
65
|
+
"@deepseek-ai/dsh-client-ui-trajectory",
|
|
66
|
+
"@deepseek-ai/dsh-client-ui-approval",
|
|
67
|
+
"@deepseek-ai/dsh-client-ui-user-questions"
|
|
68
|
+
],
|
|
69
|
+
"@deepseek-ai/dsh-host-apiproxy": [
|
|
70
|
+
"@deepseek-ai/dsh-api-gateway",
|
|
71
|
+
"@deepseek-ai/dsh-api-remotes"
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"services": {
|
|
3
|
+
"sessions": {
|
|
4
|
+
"owner": "@deepseek-ai/dsh-api-session-controller/client",
|
|
5
|
+
"confidence": "semantic",
|
|
6
|
+
"note": "The service name survives, but Session snapshots no longer contain Conversation views or pending interactions."
|
|
7
|
+
},
|
|
8
|
+
"workspaces": {
|
|
9
|
+
"owner": "@deepseek-ai/dsh-api-workspace-controller/client",
|
|
10
|
+
"confidence": "semantic",
|
|
11
|
+
"note": "The service name survives, while cross-domain navigation belongs to ui-workspace."
|
|
12
|
+
},
|
|
13
|
+
"conversation": {
|
|
14
|
+
"owner": "@deepseek-ai/dsh-client-ui-conversation/client",
|
|
15
|
+
"confidence": "semantic",
|
|
16
|
+
"note": "Conversation assembly and input are independent of Session lifecycle snapshots."
|
|
17
|
+
},
|
|
18
|
+
"slots": {
|
|
19
|
+
"owner": "@deepseek-ai/dsh-client-ui-renderer/client",
|
|
20
|
+
"confidence": "semantic",
|
|
21
|
+
"note": "Slot declarations stay in ui-slots; runtime registration and binding belong to ui-renderer."
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"removedHostFacade": {
|
|
25
|
+
"package": "@deepseek-ai/dsh-host-apiproxy",
|
|
26
|
+
"replacementPolicy": "Use the natural business Remote owner through generated api-remotes contributions; there is no replacement facade."
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
{
|
|
2
|
+
"modules": {
|
|
3
|
+
"@deepseek-ai/dsh-settings": {
|
|
4
|
+
"settingsNamespace": {
|
|
5
|
+
"toModule": "@deepseek-ai/dsh-settings",
|
|
6
|
+
"toSymbol": "SettingsProvider.register",
|
|
7
|
+
"confidence": "semantic",
|
|
8
|
+
"reason": "The settingsNamespace factory was removed. Inject the settings Service and register the namespace through ctx.settings.register(name, schema)."
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"@deepseek-ai/dsh-client-runtime/client": {
|
|
12
|
+
"ClientContext": {
|
|
13
|
+
"toModule": "@deepseek-ai/cordis",
|
|
14
|
+
"toSymbol": "Context",
|
|
15
|
+
"confidence": "exact",
|
|
16
|
+
"reason": "ClientContext was a type alias of Cordis Context."
|
|
17
|
+
},
|
|
18
|
+
"createSnapshotStore": {
|
|
19
|
+
"toModule": "@deepseek-ai/dsh-client-store",
|
|
20
|
+
"toSymbol": "createSnapshotStore",
|
|
21
|
+
"confidence": "exact",
|
|
22
|
+
"reason": "The React-free store engine moved to client-store."
|
|
23
|
+
},
|
|
24
|
+
"defineStore": {
|
|
25
|
+
"toModule": "@deepseek-ai/dsh-client-store",
|
|
26
|
+
"toSymbol": "defineStore",
|
|
27
|
+
"confidence": "exact",
|
|
28
|
+
"reason": "The declarative store factory moved to client-store."
|
|
29
|
+
},
|
|
30
|
+
"ObservableSnapshot": {
|
|
31
|
+
"toModule": "@deepseek-ai/dsh-client-store",
|
|
32
|
+
"toSymbol": "ObservableSnapshot",
|
|
33
|
+
"confidence": "exact",
|
|
34
|
+
"reason": "The observable store contract moved to client-store."
|
|
35
|
+
},
|
|
36
|
+
"SnapshotStore": {
|
|
37
|
+
"toModule": "@deepseek-ai/dsh-client-store",
|
|
38
|
+
"toSymbol": "SnapshotStore",
|
|
39
|
+
"confidence": "exact",
|
|
40
|
+
"reason": "The writable store contract moved to client-store."
|
|
41
|
+
},
|
|
42
|
+
"shallowEqual": {
|
|
43
|
+
"toModule": "@deepseek-ai/dsh-client-store",
|
|
44
|
+
"toSymbol": "shallowEqual",
|
|
45
|
+
"confidence": "exact",
|
|
46
|
+
"reason": "The store equality helper moved to client-store."
|
|
47
|
+
},
|
|
48
|
+
"SessionId": {
|
|
49
|
+
"toModule": "@deepseek-ai/dsh-session/types",
|
|
50
|
+
"toSymbol": "SessionId",
|
|
51
|
+
"confidence": "exact",
|
|
52
|
+
"reason": "Session identity is owned by the Session domain."
|
|
53
|
+
},
|
|
54
|
+
"ISessions": {
|
|
55
|
+
"toModule": "@deepseek-ai/dsh-api-session-controller/client",
|
|
56
|
+
"toSymbol": "ISessions",
|
|
57
|
+
"confidence": "semantic",
|
|
58
|
+
"reason": "Session ownership moved to the Session Controller and its snapshots changed."
|
|
59
|
+
},
|
|
60
|
+
"Session": {
|
|
61
|
+
"toModule": "@deepseek-ai/dsh-api-session-controller/client",
|
|
62
|
+
"toSymbol": "Session",
|
|
63
|
+
"confidence": "semantic",
|
|
64
|
+
"reason": "The Client Session object and lifecycle moved to the Session Controller."
|
|
65
|
+
},
|
|
66
|
+
"SessionBinding": {
|
|
67
|
+
"toModule": "@deepseek-ai/dsh-api-session-controller/client",
|
|
68
|
+
"toSymbol": "SessionBinding",
|
|
69
|
+
"confidence": "semantic",
|
|
70
|
+
"reason": "Session bindings are now Controller-owned lifetimes."
|
|
71
|
+
},
|
|
72
|
+
"SessionListState": {
|
|
73
|
+
"toModule": "@deepseek-ai/dsh-api-session-controller/client",
|
|
74
|
+
"toSymbol": "SessionListState",
|
|
75
|
+
"confidence": "semantic",
|
|
76
|
+
"reason": "The list state moved and no longer owns Conversation or pending-interaction facts."
|
|
77
|
+
},
|
|
78
|
+
"SessionSummary": {
|
|
79
|
+
"toModule": "@deepseek-ai/dsh-api-session-controller/client",
|
|
80
|
+
"toSymbol": "SessionSummary",
|
|
81
|
+
"confidence": "semantic",
|
|
82
|
+
"reason": "The Session summary is now a Controller-owned control snapshot."
|
|
83
|
+
},
|
|
84
|
+
"UseProjection": {
|
|
85
|
+
"toModule": "@deepseek-ai/dsh-api-session-controller/client",
|
|
86
|
+
"toSymbol": "UseProjection",
|
|
87
|
+
"confidence": "semantic",
|
|
88
|
+
"reason": "Projection sources are now exposed by Session Controller bindings and adapted by ui-session."
|
|
89
|
+
},
|
|
90
|
+
"IWorkspaces": {
|
|
91
|
+
"toModule": "@deepseek-ai/dsh-api-workspace-controller/client",
|
|
92
|
+
"toSymbol": "IWorkspaces",
|
|
93
|
+
"confidence": "semantic",
|
|
94
|
+
"reason": "Workspace ownership moved to the Workspace Controller and navigation policy moved to ui-workspace."
|
|
95
|
+
},
|
|
96
|
+
"WorkspaceId": {
|
|
97
|
+
"toModule": "@deepseek-ai/dsh-api-workspace-controller/client",
|
|
98
|
+
"toSymbol": "WorkspaceId",
|
|
99
|
+
"confidence": "semantic",
|
|
100
|
+
"reason": "Workspace identity is re-exported by the Workspace Controller."
|
|
101
|
+
},
|
|
102
|
+
"WorkspaceView": {
|
|
103
|
+
"toModule": "@deepseek-ai/dsh-api-workspace-controller/client",
|
|
104
|
+
"toSymbol": "WorkspaceView",
|
|
105
|
+
"confidence": "semantic",
|
|
106
|
+
"reason": "Workspace snapshots are Controller-owned and their shape changed."
|
|
107
|
+
},
|
|
108
|
+
"ConversationNode": {
|
|
109
|
+
"toModule": "@deepseek-ai/dsh-client-ui-conversation/client",
|
|
110
|
+
"toSymbol": "ConversationNode",
|
|
111
|
+
"confidence": "semantic",
|
|
112
|
+
"reason": "Conversation assembly moved out of Session snapshots into ui-conversation."
|
|
113
|
+
},
|
|
114
|
+
"ConversationSnapshot": {
|
|
115
|
+
"toModule": "@deepseek-ai/dsh-client-ui-conversation/client",
|
|
116
|
+
"toSymbol": "ConversationSnapshot",
|
|
117
|
+
"confidence": "semantic",
|
|
118
|
+
"reason": "Conversation is now an independent target-neutral source."
|
|
119
|
+
},
|
|
120
|
+
"PendingInteraction": {
|
|
121
|
+
"toModule": "@deepseek-ai/dsh-client-ui-session/client",
|
|
122
|
+
"toSymbol": "SessionPendingInteraction",
|
|
123
|
+
"confidence": "semantic",
|
|
124
|
+
"reason": "Approval and Question now publish domain-owned pending interactions through ui-session."
|
|
125
|
+
},
|
|
126
|
+
"PendingWait": {
|
|
127
|
+
"toModule": "@deepseek-ai/dsh-client-ui-session/client",
|
|
128
|
+
"toSymbol": "SessionPendingInteraction",
|
|
129
|
+
"confidence": "semantic",
|
|
130
|
+
"reason": "The Runtime PendingWait aggregate was removed; pending domains own their payloads."
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|