@gavinc-cn/dsh-plugins 0.1.0 → 0.2.1
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 +30 -69
- package/package.json +12 -32
- package/cordis.patch.yml +0 -64
- package/lib/index.js +0 -3
- package/locale/en.json +0 -6
- package/locale/zh.json +0 -6
package/README.md
CHANGED
|
@@ -1,84 +1,45 @@
|
|
|
1
|
-
# @gavinc-cn/dsh-plugins
|
|
1
|
+
# @gavinc-cn/dsh-plugins(聚合元包)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
> **0.2.0 起本包不再是 bundle。** 它只是一个「装一个拿到全部」的 npm 入口:
|
|
4
|
+
> `dependencies` 指向拆分后的两个 bundle 包,自身不含 `dsh.bundle`、不含任何 `cordis.patch.yml`。
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
- **整包开关**:包名在不在 `dsh.profile.bundles`。
|
|
6
|
+
| 版本 | 语义 |
|
|
7
|
+
|---|---|
|
|
8
|
+
| `0.1.0` / `0.1.1` | 单包全量 bundle:`cordis.patch.yml` 里 13 条 `- insert:`,面板一张卡片 |
|
|
9
|
+
| `0.2.0` 起 | 聚合元包:13 个组件拆成两个 bundle,本包只把它们一起装上 |
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
# 装进某个 profile(pnpm 会把依赖里的 11 个组件包一并装上)
|
|
16
|
-
dsh plugin --profile web add @gavinc-cn/dsh-plugins
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
- CLI 这条路径会在 pnpm 成功后**自动**把新 bundle 追加进 `dsh.profile.bundles`(即装完就启用)。
|
|
20
|
-
- 走 **Plugins 面板**的安装入口则**不会**自动选择 bundle,装完要自己把整包开关打开。
|
|
21
|
-
- 改了 `dsh.profile.bundles` 要**重启宿主**才生效(启动时读);profile patch 层是 live 热重载,
|
|
22
|
-
行级开关不需要重启。
|
|
11
|
+
(拆分时是 UI 5 个 / 运行时 8 个;2026-10-15 `kanban-board` 移出 UI bundle 后两个 bundle
|
|
12
|
+
合计 12 个;同日 `dsh-patch-ask-expand` 从运行时 bundle 移到 UI bundle ⇒ 现在是 UI 5 个 /
|
|
13
|
+
运行时 7 个,合计仍是 12 个。)
|
|
23
14
|
|
|
24
|
-
##
|
|
15
|
+
## 拆分后的两个 bundle
|
|
25
16
|
|
|
26
|
-
|
|
|
27
|
-
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
| `dsh-session-unread-persist` | `@gavinc-cn/dsh-session-unread-persist` | 会话列表「已完成未查看」绿点持久化 |
|
|
31
|
-
| `dsh-turn-labels` | `@gavinc-cn/dsh-turn-labels` | 右侧轮次刻度轨换成常驻文字(每轮一行显示该轮提问) |
|
|
32
|
-
| `dsh-sidebar-width-persist` | `@gavinc-cn/dsh-sidebar-width-persist` | 左侧边栏拖动宽度持久化 |
|
|
33
|
-
| `dsh-patch-ask-expand` | `@gavinc-cn/dsh-patch-ask-expand` | 展开 Web GUI 里「提问 / 回答」那一行 |
|
|
34
|
-
| `dsh-superpowers-priming` | `@gavinc-cn/dsh-superpowers-priming` | 给「重开的会话」补一份 superpowers 开场说明(按会话历史判重,不重复注入) |
|
|
35
|
-
| `dsh-memory` | `@gavinc-cn/dsh-memory` | 跨会话记忆:首轮注入两级记忆索引 |
|
|
36
|
-
| `dsh-autocommit` | `@gavinc-cn/dsh-autocommit` | 回合收尾时若本会话还有未提交改动,挡下并提示模型先提交 |
|
|
37
|
-
| `dsh-git-guard` | `@gavinc-cn/dsh-git-guard` | git 操作归属守卫(按提交前缀/分支命名判定,拦下越权 git 写操作) |
|
|
38
|
-
| `dsh-file-guard` | `@gavinc-cn/dsh-file-guard` | 回合收尾比对「本会话写下的文件」与磁盘漂移,只报告不自动改回 |
|
|
17
|
+
| 包 | 组件数 | 判据 | 面板卡片 |
|
|
18
|
+
|---|---|---|---|
|
|
19
|
+
| [@gavinc-cn/dsh-plugins-ui](../dsh-plugins-ui/README.md) | 5 | **面向 Web GUI**:4 个纯浏览器组件(声明 `dsh.client.platform: "web"`)+ `dsh-patch-ask-expand`(宿主侧启动时给官方 client bundle 打补丁,效果也是 GUI 观感) | 标题 = 包名 `@gavinc-cn/dsh-plugins-ui` |
|
|
20
|
+
| [@gavinc-cn/dsh-plugins-runtime](../dsh-plugins-runtime/README.md) | 7 | 宿主(node)侧的运行支撑组件(记忆/守卫/沙箱等),没有 `dsh.client` | 标题 = 包名 `@gavinc-cn/dsh-plugins-runtime` |
|
|
39
21
|
|
|
40
|
-
|
|
41
|
-
|
|
22
|
+
两个包合起来 = 拆分前 `0.1.x` 的 13 个组件减去不随 bundle 下发的 `kanban-board`,即 **12 个**;
|
|
23
|
+
行 id 与相对顺序都没变 ⇒ 各 profile 的覆盖行原样继续命中(`dsh-patch-ask-expand` 从 runtime
|
|
24
|
+
移到 UI 时也是如此,**profile 无需改动**)。
|
|
42
25
|
|
|
43
|
-
##
|
|
26
|
+
## 安装
|
|
44
27
|
|
|
45
|
-
|
|
46
|
-
|
|
28
|
+
```bash
|
|
29
|
+
# 想一次拿到两个 bundle 带来的 12 个组件的依赖(但仍要分别选 bundle)
|
|
30
|
+
pnpm add @gavinc-cn/dsh-plugins
|
|
47
31
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
config:
|
|
52
|
-
skillPath: /path/to/superpowers/skills/using-superpowers/SKILL.md
|
|
32
|
+
# 真正把它挂进某个 profile:分别装两个 bundle(dsh plugin 会把包名追加进 dsh.profile.bundles)
|
|
33
|
+
dsh plugin --profile web add @gavinc-cn/dsh-plugins-ui
|
|
34
|
+
dsh plugin --profile web add @gavinc-cn/dsh-plugins-runtime
|
|
53
35
|
```
|
|
54
36
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
| `dsh-file-guard` | `stateRoot`(或 env `FILE_GUARD_ROOT`) | `~/.orca/file-guard` |
|
|
59
|
-
| `dsh-patch-ask-expand` | `bundlePath` | `~/.dsh/profiles/node_modules/@deepseek-ai/dsh-client-ui-tool/lib/client.js` |
|
|
60
|
-
| 各组件 | `logPath` / `enabled` / `dryRun` | 日志在 `~/.kimi-code/hooks/logs/`,默认启用 |
|
|
61
|
-
|
|
62
|
-
## 开发工作流(重要)
|
|
63
|
-
|
|
64
|
-
若你像本仓库的开发方式一样,**把组件源码放在各 profile 共享的目录**
|
|
65
|
-
(`~/.dsh/profiles/node_modules/@gavinc-cn/`)并在 profile 里用相对 `link:` 声明本包,那么
|
|
66
|
-
「改共享目录里的源码立即生效、不需要重装」。
|
|
67
|
-
|
|
68
|
-
在这种工作流下**不要**再对那个 profile 跑 `pnpm install` / `dsh plugin install`:本包在
|
|
69
|
-
`dependencies` 里声明了 11 个 registry 组件包,pnpm 会把它们下载成 profile 自己的副本
|
|
70
|
-
(`<profile>/node_modules/@gavinc-cn/*`),按 Node 的解析顺序**盖住**共享目录里那份,
|
|
71
|
-
你改的源码就不再生效。要验证「干净安装」请在另一个 profile 或另一台机器上做。
|
|
72
|
-
|
|
73
|
-
## 已知限制
|
|
37
|
+
**不要**把本包名写进 `dsh.profile.bundles`:它声明不了 `dsh.bundle`,加载时会被判为
|
|
38
|
+
`declares no dsh.bundle` 并跳过该层(面板里也会显示成一条 `not-bundle` 异常卡片)。
|
|
39
|
+
用 `dsh plugin add @gavinc-cn/dsh-plugins` 装它时,CLI 会按**普通依赖**安装并打一条同样的 warning —— 这是预期行为。
|
|
74
40
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
(`pluginPackages.metaOf`)⇒ 运行中新增/改 `locale` 要重启宿主才看到。
|
|
78
|
-
- `dsh-patch-ask-expand` 改的是另一个包(`@deepseek-ai/dsh-client-ui-tool`)的成品 client bundle;
|
|
79
|
-
重装/升级那个包会覆盖补丁,靠本插件在启动时重打。
|
|
80
|
-
- 某些组件只在特定平台有意义(Web GUI 类组件在桌面端同样可用,但宿主侧的状态目录、
|
|
81
|
-
日志目录等按上表各自配置)。
|
|
41
|
+
两个 bundle 的 `dsh.profile.bundles` + `dependencies` 都要写(后者决定面板卡片是否显示),
|
|
42
|
+
改完重启宿主才生效;行级开关是 live 热重载。
|
|
82
43
|
|
|
83
44
|
## License
|
|
84
45
|
|
package/package.json
CHANGED
|
@@ -1,49 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gavinc-cn/dsh-plugins",
|
|
3
|
-
"version": "0.1
|
|
4
|
-
"description": "DSH
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "DSH 自研插件的聚合元包:自身不是 bundle(不含任何配置行),只把 @gavinc-cn/dsh-plugins-ui 与 @gavinc-cn/dsh-plugins-runtime 一起装上。",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
"default": "./lib/index.js"
|
|
11
|
-
},
|
|
12
|
-
"./package.json": "./package.json",
|
|
13
|
-
"./locale/*.json": "./locale/*.json"
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/gavinc-cn/dsh-plugins.git",
|
|
9
|
+
"directory": "packages/bundles/dsh-plugins"
|
|
14
10
|
},
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
"patch": "./cordis.patch.yml"
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
"files": [
|
|
21
|
-
"lib",
|
|
22
|
-
"locale",
|
|
23
|
-
"cordis.patch.yml"
|
|
24
|
-
],
|
|
11
|
+
"homepage": "https://github.com/gavinc-cn/dsh-plugins/tree/master/packages/bundles/dsh-plugins#readme",
|
|
12
|
+
"bugs": "https://github.com/gavinc-cn/dsh-plugins/issues",
|
|
25
13
|
"keywords": [
|
|
26
14
|
"dsh",
|
|
27
15
|
"deepseek-harness",
|
|
28
16
|
"cordis",
|
|
29
17
|
"bundle",
|
|
30
|
-
"plugin"
|
|
18
|
+
"plugin",
|
|
19
|
+
"meta"
|
|
31
20
|
],
|
|
32
21
|
"publishConfig": {
|
|
33
22
|
"registry": "https://registry.npmjs.org",
|
|
34
23
|
"access": "public"
|
|
35
24
|
},
|
|
36
25
|
"dependencies": {
|
|
37
|
-
"@gavinc-cn/
|
|
38
|
-
"@gavinc-cn/dsh-
|
|
39
|
-
"@gavinc-cn/dsh-session-unread-persist": "^0.1.1",
|
|
40
|
-
"@gavinc-cn/dsh-turn-labels": "^0.5.2",
|
|
41
|
-
"@gavinc-cn/dsh-sidebar-width-persist": "^0.1.0",
|
|
42
|
-
"@gavinc-cn/dsh-patch-ask-expand": "^0.1.1",
|
|
43
|
-
"@gavinc-cn/dsh-superpowers-priming": "^0.1.0",
|
|
44
|
-
"@gavinc-cn/dsh-memory": "^0.1.0",
|
|
45
|
-
"@gavinc-cn/dsh-autocommit": "^0.1.1",
|
|
46
|
-
"@gavinc-cn/dsh-git-guard": "^0.1.0",
|
|
47
|
-
"@gavinc-cn/dsh-file-guard": "^0.1.0"
|
|
26
|
+
"@gavinc-cn/dsh-plugins-ui": "^0.1.0",
|
|
27
|
+
"@gavinc-cn/dsh-plugins-runtime": "^0.1.0"
|
|
48
28
|
}
|
|
49
29
|
}
|
package/cordis.patch.yml
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# @gavinc-cn/dsh-plugins —— 「一个插件包 = 多个可独立开关的组件」的组合行。
|
|
2
|
-
#
|
|
3
|
-
# 工作方式:
|
|
4
|
-
# * Plugins 面板出现 @gavinc-cn/dsh-plugins 卡片,卡片内每个行 = 一个组件 = 一个开关;
|
|
5
|
-
# * 行开关写回 profile patch 的 `- id: <行id>` 覆盖行(行状态留在各 profile,可各自独立开关);
|
|
6
|
-
# * 整包开关控制包名在不在 profile 的 dsh.profile.bundles。
|
|
7
|
-
#
|
|
8
|
-
# 行 id 与包名的约定:id 是组合树里的本地行键(面板开关按它写回、profile 覆盖行按它命中),
|
|
9
|
-
# 取包名去掉 scope(@gavinc-cn/dsh-memory → dsh-memory);name 才是模块说明符(= 完整包名)。
|
|
10
|
-
#
|
|
11
|
-
# 依赖:本包在 package.json 的 dependencies 里声明了下述 11 个组件包 —— 装本包即把它们一并装上,
|
|
12
|
-
# 各 profile 因此能按包名解析到每一行。若改成本地开发形态(组件源码放在共享目录、profile 里用
|
|
13
|
-
# 相对 `link:` 声明本包),注意**别再**对那个 profile 跑 pnpm install:registry 版会盖住本地那份
|
|
14
|
-
# (见 README「开发工作流」一节)。
|
|
15
|
-
#
|
|
16
|
-
# 机器相关配置(本机检出路径、状态目录、日志路径)**不进本文件**:写在各 profile 的覆盖行里,
|
|
17
|
-
# 例如 `- id: dsh-superpowers-priming` + `config: { skillPath: ... }`(见 README 表格)。
|
|
18
|
-
#
|
|
19
|
-
# 改组件集合 = 改本文件:patch 层是 live 热重载,不需要重装/重启;改完同步到本包被加载的那份副本即可。
|
|
20
|
-
|
|
21
|
-
- insert:
|
|
22
|
-
- id: kanban-board
|
|
23
|
-
disabled: true
|
|
24
|
-
name: "@gavinc-cn/kanban-board"
|
|
25
|
-
|
|
26
|
-
- insert:
|
|
27
|
-
- id: dsh-dim-text
|
|
28
|
-
name: "@gavinc-cn/dsh-dim-text"
|
|
29
|
-
|
|
30
|
-
- insert:
|
|
31
|
-
- id: dsh-session-unread-persist
|
|
32
|
-
name: "@gavinc-cn/dsh-session-unread-persist"
|
|
33
|
-
|
|
34
|
-
- insert:
|
|
35
|
-
- id: dsh-turn-labels
|
|
36
|
-
name: "@gavinc-cn/dsh-turn-labels"
|
|
37
|
-
|
|
38
|
-
- insert:
|
|
39
|
-
- id: dsh-sidebar-width-persist
|
|
40
|
-
name: "@gavinc-cn/dsh-sidebar-width-persist"
|
|
41
|
-
|
|
42
|
-
- insert:
|
|
43
|
-
- id: dsh-patch-ask-expand
|
|
44
|
-
name: "@gavinc-cn/dsh-patch-ask-expand"
|
|
45
|
-
|
|
46
|
-
- insert:
|
|
47
|
-
- id: dsh-superpowers-priming
|
|
48
|
-
name: "@gavinc-cn/dsh-superpowers-priming"
|
|
49
|
-
|
|
50
|
-
- insert:
|
|
51
|
-
- id: dsh-memory
|
|
52
|
-
name: "@gavinc-cn/dsh-memory"
|
|
53
|
-
|
|
54
|
-
- insert:
|
|
55
|
-
- id: dsh-autocommit
|
|
56
|
-
name: "@gavinc-cn/dsh-autocommit"
|
|
57
|
-
|
|
58
|
-
- insert:
|
|
59
|
-
- id: dsh-git-guard
|
|
60
|
-
name: "@gavinc-cn/dsh-git-guard"
|
|
61
|
-
|
|
62
|
-
- insert:
|
|
63
|
-
- id: dsh-file-guard
|
|
64
|
-
name: "@gavinc-cn/dsh-file-guard"
|
package/lib/index.js
DELETED
package/locale/en.json
DELETED