dsh-vibe-math 2.3.16 → 2.4.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.en.md +64 -61
- package/README.md +64 -61
- package/SECURITY.md +56 -0
- package/cordis.patch.yml +1123 -10
- package/docs/AUDIT-CHECKLIST.md +499 -384
- package/docs/COMPAT-AUDIT-ROUND2.md +3 -0
- package/docs/COMPAT-AUDIT-ROUND3.md +139 -0
- package/docs/generate_framework_diagram_v5.mjs +27 -27
- package/docs/release-notes/RELEASE-NOTES-2.4.0.md +172 -0
- package/docs/release-notes/RELEASE-NOTES-2.4.1.md +129 -0
- package/docs/test-timing.md +2 -1
- package/installer.js +89 -21
- package/package.json +36 -10
- package/preset-declaration.js +62 -0
- package/prompt-corpus-persona/persona-corpus.json +2 -2
- package/prompt-corpus-persona/persona-corpus.md +2 -2
- package/prompt-corpus-v5/prompt-corpus-v5.json +7 -7
- package/prompt-corpus-v5/prompt-corpus-v5.md +8 -129
- package/scripts/build-preset-rows.mjs +146 -0
- package/tests/audit-installer-compat.test.mjs +9 -3
- package/tests/audit-preset-rows.test.mjs +185 -0
- package/tests/audit-v5-integrity.mjs +49 -3
- package/tests/e2e-v5-round2.test.mjs +137 -67
- package/tests/formal-verify-v5.test.mjs +43 -35
- package/tests/prompt-v5-integrity.test.mjs +49 -47
- package/tests/selfdrive-v5.mjs +42 -55
- package/vibe-math-v2/agent.cordis.yml +5 -5
- package/vibe-math-v2/preset.yml +1 -1
- package/vibe-math-v2/vibe-math-v2.js +111 -64
- package/vibe-math-v3/vibe-math-v3.js +213 -150
- package/vibe-math-v3//345/256/236/347/216/260/346/226/271/346/241/210.md +2 -2
- package/vibe-math-v4/vibe-math-v4.js +257 -34
- package/vibe-math-v5/agent.cordis.yml +8 -8
- package/vibe-math-v5/preset.yml +1 -1
- package/vibe-math-v5/vibe-math-v5.js +292 -129
- package/vibe-math-v5//345/256/236/347/216/260/346/226/271/346/241/210.md +56 -44
- package/vibe-math-v5//346/236/266/346/236/204/345/233/276.md +24 -22
- package//347/244/272/344/276/213/345/233/276//346/241/206/346/236/266/345/233/276-v5-en.svg +14 -14
- package//347/244/272/344/276/213/345/233/276//346/241/206/346/236/266/345/233/276-v5.svg +14 -14
package/README.md
CHANGED
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
> 运行在 **DeepSeek Harness** 内的一组 **agent preset**(`vibe-math-v2` / `vibe-math-v3` / `vibe-math-v4` / `vibe-math-v5`),
|
|
10
10
|
> 用多代理协作自动求解数学问题并对结论做多代理交叉验证。四个预设共享「**断点续跑**、
|
|
11
11
|
> **中途人工干预**、**进度汇报**、**自然语言驱动**」底座能力,但采用四代不同的求解架构:
|
|
12
|
-
> **💡
|
|
12
|
+
> **💡 四个架构同级**——`vibe-math-v2` 与 `vibe-math-v3` 是**经典**架构(成熟可用、持续维护),`vibe-math-v4` 是「常驻自组织合作研究」架构、`vibe-math-v5` 是最新的「研究所体系」(两者均标注为实验性);根据你的实际需求自行选择(详见下方「怎么选」)。
|
|
13
13
|
>
|
|
14
|
-
> - **`vibe-math-v2`(概率驱动 · JSON
|
|
15
|
-
> - **`vibe-math-v3`(第三代 · 论文式 md + 规划代理 +
|
|
14
|
+
> - **`vibe-math-v2`(概率驱动 · JSON 数据层)· 经典**:`qs.json` 问题清单 + `Propos/` 命题库 + 概率驱动调度 + 代码启发式调度;
|
|
15
|
+
> - **`vibe-math-v3`(第三代 · 论文式 md + 规划代理 + 方法库)· 经典**:全部知识以 **Markdown 论文/研究报告式** 存储与续写(`Problems/` 问题清单+依赖+来源动机、`Progress/` 研究日志、`Propos/` 命题库、`Methods/` 通用理论发明库、`Verified/` 绝对可信);调度前由**规划代理**自主制定接下来 N 步计划;解决过程中发明的理论/框架/工具/方法/思想由 **Method Keeper** 沉淀为可复用方法体系(如发明群论、泛函分析那样)。
|
|
16
16
|
> - **`vibe-math-v4`(第四代 · 常驻自组织合作研究)🧪 实验性**:一组**持久化常驻子代理**互相**留言 + 开会**,自主决定一切任务安排(无中央调度);各自沉淀进度/命题/方法/子问题库并互相查阅;验证**仅当全体常驻一致(真 或 假)**才写入 `Verified/`,否则留库附概率;上下文达阈值自动 `/compact`;仅当全体一致认为原问题已解决才停止。
|
|
17
|
-
> - **`vibe-math-v5`(第五代 · 研究所体系)🧪 实验性 · 最新**:把常驻升级为一座**研究所**——**院士**(领头人 / 组织与协调中心,负责拆解与**分派**、定优先级、主持会议、督导进度)+ **常驻研究员**(有表决权,可自主雇佣/解雇自己的临时工)+ **临时工**(无表决权);有**公共规章**、**群聊与会议**、**compare-and-set 任务板**、**真实解雇**;**≥ m 票布尔一致**才写入 `Verified
|
|
17
|
+
> - **`vibe-math-v5`(第五代 · 研究所体系)🧪 实验性 · 最新**:把常驻升级为一座**研究所**——**院士**(领头人 / 组织与协调中心,负责拆解与**分派**、定优先级、主持会议、督导进度)+ **常驻研究员**(有表决权,可自主雇佣/解雇自己的临时工)+ **临时工**(无表决权);有**公共规章**、**群聊与会议**、**compare-and-set 任务板**、**真实解雇**;**≥ m 票布尔一致**才写入 `Verified/`(反向票阻塞、弃权不计票、未达门槛留库附平均概率);状态存于研究所目录下的**加固 JSON** `State/<研究所>.v5state.json`(串行写、读前必 load),**不写入宿主会话日志**,零 token 成本。
|
|
18
18
|
|
|
19
19
|
安装本插件包(或手动复制预设)后,DSH 的预设选择器里会出现**四个** agent preset。
|
|
20
20
|
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
> (零依赖 Node → **SVG**,`node docs/generate_framework_diagram_v4.mjs`,加 `--lang=en` 生成英文版 `示例图/框架图-v4-en.svg`)。
|
|
31
31
|
> v4 起改用 SVG:纯文本、diff 友好、任意缩放不糊;需要 PNG 时用无头浏览器截图(命令见生成脚本头部)。
|
|
32
32
|
|
|
33
|
-
### Vibe Math V2(概率驱动 · JSON
|
|
33
|
+
### Vibe Math V2(概率驱动 · JSON 数据层)· 经典
|
|
34
34
|
|
|
35
35
|

|
|
36
36
|
|
|
37
37
|
**一句话流水线**:`qs.json` 按优先级取问题 → Explorer 拆方向(全死路则重派生)→ 每方向一个 Solver 多轮迭代(引理进 `Propos/`、解法回 `qs.json`,概率均 <1)→ 调度器选 r(命题 / 命题+证明·证伪 / 问题+解法)派 ≥3 验证器独立审查→辩论→裁决 → 概率=1 自动收口(问题 solved、命题 1/0,优先级置 `never`);全程状态落盘,`resume` 断点续跑,`reportMode` 可 file/push/both 汇报。
|
|
38
38
|
|
|
39
|
-
### Vibe Math V3(论文式 md + 规划代理 +
|
|
39
|
+
### Vibe Math V3(论文式 md + 规划代理 + 方法库)· 经典
|
|
40
40
|
|
|
41
41
|

|
|
42
42
|
|
|
@@ -79,7 +79,7 @@ flowchart TB
|
|
|
79
79
|
subgraph FW["⚙️ 框架 vibe-v5 —— 只是媒介(middleware),绝不指派任务"]
|
|
80
80
|
M["消息中继 · 会议/辩论 · 任务板 CAS+DAG<br/>m 票共识验证 · 上下文与活性 · 编制与雇佣 · 调度器"]
|
|
81
81
|
end
|
|
82
|
-
PROJ["💾
|
|
82
|
+
PROJ["💾 State/<研究所>.v5state.json(加固 JSON 权威源)<br/>11 类事件 · 纯折叠 applyV5Event · 串行写 · 恢复=读前必 load"]
|
|
83
83
|
FS["📁 Members/<id>/* · Shared/* · Verified/ · Problems/"]
|
|
84
84
|
RULE{{"求真门槛:布尔一致 且 布尔票 ≥ m = min(quorumCap, 在册有表决权人数)"}}
|
|
85
85
|
OFF <-->|"vibe_v5_* / /v5 命令 ↔ status / report"| M
|
|
@@ -141,16 +141,17 @@ flowchart TB
|
|
|
141
141
|
|
|
142
142
|
#### 状态与持久化
|
|
143
143
|
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
研究所状态只写在**研究所目录下的加固 JSON** `State/<研究所>.v5state.json` 里:框架的副作用只是把 11 类事件
|
|
145
|
+
交给 `applyV5Event` 纯折叠成状态,再把整份快照**串行落盘**(每条序列化链只服务一个文件)。因此
|
|
146
146
|
|
|
147
147
|
- **零 token 成本**:这些事件**不进模型上下文**,不占成员的对话预算;
|
|
148
|
-
- **恢复走同一条代码路径**:跨进程重启与同进程 abort 后 resume
|
|
148
|
+
- **恢复走同一条代码路径**:跨进程重启与同进程 abort 后 resume 都靠"读前必 load",两条路径是同一段代码;
|
|
149
149
|
- v4 的 `State/*.json` 直写带来的"损坏静默覆盖 / 并发丢写 / 跨进程陈旧快照"这一整类问题在构造上被消除。
|
|
150
150
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
151
|
+
**v5 不再把研究所事件写进宿主会话日志**:DSH 的会话持久化遇到日志里不认识的事件类型会**拒绝加载整个会话**
|
|
152
|
+
(除非写入方标记 `ignorable: true`,而 `Session.append` 无法设置该字段),那会让**你自己的会话在下次恢复时打不开**。
|
|
153
|
+
除状态文件之外的文件(成员成果库、群聊、会议纪要、辩论录、编制镜像、任务板镜像)都是**人可读产物**,
|
|
154
|
+
手工改坏不会破坏研究所。
|
|
154
155
|
|
|
155
156
|
#### 提示词是怎么构成的
|
|
156
157
|
|
|
@@ -184,7 +185,7 @@ flowchart TB
|
|
|
184
185
|
│ ├─ TaskBoard.md # 任务板镜像
|
|
185
186
|
│ └─ State-of-institute.md # 成员对"是否已解决"的判断快照
|
|
186
187
|
├─ Verified/<类型>/<id>.md # 定论(只读;只有它能被当作已确立)
|
|
187
|
-
└─ State/README.md # 说明"
|
|
188
|
+
└─ State/README.md # 说明"这里的文件是镜像,请勿手改"
|
|
188
189
|
```
|
|
189
190
|
|
|
190
191
|
#### 工具面
|
|
@@ -200,7 +201,7 @@ flowchart TB
|
|
|
200
201
|
- **有领头人**:v4 无中央调度、一切靠讨论涌现;v5 在**所内**设有院士负责组织与分派
|
|
201
202
|
(**框架仍然绝不指派**——指派者是院士,同样受 m 票约束)。
|
|
202
203
|
- **求真门槛从"全体一致"改为"≥ m 一致"**(可切回 v4 口径)。
|
|
203
|
-
-
|
|
204
|
+
- **状态存于研究所目录下的加固 JSON** `State/<研究所>.v5state.json`(串行写、读前必 load):恢复就是"读之前先 load"(见上)。
|
|
204
205
|
- **三类职位 + 可雇用的临时工**:编制是可变的,雇佣/解雇是真实的可逆操作。
|
|
205
206
|
- **不引入任何 npm 实验包**:v5 是 preset 内的单个 `.js` 文件,零依赖。
|
|
206
207
|
- **会议与验证严格互斥**(双向排队)。
|
|
@@ -231,9 +232,9 @@ flowchart TB
|
|
|
231
232
|
- **常驻自组织(v4)**:起始产生 N 个**持久化常驻子代理**,此后**所有任务安排由它们互相留言 + 开会自行决定**(框架只做消息总线/会议/任务板,绝不分配任务)。
|
|
232
233
|
- **研究所体系(v5)**:在 v4 的自组织之上引入**现实研究所的组织形式**——**院士**(领头人)负责拆解、**分派**、定优先级、主持会议、督导进度;**常驻研究员**有表决权并可**自主雇佣/解雇自己的临时工**;**临时工**无表决权;全部组织动作都由**所内成员**完成,框架仍然只做媒介。详见上方 [Vibe Math V5](#vibe-math-v5研究所体系-实验性--最新) 一节。
|
|
233
234
|
- **可调的一致性门槛(v5)**:对象要进 `Verified/`,需要 **≥ m = min(`quorumCap`, 在册有表决权人数)** 名有表决权者投出**一致的布尔票**(全 `1` 或全 `0`);**反向票阻塞**、**弃权不计票但计入平均概率**;未达门槛则**留库附平均概率与完整辩论录**,不强行裁决。
|
|
234
|
-
- **零 token 成本的状态持久化(v5
|
|
235
|
+
- **零 token 成本的状态持久化(v5)**:研究所状态写在**研究所目录下的加固 JSON** 里(`State/<研究所>.v5state.json`),不进模型上下文;跨进程与同进程恢复走同一条代码路径(读前必 load)。
|
|
235
236
|
- **真实可逆的编制(v5)**:雇佣会创建常驻子会话,解雇会取消在途回合、释放子会话、收回其任务并丢弃未投递邮件;代号永不复用。
|
|
236
|
-
- **人可读镜像(v4/v5)**:编制表、任务板、会议纪要、辩论录、结题记录都以 Markdown 落盘,人随时可读;但**权威状态不在这些文件里**(v5
|
|
237
|
+
- **人可读镜像(v4/v5)**:编制表、任务板、会议纪要、辩论录、结题记录都以 Markdown 落盘,人随时可读;但**权威状态不在这些文件里**(v5 在 `State/<研究所>.v5state.json`),所以手工改坏它们不会破坏研究所。
|
|
237
238
|
|
|
238
239
|
---
|
|
239
240
|
|
|
@@ -340,50 +341,50 @@ Lean 通过只保证"这段代码过了内核",**不保证它说的就是命
|
|
|
340
341
|
|
|
341
342
|
### 方式 A:作为插件包一键安装(推荐,同时装出四个预设)
|
|
342
343
|
|
|
344
|
+
桌面版在「设置 → 插件」里安装 `dsh-vibe-math`;命令行 profile 用:
|
|
345
|
+
|
|
343
346
|
```sh
|
|
344
347
|
dsh plugin --profile <你的 profile> add dsh-vibe-math
|
|
345
348
|
# 或从 GitHub 直装:
|
|
346
349
|
dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
|
|
347
350
|
```
|
|
348
351
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
**要自定义 preset 就别改这几个受管文件**——复制一份(预设选择器里的复制动作,或自行复制目录成新的 id),那份属于你,随包更新不会碰它。
|
|
352
|
+
之后新建会话,预设选择器里选择 **Vibe Math V2**(v2,经典)、**Vibe Math V3**(v3,经典)、**Vibe Math V4**(v4,常驻自组织)或 **Vibe Math V5**(v5,研究所体系)即可——四个架构同级,按实际需求自选(见「怎么选」)。
|
|
353
|
+
**两个 DSH 世代的落点不同,本包自动适配**:
|
|
354
|
+
|
|
355
|
+
- **DSH ≥ 0.1.7(当前)**:agent preset 由组合行声明。本包在 `cordis.patch.yml` 里声明四个 preset(每行把该 preset 的完整插件清单交给宿主的 `agentPresets` 服务注册),**不往 `~/.dsh/.agent-presets/` 写任何东西**——该目录自 0.1.7 起不再被读取。
|
|
356
|
+
- **DSH ≤ 0.1.6**:preset 仍是目录形式,安装器把四个 preset 写入 `~/.dsh/.agent-presets/`(`vibe-math-v2/` … `vibe-math-v5/`);同一份 `cordis.patch.yml` 里的声明行在这些版本上什么都不注册,因此旧版启动**不会报错**。
|
|
355
357
|
|
|
356
|
-
|
|
358
|
+
**升级包版本后重启 DSH,受管内容会被整体替换成新版本的字节——包括你手动改过的文件。** 这是有意的:一个"一半旧版、一半新版"的 preset 会挂不上或行为诡异,而你在外面看不出来。**被替换掉的手改内容不会丢**:目录形式下原文会先备份到 `~/.dsh/.agent-presets/.vibe-math-backup/<旧版本>/<preset>/`,文件名会在日志里列出。
|
|
359
|
+
**要自定义 preset 就别改受管内容**——复制一份(预设选择器里的复制动作,或在自己的 bundle 里用新的 id 声明)。注意:在当前 DSH 里你若为**同名 id** 保存了自己的声明,本包会放弃注册并打印一行说明,以你的声明为准。
|
|
357
360
|
|
|
358
|
-
|
|
361
|
+
### 方式 B:手动声明(自定义 / 二次开发)
|
|
359
362
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
C:\Users\<你>\.dsh\.agent-presets\vibe-math-v3\ ← 复制 vibe-math-v3/ 下的 agent.cordis.yml / preset.yml / vibe-math-v3.js
|
|
363
|
-
C:\Users\<你>\.dsh\.agent-presets\vibe-math-v4\ ← 复制 vibe-math-v4/ 下的 agent.cordis.yml / preset.yml / vibe-math-v4.js
|
|
364
|
-
C:\Users\<你>\.dsh\.agent-presets\vibe-math-v5\ ← 复制 vibe-math-v5/ 下的 agent.cordis.yml / preset.yml / vibe-math-v5.js
|
|
365
|
-
```
|
|
363
|
+
- **DSH ≥ 0.1.7**:把 `vibe-math-vN/agent.cordis.yml` 整段作为 `plugins` 放进一个声明行——既可以照抄本包 `cordis.patch.yml` 里的 `dsh-vibe-math/preset-declaration` 行,也可以用宿主自带的 `@deepseek-ai/dsh-agent-preset` 行;把这个 bundle 装进你的 profile 即可。完整规则见 DSH 自带技能 `editing-cordis-compositions`。
|
|
364
|
+
- **DSH ≤ 0.1.6**:把 `vibe-math-vN/` 下的 `agent.cordis.yml` / `preset.yml` / `vibe-math-vN.js` 复制到 `~/.dsh/.agent-presets/vibe-math-vN/`。
|
|
366
365
|
|
|
367
|
-
|
|
368
|
-
3. 会话启动后即可使用:v2/v3 的工具是 `vibe_math_*`、v4 是 `vibe_v4_*`、v5 是 `vibe_v5_*`;输入框键入 `/vibe`、`/v4`、`/v5` 有自动补全。
|
|
366
|
+
新建会话后在 preset 选择器里选 **「Vibe Math V2」** / **「Vibe Math V3」** / **「Vibe Math V4」** / **「Vibe Math V5」**;会话启动后即可使用:v2/v3 的工具是 `vibe_math_*`、v4 是 `vibe_v4_*`、v5 是 `vibe_v5_*`;输入框键入 `/vibe`、`/v4`、`/v5` 有自动补全。
|
|
369
367
|
|
|
370
|
-
>
|
|
368
|
+
> 改过 preset 定义后需**重启 DSH 进程**再开新会话(preset 的 standing mount 会缓存到进程退出)。
|
|
371
369
|
|
|
372
370
|
### DSH 版本适配与依赖
|
|
373
371
|
|
|
374
|
-
-
|
|
372
|
+
- **形态依赖(两条线,本包一份 bundle 全兼容)**:**bundle patch 机制**(`cordis.patch.yml`,`dsh.bundle.patch` 必须是**字符串**——0.1.5/0.1.6 会把该值直接送进 `path.join`,数组会让 profile 起不来);**DSH ≥ 0.1.7** 走 **组合行声明**(`agentPresets` 服务),**DSH ≤ 0.1.6** 走 `~/.dsh/.agent-presets/<id>/` 目录 + preset picker。
|
|
375
373
|
- **宿主插件行**:`agent.cordis.yml` 引用宿主提供的 `@deepseek-ai/dsh-*` 插件行(persona、agent-instructions、tool-bash/pwsh、tool-fs/fs-search、tool-jobs、skill-filesystem、tool-skill、tool-goal、plan-mode、compaction、subagent/workflow、ask-user、todo、web 等,约 21 个唯一包名)。宿主缺行会导致 preset 挂载失败(会话启动时报错)。
|
|
376
|
-
- **宿主服务 API**:预设插件消费 `subagents`(startContinuable / **sendMessage**(续做/唤醒;`followup` 仅为 `Agent` 对象方法、**不是** `subagents` 服务方法)/ interrupt / drainContinuableChildren(v5 用于**真实解雇**))、`agents`(get/roots)、`tools`(register/restrict)、`commands`(register)、`fs`(resolve/stat/readText/writeText/listDir),以及**可选** `subprocess` / `sandboxPolicy` / `compaction
|
|
374
|
+
- **宿主服务 API**:预设插件消费 `subagents`(startContinuable / **sendMessage**(续做/唤醒;`followup` 仅为 `Agent` 对象方法、**不是** `subagents` 服务方法)/ interrupt / drainContinuableChildren(v5 用于**真实解雇**))、`agents`(get/roots)、`tools`(register/restrict)、`commands`(register)、`fs`(resolve/stat/readText/writeText/listDir),以及**可选** `subprocess` / `sandboxPolicy` / `compaction`。这些 API 形状随 DSH 版本演进;本项目**已在 `dsh-v0.2.0-rc.2` 上逐项核对并适配**(`package.json` 的 `dsh.testedVersion`),并同时对齐 `0.1.5-rc.2`。**注意:DSH 0.1.2 起 `subagents.startContinuable` 的 `agentOptions` / `toolFilter` 需要宿主 provider 声明对应 capability**(spawn / fork 进程内 provider 均支持,v4/v5 指定成员模型/路由与工具权限依赖于此)。
|
|
375
|
+
- **v5 的研究所状态只写在 `State/<研究所>.v5state.json`**(加固 JSON、串行写、读前必 load)。v5 **不再**把研究所事件写进宿主会话日志:DSH 的会话持久化遇到日志里不认识的事件类型会**拒绝加载整个会话**(除非写入方标记 `ignorable: true`,而 `Session.append` 无法设置该字段),那会让**你自己的会话在下次恢复时打不开**。
|
|
376
|
+
- **常驻数量有宿主上限**:DSH ≥ 0.1.7 对每个根代理的**存活 continuable 子代理**设了上限(`subagent` 行的 `maxActiveSubagents`,默认 8)。v4/v5 会在撞到上限时给出明确提示、把该次派生推迟到下一轮,而不是让启动循环崩在半途。
|
|
377
377
|
> **2026 兼容性修复要点**(详见 `docs/COMPAT-AUDIT-ROUND2.md`):① `tools.restrict()` 对**未注册的工具名抛错**,而 filter 在建立子代理时应用,故权限名表必须只含本部署真正注册的名字——v2/v3 原先硬编码 `web`/`fetch`/`bash`(其中 `bash` 在 Windows 被 `disabled`)会导致"想收紧权限时子代理永远起不来";② v4 的真实 `/compact` 原先在 `subagent/end` 里查 `agents.get()`,但该事件在子代理**已被移出注册表之后**才触发,属死代码,已改为在 `subagent/start` 捕获引用;③ 可选服务改为**惰性读取**,不再在 `apply()` 快照(否则挂载顺序会让 `subprocess` 永久为 undefined 而静默不建目录)。
|
|
378
|
-
- **DSH STORE 兼容声明**:`package.json` 的 `dsh.compatibility.dshReleases` 对每个完整 DSH 版本逐项声明 `compatible` / `incompatible` / `unknown
|
|
379
|
-
|
|
380
|
-
-
|
|
378
|
+
- **DSH STORE 兼容声明**:`package.json` 的 `dsh.compatibility.dshReleases` 对每个完整 DSH 版本逐项声明 `compatible` / `incompatible` / `unknown`(当前声明 `0.1.2-alpha.4` … `0.2.0-rc.2` 共 11 个版本为 `compatible`,实测目标为 `0.2.0-rc.2`);`engines.dsh` 为 `>=0.1.2-alpha.4 <0.1.3-0 || >=0.1.3-alpha.2 <0.1.5-0 || >=0.1.5-alpha.1 <0.1.6-0 || >=0.1.6-alpha.1 <0.1.7-0 || >=0.1.7-alpha.1 <0.2.0-0 || >=0.2.0-alpha.1 <0.3.0-0`;`engines.node` 为 `^22.19.0 || >=24.0.0`。
|
|
379
|
+
另外声明了 `peerDependencies`(`@deepseek-ai/dsh-base`,并标为 optional):DSH ≥ 0.1.7 会用**宿主自己的版本**去比对插件声明的 peer 范围,不满足时**跳过整个 bundle 并给出明确提示**,而不是挂上一个跑不通的预设。
|
|
380
|
+
- **运行时自检(版本 + 形态 + 能力)**:安装器(bundle 插件)每次启动时:**① 按优先级探测 DSH 版本**——`DSH_VERSION` 环境变量 → `pluginManager` 服务的 bundle 列表(`@deepseek-ai/dsh-base` 的版本即宿主版本,0.1.7+)→ `@deepseek-ai/dsh-app-boot` 导出的 `getDshRuntimeVersion()`(0.2.0+ 的公开 API)→ `@deepseek-ai/dsh/package.json`(全局 0.1.x 安装),日志会写明**来源**;探测到且未被 `dshReleases` 声明为 `compatible` 时给出明确提示。**② 判断 preset 形态**:从 loader 入口树里是否挂了 `@deepseek-ai/dsh-agent-preset`(或其 registry)判断本宿主是"组合行"还是"目录",据此决定是否同步 `~/.dsh/.agent-presets/`——新宿主上会跳过并在日志里说明旧目录可安全删除。**③ 能力自检**(真正的挂载门槛):`subagents`/`agents`/`tools`/`commands`/`fs` 为**必需**(缺失即 warning),`subprocess`/`sandboxPolicy`/`compaction` 为**可选**(缺失只提示"功能会静默降级"),另含 `fs.resolve` 返回形状检测与 subagent `agentOptions`/`toolFilter` capability 检测。preset 挂载失败时先看 DSH 日志里的自检 warning。
|
|
381
|
+
- **升级路径**:DSH 升级后无需重装本包;升级本包用 `dsh plugin --profile <你的 profile> add dsh-vibe-math@latest`(`dsh plugin` 的 `--profile` 是必填项;用 `add` 而不是 `update`,因为 profile 里可能把版本钉成精确值,那时 `update` 不会跨过去),重启 DSH 后(DSH ≤ 0.1.6 的目录形式下)安装器会把四个 preset 的受管文件整体更新到新版本(改过的文件同样被替换,原文先进 `<presetRoot>/.vibe-math-backup/`;DSH ≥ 0.1.7 的 preset 来自组合行,安装器不写任何文件)——见上文「安装」说明。
|
|
381
382
|
|
|
382
383
|
---
|
|
383
384
|
|
|
384
385
|
## 🧭 四个预设怎么选
|
|
385
386
|
|
|
386
|
-
> **💡
|
|
387
|
+
> **💡 四个架构同级,按你的实际需求自行选择:**
|
|
387
388
|
>
|
|
388
389
|
> - **选 `vibe-math-v2`(概率驱动 · JSON 数据层)**,如果你:
|
|
389
390
|
> - 偏好**结构化 JSON 数据**(`qs.json` / `Propos/<分类>_Propos.json` / `Verified/` 卡),方便程序化检索与二次加工;
|
|
@@ -402,15 +403,15 @@ dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
|
|
|
402
403
|
> - **有组织的自组织**——现实研究所那样有**领头人(院士)**负责拆解、分派、定优先级、主持会议、督导进度,但**判断仍归每个人自己**;
|
|
403
404
|
> - **可增减的编制**——常驻研究员 + 可**自主雇佣/解雇**的临时工(临时工无表决权,适合处理核对、试算、资料整理等杂活);
|
|
404
405
|
> - **可调的一致性门槛**——`m = min(quorumCap, 有表决权人数)` 票布尔一致即定论(比"全体一致"更容易收敛,同时**反向票仍然阻塞**,少数派不会被弃权淹没);
|
|
405
|
-
> - **零 token
|
|
406
|
+
> - **零 token 成本的状态持久化**——研究所状态写在研究所目录下的加固 JSON 里,不占成员上下文预算。
|
|
406
407
|
>
|
|
407
|
-
> **⚠️ `vibe-math-v2` 与 `vibe-math-v3`
|
|
408
|
+
> **⚠️ `vibe-math-v2` 与 `vibe-math-v3` 是经典架构;`vibe-math-v4`、`vibe-math-v5` 是实验性架构,** 四者同级、均可选择;老 `vibe-math-v1` 已被移除(本包仅含 v2/v3/v4/v5)。
|
|
408
409
|
|
|
409
|
-
| | **v2(概率驱动 ·
|
|
410
|
+
| | **v2(概率驱动 · 经典)** | **v3(论文式 md · 经典)** | **v4(常驻自组织 · 实验)** | **v5(研究所体系 · 实验)** |
|
|
410
411
|
|---|---|---|---|---|
|
|
411
|
-
| 定位 |
|
|
412
|
+
| 定位 | **经典**(JSON 数据层) | **经典**(第三代) | **实验性**(第四代) | **实验性**(第五代) |
|
|
412
413
|
| 核心思想 | 概率驱动:`qs.json` 问题 + `Propos/` 命题库,按「正确概率 / 价值」调度 | **论文式 md 知识库 + 规划代理调度 + 通用理论发明库** | **持久化常驻子代理自组织**:互相留言 + 开会决定一切任务,无中央调度 | **研究所**:院士做组织与分派,成员各自研究;**≥ m 票布尔一致**才定论;临时工可按需雇入 |
|
|
413
|
-
| 数据 | `qs/qs.json` + `Propos/<分类>_Propos.json` + `Reliable/` | `Problems/` + `Progress/` + `Propos/` + `Methods/`(全部 md,软规范锚点 + 自由叙述)+ `Verified/` | `Problems/` + **按常驻 id 归属**的 `Progress|Propos|Methods|Subproblems/<id>/` + `Shared/`(会议/任务板/辩论)+ `Verified/` | 同 v4 的按成员归属布局,另加 `Institutes.md
|
|
414
|
+
| 数据 | `qs/qs.json` + `Propos/<分类>_Propos.json` + `Reliable/` | `Problems/` + `Progress/` + `Propos/` + `Methods/`(全部 md,软规范锚点 + 自由叙述)+ `Verified/` | `Problems/` + **按常驻 id 归属**的 `Progress|Propos|Methods|Subproblems/<id>/` + `Shared/`(会议/任务板/辩论)+ `Verified/` | 同 v4 的按成员归属布局,另加 `Institutes.md`(编制镜像);**权威状态在 `State/<研究所>.v5state.json`**,其余文件只是镜像与工作区 |
|
|
414
415
|
| 角色 | explorer → 逐方向 solver → verifier | **planner(规划代理)** → explorer → 逐方向 solver → verifier → **method-keeper(方法整理代理)** | **N 个常驻研究者**(continuable),无固定角色 | **院士 acad**(领头人)+ **常驻研究员 r-n**(有表决权)+ **临时工 t-n**(无表决权,可雇可解雇)+ 所办(不研究不投票) |
|
|
415
416
|
| 调度方式 | 代码启发式(优先级 + 概率) | **规划代理产出 N 步计划**(校验后执行,失败回退启发式) | **无中央调度**:任务由常驻互相留言/开会(框架只做媒介,不指派) | **框架仍不指派**;由**院士**拆解/分派/定优先级/督导,成员可据理反对;框架只做中继、任务板、会议与计数 |
|
|
416
417
|
| 收口规则 | 解法/证明达概率 `1` 即收口,`never` 永不调度 | 同 v2(近共识裁决修复 flat 误判) | **仅当全体常驻一致(真 或 假)**才写入 `Verified/`,否则留库附概率 | **布尔票 ≥ m = min(`quorumCap`, 有表决权人数) 且全为 1 或全为 0** 才写入 `Verified/`;反向票阻塞;弃权不计票但计入平均;(可切回 v4 口径) |
|
|
@@ -419,12 +420,12 @@ dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
|
|
|
419
420
|
| 特设能力 | 命题「价值/关键性」自动晋升问题清单;`reportMode file/push/both`;`priorityAdjust` | **方法库沉淀循环**(`methods_used`/`new_inventions` → Method Keeper);**计划审批门/方法晋升门**;**项目锁**;后生问题「来源与动机」一等公民 | **常驻各自沉淀 + 互相阅读**;**全体一致验证**;**随时增开/关闭常驻、留言干预**;**断点续跑** | v4 的全部能力,另加:**真实雇佣/解雇**(释放子会话、收回任务);**compare-and-set 任务板 + 依赖 DAG**;**会议与验证严格互斥**;**编制镜像与结题记录**;**状态零 token 成本** |
|
|
420
421
|
|
|
421
422
|
四者都支持:断点续跑(`vibe_math_resume` / `vibe_v4_resume` / `vibe_v5_resume`)、人工干预与暂停恢复、
|
|
422
|
-
|
|
423
|
+
按项目隔离、子代理权限调控、自然语言驱动。**四个架构同级**——偏好结构化 JSON 数据与确定性调度选 v2,
|
|
423
424
|
偏好论文式 md、规划代理与理论发明库选 v3;v4 是完全自组织的常驻合作研究,v5 是"有领头人 + 可增减编制 + 可调门槛"的研究所体系。
|
|
424
425
|
|
|
425
426
|
---
|
|
426
427
|
|
|
427
|
-
## 🧠 架构与分工(v3 ·
|
|
428
|
+
## 🧠 架构与分工(v3 · 第三代)· 经典
|
|
428
429
|
|
|
429
430
|
框架 = **一个主代理(助手)+ 一个代码调度器 + 一个规划代理 + 六类子代理**。
|
|
430
431
|
|
|
@@ -449,7 +450,7 @@ dsh plugin --profile <你的 profile> add github:ChongCyrus/Vibe-Mathematics
|
|
|
449
450
|
| 谁做判断 | 各自;全体一致才定论 | 各自;**≥ m 票布尔一致**才定论 |
|
|
450
451
|
| 协调机制 | 消息 + 会议 | 消息 + 会议(与验证严格互斥)+ **compare-and-set 任务板** |
|
|
451
452
|
| 编制 | 常驻,可增开/关闭 | **可增减**:常驻研究员由所办批准增聘;临时工由院士/研究员自主雇佣解雇 |
|
|
452
|
-
| 状态 | `State/*.json` 直写 |
|
|
453
|
+
| 状态 | `State/*.json` 直写 | **`State/<研究所>.v5state.json` 加固 JSON**(零 token 成本、串行写、读前必 load) |
|
|
453
454
|
|
|
454
455
|
v5 的完整架构(含成员生命周期、一轮时序、共识状态机、会议流程、调度优先级、状态折叠、提示词构成、
|
|
455
456
|
任务板、职权矩阵)见 [`vibe-math-v5/架构图.md`](vibe-math-v5/架构图.md);文字规格见
|
|
@@ -460,7 +461,7 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
460
461
|
|
|
461
462
|
## 📁 目录结构
|
|
462
463
|
|
|
463
|
-
### v2(概率驱动 ·
|
|
464
|
+
### v2(概率驱动 · 经典)
|
|
464
465
|
|
|
465
466
|
```
|
|
466
467
|
<会话工作区>/VibeMath/
|
|
@@ -477,7 +478,7 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
477
478
|
└─ VibeMath_State/ # 调度器私有持久状态(断点恢复用)
|
|
478
479
|
```
|
|
479
480
|
|
|
480
|
-
### v3(论文式 md + 规划代理 +
|
|
481
|
+
### v3(论文式 md + 规划代理 + 方法库)· 经典
|
|
481
482
|
|
|
482
483
|
```
|
|
483
484
|
<会话工作区>/VibeMath/
|
|
@@ -526,16 +527,16 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
526
527
|
│ └─ State-of-institute.md # 成员对"是否已解决"的判断快照
|
|
527
528
|
├─ Verified/<类型>/<id>.md # 定论(只读;只有它能被当作已确立)
|
|
528
529
|
└─ State/
|
|
529
|
-
├─ README.md # 说明"
|
|
530
|
-
└─ <研究所>.v5state.json #
|
|
530
|
+
├─ README.md # 说明"这里的文件是镜像,请勿手改"
|
|
531
|
+
└─ <研究所>.v5state.json # 权威状态(加固 JSON、串行写、读前必 load)
|
|
531
532
|
```
|
|
532
533
|
|
|
533
534
|
> 启用 Lean 形式化验证时另有两个目录:本所 `Formal/`(工作文件 + 索引 + 形式化待办)与 `Verified/Lean/`
|
|
534
535
|
> (**归档证明**),以及**跨项目**的 `<VibeMath根>/Formal/{Lib,Proved}/`(可复用定义与已证引理)——详见
|
|
535
536
|
> 上方「Lean 形式化验证」一节。
|
|
536
537
|
|
|
537
|
-
**v5 铁律**:①
|
|
538
|
-
|
|
538
|
+
**v5 铁律**:① 权威状态只写在 `State/<研究所>.v5state.json`(加固 JSON、串行写、读前必 load)里,
|
|
539
|
+
上表中其余文件都只是**镜像/工作区**,手工改坏不会破坏研究所;
|
|
539
540
|
② 成员**只写自己的库**(`Members/<自己的代号>/`),但可以读任何人的库;
|
|
540
541
|
③ 只有 `Verified/` 与标注"已验证·真/假"的卡片**绝对可信**,其余(含 `Methods/` 里的未验证断言)只是经验参考,
|
|
541
542
|
引用必须注明"未验证";④ 入库必须写明**价值程度 / 动机用途计划 / 自己的概率估计**三项,缺一不可。
|
|
@@ -694,7 +695,7 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
694
695
|
|
|
695
696
|
## ⚙️ 参数速查表
|
|
696
697
|
|
|
697
|
-
### v2(概率驱动 ·
|
|
698
|
+
### v2(概率驱动 · 经典)默认值
|
|
698
699
|
|
|
699
700
|
| 参数 | 默认 | 说明 |
|
|
700
701
|
|---|---|---|
|
|
@@ -774,7 +775,7 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
774
775
|
|
|
775
776
|
### v5(研究所体系 · 实验)默认值
|
|
776
777
|
|
|
777
|
-
`vibe_v5_set`
|
|
778
|
+
`vibe_v5_set` 可调(持久化在研究所状态文件 `State/<研究所>.v5state.json` 里):
|
|
778
779
|
|
|
779
780
|
| 参数 | 默认 | 说明 |
|
|
780
781
|
|---|---|---|
|
|
@@ -809,7 +810,7 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
809
810
|
|
|
810
811
|
## 📝 断点续跑 & 人工干预(两大硬性需求)
|
|
811
812
|
|
|
812
|
-
- **断点续跑**:所有状态落盘(v2:`VibeMath_State/*.json`;v3:`State/*.json`;**v5
|
|
813
|
+
- **断点续跑**:所有状态落盘(v2:`VibeMath_State/*.json`;v3:`State/*.json`;**v5:研究所目录下的加固 JSON `State/<研究所>.v5state.json`**),每个子代理都是 DSH 的 **continuable 持久会话**(对话由 DSH 自动保存)。重启后新开会话 → `vibe_math_resume` / `vibe_v4_resume` / `vibe_v5_resume` 即可续跑。v2/v3 额外用**进程纪元**区分"同进程暂停→恢复"(保留存活子代理继续)与"跨进程重启"(清理陈旧任务)。**v3 的 md 知识库本身就是叙事断点**——代理 resume 时从研究日志/问题卡/命题卡尾部续写;**v5 由状态文件承担**——恢复就是"读之前先 load",跨进程与同进程走同一条代码路径,成员会话重建时会以"读回你自己的 Progress/"重新种化(而不是让它们从头再来)。
|
|
813
814
|
- **中途人工干预**:`manual` 模式在关键节点挂起决策(v2:explorer/solver 派发、验证裁决;v3:**计划审批门**(规划代理产出计划后等你 approve/reject)、验证裁决门、**方法晋升门**(项目方法 → 全局库));可随时 `set_mode auto` 切回自动(自动放行所有挂起决策);可对任意子代理 `message_agent` / `interrupt_agent`。**v4/v5 天然可干预**:随时给成员留言(`vibe_v5_message`)、召集会议、暂停全所、增删编制——成员下一轮就会看到。
|
|
814
815
|
- **进度汇报**:默认**事件驱动** —— 只有代理状态更新等事件发生时才会写报告(v2:`Progress_Logs/report.json`;v3:`Progress_Logs/report.json` + `Logs/报告.md` 论文式人读摘要;`reportMode` 可 `file`/`push`/`both`,`push` 通过 `subagents.sendMessage(根代理, 常驻子代理, …)` 唤醒常驻主动汇报——`followup` **不是** `subagents` 服务的方法,它只是 `Agent` 对象方法);只有把 `reportIntervalMs` 设为 >0 才启动定时自动汇报(间隔毫秒)。**v4/v5 的工作汇报是"所内自述"**:成员把进展写进自己的 `Progress/`、把关键结论说进群聊(v5 另有人读镜像 `Institutes.md` / `Shared/TaskBoard.md` / 会议纪要 / 辩论录 / `Problems/conclusion.md`)。
|
|
815
816
|
|
|
@@ -837,8 +838,9 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
837
838
|
## ⚠️ 已知边界(有意简化)
|
|
838
839
|
|
|
839
840
|
**v2**:
|
|
840
|
-
- 安装器带**版本化自动更新**:每次 DSH 启动时对比包版本与 `<presetRoot>/.vibe-math-installed.json` 记录——**版本一变(或无记录的老安装首次运行)就整体替换受管文件,不看它是否被改过**;被替换的手改原文先备份到 `<presetRoot>/.vibe-math-backup/<旧版本>/<preset>/` 并在日志里列出。同一个版本内**不重写任何文件**(重启 DSH 不会改写 preset、也不会扰动它按 mtime
|
|
841
|
-
|
|
841
|
+
- **(DSH ≤ 0.1.6 的目录形式)** 安装器带**版本化自动更新**:每次 DSH 启动时对比包版本与 `<presetRoot>/.vibe-math-installed.json` 记录——**版本一变(或无记录的老安装首次运行)就整体替换受管文件,不看它是否被改过**;被替换的手改原文先备份到 `<presetRoot>/.vibe-math-backup/<旧版本>/<preset>/` 并在日志里列出。同一个版本内**不重写任何文件**(重启 DSH 不会改写 preset、也不会扰动它按 mtime 记的生成代际),缺失文件随时补回。想强制全量重装:删除那四个 preset 目录后重启 DSH。
|
|
842
|
+
在 DSH ≥ 0.1.7 上安装器**不写这些目录**(预设由上文「安装」里的组合行提供),启动时只会提示旧副本可安全删除。
|
|
843
|
+
- **在 DSH ≤ 0.1.6 上,这四个目录由安装器负责**:删掉其中任一文件或整个目录,只会在下次启动 DSH 时被补回(这正是上面"强制全量重装"可行的原因)。在 DSH ≥ 0.1.7 上它们不再被读取、也不再被写入,直接删掉即可;想彻底不要本包的预设,就卸载本包(`dsh plugin --profile <你的 profile> remove dsh-vibe-math`)。
|
|
842
844
|
- `flat` 裁决在辩论不一致时直接判 `0.5`(高置信分歧如 0.9 vs 1 也会被误判 0.5——**v3 已用近共识规则修复**);`forced` 按历史准确率+置信度加权。
|
|
843
845
|
- `never` 优先级的问题/命题**永不调度**,且不阻塞严格终止(视为主动弃权)。
|
|
844
846
|
- 四个 preset 文件互相独立、可共存;同一会话同时只能选一个预设。
|
|
@@ -863,8 +865,9 @@ v5 的完整架构(含成员生命周期、一轮时序、共识状态机、
|
|
|
863
865
|
等会议收口后再走完整的表决流程。
|
|
864
866
|
- **`resume` 后轮次计数从 1 重新计**(内存态,仅用于节流与压缩提示);权威进度在成员自己的 `Progress/`。
|
|
865
867
|
- **成员章程是入职快照**:升级本包不会改写已在跑的研究所里成员的章程(它们仍用入职时冻结的版本)。
|
|
866
|
-
|
|
867
|
-
- **安装器行为同 v2
|
|
868
|
+
需要新章程就在新会话里重开一个研究所;状态文件与文件树无需迁移。
|
|
869
|
+
- **安装器行为同 v2**(在 DSH ≤ 0.1.6 的目录形式上:版本一变即整体替换受管文件并先备份原文,`vibe-math-v5` 目录同样受管;
|
|
870
|
+
DSH ≥ 0.1.7 上安装器不写预设目录,预设由组合行提供)。
|
|
868
871
|
- **Lean 形式化需要宿主上有 Lean 工具链**:框架不内置、不下载;没有工具链时三个 Lean 工具会如实返回
|
|
869
872
|
`LEAN_NOT_FOUND`,形式化代码仍可写下来归档,但无法执行验证。
|
|
870
873
|
- **`require` 模式的门禁是「搁置」而不是「卡死」**:缺形式化的真/假结论会被记为未定论 + 进入形式化待办,
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported versions
|
|
4
|
+
|
|
5
|
+
Security fixes are released for the latest published line. The previous line receives security fixes
|
|
6
|
+
only for the DSH host versions it was built against.
|
|
7
|
+
|
|
8
|
+
| Version | Supported | Notes |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| 2.4.x (latest) | ✅ | Current line — DSH 0.1.2-alpha.4 … 0.2.0-rc.2 |
|
|
11
|
+
| 2.3.x | ⚠️ security fixes only | Superseded by 2.4.x, which also covers DSH ≤ 0.1.6; **cannot run on DSH 0.2.x** |
|
|
12
|
+
| ≤ 2.2.x | ❌ | Please upgrade |
|
|
13
|
+
|
|
14
|
+
## Reporting a vulnerability
|
|
15
|
+
|
|
16
|
+
Please **do not** open a public issue for a security problem. Use GitHub's private vulnerability
|
|
17
|
+
reporting on this repository (Security → Report a vulnerability), or contact the maintainer through
|
|
18
|
+
the profile linked from <https://github.com/ChongCyrus/Vibe-Mathematics>.
|
|
19
|
+
|
|
20
|
+
Please include: the affected version and DSH host version, a minimal reproduction, the impact you
|
|
21
|
+
believe it has, and whether you are willing to be credited.
|
|
22
|
+
|
|
23
|
+
We aim to acknowledge a report within 7 days and to ship a fix or a documented mitigation within 30
|
|
24
|
+
days for anything rated high or critical. If the report turns out to concern the DSH host itself
|
|
25
|
+
rather than this package, we will say so and point you at the right project.
|
|
26
|
+
|
|
27
|
+
## What this package does (and what it does not)
|
|
28
|
+
|
|
29
|
+
Knowing the design makes reports much easier to triage:
|
|
30
|
+
|
|
31
|
+
- **What it is.** `dsh-vibe-math` is a DeepSeek Harness plugin bundle. It ships four agent presets
|
|
32
|
+
(v2/v3/v4/v5) and an installer. It runs **inside** the DSH host process with whatever permissions
|
|
33
|
+
the user granted that host — it does not add privileges of its own.
|
|
34
|
+
- **No dynamic code execution.** The package contains no `eval` and no `new Function`. Its behaviour
|
|
35
|
+
is fixed at install time; nothing in a session can inject code into it.
|
|
36
|
+
- **Filesystem.** The presets read and write only inside the session workspace (the project directory
|
|
37
|
+
that DSH hands to the session) — `VibeMath/…` — through the host's `fs` service, so the host's
|
|
38
|
+
sandbox policy applies there. The **installer** additionally syncs preset files for hosts it does
|
|
39
|
+
not detect as using composition rows (the DSH ≤ 0.1.6 directory line) into the legacy
|
|
40
|
+
`<DSH_HOME>/.agent-presets/` directory (default `~/.dsh/.agent-presets/`), including its
|
|
41
|
+
`.vibe-math-installed.json` state file and `.vibe-math-backup/` copies of replaced files. That sync
|
|
42
|
+
uses Node's own `fs` **inside the host process**, not the host `fs` service, so only the host's
|
|
43
|
+
OS-level sandbox applies to it.
|
|
44
|
+
- **No network, no credentials, no telemetry.** The package itself makes no outbound requests and
|
|
45
|
+
reads no secrets or tokens. Model traffic, if any, is the host's own LLM service.
|
|
46
|
+
- **Subprocesses.** The Lean toolchain and shell helpers are invoked only when a preset tool is
|
|
47
|
+
actually called, through the host's `subprocess` service under the host's sandbox policy.
|
|
48
|
+
- **Prompts are data.** The preset prompts, corpora and documentation are inert text shipped with
|
|
49
|
+
the package; the repository's own suites verify that model-facing text matches the implementation.
|
|
50
|
+
|
|
51
|
+
## Verifying what you install
|
|
52
|
+
|
|
53
|
+
- Published tarballs: `npm view dsh-vibe-math dist.shasum dist.integrity`
|
|
54
|
+
- The release gate the maintainer runs before publishing lives outside this repository (it re-runs every
|
|
55
|
+
guard, the packaging checks, and the plugin-catalog compliance scan); the artifact hashes above are
|
|
56
|
+
the verifiable output of a release.
|