Repository navigation
Releases: Suxeca/dsh-plugin
Release list
@suxeca/dsh-research-core v0.0.1 · 学术科研核心底座插件
@suxeca/dsh-research-core v0.0.1
DSH 原生科研学术核心底座插件:4 权威学术库并发硬印证、原版 TeX 源码公式提取、引文真实性守卫与 Q1 同行评议编排。
彻底贯彻 Guides(认知指南)与 Sensors/Gates(原生硬门禁)分离 的设计法则,脱离对脆弱 bash 命令拼装的依赖,纯 TypeScript 原生实现,且不依赖 dsh-typesafe。
核心功能与 Host Tools
research_search_papers:4 官方库(arXiv + S2 + INSPIRE-HEP + Crossref)并发硬印证检索与去重熔合,产出verified(≥3库)、corroborated(2库)多源置信度分级;research_fetch_tex_source:arXiv 原版 LaTeX 源码提取器,直拉解压作者源码包提取高清数学公式与定理,免受 PDF OCR 损伤;research_verify_citation:直连官方注册局(doi.org / Crossref)硬核核验引文真实性,精准识别 404 与虚构文献;research_devils_checkpoint:魔鬼代言人 4 阶段对抗审查状态机(Scoping → Investigation → Analysis → Review)。
安装方式
下载附件 suxeca-dsh-research-core-0.0.1.tgz 解压后:
- 在 DSH 注入器环境中:
dev_inject_plugin <插件目录> - 或在 DSH CLI 中:
dsh plugin --profile web add <插件目录>
笔记看板 v0.2.1 · Note board
笔记看板 v0.2.1 —— 会话级开关、去重修复、抄录义务
v0.2.0 之后的三个改动,都来自真实会话的取证,不是推演。
新增:会话级注入开关(两个入口)
- 看板绑定栏:右侧按钮「本会话不注入」/「注入已关闭 → 恢复注入」。
/note-board off|on|status:斜杠命令,可在发第一条消息之前使用——那时会话还不存在,
看板标签页也就没有,这是唯一能更早决定的入口。- 两者写同一份状态(registry 的
off名单),跨重启记住,且压过自动发现——否则下次装配
会把你刚关掉的笔记重新绑上。 - 关闭时注入一条作废声明:正文是已提交进会话历史的消息,而历史只追加,关不掉它,只能
声明它作废。
修复:同一次变更会投递两份正文
agent loop 的顺序是 claim → assemble → … → 提交进日志,所以下一次装配时,上一轮那条既不在
pending、也还不在 surface——朴素的「在不在」判断会再投一份。按平台自己的
RuntimeContextProjection 做法记住在途消息、由提交事件销掉标记。
标记的生命周期必须是「从入队到提交」:用观察来释放,会让「提交后立刻被压缩」的正文再也
补不回来——这正是先写失败测试时暴露出来的第二种情形。测试 harness 因此改为真实 loop 顺序
(claim → assemble → commit),先复现缺陷再修。
变更:注入正文的义务从「引用条目编号」升级为「逐字抄录 + 逐项自检」
实测(12 个会话):条目仅在上下文里时,模型遇到模糊提问会去读仓库笔记而完全不引用条目;
改成要求引用条目号后,模型引用了条目号却仍给出仓库那套旧式子——标签贴在错误公式上比
沉默更危险,因为它读起来像服从。
所以正文现在直接要求:先逐字抄录相关条目的表达式与分量定义,再在其基础上推进;若你要给出的
式子与条目不逐项一致(前置系数、实部还是模方、相位、求和变量与上下界都要比),先停下来说明
冲突,而不是另给一个式子。改后同一 prompt 在三家厂商的模型上均逐字复现冻结公式。
质量
- 测试 85 条 / 6 个文件(v0.2.0 为 66 条 / 5 个文件,新增
tests/command.spec.ts) npm run typecheck通过- 产物与 v0.2.0 相比,仅多出新命令模块
lib/types/host/command.* - 发布物已去敏化:源码、测试夹具与文档中不含任何具体研究内容(测试数据为合成)
笔记看板 v0.2.0 · Note board
笔记看板 v0.2.0 —— 首个公开发布
给 DSH 对话视图加第三个标签页,把一份 Markdown 笔记按会话绑定、用平台自带 KaTeX 渲染、
并每轮注入系统提示。
显示、解析、注入同属一个插件:「看板显示的即被注入的」由构造保证,而不是两个模块的君子协定。
功能
- 三页签:笔记目录 / 笔记正文 / 审计判决
- 按会话绑定:显式附加 → 从会话工作目录逐级向上发现 → 无。
缺席不回退到别的笔记——否则会话之间会静默互相渗漏;「未绑定」不是故障态,而是被期望
去选择的状态,所以首次加载落在目录页。 - 每轮注入:挂在
system-prompt/assemblewaterfall 上;笔记变化时先发[LEDGER DELTA]
点名新增/被替换/被删除的节,并声明上下文里的旧版本作废。 - 增量基线持久化:DSH 停机期间发生的编辑,在恢复后的第一轮依然会被播报,而不是被当成
「首次读取」吞掉。MUTATION-LOG节故意排除在比对之外。 - 吸收线:常驻提示「你正在读的」与「模型收到的」是否已经分叉(全文 vs 注入预算)。
- 中英双语(切换走平台 locale,标签与面板不会语言撕裂)、跟随皮肤、错误边界。
安全与信任边界
发布前经多轮跨厂商对抗审查(隐私与安全分别由不同厂商的模型独立执行),逐条修复并复验。
README 的「安全与信任边界」一节把设计事实写成可核对的清单,包括:
- 每个路由先向
connection服务询问请求是否可信;服务缺失或抛错一律失败关闭。
(具名路由不会自动处于 web 鉴权门之后——这是本插件显式处理的。) - 所有文件读取有界、非阻塞、只认普通文件:FIFO / 设备节点被拒,不会挂起请求。
- 两个持久化 JSON 有界读取 + 逐键重新校验 + 每次唯一的临时文件 + 原子 rename。
- 挂载中途失败事务式回滚;全部配置项有上界;写路径错误不回显主机文件系统细节。
部署
9 个配置键全部可覆盖,包内 cordis.patch.yml 零配置;部署专属路径
(scanRoots / ledgerFiles / auditInboxName)留在各自的 profile patch 层——
loader 会在每个 bundle 层之后应用 profile 层。
质量
- 测试 66 条 / 5 个文件(含路由鉴权与失败关闭、挂载回滚、有界读与 FIFO 拒绝、
并发写、受污染状态被逐键丢弃、代理对不被截半) npm run typecheck/npm run build干净
Licence: BSD-3-Clause