@dsh-workbench/core 1.0.0-beta.1 → 1.0.0
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 +18 -15
- package/bin/dsh-workbench +27 -26
- package/client.js +213 -322
- package/dist/client/client.body.js +213 -322
- package/dist/client/index.js +213 -322
- package/dist/host/index.js +108 -74
- package/dist/types/app/layouts/rightbar/market-shared-rows.d.ts +0 -1
- package/dist/types/app/layouts/workbench-settings/ConfigSyncRows.d.ts +1 -3
- package/dist/types/kernel/contract/config-sync.d.ts +1 -1
- package/dist/types/modules/panels/model/diy-context.d.ts +14 -4
- package/dist/types/modules/panels/model/diy-report.d.ts +2 -0
- package/dist/types/modules/panels/model/diy-tools.d.ts +2 -1
- package/package.json +5 -3
- package/profile/sandbox.patch.yml +7 -5
- package/scripts/clone-profile.mjs +11 -199
- package/scripts/create-workbench.mjs +7 -20
- package/scripts/patch-blocks.mjs +60 -0
- package/scripts/seed-profile.sh +14 -27
- package/scripts/share-data-root.mjs +211 -0
- package/skills/workbench-module-diy/FAMILY.md +4 -6
- package/skills/workbench-module-diy/SKILL.md +4 -5
- package/skills/workbench-module-diy/WIRING.md +4 -13
- package/dist/types/shared/api/host/git.test.d.ts +0 -1
- package/profile/isolation.patch.yml +0 -46
|
@@ -45,10 +45,9 @@ description: 在工作台里把当前面板调明白,或者给它造一块新
|
|
|
45
45
|
看 / 动屏前 `workbench_diy_debug_start`(否则整族拒;Desktop 跳过,改用 `read=` / 录制);`_panel` / `_status` / `read=` 档不用。
|
|
46
46
|
工具全表 [FAMILY.md](FAMILY.md)。走通才 `dsh-wb-module design accept`;走不通如实记"未验"。
|
|
47
47
|
审批项标注「要你真用一次」,不打勾。结论只报:已装、在面板哪一格。
|
|
48
|
-
8. **发布** ——
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
不展示 `package.json` / npm / 版本字段,也不要问 token。出口与 `needsUser` 处理见 [WIRING.md](WIRING.md) §5。
|
|
48
|
+
8. **发布** —— 只在用户说「帮我发布」之后:`workbench_diy_changelog`(`note=…`)记这一版 → `workbench_diy_publish`(`unit=…`)。
|
|
49
|
+
不手改 `package.json`、不补标题/署名、不问出口:工具与审批屏已经处理;他明确点名安装包 / 公开 / git 才传 target。
|
|
50
|
+
验收没过先 `design accept`;`needsUser` 照 `text` 转述。细节见 [WIRING.md](WIRING.md) §5。
|
|
52
51
|
|
|
53
52
|
## 索引
|
|
54
53
|
|
|
@@ -79,5 +78,5 @@ description: 在工作台里把当前面板调明白,或者给它造一块新
|
|
|
79
78
|
## 硬约束
|
|
80
79
|
|
|
81
80
|
- dsh 已有的从 `kit` 拿(`@dsh-workbench/core/client`);不手搓 DOM + CSS,不直接 import dsh 的包。
|
|
82
|
-
- DIY 模块默认 `private: true`,不发任何源;用户确认后走 `workbench_diy_publish
|
|
81
|
+
- DIY 模块默认 `private: true`,不发任何源;用户确认后走 `workbench_diy_publish`。
|
|
83
82
|
- 源码零注释(`//`、块注释、`.css` 注释都不许);说明写模块 `README.md` 或 spec。
|
|
@@ -63,16 +63,7 @@ DIY 族仅在选了 DIY 模式的会话出现(按模式,不按工作区)
|
|
|
63
63
|
默认 `private: true`,不发任何源。用户说「帮我发布」时,**不要手改 `package.json`、不要让他看 npm**,
|
|
64
64
|
走 `workbench_diy_publish`(`unit=…`):
|
|
65
65
|
|
|
66
|
-
1.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
发布审批屏会把这一版的更新日志按 markdown 展示给用户。
|
|
71
|
-
3. 出口只有四种:团队源(配了私源时默认)、公网 npm(必须用户明确说“公开”)、安装包(没私源时默认,
|
|
72
|
-
零凭据)、git(提交构建产物 + tag + push)。只问「给团队用、公开发、还是先给你一个安装包」;
|
|
73
|
-
凭据细节由预检接管。
|
|
74
|
-
4. 工具回 `needsUser` 时,照它那句 `text` 对用户说一句,给能照抄的命令,等他说「好了」再跑;
|
|
75
|
-
**不在对话里要 token / OTP**,不把红字贴给用户。`otp` 交接后用 `workbench_diy_publish` 的 `verify=true`
|
|
76
|
-
(或 `release --verify`)只核不发。
|
|
77
|
-
5. `dsh-wb-module publish` 仍是**发货前清单**(只 dry run);`release --dry-run` 只预览;
|
|
78
|
-
`--verify` 只核已发布的包。公网源必须显式 `--target public` + license,默认只认团队源 / 安装包。
|
|
66
|
+
1. 先把这一版写进 `CHANGELOG.md`(`workbench_diy_changelog`,`note=…`),真卡片验收过(`design accept`)。
|
|
67
|
+
出口、署名、标题、安装命令都由工具与审批屏处理:不用问、不用补;用户没点名出口就不传 target。
|
|
68
|
+
2. 工具回 `needsUser` 时照 `text` 转述,不在对话里要 token / OTP;`otp` 交接后 `verify=true` 只核不发。
|
|
69
|
+
3. 只改市集元数据(标题 / 作者 / 说明)不升版本:`refresh=true`。
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# workbench profile 的会话/存储隔离层(片段)。
|
|
2
|
-
#
|
|
3
|
-
# 这个文件是"补丁层片段",不是独立补丁文件:seed-profile.sh 会把它
|
|
4
|
-
# 追加进 ~/.dsh/profiles/workbench/cordis.patch.yml。
|
|
5
|
-
#
|
|
6
|
-
# 为什么需要它:dsh-base 把会话与存储的根都挂在 $DSH_HOME 上
|
|
7
|
-
# (dshHomePath('sessions') / dshHomePath('storages')),所以默认情况下
|
|
8
|
-
# 两个 profile 共用同一份会话历史。工作台要提供自己的定制工具,等于一个
|
|
9
|
-
# 独立的 agent 环境,共享会话没有意义 —— 这三行把数据分开。
|
|
10
|
-
#
|
|
11
|
-
# 隔离后(默认 profile;新 profile 由 DSH_WORKBENCH_HOME 指到自己的根):
|
|
12
|
-
# 会话 $DSH_HOME/workbench/sessions/
|
|
13
|
-
# 工作区 $DSH_HOME/workbench/storages/ (workspace 走 storage-domain)
|
|
14
|
-
# 附件 $DSH_HOME/workbench/attachments/v1/
|
|
15
|
-
# 有意不隔离:
|
|
16
|
-
# 凭据 ~/.dsh/.credentials.yaml (两边共用同一把 API key)
|
|
17
|
-
#
|
|
18
|
-
# 注意:patch 的 config 是整体替换、不深合并。这三行原本各自只声明了
|
|
19
|
-
# root / dshHome,所以只重述这一个字段是安全的;若你给这些行配过别的
|
|
20
|
-
# 字段(例如 session-persistence-jsonl 的 compression),必须一并重述。
|
|
21
|
-
|
|
22
|
-
- id: session-persistence-jsonl
|
|
23
|
-
name: '@deepseek-ai/dsh-session-persistence-jsonl'
|
|
24
|
-
config:
|
|
25
|
-
root: !!js (process.env.DSH_WORKBENCH_HOME ?? dshHomePath('workbench')) + '/sessions'
|
|
26
|
-
|
|
27
|
-
- id: storage-json
|
|
28
|
-
name: '@deepseek-ai/dsh-storage-json'
|
|
29
|
-
config:
|
|
30
|
-
root: !!js (process.env.DSH_WORKBENCH_HOME ?? dshHomePath('workbench')) + '/storages'
|
|
31
|
-
|
|
32
|
-
- id: attachment-local
|
|
33
|
-
name: '@deepseek-ai/dsh-attachment-local'
|
|
34
|
-
config:
|
|
35
|
-
dshHome: !!js process.env.DSH_WORKBENCH_HOME ?? dshHomePath('workbench')
|
|
36
|
-
|
|
37
|
-
# 可写根:**无会话**的插件命令(市场装模块、自举跑的那几条)回落到它。
|
|
38
|
-
#
|
|
39
|
-
# 跟启动器的 profile/sandbox.patch.yml 同值,两处都在是因为入口不同:启动器每次启动叠
|
|
40
|
-
# 那一层;直接用 `dsh workbench` 起的没有 `--patch`,就靠这一行。两处同值 ⇒ 谁先谁后都不算变更,
|
|
41
|
-
# 不会触发在线重组。**别把它放回 bundle 层**(在线启用会撞 session-controller 的重组竞态,
|
|
42
|
-
# 见 ADR-0037 的 2026-10-22 补记)。
|
|
43
|
-
- id: sandbox-policy
|
|
44
|
-
config:
|
|
45
|
-
mode: !!js process.env.DSH_PERMISSION_MODE ?? 'workspace-write'
|
|
46
|
-
workspaceRoot: !!js process.env.DSH_WORKBENCH_HOME ?? dshHomePath('workbench')
|