🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话级 REPL muyuanjin/dsh-ptc-plus

DeepSeek Harnessv0.5.2
muyuanjin5 天前有提交已提供中文文档扫描:含敏感能力

让模型在同一会话中持续计算、直接修订,减少重复工作和可避免的工具调用错误。

45/100
综合分
21
GitHub 星标
1,101
npm 周下载
—/5
用户评分

数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-ptc-plus
npm 源 · dsh-ptc-plus 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-ptc-plus @ 0.5.2
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 22:56:46

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 10 处,展示前 10 条)
  • 读取本地文件
    internal/capability-statistics-store.js:23
    try { value = JSON.parse(await readFile(this.filename, 'utf8')) } catch (error) {
  • 写入本地文件
    internal/capability-statistics-store.js:96
    await mkdir(dirname(this.filename), { recursive: true, mode: 0o700 })
  • 执行外部命令来自配置/变量
    internal/isolated-worker.js:133
    this.child = fork(helper, [], {
  • 写入本地文件
    internal/worker-client.js:77
    await mkdir(scratchRoot, { recursive: true })
  • 删除本地文件递归
    internal/worker-client.js:316
    await rm(scratchDirectory, { recursive: true, force: true, maxRetries: 3, retryDelay: 50 })
  • 读取本地文件
    internal/user-bindings-store.js:56
    const text = await readFile(filename, 'utf8')
  • 写入本地文件
    internal/user-bindings-store.js:194
    await mkdir(dirname(this.filename), { recursive: true, mode: 0o700 })
  • 读取本地文件
    internal/user-bindings-store.js:280
    const source = await readFile(absolute, 'utf8')
  • 读取本地文件
    internal/compiler-service.js:16
    const compilerSource = readFileSync(bundleUrl, 'utf8')
  • 读取本地文件
    internal/repl-value-observer.js:47
    runInContext(readFileSync(require.resolve('acorn'), 'utf8'), context,
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-util-values@deepseek-ai/schemastery@deepseek-ai/dsh@deepseek-ai/dsh-agent-loop@deepseek-ai/dsh-api-gateway@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-test-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-primitives
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

2 张 · 点击查看大图

功能亮点

  • 会话内持续计算
  • 直接修订结果

绑定会话的智能体原生 REPL,用于 DeepSeek Harness PTC 模式。

v0.5.22026-10-27
中文 | English 宿主适配 · 目标发行仍是当前官方 DSH,插件继续使用它的公共扩展面(设置卡片座位、会话投影和公共 Menu),本版本不要求宿主侧改动 · 升级前写下的会话日志检查点会按新格式重新折叠,旧会话照常恢复,不需要先清空会话或配置 新增 · 「能力与上下文 → 提示文本」可以逐句改写插件写给模型的固定提示:每一行标明所属通道、存在条件、字节数和只读原因,只读段落与宿主段落(系统提示与工具说明)只展示、不能改 · 提示文本是一张紧凑表格,点一行展开该行的编辑区;编辑先进草稿,保存才生效,取消丢弃,保存前可以看到逐条差异及其生效时机(下一次请求、新会话或下次触发) · 检查点的保留窗口在设置里可调:保留最近单元格数(8–512,默认 8)、保留载荷预算(1 MiB–16 MiB,默认 8 MiB,最坏情况约 32 MB)、单元格簇上限(默认与保留单元格数一致,0 表示只由载荷预算约束) · 计算基线采样、worker 回收、启动探针与宿主执行入口的等待上限,以及连续未测量 cell 的丢弃阈值,都可以按机器情况调整 稳定性 · 表面重发布(例如切换工作目录、能力观测、宿主重渲染)不再重建内核:只要 worker 还活着,绑定就在原地保留,视图变化不影响计算状态 · 恢复提示只在真的需要时出现:完整恢复不再发通知,只有确实无法恢复的绑定才被点名(PTC-R002),曾被宣布可用之后消失的绑定另有 PTC-R006 点名 · 编辑命令是追加语义:被接受的编辑新增一次调用,原有单元格与其绑定保持不变;改写历史是可选的未来能力,默认关闭 · 长会话实测:163 个 run_code 单元格的会话中恢复类诊断数为 0 修复 · 会话日志检查点的体积由窗口与预算决定,不再随会话累计写入量无限增长:窗口按条数与字节双重上限把旧结算折成摘要记录,超出预算的单个单元格整簇移除。以每格 20 KB 代码加 20 KB 写入的会话实测,450 格为 0.62 MB、900 格为 0.83 MB · 被移出检查点的单元格在需要时从会话日志重新折叠,因此仍可编辑和查看;日志无法提供时,编辑会提示「该单元格超出保留窗口,已不可编辑」 · 单个单元格本身就超过载荷预算时,它会连同参数原文一起移出检查点并提示「最新单元格超出保留预算,已从检查点移除」,而不是让检查点无限变大 · 提示文本面板里的原因码与槽位种类按界面语言显示,中文界面不再出现内部代码;只读槽位的说明与按钮样式与设置页其余部分一致 · 选中提示文本的某一行后,编辑区会滚动到可见位置,不再出现「点了行却没看到编辑器」 · REPL 绑定面板在会话投影刷新时保留最后一次确认的清单,不再短暂显示后变成「当前绑定状态尚不可确认」;运行时重新激活后仍会正确显示为不可确认,因为新进程并没有那些绑定 · 依赖安全:zod 解析到 4.6.7(GHSA-mrhx-c7xc-m3w5,high) 升级 · 需要 Node.js ^22.19.0 || >=24.0.0;升级插件后请重启 DSH · 现有配置不需要迁移:没有显式设置的保留参数使用上述默认值,已有配置里的其它字段照旧生效 dsh plugin --profile add dsh-ptc-plus@0.5.2 致谢 · 感谢 @smter 的 #11:定位了「宿主事件循环停顿后,已经到达的采样回复被当成超时丢弃」的竞态,并贡献了随本版本合入的回归用例 --- Host Compatibility · This release targets the current official DSH release and keeps using its public extension surfaces (the settings card seat, the session projection and the public Menu); no host-side change is required · Session-log checkpoints written before this version are refolded in the new format, so existing sessions keep recovering without clearing the session or the configuration New Features · Capabilities & context → Prompt text now lets you rewrite, sentence by sentence, the fixed text the plugin writes for
v0.5.12026-10-17
中文 | English 宿主适配 · 适配 DSH 0.2.1-alpha.5 的公共执行与插件界面;模型看到的 TypeScript 说明与 PTC Plus 支持的 enum、namespace 保持一致。 · 保留上一代宿主公共接口的兼容路径,按宿主实际提供的能力接入。 新增 · “状态与恢复”新增“官方 REPL 模式优先”,默认关闭。开启且 DSH 已启用 executionMode: persistent-in-memory 时,立即让官方运行时接管;离开插件执行会释放插件内存环境,官方执行记录不混入插件恢复。 修复 · 修复停止后台子代理后,父会话后续计算可能持续报 PTC session disposed 的问题。 · 修复后台续轮可能误用先前代码编辑的会话快照,导致计算值回退的问题。 · 修复会话能力工作台批量应用时的取消与状态反馈;关闭能力管理时,更清楚地显示关闭原因。 · 首次任务开始前修改全局绑定或能力配置,只向模型提供最终配置,避免夹入尚未生效的中间通知。 升级 · 需要 Node.js ^22.19.0 || >=24.0.0;升级插件后请重启 DSH。 dsh plugin --profile add dsh-ptc-plus@0.5.1 --- Host Compatibility · Adapt to DSH 0.2.1-alpha.5's public execution and plugin UI surfaces. Model-visible TypeScript guidance agrees with PTC Plus support for runtime enum and namespaces. · Retain compatibility paths for the previous public Host interfaces, using the capabilities actually provided by the Host. New Features · Add “Prioritize the official REPL mode” under State and recovery, disabled by default. When enabled together with DSH's executionMode: persistent-in-memory, the official runtime takes over immediately. Leaving plugin execution releases its in-memory environment; official execution records never become plugin recovery evidence. Fixes · Fix later parent-session computations repeatedly failing with PTC session disposed after a background subagent is stopped. · Fix background continuations reusing a previous code edit's session snapshot and reverting computed values. · Fix cancellation and state reporting when applying capability-workbench changes in a batch, and explain disabled capability management more clearly. · Before the first task, changes to global bindings or capability configuration provide only the final configuration to the model, without intermediate notifications. Upgrade · Requires Node.js ^22.19.0 || >=24.0.0; restart DSH after upgrading the plugin. dsh plugin --profile add dsh-ptc-plus@0.5.1 --- Full Changelog:
v0.5.02026-10-13
中文 | English 宿主适配 · 适配官方 DSH 0.2.1-alpha.2(当前最新发布):PTC 模式下的连续计算、程序内编辑、设置卡片、REPL 页签与星光入口继续通过 DSH 的公共扩展面工作 · 兼容性由公共能力探测决定,不设置版本白名单;设置卡片同时支持 plugins.row.config 与上一代 settings.plugin.item 座位,宿主未提供的能力只会让对应入口缺席 新增 · 设置窗口重新组织并新增“能力与上下文”,默认不启用能力管理(能力沿用宿主):按工具、Skills、MCP 服务器列出当前能力,支持搜索、筛选、排序与逐项开关;可用性与说明方式可在默认、分类、MCP 来源与单个条目四个层级分别控制;统计采集、预算分配输入、说明恢复与模型预览各自独立开关;命名配置可保存、导入导出并套用;清单可将保存值与选定会话对照,统计页展示所选会话的用量与覆盖率证据;一个总开关可整体暂停。保存的配置由新会话与显式刷新采用,已有会话保持现有选择 · 星光菜单新增会话能力管理:逐条或批量暂存当前会话的能力选择,再决定“应用到会话”(仅本会话的临时选择)或“应用到全局”(新会话的默认) · 执行结果卡支持悬浮预览,可在设置中开关并选择跟随指针的方向 · 安装更轻:profile 安装不再拉取构建期依赖(Babel、CodeMirror、TypeScript 等已内联进发布产物) 修复 · 程序完成值保持完整:富图形与显式 undefined 独立渲染,冷重放返回记录值,值传输失败给出可读诊断 升级 · 需要 Node.js ^22.19.0 || >=24.0.0;升级插件后请重启 DSH · 已有插件设置继续沿用;“能力与上下文”默认关闭,需要时在设置中开启 dsh plugin --profile add dsh-ptc-plus@0.5.0 --- Host Compatibility · Supports official DSH 0.2.1-alpha.2 (the newest release): continuous computation in PTC mode, in-program editing, the settings card, the REPL tab, and the sparkle entry keep working through DSH's public extension surfaces · Compatibility is decided by public capability probing, with no version allowlist; the settings card works from both the plugins.row.config and previous-generation settings.plugin.item seats, and a missing host capability only leaves its entries absent New Features · New Capabilities & Context area in a reorganized settings window, with capability management off by default so capabilities stay with the Host: tools, Skills, and MCP servers are listed with search, filters, sorting, and per-item switches; availability and disclosure are controlled per default, category, MCP source, and single item; statistics collection, budget allocation inputs, description recovery, and model previews have independent switches; named configurations can be saved, imported/exported, and applied; the list compares saved values with a chosen session, and the statistics view shows that session's usage and coverage evidence; one master switch pauses t
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
简体中文 · English 让模型在同一会话中持续计算、直接修订,减少重复工作和可避免的工具调用错误。 PTC Plus 为 DSH 的 PTC 模式提供有状态的 TypeScript 计算环境。它基于 REPL,让变量、函数、导入和中间结果跨工具调用复用;针对模型连续编写和修改代码的需要,扩展声明更新规则,并提供模块语法适配、调用容错和代码编辑能力。 - 接着算:读取和整理过的数据留在会话里,下一次调用直接继续。 - 直接改:同名修订变量或函数,已有闭包读取更新后的绑定;小改动可以只发送代码差异。 - 少些调用错误:适配常用模块语法,处理可准确识别的调用遗漏,并为可验证的语法错误提供修正建议。 - 复用常用能力:把常用函数保存为全局绑定,向模型提供接口与使用提示,在多个会话中使用。 快速开始 · 功能概览 · 连续计算 · 代码编辑与容错 · 全局绑定 · 界面与设置 · 状态与恢复 · 开发 快速开始 需要 Node.js ^22.19.0 || >=24.0.0 和最新可用的官方 DSH: dsh plugin --profile <profile> add dsh-ptc-plus 把 <profile> 换成实际 profile 名称,重启 DSH,在会话中选择 PTC 模式。
展开完整文档(README 剩余 1 节)
简体中文 · English

让模型在同一会话中持续计算、直接修订,减少重复工作和可避免的工具调用错误。

PTC Plus 为 DSH 的 PTC 模式提供有状态的 TypeScript 计算环境。它基于 REPL,让变量、函数、导入和中间结果跨工具调用复用;针对模型连续编写和修改代码的需要,扩展声明更新规则,并提供模块语法适配、调用容错和代码编辑能力。

- 接着算:读取和整理过的数据留在会话里,下一次调用直接继续。
- 直接改:同名修订变量或函数,已有闭包读取更新后的绑定;小改动可以只发送代码差异。
- 少些调用错误:适配常用模块语法,处理可准确识别的调用遗漏,并为可验证的语法错误提供修正建议。
- 复用常用能力:把常用函数保存为全局绑定,向模型提供接口与使用提示,在多个会话中使用。

快速开始 · 功能概览 · 连续计算 · 代码编辑与容错 · 全局绑定 · 界面与设置 · 状态与恢复 · 开发

快速开始

需要 Node.js ^22.19.0 || >=24.0.0 和最新可用的官方 DSH:

dsh plugin --profile <profile> add dsh-ptc-plus

把 <profile> 换成实际 profile 名称,重启 DSH,在会话中选择 PTC 模式。连续计算、调用容错和全局绑定默认开启;升级用 dsh plugin --profile <profile> add dsh-ptc-plus@latest 再重启宿主,其他安装方式、Desktop、本地开发启动器和故障排查见安装指南。

插件通过 engines.dsh: "" 接入宿主兼容性预检,按最新官方发行版的公共能力检查与打包测试验证兼容性。

界面默认显示会话里的 REPL 页签,宽屏顶部还有 PTC Plus 标志。输入框旁的星光按钮打开全局绑定菜单、会话能力工作台和 PTC Plus 设置,侧边栏的 插件 → 已安装 → dsh-ptc-plus → 配置 是同一套设置。

功能概览

默认 PTC 模式的每次调用都从新环境开始:上次的变量已经不在了,想改动依赖前面的结果就只能重发准备代码。PTC Plus 把 run_code 变成会话级的 TypeScript REPL,补上这些差距。

| 场景 | 默认 PTC 模式 | 使用 PTC Plus |
| 接着上一次处理数据 | 每次从新环境开始,准备代码要重新发送 | 变量、函数、导入和中间结果留在会话里,下一次调用直接继续 |
| 修订已有的名称 | 没有已建立的绑定可更新,只能重发整段代码 | 同名修订变量、函数、类和导入绑定,已有闭包读取更新后的值 |
| 只改一小段代码 | 改动一行也要重新发送整段源码 | edit_run_code 只提交差异,再执行修改后的完整代码 |
| 使用模块语法 | 函数体里不能直接写静态 import / export | 在 cell 中直接写,插件自动适配模块语法 |
| 调用漏填摘要 | 缺少 run_code.description 时校验失败 | 自动补充显示摘要,其余参数合法的代码继续执行 |
| 提供方拒绝畸形工具 JSON | 整个 turn 以 provider 错误终止 | 可修复的调用尾部继续执行,其余转为 schema 拒绝结果,模型继续下一步 |
| 误发顶层工具调用 | PTC 模式下未声明的顶层调用被拒绝 | 当前工具定义能唯一确认目标且参数合法时,转为对应的 run_code |
| 定位代码错误 | 只返回原生错误与堆栈 | 对应到 cell 源码位置;末尾缺少闭合符且修正可唯一验证时给出编辑建议 |
| 访问当前目录 | 按宿主为当前调用解析的目录执行 | 相对文件操作和默认子进程按执行时的会话当前目录解析,格内 tools.working_directory({ cd }) 立即作用于本格剩余语句;模块导入保持进入目录,旧模块和导入闭包保留原来源 |
| 查找工具和参数 | 只能翻已经提供给模型的工具说明 | 用 capabilities.search 一次取得匹配接口,按字节限制响应;也可列目录或单项检查 |
| 传递 JSON 不易表达的数据 | JSON 无法完整表达 undefined、BigInt、循环引用等 | 在支持的值范围内保留特殊值和引用关系,供后续计算与恢复 |
| 查看当前计算状态 | 执行结束后没有可继续使用的会话变量可查 | REPL 页签展示保留的名称、定义来源、复用次数和值预览 |
| 跨会话使用常用函数 | 自己保存代码,并在后续调用中重新加载 | 全局绑定保存 TypeScript 源码,并向模型提供接口与使用提示 |
| 编写和测试全局绑定 | 没有全局绑定的专用工作台 | 让模型生成待审阅草稿,或在工作台试运行未保存的源码 |
| 重启后继续工作 | 没有跨调用的计算状态可供恢复 | 从会话记录恢复可验证的状态,无法恢复的部分明确提示 |

连续计算与语言扩展

以下代码由模型通过 run_code 执行,每次调用的代码称为一个 cell。

const amounts: number[] = [12, 8, 5]
function total() {
return amounts.reduce((sum, value) => sum + value, 0)
}
return total() // 25

下一次直接修订数据,total 不用重新定义:

const amounts = amounts.filter(value => value >= 8)
return total() // 20

默认的 有状态语义(bindingUpdates: 'stateful')为此扩展了 JavaScript/TypeScript 的绑定规则:

- 同一作用域里的变量、函数、类和导入绑定都能更新,包括 const 声明的;同一个 cell 内也允许同名修订。
- 已有闭包读到更新后的绑定,提前保存的函数值仍是原来的函数;不同块、函数和循环迭代的作用域照常区分。
- 声明初始化失败不会永久占住这个名称,失败前已经生效的修改也不会回滚。

cell 支持 TypeScript(含运行时 enum 和 namespace)、顶层 await / return 和静态 import / export;静态导入在整个 cell 正文执行前生效,正文里的赋值随后可以覆盖它。想检测名称覆盖,可以在设置里关掉“允许重声明和覆盖”改用 protected 策略;tools 这类受保护的运行时名称任何时候都不能覆盖。

run_code、编辑后的代码和全局绑定工作台采用同一套语言策略;显式 eval、Function、node:vm 或独立运行时仍受各自的原生边界约束。作用域、模块互操作和历史会话规则见语言参考,完整的语言规则、配置字段与诊断见运行时参考。

代码编辑与调用容错

模型可以在新的 run_code cell 内调用 tools.edit_run_code,修改当前轮最近的可编辑 cell,不必重发整段源码:

const receipt = await tools.edit_run_code({
edits: [{ old_string: 'value >= 8', new_string: 'value >= 10' }]
})
return receipt

收据里 accepted: true, scheduled: true 表示编辑已经安排:外层 cell 结束后才重新执行整个目标 cell,下一次 cell 读到的是修订后的值(上例是 12)。同一次调用里再读仍是旧状态,已经发生的状态修改不会回滚,写过文件或调用过外部服务的代码重跑时要考虑重复效果。正则编辑的每项必须给出 pattern、flags、replacement、expected_matches,不需要标志时显式传 ""。

| 情况 | PTC Plus 的处理 |
| run_code 漏填外层 description | 补充显示摘要,让其余参数合法的代码继续执行 |
| 模型误发 PTC 直接工具列表之外的原生工具调用 | 当前工具定义能唯一确认目标且参数合法时,转为对应的 run_code |
| 参数校验报告缺少 description | 区分外层与嵌套工具参数并给出修正提示;提示以完整消息保存,保持会话历史可加载 |
| 代码解析失败 | 标出源码位置;若错误在末尾,且追加一到两个闭合符只有一种通过验证的修正,给出绑定原调用的编辑建议 |

被接受的编辑若在真正执行前因为没有取得计算基线而未能运行,收据仍然是收据:修订不执行、不产生新变量,外层 cell 自己的结果照常保存,重启恢复时也不会再因为这次编辑而连带丢掉它已保存为 durable 检查点的状态。

设置里的“编辑时替换原单元格”(editRewritesHistory,默认关闭)决定日志重建环境时怎么看待这次编辑。关闭时保持追加语义:被编辑的单元格和修订都留在环境里,修订只是覆盖了它重新声明的名字。打开后被编辑的单元格仍然留在会话日志里,但不再参与环境重建,改由修订代替它;修订不再声明的名字按“被取代”报告(PTC-R007),而不是按“丢失”报告。日志能证明的具体名字会被点名,证明不了时只陈述取代关系。

前两项默认开启,可以在设置里关掉。语法建议不会自动执行,也不代表代码符合任务意图。volatile 状态存不成 durable 检查点,但保存被拒绝后当前变量还能接着用;恢复不撤销外部效果,也不改全局绑定配置。

项目文件与工具能力

模型可以直接用 Node.js 读文件、处理数据、跑程序。相对路径和没指定 cwd 的子进程按执行时的会话当前目录解析:格内调用 tools.working_directory({ cd }) 后,本格剩余操作就用新目录,与宿主工具同一基准。模块导入和 import.meta 仍按进入目录,已加载模块、旧导入闭包和已捕获的 require 保留原来源;process.chdir 在 cell 内不可用。文件、网络等外部输入在当前环境里可以继续用,但不保证跨重启还能恢复。

capabilities.search() 一次查找并返回完整接口,预算按字节计算,过长条目保持完整并给出单项读取指针;原有的 tree()、find()、inspect() 仍可用。

return capabilities.search({ query: 'read file content', budgetBytes: 8192 })

搜索按中英文词法匹配,没匹配到不代表工具不存在。发现工具不会增加权限,实际调用仍由 DSH 校验和调度,更多用法见能力发现。

全局绑定:跨会话复用常用函数

会话变量服务于当前任务,全局绑定把常用 TypeScript 函数保存下来,供多个会话加载:保存 textTools 之后,模型就能调用 textTools.clean(text)。你可以手动创建、导入 .ts 文件,也可以让模型帮忙:

/binding new 创建 textTools,去掉文本首尾空白并保留内部空格 /binding edit <id> 增加逐行清理功能

模型提交的草稿浮在输入框上方。你在大窗口里看完整源码、接口和给模型的提示词,再选 保存并启用、保存为停用 或 丢弃草稿;提交草稿本身不会保存或启用绑定。已启用条目的接口和使用提示会提供给新会话中的模型,中途修改在现有会话的下一次允许请求中生效。

工作台可以运行尚未保存的源码,并在连续执行之间保留临时变量;它的计算状态和模型会话分开,文件和网络操作仍会产生真实效果,没有 PTC 会话时也能管理条目。源码格式、接口生成、保存位置和完整流程见全局绑定指南。

界面与设置

REPL 页签列出会话里保留的名称、定义来源、复用次数和值预览,也能打开全局绑定工作台。执行卡片收起后,鼠标停留 400ms 或键盘聚焦会弹出一份摘录,含源码、结果和功能标记;点击或按 Enter/空格展开完整内容并复制代码。不需要时可以在设置的“界面显示”里关掉“悬停预览执行内容”。

REPL 页签中的会话状态与全局绑定工作台

设置窗口和侧边栏的插件配置页是同一套配置,分组如下:

| 功能模块 | 分组 | 可以调整的内容 |
| 插件开关 | PTC Plus 标题总开关 | 启用或停用 PTC Plus |
| 核心工作区 | REPL 语法 | 允许同名修订或选择名称保护 |
| 核心工作区 | 状态与恢复 | 重启恢复、官方 REPL 模式归属、上下文提示及其频率、未测量 cell 回收阈值 |
| 扩展与容错 | 工具扩展 | 全局绑定及其管理入口、官方 Cordis 工具集成 |
| 扩展与容错 | 调用容错 | 缺失调用摘要、可识别的错位原生工具调用 |
| 界面与资源 | 界面显示 | 增强工具卡片、REPL 页签和星光快捷入口 |
| 界面与资源 | 资源限制 | 执行时间、内存、输出、采样、回收与启动上限 |
| 实验性 | 能力与上下文 | 实验性能力管理(默认关闭)、独立统计、常用集、单项选择、展示预算和提示文本 |

新会话尚未开始时,调整能力或全局绑定只更新初始配置,不发送或排队发送变更说明;首轮使用调整后的配置。

面向日常计算的功能默认开启,Cordis 开发工具默认关闭,要检查或开发 DSH 插件时再打开,详见集成说明。

“能力与上下文”是实验性设置,默认关闭。打开后可以按类别、来源和单项选择 Skills、Tools 和 MCP 能力的启停与说明方式,初始提示、提示恢复、输出节选和使用统计也在这里;标题旁的总开关一次暂停整组并保留原有选择,改动对新会话或明确刷新后的会话生效。星光菜单里还有一个会话能力工作台,用来按类别、来源和状态查看、调整当前会话的能力。能力改动先放进草稿,可以只写进本会话,也可以保存成全局默认;同一工作台的绑定组不走进草稿,点击某一行的“本会话使用/本会话不使用”立即提交人类输入的同一条 /binding use|skip <id> 命令,改的是本会话对该全局条目的取用。字段、默认值和完整限制见配置参考。

提示文本页签把插件写给模型的固定文本列成清单:每行标注所属通道、存在条件、字节数与只读原因,合计行分别给出已测字节、未测槽和动态槽。可编辑项按槽位计字节,改完保存即写入配置;通道尚未接通时如实显示“通道未接通”,不以 0 字节冒充已测量;协议文本、由配置或运行事实生成的句子,以及你自己写给模型的绑定说明只读展示。

宿主执行 provider 必须使用 TypeScript;热重载换成别的语言时插件会撤出并报出诊断,换回来就重新启用。

当官方运行时按状态所有者保留程序环境时,可以在“状态与恢复”里用官方 REPL 模式优先选择谁接管 PTC 会话:默认关闭,run_code 由 PTC Plus 接管;开启后由官方运行时接管,PTC Plus 让出执行、REPL 状态语义与观察。判断依据是运行时自己的声明(retainsState;更早的运行时通过 repl 源码形式表达同一件事),不是某个执行模式名或版本号,无状态运行时上该设置不生效。切换立即生效,离开插件执行时会释放插件的内存环境;官方内存状态由 DSH 的 Agent/provider 生命周期管理,切换优先设置不保证清空它。官方执行期间的调用不进入插件记录,切回插件后不会当作可恢复状态。

PTC Plus 设置窗口

值传递与状态恢复

在插件 graph IPC 支持的值范围内,程序参数、结果和恢复记录能保留 undefined、BigInt、NaN、无穷大、稀疏数组、循环引用和共享引用关系,支持的值直接返回即可,不必自己写 JSON.stringify(它会丢掉对象里的 undefined,把 NaN 和无穷大变成 null、把 -0 变成 0,还会拒绝 BigInt)。函数、Promise、类实例、Date、Map、Set 不在这个范围内,原生 tools. 的 JSON 参数与结果契约也不受影响,详见值契约。

会话状态不是永久内存:重启、执行环境重置或上下文压缩后,只保留能从会话记录验证、且来源仍在模型上下文中的状态,其余会被丢弃并给出提示,必要时从空环境继续当前计算。会话记录本身缺失或损坏时会明确报错,不会被当作成功恢复的空会话。恢复不会重新派发已记录的原生工具调用,也不会撤销历史外部效果,依据和限制见运行时参考。

停止后台子代理不会清空父会话的 REPL 状态;通知触发的后续调用可以继续使用父会话的变量。父会话自身释放后,后续调用仍按上述恢复规则继续计算。

使用边界

- 执行权限:主要面向 danger-full-access。代码可以直接访问 Node.js 和操作系统,插件不额外提供安全沙箱;原生工具权限、审批、取消和沙箱策略仍归 DSH。
- 失败与重跑:代码执行失败不代表之前的语句没生效。进程隔离、编辑和恢复都不保证外部操作可以安全重复,超时或输出超限也可能释放计算环境。
- 错误与开销:语言适配和调用容错不保证所有代码都能跑通。实际调用次数和 token 用量取决于任务和模型。已有对照观察及限制见评测说明。

PTC Plus 是社区插件,与 DeepSeek 或 DSH 无隶属或背书关系。

开发

开发在仓库根目录进行:npm ci 安装依赖,npm run build 重新生成 client.cjs 和 compiler 产物。聚焦测试必须指定用例:

npm run test:backend:focus -- --file test/<owner>.test.js --test-name-pattern="<case>"
npm run test:client:focus -- "<test name pattern>"

交付前按变更分类选检查:只改文档跑 npm run verify:docs,其他改动跑 npm run check,然后走评审流程。架构和数据面见架构与开发,全部文档见文档索引,安装与发布见安装指南和发布流程。

MIT License
预览分享卡片长什么样 ↓muyuanjin/dsh-ptc-plus
分享 · DeepSeek Harness Hub
muyuanjin/dsh-ptc-plus

让模型在同一会话中持续计算、直接修订,减少重复工作和可避免的工具调用错误。

回到顶部