Skip to content

14 · 代码地图与构建发布

Where is everything

14.1 源码树

text
src/
├─ index.ts              宿主编排:apply()、四挂点接线、10 路由、命令、评审器、审计、学习接线  2922 行
├─ auto/                 静态评估纯函数层(20 文件,按字母序)
│    ├─ artifacts.ts     98   本会话成功创建路径登记(删除豁免依据)
│    ├─ audit.ts         45   append-only 审批审计(清空留墓碑、5MiB 保尾)
│    ├─ category.ts      699  11 类三态开关层:归类/优先级合并/指令钳制/信任目录模式
│    ├─ classifier.ts    75   预分类提示词、参数脱敏、严格响应解析
│    ├─ constants.ts     27   数值默认唯一事实源(倒计时/熔断/截断/学习族阈值)
│    ├─ decision.ts      722  纯决策函数:评审解析、人机竞速、来源标注、熔断、静态名单、host-only 键
│    ├─ dsh-classifier.ts 94  复用 ctx.llm 的低 token 分类请求(temperature 0)
│    ├─ editdiff.ts      448  编辑类工具行级 diff 预览(LCS、官方语义镜像、倒计时字面量剥离)
│    ├─ latency.ts       114  LLM 评审耗时环形缓冲(settled/aborted 二分、1MB 轮转)
│    ├─ learning.ts      445  确认制学习:签名、计数、回收、查找、消费闸
│    ├─ paths.ts         213  路径规范化、受保护/关键路径判定、运行态文件名单
│    ├─ policy.ts        370  assessTool 确定性第一遍分类(17 步)
│    ├─ probe.ts         72   工作区事实只读探针(reviewerContextFacts 的元数据来源)
│    ├─ redact.ts        96   秘密脱敏器(token/AWS/PEM/Bearer…,供参数/评审理由/骨架/结果共用)
│    ├─ retry.ts         185  LLM 复审自动重试(瞬时故障判定、预算滚动、Retry-After)
│    ├─ review-mode.ts   52   每会话评审模式持久化快照
│    ├─ risk-tokens.ts   13   HIGH 风险正则(NAME/REASON 单一事实源)
│    ├─ rules.ts         370  声明式规则解析/求值(host 与浏览器共用)
│    ├─ shell.ts         1224 bash/pwsh 词法分解 + 整行熔断 + 逐段静态分类(最大单文件)
│    └─ trust.ts         101  web 路由信任平面(loopback/LAN 边界、Host 伪造防护、在线端点 URL 校验)
└─ client/
     ├─ index.ts         React 客户端主体 2527 行(设置卡 6 子卡/面板增强/轮询/浮动按钮/CSS)
     ├─ auto-icon.ts     权限菜单图标 + Auto 风险确认弹窗 624 行
     └─ locale.ts        zh/en 双语 354 行

tests/
├─ contract.test.mjs         250 例(host 纯函数契约:含评审重试/确认制学习/类别层/diff 预览/上下文探针各族)
├─ category.test.mjs         101 例(类别层专测:归类/优先级/LOCKED 钳制/复合命令合并/信任目录模式)
├─ editdiff.test.mjs          33 例(diff 边界与官方语义镜像)
├─ contract-devloop.test.mjs  19 例(开发闭环回归)
└─ probe.test.mjs              9 例(工作区事实探针边界)

                              合计 412 例(node --test 全绿基线)
scripts/
├─ build.sh             (DSH 源码仓库布局)tsc 编译 src→lib
├─ audit-query.mjs      审计查询 CLI
├─ mock-reviewer.mjs    本地 mock 评审器(127.0.0.1:18777,确定性 ALLOW/MEDIUM)
└─ link-client-packs.cjs
verify-*.mjs            3 个运行时验证脚本(verify-auth / verify-config / verify-runtime)

14.2 构建 → 产物

host(tsc)src/index.ts + src/auto/*lib/index.js + lib/auto/*。本机为 npm 全局安装、无 packages/vendor 布局,build.sh 探针会失败 → 直接 node_modules/.bin/tsc -p tsconfig.json

client(tsdown)src/client/index.tslib/client.js(CJS / browser platform),banner 包 window.__ModuleLoader__.load({id, factory});声明依赖(react/slots/primitives/runtime)外部化,其余打包。文件头保留 dsh-auto-mode 的 MIT 致谢。

bundle 层(patch.yml):权限预设(auto = danger-full-access + approval ask,禁飙到 never)+ 装包配置覆盖(autoSwitchPolicyToAsk:truehumanOnlyList 保持代码默认空)。

exports.(lib/index.js + types)、./client(lib/client.js + types contact)、./package.json;peerDeps 全覆盖(cordis ≥4<5、dsh-llm/dsh-tools ≥0.1.0-rc.0<2、schemastery ^3.18.0)── 0.1.1-rc.1 兼容性已验。