DSH Plugins Marketplace

DSH Plugins

Plugins

/

Sessions & Messages

/

dsh-ptc-plus

m

dsh-ptc-plus

Manifest valid★ 20

A session-bound agent-native REPL for DeepSeek Harness PTC mode.

UI (client)hasBundlePatch

dsh-ptc-plus 横幅

简体中文 · English

问题 · 场景 · 设置 · 范围 · 安装 · 文档

DeepSeek Harness PTC mode Node.js ^22.19.0 || >=24.0.0 npm version License: MIT

Awesome DSH Plugin


PTC Plus 让 DSH 的 PTC 模式拥有连续的 TypeScript REPL。 上一次 run_code 的变量、导入和计算结果,下一次可以直接复用。默认允许直接同名修订:已有闭包读取更新后的绑定,导入可被局部覆盖再重新导入,失败的声明不会永久占住名称。

[!NOTE] 社区插件,与 DeepSeek 或 DSH 无隶属、无背书。

[!IMPORTANT] 面向 danger-full-access 设计:代码可直接访问 Node.js 与操作系统,插件不另加沙箱。仅在可接受此权限的环境使用。

安装

需要 Node.js ^22.19.0 || >=24.0.0 和支持 TypeScript PTC 模式的官方 DSH。安装到你使用的 profile,然后重启 DSH 并选择 PTC 模式:

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

无需修改 DSH 或使用定制版本。其他安装方式、升级和故障排查见安装指南。

默认 PTC 模式的问题

默认 PTC 模式每次执行都从新环境开始,模型需要重新发送准备代码。PTC Plus 保留会话中的计算状态,让后续调用可以接着完成任务。

场景默认 PTC 模式使用 PTC Plus
接着上次计算每次从新环境开始,需重发准备代码直接复用已有变量、函数、导入和结果
修改一处错误修正后重新发送整段代码用 edit_run_code 只发修改内容,再执行修正后的完整代码
使用模块语法函数体内不能直接写静态 import、export在 cell 中直接写,插件自动适配
传递特殊值JSON 无法完整表达 undefined、BigInt、循环引用等在支持的值范围内保留特殊值及引用关系,供后续计算与恢复
查找可用工具从提供给模型的工具接口说明中查找可在代码中列出、搜索工具,并按需查看参数说明
调用漏填摘要缺少 run_code.description 时校验失败自动补充显示摘要,合法代码可继续执行
误发顶层工具调用PTC 模式下未声明的顶层调用被拒绝当前工具定义能唯一确认目标且参数合法时,自动转为 run_code
访问项目文件Node 相对路径依赖宿主进程目录按会话记录的项目目录解析文件路径、模块和默认子进程目录
定位代码错误返回原生错误与堆栈对应到 cell 源码位置;末尾缺少单个闭合符且修正可唯一验证时,给出编辑建议
查看计算状态执行结束后不保留可继续使用的会话变量REPL 页签展示保留的变量、定义来源和有界值预览
编写并复用 helper需自行保存代码,并在后续执行中重新加载用 /binding 编写草稿,在输入框上方审阅后保存;启用后跨会话使用,并向模型提供接口说明
手动试运行 helper没有全局绑定的专用代码工作台在工作台运行未保存源码,连续测试并查看结果,临时状态与 Agent 会话分开
重启后继续没有跨调用的计算状态可恢复从会话记录恢复可验证的状态,无法恢复的部分明确提示

全局绑定需在设置中开启;其余可选行为和恢复范围见下方设置与范围。

三个最直接的场景

状态跨调用

模型第一次执行:

import { readFile } from 'node:fs/promises'
const manifest = JSON.parse(await readFile('package.json', 'utf8'))
const deps = Object.keys(manifest.dependencies ?? {})
return deps.length

下一次直接接着用:

return deps.map(dep => dep + '@' + manifest.dependencies[dep])

deps 和 manifest 仍在当前会话里,无需重发准备代码。

修错不重发

模型可以只提交替换内容:

edit_run_code({ edits: [{ old_string: 'deps.length', new_string: 'deps' }] })

编辑会重新执行完整 cell。已经写文件或调用外部服务的代码,仍需确认可以安全重试。语法错误会指出位置;能够明确定位的末尾缺符号错误还会给出修正建议。

被拒的 run_code 与随后的 edit_run_code 修复调用

让 Agent 编写可复用 helper

在设置中开启“全局用户绑定”,然后输入:

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

Agent 可以在会话 REPL 中用内存样例逐步测试和修正,再交出草稿;编写时的测试不得修改外部文件或服务。草稿在输入框上方展开,你可以检查源码和模型提示词,选择“保存为停用”“保存并启用”或“丢弃草稿”。测试和提交本身不会保存全局绑定。

草稿面板可折叠或关闭,输入框星光按钮上的角标可重新打开。保存或丢弃成功后自动关闭,历史请求保留当时的源码和结果。

会话开始前也可以悬停或点击星光按钮,查看并启停全局绑定;这些选择对所有会话生效,但该入口只在当前会话使用 ptc 或兼容 code preset 时注册。菜单同时提供编写新绑定、修改已有绑定和完整管理入口;REPL 可复用绑定列表按后续 cell 源码中的静态引用显示每项复用次数和总复用次数,重定义或重声明不会清零。

已启用绑定的接口会提供给新会话中的模型,也会在现有会话的下一次允许请求中更新。每个绑定可以另写使用提示词,或关闭接口展示;仅改提示词不会重置 helper 的运行状态。在会话中给某个名字赋值或重声明只覆盖该名字,同一条目的其他名字继续可用,会话内的覆盖也不会写回保存的条目。详细操作见全局绑定使用指南。

设置

打开 设置 → 插件配置 → PTC Plus。总开关控制插件,其余设置按用途分组:

  • 调用容错:允许缺少摘要的 run_code,修复可以准确识别的顶层工具误调用。
  • REPL 语法:bindingUpdates 默认是 stateful,允许跨 cell 更新变量、函数、类和 import alias,也允许同一 cell 内同一逻辑 scope 的重复声明更新同一身份;protected 可选择名称保护。tools 与注入的错误类是请求保留的程序绑定,既不能重声明也不能写入:冲突在 preflight 报 PTC-N001,赋值在执行时以指明该名称的错误失败,不会静默丢弃。旧版五个细分开关仅在迁移旧配置时生效;设置页明确显示尚未迁移的状态,可直接选择任一种统一策略。模块语法默认可用。
  • 模块互操作:PTC 管理的 namespace 支持实时读取和局部覆盖,传给外部函数后仍保留这些语义。外部代码自行原生导入编译模块不承诺同一 namespace 或可写导出语义,详见运行时说明。
  • 状态与恢复:控制重启恢复和按需错误提示。
  • 工具扩展:开启全局绑定,或供高级用户使用的官方 Cordis 工具。
  • 界面显示:控制增强工具卡片、REPL 页签和绑定编写快捷入口。
  • 资源限制:调整执行时间、内存和输出上限。

全局绑定与 Cordis 工具默认关闭。设置通常即时生效;活动 worker 存在时不能更改其内存上限。字段、默认值和限制见配置参考。

PTC Plus 对 run_code、edit_run_code、插件自有子计算及用户绑定入口使用共同的有状态计算契约。用户主动调用 eval、Function、node:vm 或其他外部引擎时,动态源码保留对应的原生语法规则与结果;直接 eval 仍须访问调用处的逻辑作用域,间接 eval 和 Function 使用所属 realm 的逻辑根环境,不能因内部名称改写而读错状态。模块接口与原生互操作边界见 ADR 0025。

间接 eval 和四种 Function 构造器使用所属 realm 的 root,作为原生回调传递时也一样,例如 const value=41 后的 ["typeof value"].map(eval) 返回 ["number"]。函数源码观察保留原始 JavaScript 源码及其真实依赖,自包含函数可用 Function 重新编译;函数值本身、用户改写和另外创建的 realm 保持各自语义。

切换计算模式时,旧闭包仍保留原有执行环境和已保存的函数身份,包括异步继续执行中的直接 eval 与 Function.prototype.toString。各代源码取得稳定的回调接口,全局和原型属性保持原值;兼容模式通过原生 REPL 环境复用已有逻辑绑定,原有原生声明仍优先,其模块导入也通过 PTC 管理的 namespace 读取。

PTC Plus 设置卡片

在 REPL 页签查看会话绑定、搜索名称和检查定义,也可以管理全局绑定。全局绑定工作台中的代码控制台支持试运行未保存的源码,拥有独立的临时状态;执行的文件或网络操作仍会产生真实效果。

REPL 工作区:会话绑定检查与全局绑定管理

宽屏下,会话头部的绿色 PTC Plus 标识提供快捷绑定清单;窄屏可从 REPL 页签查看:

REPL 可复用绑定

范围

DSH 继续负责工具权限、审批、取消和沙箱策略。会话求值运行在插件自有的 helper 进程内;卡住或无响应的 helper 会被回收,DSH 宿主进程不执行 in-host worker 强杀。PTC Plus 不保证所有状态都能跨重启恢复;外部输入、无法验证的历史或上下文压缩都可能缩小恢复范围。恢复不会重做或撤销历史外部操作。

值预览有大小和类型限制,无法可靠读取的对象会显示“不可读取”。绑定的启用配置也不等于初始化一定成功,具体失败会在执行结果中说明。更多行为见运行时参考。

模型调用和 token 用量取决于任务与模型;已有配对观测及其限制见评测说明。

文档

全局绑定使用指南 · 安装与升级 · 运行时参考 · 开发与架构 · 验证与测试并发 · 全部文档

使用 MIT License。

Compatibility

DSH 0.1.5-rc.2: failedDSH 0.2.1-alpha.1: failedDSH 0.1.6-alpha.2: failed

Versions

Latest versionPublishedSize
0.2.1——
0.4.1——
0.4.2——
0.4.3——
0.5.2——
0.4.10——
0.3.2——
0.2.2——
0.2.3——
0.2.4——
0.4.8——
0.3.1——
0.5.0——
0.5.1——

Comments

Loading…

Similar plugins

dsh-cangjie-preset

by Alm-Allen

dsh 插件:把 DeepSeek Harness 的原生「PTC 模式」完整汉化——覆盖 preset-ptc,不新增预设条目。

Sessions & MessagesManifest valid

★ 1

JavaScript

Oct 24, 2026

dsh plugin --profile web add @alm-allen/dsh-cangjie-preset

by idkidknow

Per-session Node REPL terminal in the DSH web UI: a session-local floating terminal (ghostty-web) bridged over WebSocket to an in-process node:repl that has the live agent Cordis Context (agent.ctx) i

Manifest valid

★ 0

TypeScript

Aug 16, 2026

dsh plugin --profile web add dsh-node-repl

by AndPuQing

Extended Agent Client Protocol server bundle for DeepSeek Harness (dsh)

Tools & CapabilitiesManifest valid

★ 0

TypeScript

Oct 17, 2026

dsh plugin --profile web add dsh-acp-plus

by w2112515

Portable Agent Skill for developing and auditing DeepSeek Harness plugins, with an optional profile-installable DSH bundle adapter.

Infra & DevOpsManifest valid

★ 11

MIT

JavaScript

Aug 17, 2026

dsh plugin --profile web add dsh-plugin-development

by Calcium-Ion

A PTC runtime for the DeepSeek Harness that runs the model's programs in moejs, a JavaScript engine written in Go

Manifest valid

★ 8

↓ 1.3k/wk

MIT

TypeScript

Oct 26, 2026

dsh plugin --profile web add dsh-ptc-moejs

by klpzj

Host-only peer session relay tools for DeepSeek Harness

Development & InfrastructureManifest valid

★ 0

MIT

TypeScript

Aug 23, 2026

dsh plugin --profile web add dsh-peer-relay