dsh-client-runtime
github.com/deepseek-ai/deepseek-harness
v0.0.1-rc.1
会话与记忆
写入文件动态执行代码
客户端 cordis 启动与无 React 的对象服务:SlotsService 封装 SlotCore 并提供渲染器数据源;SessionsService 持有 Session 对象以及面向 Chat 的列表、作用域和事件窗口状态;SessionHistoryService 按需为检查类消费者持有各自独立的原始历史账本,先加载当前尾部,仅当消费者请求时才向前追加一页更早的数据。每个历史快照都会暴露原始窗口的绝对基准序号,因此即使某一页
作者原文(英文)
Client core services: SlotsService, SessionsService (scope tree + object layer)
中文简介由 DeepSeek 模型翻译,仅供参考。
检测报告
有一定能力。命中了若干能力模式,大多是插件正常工作时会用到的。
2需留意2一般20未命中
高关注需留意一般
能力清单
- 写入文件
writes-files需留意12 处命中lib/client.js:7279async rename(title) {lib/client.js:7281const { result } = await this.api.sessions.rename({lib/client.js:9003const renamed = await child.rename(increasedForkTitle(sourceTitle));lib/client.js:11294async rename(workspaceId, title) {- 看写入位置。写自己的配置目录是正常的,写系统目录不是。
- 动态执行代码
dynamic-code需留意1 处命中lib/client.js:456new Function("");- 看 eval / new Function 的入参来自哪里。常量字符串和用户输入是两回事。
- 接触凭据或密钥
credentials一般7 处命中lib/client.js:4592code: literal("credential-rejected"),lib/client.js:12130else if (frame.type === "host/credentials-changed") ctx.emit("credentials/changed", frame.ref);README.md:5Client cordis boot and React-free object services: SlotsService wraps SlotCore and supplies renderer data sources; Sessi…README.md:63The Host-owned LLM retry invariant validates provider-routed `llm/retry` and `llm/retry-started` records at the durable …- 看它读取哪些凭据、发往哪里。用于登录自己的服务是正常的。
- 动态加载模块
dynamic-import一般7 处命中lib/types/client/index.d.ts:94useWorkspaces: SnapshotSelectorHook<import('./workspaces/service.ts').WorkspaceListState>;lib/types/client/index.d.ts:155slots: import('./slots.ts').SlotsService;lib/types/client/index.d.ts:157conversationEvents: import('./conversation/event-registry.ts').ConversationEventRegistry;lib/types/client/index.d.ts:159conversationViews: import('./conversation/view-registry.ts').ConversationViewRegistry;- 动态导入本身无害,但会让依赖关系难以静态审阅。
逐条扫描明细
| 能力 | 标识 | 关注度 | 命中次数 |
|---|---|---|---|
| 写入文件 | writes-files | 需留意 | 12 |
| 动态执行代码 | dynamic-code | 需留意 | 1 |
| 接触凭据或密钥 | credentials | 一般 | 7 |
| 动态加载模块 | dynamic-import | 一般 | 7 |
这份报告的口径
扫描读的是包里的源码,全程不执行第三方代码。 本次读了 53 个文件,扫描于 2026-10-14。 命中次数只说明源码里出现过这类调用,不说明行为好坏——一个插件读写文件 500 次和 1 次 都会被记为「读取文件」。这是能力清单,不是信任评分,也不是安全结论: 没扫出来的能力可能只是写法没被规则覆盖。
依赖安全公告
已查询这个插件声明的全部依赖,没有匹配到已公开的安全公告。(含 DSH 框架包在内的 @deepseek-ai/* 不作查询——那是运行时自己的问题,不是插件的。)