@dsh-workbench/core 0.3.9 → 0.3.11
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 +19 -7
- package/bin/dsh-workbench +2 -2
- package/client.js +1687 -1022
- package/cordis.patch.yml +60 -35
- package/dist/client/client.body.js +1687 -1022
- package/dist/client/index.js +1372 -707
- package/dist/host/index.js +2897 -2335
- package/dist/types/app/client.d.ts +2 -1
- package/dist/types/app/layouts/env-gate/boot-gate.d.ts +1 -1
- package/dist/types/app/layouts/market/use-module-versions.d.ts +13 -2
- package/dist/types/app/layouts/rightbar/MarketView.d.ts +6 -3
- package/dist/types/app/layouts/rightbar/market-act.d.ts +6 -3
- package/dist/types/app/layouts/rightbar/market-rows.d.ts +1 -1
- package/dist/types/app/layouts/rightbar/market-settle-hold.d.ts +2 -0
- package/dist/types/app/layouts/rightbar/market-settle.d.ts +20 -0
- package/dist/types/app/layouts/rightbar/market-shared-rows.d.ts +0 -1
- package/dist/types/app/layouts/rightbar/market-update-verdict.d.ts +41 -0
- package/dist/types/app/layouts/rightbar/market-view-text.d.ts +4 -1
- package/dist/types/app/layouts/rightbar/store.d.ts +14 -0
- package/dist/types/app/layouts/sidebar/LongTaskDot.d.ts +12 -0
- package/dist/types/app/layouts/sidebar/LongTaskHover.d.ts +12 -0
- package/dist/types/app/layouts/sidebar/edition-boot.d.ts +24 -0
- package/dist/types/app/layouts/sidebar/edition.d.ts +22 -0
- package/dist/types/app/layouts/workbench-settings/ConfigSyncItem.d.ts +5 -0
- package/dist/types/app/layouts/workbench-settings/SettingsItem.d.ts +17 -0
- package/dist/types/app/layouts/workbench-settings/SidebarEditionItem.d.ts +11 -0
- package/dist/types/app/layouts/workbench-settings/WorkbenchSettingsSection.d.ts +11 -0
- package/dist/types/modules/panels/model/approval.d.ts +12 -4
- package/dist/types/modules/panels/model/diy-browser-tools.d.ts +1 -1
- package/dist/types/modules/panels/model/diy-context.d.ts +31 -14
- package/dist/types/modules/panels/model/diy-page.d.ts +3 -2
- package/dist/types/modules/panels/model/diy-record.d.ts +3 -3
- package/dist/types/modules/panels/model/diy-report.d.ts +6 -7
- package/dist/types/modules/panels/model/market-dependency-update.d.ts +21 -0
- package/dist/types/modules/panels/model/market-dispatch.d.ts +1 -0
- package/dist/types/modules/panels/model/market-types.d.ts +1 -0
- package/dist/types/modules/panels/model/market-update-bundle.d.ts +25 -0
- package/dist/types/modules/panels/model/market-verify.d.ts +31 -0
- package/dist/types/modules/panels/unit.d.ts +3 -4
- package/dist/types/shared/api/bundle-install.d.ts +13 -0
- package/dist/types/shared/api/host/approval-gate.d.ts +39 -0
- package/dist/types/shared/api/host/bundle-routes.d.ts +2 -1
- package/dist/types/shared/api/host/diy-artifacts.d.ts +14 -0
- package/dist/types/shared/api/host/diy-modules.d.ts +41 -0
- package/dist/types/shared/api/host/host-routes.d.ts +13 -0
- package/dist/types/shared/api/host/permission-mode.d.ts +9 -0
- package/dist/types/shared/api/host/runtime-seed.d.ts +2 -0
- package/dist/types/shared/api/host/self-update.d.ts +9 -2
- package/dist/types/shared/api/host/sidebar-edition.d.ts +46 -0
- package/dist/types/shared/api/host/workspace-root.d.ts +13 -0
- package/dist/types/shared/api/sidebar-edition.d.ts +14 -0
- package/dist/types/shared/api/unit-board.d.ts +20 -0
- package/dist/types/shared/api/write-outcome.d.ts +15 -0
- package/dist/types/shared/components/IconModules.d.ts +8 -0
- package/dist/types/shared/components/blocker-action.d.ts +16 -0
- package/dist/types/shared/hooks/sidebar-edition.d.ts +7 -0
- package/dist/types/shared/hooks/use-capabilities.d.ts +5 -0
- package/dist/types/shared/hooks/use-capability-gate.d.ts +1 -2
- package/dist/types/shared/hooks/use-host-write.d.ts +1 -1
- package/dist/types/shared/hooks/use-unit-board.d.ts +1 -1
- package/docs/HANDOFF.md +3 -3
- package/docs/OPERATIONS.md +16 -5
- package/package.json +3 -3
- package/preset/diy.patch.yml +2 -2
- package/profile/isolation.patch.yml +11 -0
- package/skills/workbench-module-diy/BUILD.md +62 -131
- package/skills/workbench-module-diy/COPY.md +89 -0
- package/skills/workbench-module-diy/DATASOURCE.md +84 -112
- package/skills/workbench-module-diy/DESIGN.md +75 -109
- package/skills/workbench-module-diy/FAMILY.md +70 -54
- package/skills/workbench-module-diy/KIT.md +77 -133
- package/skills/workbench-module-diy/LINKAGE.md +66 -105
- package/skills/workbench-module-diy/PANEL.md +79 -171
- package/skills/workbench-module-diy/REVIEW.md +67 -81
- package/skills/workbench-module-diy/SKILL.md +57 -96
- package/skills/workbench-module-diy/STEPS.md +66 -69
- package/skills/workbench-module-diy/TOOLING.md +34 -51
- package/skills/workbench-module-diy/TOOLS.md +110 -103
- package/skills/workbench-module-diy/WIRING.md +51 -83
- package/skills/workbench-module-diy/WRITES.md +89 -142
- package/dist/types/app/layouts/config-sync/ConfigSyncSection.d.ts +0 -5
- package/dist/types/shared/api/host/diy-workshop.d.ts +0 -23
- package/dist/types/shared/api/host/workshop-root.d.ts +0 -16
- /package/dist/types/shared/{api/host/diy-workshop.test.d.ts → components/blocker-action.test.d.ts} +0 -0
package/cordis.patch.yml
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
# 工作台 bundle
|
|
2
|
-
# 1.
|
|
3
|
-
# 2.
|
|
4
|
-
# 3. 插入工作台插件本体。
|
|
1
|
+
# 工作台 bundle 的补丁层。做两件事:
|
|
2
|
+
# 1. 打开宿主的模块监听 —— 让 `npm run dev` 重建后宿主插件能热换;
|
|
3
|
+
# 2. 插入工作台插件本体。
|
|
5
4
|
#
|
|
6
5
|
# 组合顺序(实测):
|
|
7
6
|
# 1. bundle 层(dsh.profile.bundles 顺序) ← 本文件在这里
|
|
@@ -9,20 +8,53 @@
|
|
|
9
8
|
# 3. 机器公共层($DSH_HOME/cordis.patch.yml,对所有 profile 生效)
|
|
10
9
|
# 4. --patch 叠加层
|
|
11
10
|
#
|
|
12
|
-
# 我们排在 bundle 列表最后,所以能覆盖 dsh-web-app
|
|
11
|
+
# 我们排在 bundle 列表最后,所以能覆盖 dsh-web-app 插入的行。
|
|
13
12
|
|
|
14
|
-
# ──
|
|
15
|
-
# sidebar 是 single 槽,理论上可以用更低的 priority 遮蔽 ui-sidebar 的
|
|
16
|
-
# SidebarRoot。但子座位(sidebar.panellist / sidebar.settings / …)的声明
|
|
17
|
-
# 是**独占 claim**,SlotSpec 里没有 priority:两个 entry 声明同一批座位,
|
|
18
|
-
# 后一个会抛错,导致 ui-sidebar 整个 entry 激活失败、前端直接白屏报
|
|
19
|
-
# "Failed to load plugins"。
|
|
13
|
+
# ── 左栏二选一:官方 ui-sidebar / 工作台自己的 ─────────────────────────
|
|
20
14
|
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
15
|
+
# 默认是**官方**左栏(这一层不再摘 ui-sidebar)。Guest 的「设置 → 工作台设置 →
|
|
16
|
+
# 会话列表」选「自定义」时,往 **profile 用户层**(profiles/<name>/cordis.patch.yml)
|
|
17
|
+
# 写一行 `- id: ui-sidebar` + `disabled: true`;dsh-hmr 盯着 profile patch,
|
|
18
|
+
# 变了会重组,刷新页面即生效(不用重启进程)。
|
|
19
|
+
#
|
|
20
|
+
# 为什么不能运行时遮蔽:sidebar 的子座位(sidebar.panellist / .settings / …)是
|
|
21
|
+
# **独占 claim**,两个 entry 声明同一批座位会抛错;而运行时只给声明了 children 的
|
|
22
|
+
# entry 发 `renderSlot`。所以两套左栏不能同时在场,只能按组合层二选一。
|
|
23
|
+
# 证据:.scratch/sidebar-edition/spec.md §3。
|
|
24
|
+
|
|
25
|
+
# ── 权限预设:多给一档「全盘写 + 保留审批」 ────────────────────────────
|
|
26
|
+
# dsh 出厂只有「工作区内修改」(workspace-write + ask)与「完全权限」
|
|
27
|
+
# (danger-full-access + never)。中间那档「文件边界全开、但审批策略仍是 ask」
|
|
28
|
+
# 不在表里,用户选不到;这里把它加进选择器。
|
|
29
|
+
#
|
|
30
|
+
# 这一档是 dsh 层的权限档,不绑任何产品:名字与描述都不带产品字样。
|
|
31
|
+
# 它只改变两个旋钮,谁读这两个旋钮(写闸门、升权审批、插件命令……)
|
|
32
|
+
# 各自按自己的规则响应。
|
|
33
|
+
#
|
|
34
|
+
# `config` 是整体替换、不深合并:dsh 出厂那三档必须一起写全。
|
|
35
|
+
# `defaultPreset` 不写,保持 dsh 按组合默认值推断(通常是 workspace-write)。
|
|
36
|
+
#
|
|
37
|
+
# id 用 `danger-full-access-ask`,不覆盖 `danger-full-access`:后者要留给
|
|
38
|
+
# 真正「不问审批」的完全权限。代价是 dsh 客户端只对 `danger-full-access` /
|
|
39
|
+
# `auto` 两个 id 弹全盘风险确认、也只给那四个内置 id 图标 —— 这一档点了直接切、
|
|
40
|
+
# 而且没有图标(2026-10-22 明确接受)。
|
|
41
|
+
- id: permission
|
|
42
|
+
config:
|
|
43
|
+
presets:
|
|
44
|
+
read-only:
|
|
45
|
+
sandbox: read-only
|
|
46
|
+
approval: ask
|
|
47
|
+
workspace-write:
|
|
48
|
+
sandbox: workspace-write
|
|
49
|
+
approval: ask
|
|
50
|
+
danger-full-access:
|
|
51
|
+
sandbox: danger-full-access
|
|
52
|
+
approval: never
|
|
53
|
+
danger-full-access-ask:
|
|
54
|
+
sandbox: danger-full-access
|
|
55
|
+
approval: ask
|
|
56
|
+
name: 完全权限(保留审批)
|
|
57
|
+
description: 允许写工作区外;需要审批的操作仍会继续询问。
|
|
26
58
|
|
|
27
59
|
# ── 宿主侧热更新 ──────────────────────────────────────────────────────
|
|
28
60
|
# 出厂默认 `root: []` = 不监听任何模块目录,改了宿主代码只能重启。
|
|
@@ -94,27 +126,20 @@
|
|
|
94
126
|
- '*(../)**/node_modules'
|
|
95
127
|
- '*(../)**/.*'
|
|
96
128
|
|
|
97
|
-
# ──
|
|
129
|
+
# ── 可写根**不在这里**(2026-10-22 挪走)──────────────────────────────────
|
|
98
130
|
#
|
|
99
|
-
#
|
|
100
|
-
#
|
|
101
|
-
#
|
|
102
|
-
#
|
|
103
|
-
#
|
|
104
|
-
# dsh-base 出厂那句 `process.cwd()`,`$DSH_HOME/workbench` 不在它下面。
|
|
131
|
+
# 这一格曾经有一行 `sandbox-policy`(`workspaceRoot` → `$DSH_HOME/workbench`),
|
|
132
|
+
# 为的是"装进别人的 profile 也就地放行"。它被挪走了,因为 **bundle 层是在线启用时
|
|
133
|
+
# 才生效的**:dsh 0.2.1 的在线重组在改这一行时会重建 `session-controller`,与
|
|
134
|
+
# `file-upload` 注销 resolver 赛跑 —— 启用当场把 session-controller 打成 failed,
|
|
135
|
+
# 之后每次新建会话都是 `gateway/service-unavailable`(连 toggle 都救不回来,只能重启)。
|
|
105
136
|
#
|
|
106
|
-
#
|
|
107
|
-
#
|
|
108
|
-
#
|
|
109
|
-
#
|
|
110
|
-
#
|
|
111
|
-
#
|
|
112
|
-
# `process.cwd()` 变成 `$DSH_HOME/workbench`。有会话的命令不受影响(会话用自己的
|
|
113
|
-
# cwd),工作台自己的命令本来也只该写这一棵树。
|
|
114
|
-
- id: sandbox-policy
|
|
115
|
-
config:
|
|
116
|
-
mode: !!js process.env.DSH_PERMISSION_MODE ?? 'workspace-write'
|
|
117
|
-
workspaceRoot: !!js dshHomePath('workbench')
|
|
137
|
+
# 证据与 A/B:ADR-0037 的 2026-10-22 补记。自带 profile 的可写根仍有两处:启动器每次启动
|
|
138
|
+
# 叠的 `--patch profile/sandbox.patch.yml`,以及 `profile/isolation.patch.yml` 里同值的那一行
|
|
139
|
+
# (seed-profile.sh 追加进 profile,给不带启动器的 `dsh workbench`)。装进别人的 profile 时,
|
|
140
|
+
# 请把那一行写进那个 profile 的 `cordis.patch.yml` 再**重启**(在线写同一行也会撞同一个竞态)。
|
|
141
|
+
# 少了它只会让"无会话的插件命令"被沙箱挡,不会再动会话接口;宿主启动时会就此打一条 warn
|
|
142
|
+
# (见 runtime-seed 的 coversWritableRoot)。
|
|
118
143
|
|
|
119
144
|
- insert:
|
|
120
145
|
- id: workbench
|