dsh-mcmp 3.1.1 → 3.1.2

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.
Files changed (2) hide show
  1. package/README.md +88 -112
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,161 +1,137 @@
1
- # dsh-mcmp · 数学建模竞赛自动化论文撰写系统(v3)
1
+ # dsh-mcmp
2
2
 
3
3
  [![npm](https://img.shields.io/badge/npm-dsh--mcmp-blue)](https://www.npmjs.com/package/dsh-mcmp)
4
4
 
5
- DeepSeek Harness **持久化 Cordis 插件**:面向全国大学生数学建模竞赛论文撰写的全自动流水线。
6
- 粘贴赛题 → 发送一条以 `/loopbegin` 开头的消息 → 插件按 **中控台 + 五阶段流水线**(阶段零初始化 →
7
- 阶段一 EDA → 阶段二建模 → 阶段三撰写 → 阶段四排版,共 22 个子阶段)自动完成论文撰写,
8
- 每个子阶段由专家子智能体执行,再经**中控台双重质疑**(扫描验证模块 + 评审决策模块)验证,
9
- 问题按 P0-P3 评级处置(P0/P1/P2 阶段级回滚并持久化教训,P3 精确定点修改),
10
- 成果全部落盘,右下角浮动面板实时显示阶段/子阶段/中控台/回滚进度。
11
- **无论流水线正常完成、出错还是被中止,最终都会生成一版完整、干净的 Markdown 论文(`Final_Paper.md`)。**
12
-
13
- > 完整设计见仓库内两份设计文档:
14
- > **`ARCHITECTURE.md`**(v3.18,流程架构设计书:中控台、五阶段、评级/回滚/教训机制)与
15
- > **`PROMPTS.md`**(v3.5,全部子智能体 Prompt 模板,主循环提示词由其逐段生成)。
16
-
17
- ## 功能特性
18
-
19
- - **消息触发**:输入文本以 `/loopbegin` 开头即自动运行(兼容斜杠命令路径)
20
- - **五阶段 × 22 子阶段**:阶段零(初始化 4)→ 阶段一(EDA 3)→ 阶段二(建模 5)→ 阶段三(撰写 7)→ 阶段四(排版 3),共 22 个子阶段,线性推进 + 阶段级回滚
21
- - **回滚上限可配置**:同一阶段回滚 ≥`--rollback-limit=N` 次(默认 10,1~99)强制锁定(架构 3.7)
22
- - **中控台双重质疑**:执行Agent自检与中控台扫描验证执行**同一套六维度质疑标准**(逻辑自洽性/模型合理性/数据敏感性/视觉合理性/规范符合性/教训对照);扫描通过→索引 `VALIDATED`,发现问题→转交评审决策模块
23
- - **唯一评级机构**:中控台评审决策模块按 **P0-P3** 评级——P0/P1/P2 经 DEPENDENCIES 链追溯根源阶段,阶段级回滚(物理移入 `deprecated/`、索引 `OBSOLETE`、写入教训文件、重跑);P3 精确定点修改(≤3 行代码/≤1 个句子/≤3 个参数,STAGING→VALIDATED)
24
- - **教训持久化**:每次回滚(<10 次)写入 `ROLLBACK_LESSONS.yaml`(查重去重),所有执行Agent启动时必须完整读取(ACTIVE+RESOLVED)
25
- - **防崩溃优先**:同一阶段回滚 ≥10 次强制 `FORCED_FINAL` 锁定、通知人工,问题降级为 P3 处理,保证必然产出
26
- - **执行失败处理**:非质量问题重试 3 次指数退避(5s/10s/20s),全失败暂停人工介入(不计入回滚计数器),失败日志写入 `transactions.log`
27
- - **索引导航**:`FILE_INDEX.yaml` 记录全部产出物的位置/状态(STAGING/VALIDATED/OBSOLETE/FORCED_FINAL)/依赖,上游状态跨阶段读取有权限校验
28
- - **视觉模块集成**:涉及图表的子阶段(1.3/2.4/2.5/3.3/3.4/4.2/4.3)按两阶段流程调用视觉模块(详实描述→系统性质疑);不可用时标记"待人工确认"
29
- - **论文兜底定稿**:4.3 产出 `Final_Paper.md`;即使流水线提前出错或中止,也会追加一次兜底定稿
30
- - **实时进度面板**:浮动窗口显示总体进度、五阶段打点、当前子阶段、中控台模块、回滚计数与 P0-P3 评级、强制锁定提示、日志、产出文件,支持中止/重置
31
- - **断点续跑与重置**:中断/关闭窗口不丢进度,再次 `/loopbegin` 自动续跑;`/loopreset` 或面板「重置(全新开始)」清空续跑记录
32
- - **原生工作流卡片**:聊天区实时显示每个子智能体的运行状态(执行/扫描/评审/兜底)
33
-
34
- ## 五阶段流水线(共 22 个子阶段)
35
-
36
- | 阶段 | 子阶段 | 核心产出 |
37
- |------|--------|----------|
38
- | 阶段零 初始化 | 0.1 创建目录 · 0.2 加载数据 · 0.3 初始化索引 · 0.4 初始化教训文件 | `config/`、`raw_data/`、`FILE_INDEX.yaml`、`ROLLBACK_LESSONS.yaml` |
39
- | 阶段一 EDA | 1.1 清洗 · 1.2 特征工程 · 1.3 EDA可视化 | 清洗/变换后数据、EDA 图表与报告 |
40
- | 阶段二 建模 | 2.1 模型筛选 · 2.2 模型建立 · 2.3 模型求解 · 2.4 图表生成 · 2.5 检验与质疑 | 假设/公式、`code/` 求解代码、模型图表、检验质疑报告 |
41
- | 阶段三 撰写 | 3.1 重述与背景 · 3.2 假设与符号 · 3.3 建模与求解章节 · 3.4 结果分析 · 3.5 摘要 · 3.6 参考文献 · 3.7 附录代码 | `stage_03_outputs/01~07` 各章节 |
42
- | 阶段四 排版 | 4.1 合并 · 4.2 修正路径 · 4.3 最终产出 | `merged_draft.md`、`merged_with_figures.md`、**`Final_Paper.md`** |
5
+ DeepSeek Harness Cordis 插件,做全国大学生数学建模竞赛的论文流水线:粘贴赛题,再发一条以 `/loopbegin` 开头的消息,后面的事情它自己跑——中控台加五个阶段(初始化 → EDA → 建模 → 撰写 → 排版),一共 22 个子阶段,全部由子智能体执行。每个子阶段跑完先自检,再由中控台扫描验证或评审决策,问题按 P0-P3 分级,该回滚的回滚、该定点改的定点改。进度在右下角浮窗里看。
6
+
7
+ **不管跑成什么样,最后都会落一份完整的 Markdown 论文:`Final_Paper.md`。**
8
+
9
+ 流程设计见 `ARCHITECTURE.md`,各子智能体的提示词模板见 `PROMPTS.md`(主循环按它逐段拼提示词)
43
10
 
44
- > 每个子阶段完成后:执行Agent按 3.3 六维度自检并写入 `_report.yaml`(SUCCESS/HAS_ISSUES/NEEDS_REVIEW)→
45
- > 中控台扫描验证(SUCCESS 时)或评审决策(HAS_ISSUES/NEEDS_REVIEW 时)→ 通过后推进下一子阶段。
11
+ ## 安装
46
12
 
47
- ## 使用方法
13
+ 包已发到 npm([dsh-mcmp](https://www.npmjs.com/package/dsh-mcmp)),自带 `dsh.bundle` 补丁,装完自动注册配置行,不用手动改任何东西。
14
+
15
+ ```powershell
16
+ pnpm dsh plugin --profile web add dsh-mcmp # 安装
17
+ pnpm dsh plugin --profile web update dsh-mcmp # 升级
18
+ pnpm dsh plugin --profile web remove dsh-mcmp # 卸载
19
+ ```
48
20
 
49
- 1. **发送赛题**:把数学建模竞赛题目完整粘贴到对话框并发送;
50
- 2. **触发插件**:发送一条以 `/loopbegin` 开头的消息:
51
- - `/loopbegin` —— 默认启动(22 个子阶段)
52
- - `/loopbegin --rollback-limit=5` —— 同一阶段回滚上限改为 5 次(默认 10,1~99)
53
- - `/loopbegin --from 题目.txt` —— 从文件读取赛题(支持含空格/中文的文件名,也可用 `--from=文件` 形式)
54
- - `/loopbegin --model glm-vision/glm-4.7-Flash` —— 可选显式覆盖(也可用 `--provider 提供商 --model 模型` 分拆形式)。**默认不需要此参数**:流水线子任务的模型**强制跟随你在对话右下角选择的模型**(每次启动时读取当前选择);若无法读取,兜底使用 `deepseek-official/deepseek-v4-flash`
55
- 3. **查看进度**:右下角浮动面板(阶段打点、中控台、回滚、日志、文件)+ 聊天区工作流卡片。
21
+ 装完重启 `pnpm dsh web` 并刷新页面。验证:浏览器打开 `/mcmp-api/state`,有 JSON 返回就对了。
56
22
 
57
- 辅助命令:`/loopstatus`(查看进度)、`/loopabort`(中止,已产出成果保留)、`/loopreset`(清空状态与断点续跑记录,下次 `/loopbegin` 从头全新开始;等价于面板「重置(全新开始)」按钮)。
23
+ ## 用法
58
24
 
59
- ### 触发规则
25
+ 1. 把赛题完整粘进对话框发出去;
26
+ 2. 再发一条 `/loopbegin`;
27
+ 3. 看右下角浮窗(阶段打点、中控台、回滚、日志、产出文件)和聊天区的工作流卡片。
60
28
 
61
- | 消息内容 | 是否触发 |
29
+ `/loopbegin` 可以带参数:
30
+
31
+ | 参数 | 作用 |
62
32
  |---|---|
63
- | `/loopbegin --rollback-limit=5`(开头) | |
64
- | ` /loopbegin`(前导空格) | |
65
- | `题目正文… /loopbegin`(不在开头) | |
66
- | `/loopstatus`、`/loopabort`、`/loopreset` | 辅助命令,不触发 |
33
+ | `--rollback-limit=N` | 同一阶段回滚上限,默认 10,可填 1~99;到顶就强制锁定 |
34
+ | `--from 题目.txt` | 从文件读赛题,文件名带空格或中文都行,也支持 `--from=题目.txt` |
35
+ | `--fresh` | 忽略断点记录,从头重跑 |
36
+ | `--model 提供商/模型` | 显式指定子任务模型,也可拆成 `--provider` 和 `--model` |
67
37
 
68
- ## 安装方式
38
+ 一般不需要 `--model`:子任务默认跟随你在对话右下角选的模型,每次启动时读一次当前选择;实在读不到才退回 `deepseek-official/deepseek-v4-flash`。
69
39
 
70
- > 插件包已发布到 npm([dsh-mcmp](https://www.npmjs.com/package/dsh-mcmp)),并声明了 `dsh.bundle`
71
- > 补丁:安装后**自动注册配置行**,无需任何手动步骤。
40
+ 辅助命令:`/loopstatus` 看进度,`/loopabort` 中止(已产出的成果都留着),`/loopreset` 清空续跑记录,下次 `/loopbegin` 从头开始。浮窗上的「重置(全新开始)」和 `/loopreset` 是一回事。
72
41
 
73
- ### 安装(唯一方式)
42
+ ### 什么时候会触发
74
43
 
75
- ```powershell
76
- # 一条命令完成:安装包 + 自动注册(通过 bundle 机制)
77
- pnpm dsh plugin --profile web add dsh-mcmp
44
+ | 消息 | 触发 |
45
+ |---|---|
46
+ | `/loopbegin --rollback-limit=5` 开头 | ✅ |
47
+ | ` /loopbegin` 前面有空格 | ✅ |
48
+ | `题目正文… /loopbegin` 不在开头 | ❌ |
49
+ | `/loopstatus`、`/loopabort`、`/loopreset` | 辅助命令,不触发 |
78
50
 
79
- # 然后重启:
80
- # 重启 pnpm dsh web → 刷新网页
81
- # 验证:浏览器访问 /mcmp-api/state,返回 JSON 即成功
82
- ```
51
+ ## 流水线
83
52
 
84
- **升级**:
53
+ | 阶段 | 子阶段 | 主要产出 |
54
+ |---|---|---|
55
+ | 阶段零 初始化 | 0.1 创建目录 · 0.2 加载数据 · 0.3 初始化索引 · 0.4 初始化教训文件 | `config/`、`raw_data/`、`FILE_INDEX.yaml`、`ROLLBACK_LESSONS.yaml` |
56
+ | 阶段一 EDA | 1.1 清洗 · 1.2 特征工程 · 1.3 EDA可视化 | 清洗/变换后的数据、EDA 图表和报告 |
57
+ | 阶段二 建模 | 2.1 模型筛选 · 2.2 模型建立 · 2.3 模型求解 · 2.4 图表生成 · 2.5 检验与质疑 | 假设与公式推导、`code/` 求解代码、模型图表、检验质疑报告 |
58
+ | 阶段三 撰写 | 3.1 重述与背景 · 3.2 假设与符号 · 3.3 建模与求解 · 3.4 结果分析 · 3.5 摘要 · 3.6 参考文献 · 3.7 附录代码 | `stage_03_outputs/01~07` 各章节 |
59
+ | 阶段四 排版 | 4.1 合并 · 4.2 修正路径 · 4.3 最终产出 | `merged_draft.md`、`merged_with_figures.md`、`Final_Paper.md` |
85
60
 
86
- ```powershell
87
- pnpm dsh plugin --profile web update dsh-mcmp
88
- ```
61
+ 每个子阶段完成后,执行 Agent 会按同一套六维度标准(逻辑自洽性、模型合理性、数据敏感性、视觉合理性、规范符合性、教训对照)先自检,写一份 `_report.yaml`;中控台看报告决定是走扫描验证还是走评审决策。
89
62
 
90
- **卸载**:
63
+ 中控台是唯一的评级机构。P0/P1/P2 顺着 `DEPENDENCIES` 找到根源阶段做阶段级回滚:产出物理移进 `deprecated/`,索引状态置 `OBSOLETE`,教训写进 `ROLLBACK_LESSONS.yaml`,然后重跑。P3 直接定点改,最多 3 行代码、1 个句子或 3 个参数。同一阶段回滚到上限次数就锁成 `FORCED_FINAL` 并通知人工,剩下的问题降级按 P3 处理——这条兜底是为了保证论文一定出得来。
91
64
 
92
- ```powershell
93
- pnpm dsh plugin --profile web remove dsh-mcmp
94
- ```
65
+ 涉及到图表或视觉判断的子阶段(1.3、2.4、2.5、3.3、3.4、4.2、4.3)会调视觉模块:先让它把图表描述清楚,再对描述做一轮系统性质疑。视觉模块用不了就在产出和 `_report.yaml` 里标「待人工确认」。
95
66
 
96
- ## 输出目录(工作区 `数学建模流水线/`)
67
+ 执行失败和回滚不是一回事。失败(比如子智能体调用出错)按 5s/10s/20s 退避重试 3 次,仍然失败就停下来等人工,不占回滚计数,记录写进 `transactions.log`。
68
+
69
+ ## 输出目录
70
+
71
+ 工作区下建一个 `数学建模流水线/`:
97
72
 
98
73
  ```
99
74
  数学建模流水线/
100
75
  ├── config/ # 项目配置(Project_Config.yaml 等)
101
76
  ├── raw_data/ # 原始数据
102
- ├── FILE_INDEX.yaml # ★ 索引文件:全部产出物的位置/状态/依赖(STAGING/VALIDATED/OBSOLETE/FORCED_FINAL)
103
- ├── ROLLBACK_LESSONS.yaml # 教训文件:回滚教训持久化,执行Agent启动必读
104
- ├── transactions.log # 事务日志:执行失败、强制锁定、DAG 阻断等
105
- ├── stage_00_outputs/ # 阶段零产出(含 _report.yaml 上报文件)
77
+ ├── FILE_INDEX.yaml # 索引:全部产出物的位置/状态/依赖
78
+ ├── ROLLBACK_LESSONS.yaml # 教训文件,执行 Agent 启动必须完整读一遍
79
+ ├── transactions.log # 事务日志:执行失败、强制锁定、DAG 阻断
80
+ ├── stage_00_outputs/ # 阶段零产出(含 _report.yaml)
106
81
  ├── stage_01_outputs/ # 阶段一产出(清洗/特征/EDA 图表与报告)
107
- ├── stage_02_outputs/ # 阶段二产出(建模文档、code 求解代码、figures 图表)
82
+ ├── stage_02_outputs/ # 阶段二产出(建模文档、codefigures)
108
83
  ├── stage_03_outputs/ # 阶段三产出(01~07 各章节 Markdown)
109
84
  ├── stage_04_outputs/ # 阶段四产出(合并稿、修正稿)
110
- ├── code/ # 建模求解核心代码(附录代码来源)
85
+ ├── code/ # 建模求解核心代码(附录代码从这里挑)
111
86
  ├── figures/ # 全部图表
112
- ├── deprecated/ # 回滚废弃文件(物理移入,不删除;建议每场比赛结束后人工清理)
113
- └── Final_Paper.md # ★ 最终交付:完整、干净的 Markdown 论文(无论成败都会生成)
87
+ ├── deprecated/ # 回滚废弃的文件,只移不删;比赛结束后可以自己清
88
+ └── Final_Paper.md # 最终论文,无论成败都会生成
114
89
  ```
115
90
 
116
- ## 架构
91
+ 索引里的状态只有四种:`STAGING`(刚产出待验证)、`VALIDATED`(通过)、`OBSOLETE`(被回滚废弃)、`FORCED_FINAL`(强制锁定后的定稿)。
117
92
 
118
- > 插件按职责拆分为三个模块,主循环按《ARCHITECTURE.md》v3 实现。
93
+ ## 架构
119
94
 
120
95
  ```
121
96
  用户消息(/loopbegin 开头)
122
- │ session/event 全局监听(或 commands 斜杠命令)
97
+ │ session/event 全局监听,或 commands 斜杠命令
123
98
 
124
- 程序入口模块(lib/index.js)
125
- ├─ 输入框内检测:斜杠命令注册 + 消息触发监听 + systemPrompt 模型侧提示
126
- ├─ 模型选择:父对话当前选择 / --model 显式覆盖 / 兜底 DeepSeek V4 Flash
127
- ├─ 题目检测:提取赛题(对话文本或 --from 文件)
128
- ├─ 识图能力探测(宿主服务/工具注册表扫描;子智能体以自身工具列表为准)
129
- └─ 启动解析与校验(--rollback-limit/--fresh/--model/--from)→ 委托主循环模块启动
99
+ 程序入口模块 lib/index.js
100
+ ├─ 输入框内检测:斜杠命令注册、消息触发监听、systemPrompt 模型侧提示
101
+ ├─ 模型选择:父对话当前选择 / --model 覆盖 / 兜底 DeepSeek V4 Flash
102
+ ├─ 题目检测:对话文本或 --from 文件
103
+ ├─ 识图能力探测(宿主服务与工具注册表;子智能体以自身工具列表为准)
104
+ └─ 解析并校验启动参数(--rollback-limit/--fresh/--model/--from)→ 交给主循环
130
105
 
131
- 论文写作主循环模块(lib/pipeline.js,createPipeline 实例)
132
- ├─ 五阶段 × 22 子阶段:每个子阶段启动执行Agent(提示词由 PROMPTS.md 2.1/2.2 + 三 生成)
133
- ├─ 中控台·扫描验证模块:执行Agent上报 SUCCESS 后按 3.3 六维度扫描(PROMPTS.md 4.1)
134
- ├─ 中控台·评审决策模块:P0-P3 评级、根源定位、回滚裁定与 P3 定点修改(PROMPTS.md 5.1)
135
- ├─ 代码逻辑:回滚计数器、阶段级删除调度、强制锁定(FORCED_FINAL)、重跑、断点续跑
136
- ├─ 执行失败重试(3 次指数退避)+ 事务日志 transactions.log
106
+ 论文写作主循环模块 lib/pipeline.js
107
+ ├─ 五阶段 × 22 子阶段,逐个启动执行 Agent(提示词由 PROMPTS.md 拼出)
108
+ ├─ 中控台·扫描验证模块:收到 SUCCESS 上报后按六维度扫描
109
+ ├─ 中控台·评审决策模块:P0-P3 评级、根源定位、回滚裁定、P3 定点修改
110
+ ├─ 回滚计数器、阶段级删除调度、强制锁定、重跑、断点续跑
111
+ ├─ 执行失败重试(3 次指数退避)+ transactions.log
137
112
  └─ 兜底定稿:不论成败补一版 Final_Paper.md
138
113
 
139
- 显示界面模块(lib/client.js,标准 __ModuleLoader__ bundle)
140
- ├─ shell.overlay 浮动面板,每 1.2s fetch('/mcmp-api/state') 轮询
141
- └─ 五阶段打点/子阶段/中控台模块/回滚计数/P0-P3 评级/强制锁定提示/日志/文件/中止重置按钮
142
- (面板 API 路由 /mcmp-api/{state,abort,reset} 由程序入口模块注册并转发)
114
+ 显示界面模块 lib/client.js(标准 __ModuleLoader__ bundle)
115
+ ├─ shell.overlay 浮窗,每 1.2s 拉一次 /mcmp-api/state
116
+ └─ 阶段打点/子阶段/中控台模块/回滚计数/评级/强制锁定提示/日志/文件/中止与重置
143
117
  ```
144
118
 
119
+ 浮窗的数据和按钮走 `/mcmp-api/{state,abort,reset}`,这三个路由由入口模块注册并转发给主循环。
120
+
145
121
  ## 文件说明
146
122
 
147
- > 仓库根目录即插件包本体(发布到 npm 的内容 = `lib/` + `cordis.patch.yml` + `package.json`;`tests/` 不随包发布)。
123
+ 仓库根目录就是插件包本体。发到 npm 的内容是 `lib/` + `cordis.patch.yml` + `package.json`,`tests/` 不随包发布。
148
124
 
149
125
  | 文件 | 内容 |
150
126
  | --- | --- |
151
- | `package.json` | 插件包清单:`dsh.bundle` 补丁声明、`dsh.client` 声明、`exports` 入口(`.` Host,`./client` 面板 bundle) |
152
- | `cordis.patch.yml` | **bundle 补丁**:安装时自动注册插件行(`insert: mcmp`),无需手动编辑配置 |
153
- | `ARCHITECTURE.md` | **流程架构设计书 v3.18**:中控台双模块、五阶段、评级/回滚/教训/索引机制与约束 |
154
- | `PROMPTS.md` | **Prompt 设计 v3.5**:执行Agent/扫描验证模块/评审决策模块的全部提示词模板(主循环按此生成) |
155
- | `lib/index.js` | **程序入口模块**:输入框内检测、模型选择、题目检测、识图能力探测、启动参数解析与校验、`/mcmp-api` 面板路由注册 |
156
- | `lib/pipeline.js` | **论文写作主循环模块**:五阶段元数据与提示词构造、中控台扫描/评审调度、回滚与锁定、断点续跑、运行状态与进度快照、中止/重置 |
157
- | `lib/client.js` | **显示界面模块**:浮动进度面板(标准 `__ModuleLoader__` bundle,`fetch` 轮询、显示与交互) |
158
- | `tests/smoke.mjs` | **冒烟测试**:伪造 Cordis ctx 驱动插件,验证启动/扫描评审路由/回滚与强制锁定/P3 定点修改/失败重试/断点续跑/中止/兜底/`--from`/识图探测/`--model` 等路径,`node tests/smoke.mjs`(不随 npm 包发布) |
127
+ | `package.json` | 包清单:`dsh.bundle` 与 `dsh.client` 声明、`exports` 入口(`.` Host,`./client` 给面板 bundle) |
128
+ | `cordis.patch.yml` | bundle 补丁,安装时自动插入插件行(`insert: mcmp`) |
129
+ | `ARCHITECTURE.md` | 流程架构设计书:中控台两个模块、五阶段、评级与回滚机制、教训和索引的约束 |
130
+ | `PROMPTS.md` | 提示词模板:执行 Agent、扫描验证模块、评审决策模块 |
131
+ | `lib/index.js` | 入口模块:输入框内检测、模型选择、题目检测、识图探测、参数解析、`/mcmp-api` 面板路由 |
132
+ | `lib/pipeline.js` | 主循环:阶段元数据与提示词构造、扫描与评审调度、回滚与锁定、断点续跑、进度快照、中止与重置 |
133
+ | `lib/client.js` | 浮窗面板:轮询、显示与交互 |
134
+ | `tests/smoke.mjs` | 冒烟测试:伪造 Cordis ctx 驱动插件,覆盖启动、扫描评审、回滚与强制锁定、P3 定点修改、失败重试、断点续跑、中止、兜底、`--from`、识图探测、`--model`。`node tests/smoke.mjs` |
159
135
 
160
136
  ## License
161
137
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-mcmp",
3
- "version": "3.1.1",
3
+ "version": "3.1.2",
4
4
  "description": "DeepSeek Harness 插件:数学建模竞赛自动化论文撰写系统 v3(中控台双重质疑 + 五阶段流水线:扫描验证/评审决策、P0-P3 评级与阶段级回滚、教训持久化、索引导航、兜底定稿 Final_Paper.md、断点续跑、进度面板)",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",