编辑代码后自动跑 tsc 并汇报类型错误
27.4/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add a179-sanae/dsh-code-check该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · security
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 27 处,展示前 21 条)
- 删除本地文件递归scripts/prepare.mjs:19
rmSync(join(root, 'lib'), { recursive: true, force: true }) - 读取本地文件scripts/prepare.mjs:22
if (!existsSync(entry)) { - 执行外部命令来自配置/变量scripts/prepare.mjs:26
const result = spawnSync(process.execPath, [entry, ...args], { cwd: root, stdio: 'inherit' }) - 执行外部命令固定命令scripts/extract-patch.mjs:40
return execFileSync('git', ['-C', harness, ...args], { cwd, encoding: 'utf8' }) - 读取本地文件scripts/extract-patch.mjs:61
const config = existsSync(args.config) - 读取本地文件scripts/extract-patch.mjs:62
? JSON.parse(await readFile(args.config, 'utf8')) - 读取本地文件scripts/extract-patch.mjs:71
if (!existsSync(args.config)) { - 读取本地文件scripts/extract-patch.mjs:103
const content = await readFile(path, 'utf8') - 写入本地文件scripts/extract-patch.mjs:107
await writeFile(path, content.replace(seam.old, seam.new)) - 写入本地文件scripts/extract-patch.mjs:115
await writeFile(out, patch) - 执行外部命令固定命令scripts/extract-patch.mjs:116
execFileSync('git', ['-C', baselineTree, 'apply', '--check', out], { encoding: 'utf8' }) - 执行外部命令固定命令scripts/extract-patch.mjs:117
execFileSync('git', ['-C', trimmed, 'apply', '--check', '-R', out], { encoding: 'utf8' }) - 读取本地文件scripts/verify-self-contained.mjs:18
for (const entry of readdirSync(directory, { withFileTypes: true })) { - 读取本地文件scripts/verify-self-contained.mjs:42
const source = readFileSync(filePath, 'utf8') - 读取本地文件scripts/verify-self-contained.mjs:61
} else if (!existsSync(targetPath)) { - 读取本地文件scripts/verify-self-contained.mjs:90
if (!existsSync(join(root, requiredPath))) failures.push(`missing repository-layout contract ${requiredPath}`) - 读取本地文件scripts/verify-self-contained.mjs:93
const packageJson = JSON.parse(readFileSync(join(root, 'package.json'), 'utf8')) - 读取本地文件scripts/verify-self-contained.mjs:102
const lockfileSource = readFileSync(join(root, 'pnpm-lock.yaml'), 'utf8') - 读取本地文件src/diagnostics.ts:58
if (!insideNodeModules(current) && existsSync(join(current, 'tsconfig.json'))) { - 读取本地文件src/diagnostics.ts:104
if (existsSync(full)) return full - 执行外部命令来自配置/变量src/diagnostics.ts:158
const child = spawn(process.execPath, [tscEntry, ...args], {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-agent@deepseek-ai/dsh-attachment@deepseek-ai/dsh-brand@deepseek-ai/dsh-code-runtime@deepseek-ai/dsh-invariants@deepseek-ai/dsh-llm@deepseek-ai/dsh-scope@deepseek-ai/dsh-session@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-timeout给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 自动运行tsc
- 汇报类型错误
README
由 DeepSeek 最新模型翻译生成dsh-code-check
DeepSeek Harness(DSH)的自动类型检查诊断插件。
模型编辑或创建代码文件后,本插件在后台(按项目、防抖)自动运行
tsc --noEmit,并通过 code_check 工具汇报哪里改坏了——按文件分组,带行列号、严重级别和 TS 错误码。模型看到报告后可以自己修复,形成 "改 → 查 → 修"闭环。Claude Code 有官方 LSP 插件,pi 有 pi-lens,现在 DSH 也有了 dsh-code-check。
特性
- 监听 harness 的 fs/observed 变更事件(与内置 skill 文件系统同一条缝),零核心改动。
- 800ms 防抖,连续编辑合并为每个项目一次检查。
- 按被编辑文件向上找最近的 tsconfig.json,只检查对应项目;node_modules 内部的文件不会被依赖自带的 tsconfig.json 劫持。
- 直接以 node typescript/bin/tsc 方式启动:不经过 shell / npx / .cmd,Windows 与 POSIX 行为完全一致;命令行固定 --pretty false,解析器同时兼容 ANSI 颜色码与 --pretty 的 file:line:col - error TSxxxx 格式。
展开完整文档(README 剩余 1 节)
dsh-code-check DeepSeek Harness(DSH)的自动类型检查诊断插件。 模型编辑或创建代码文件后,本插件在后台(按项目、防抖)自动运行 tsc --noEmit,并通过 code_check 工具汇报哪里改坏了——按文件分组,带行列号、严重级别和 TS 错误码。模型看到报告后可以自己修复,形成 "改 → 查 → 修"闭环。Claude Code 有官方 LSP 插件,pi 有 pi-lens,现在 DSH 也有了 dsh-code-check。 特性 - 监听 harness 的 fs/observed 变更事件(与内置 skill 文件系统同一条缝),零核心改动。 - 800ms 防抖,连续编辑合并为每个项目一次检查。 - 按被编辑文件向上找最近的 tsconfig.json,只检查对应项目;node_modules 内部的文件不会被依赖自带的 tsconfig.json 劫持。 - 直接以 node typescript/bin/tsc 方式启动:不经过 shell / npx / .cmd,Windows 与 POSIX 行为完全一致;命令行固定 --pretty false,解析器同时兼容 ANSI 颜色码与 --pretty 的 file:line:col - error TSxxxx 格式。 - code_check 工具返回缓存报告,传 run: true 强制重跑,支持按路径过滤(按路径段精确匹配,bad.ts 不会误匹配 bad.tsx;自动规范化 ./ 前缀与尾部斜杠)。首次调用时会扫描调用方工作区找 tsconfig.json,没编辑过也能用。 - 优雅降级:没有 tsconfig.json 或本地没装 TypeScript 时给出明确提示,而不是崩溃;tsconfig 配置错误(如 include: []、files 指向缺失文件)会标注为 tsconfig/global error,与运行环境故障区分开。 - 全部配置项可通过 settings.yaml / profile patch 层调整。 安装 dsh plugin --profile web add "github:a179-sanae/dsh-code-check#main" 安装后重启 dsh web。工具会自动出现在模型的工具集里,结果以普通工具卡片渲染在 Web UI 中——不需要任何 UI 改动。 安装注意事项 - @deepseek-ai/ 运行时包(cordis、schemastery、dsh-tools、 dsh-llm)是 peer 依赖:由 DSH 宿主提供。不要把它们手动装进 profile——profile 里出现第二份 dsh-tools 会让宿主的工具调度器解析到错误实例,所有工具调用都会报 Cannot read properties of undefined (reading 'prepare')(已在 rc.6 实测,属宿主 loader 解析问题)。 - 若插件加载报 Cannot find package '@deepseek-ai/...',说明 profile 安装没解析到宿主包:检查 profile 的 pnpm-workspace.yaml,并在 pnpm install --force 后重新执行 dsh plugin --profile web add "github:a179-sanae/dsh-code-check#main"。 用法 让模型正常改代码即可:后台检查会自动调度,随时可以让模型: - 直接说 "run code_check"* 查看当前诊断 - 或模型在编辑后自行调用 code_check 首次使用:项目通过文件编辑事件(fs/observed)习得;还没编辑过时,带 run: true 的 code_check 会先扫描调用方工作区找 tsconfig.json,按需检查。 示例报告: Type check report — 2 diagnostics (checked at 21:30:04) src/app.ts:12:5 error TS2345 Argument of type 'string' is not assignable to parameter of type 'number' src/app.ts:40:1 error TS2304 Cannot find name 'foo' Tip: fix the errors, then call code_check again to verify. 配置 全部可选,默认值如下: | Key | 默认值 | 含义 | | enabled | true | 后台监听总开关。 | | debounceMs | 800 | 最后一次编辑后的防抖窗口(毫秒)。 | | triggerTools | ['edit', 'write'] | 触发检查的工具 actor 名单。 | | includeExtensions | ['.ts', '.tsx', '.mts', '.cts'] | 触发检查的文件扩展名。 | | maxDiagnostics | 120 | 单份报告最多展示的诊断数。 | | tscTimeoutMs | 60000 | 单次 tsc 超时。 | | extraArgs | ['--incremental'] | tsc --noEmit -p 之后的附加参数。 | | cacheCap | 200 | 缓存项目上限(最久未检查的先淘汰)。 | 通过 profile patch 层覆盖,例如: $DSH_HOME/profiles/web/cordis.patch.yml - id: code-check config: debounceMs: 1500 maxDiagnostics: 200 覆盖 patch 是平铺的 loader 条目(- id: + config:),不是 - update: 嵌套写法——后者会被 loader 静默跳过,配置不生效(实测确认)。id-targeted 覆盖会整体替换 config,想保留的字段必须一并写上。 工作原理 1. apply 订阅 fs/observed(见 src/runtime.ts)。 2. edit/write 工具对配置扩展名的文件产生变更后,为最近的含 tsconfig.json 项目调度一次防抖检查。 3. runTypeCheck 用项目本地 typescript/bin/tsc 启动 Node(见 src/diagnostics.ts),把 path(line,col): error TSxxxx: message 行(自动剥离 ANSI 颜色,兼容 --pretty 的 path:line:col - error TSxxxx 格式)解析成结构化诊断,并按项目根缓存。 4. code_check 工具读缓存(或强制重跑)并格式化报告;结果走标准工具结果管线,在 Web UI 里显示为普通卡片。 开发 pnpm install pnpm run typecheck # src + tests 严格类型检查 pnpm test # vitest:引擎 + 基于 tests/fixtures/ts-project 的真实 tsc 测试 pnpm run build pnpm run verify:self-contained 仓库自包含(遵循官方 plugin-template 契约):构建、测试、发布都不需要宿主 源码检出。 路线图 - 接入真实 LSP(tsserver via vscode-languageserver-protocol),流式增量诊断。 - ESLint / 其他语言路由(pyright、cargo check、gopls)。 - 自定义 Web UI 诊断卡片(文件级徽标)。 - 检查失败时向下一个模型回合注入紧凑提示。 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
a179-sanae/dsh-code-check
编辑代码后自动跑 tsc 并汇报类型错误
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 426,451已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,777已汉化MCP
71.8
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
主动编码智能体deepseek-ai/dsh-superagent-prototype
研究原型,仅供参考,不是 DeepSeek 官方产品。…
★ 15,535已汉化DSH
71.6
破甲一键通z91772524-ai/pojia-next
🌐 官网国内推荐从这里进:
★ 1,021已汉化DSH
71.6
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 656已汉化DSH
70.7
这是你的仓库?认领条目