DSH Usage Stats
by lanlandeli
包含 Token 趋势、活跃热力图、模型用量分析与数据导出的统计面板。
注册表 / 01
搜索 npm 包与社区开发的 DeepSeek Harness / DSH Plugins。
by lanlandeli
包含 Token 趋势、活跃热力图、模型用量分析与数据导出的统计面板。
by Nichts
从 DSH Web 设置页管理全局 MCP Server,并在运行时连接或断开。
by chenyuheee
基于 Playwright 的浏览器自动化,支持稳定无障碍引用、多标签页、内容提取与截图。
by ohtokaah
跨会话回忆与主动记忆,并通过渐进披露控制上下文注入规模。
by lee-scott
阻止 DSH 文件工具读取常见凭据存储、SSH 密钥与机密文件。
by NexusAgentX
面向网页、GitHub、PDF、YouTube 与本地视频的多提供方搜索和内容提取。
by lxj808624
提供机器可读输出的结构化 Git 工具,并拦截高风险破坏性操作。
by DeepSeek
叠加在 DSH Base 之上的官方浏览器界面 bundle,用于默认 Web profile。
by DeepSeek
存储中心的 JSON 后端:配置根目录下每个单元使用一个人类可读的 <unit>.json 文件,注册为后端 json。设计见领域 KV 存储 Agent Note。
by DeepSeek
DeepSeek Harness 存储中心的领域数据形式:在所有已配置的后端注册后,公开可注入的 ctx.storageDomain 服务及对应的 ctx.storage.domain 投影。一个领域通过 defineDomain(zod 记录 schema、从 z.infer 派生的类型)声明一次,通过 DomainFacility.open 打开,并由具有最终决定权的内存状态提供服务:读取同步执行;写入在每个领域各自的一条链上串行化,先在已路由后端达到持久状态,再更新内存并发出 domain/changed。打…
by DeepSeek
非会话数据的存储中心(ctx.storage):具名后端注册表加已挂载的数据形式设施。中心自身不执行 IO:后端拥有介质,数据形式拥有语义。存储家族概述列出了这些包;领域 KV 存储 Agent Note记录了设计理由。
by DeepSeek
注册 sessionStats projection 单元的函数插件:从步边界、流式 chunk、工具配对与已组装的 assistant 消息折叠出全日志会话数字——轮/步计数以及 LLM、工具、首 token、解码墙钟时间——经 session-projection 缝对外提供(registry 快照、变更流,以及每一个 projection 载体:history 尾页、session/projection 推送帧、会话列表行)。客户端由此渲染分页与压缩都无法改变的全会话数字;参考消费者是 Web 聊天统计条,其…
by DeepSeek
Web Session 日志下载控制,使用 dsh-host-apiproxy 拥有的 Host 流式 ZIP 端点。Host 半包注册 /export;浏览器半包在 Session Header 中提供 111×32 的 Session log 操作,以及一个供该按钮与斜杠命令共用的下载控制器和弹窗。ZIP 生成、原始 JSONL/zstd 读取、子 Session、附件、背压和 HTTP 错误语义仍由 ApiProxy 下载实现负责。
by DeepSeek
本包提供由 Host 拥有、针对单条已完成 assistant 消息的可编辑反馈。它注册 ctx.messageFeedback,在 storage-domain 中为每个 Session 持久化一条绑定生命周期的伴随记录(sidecar),并发布 Host messageFeedback.list、messageFeedback.put 与 messageFeedback.delete 一元 Remote 契约。它与不可变的 Session 级 feedback/record 事件相互独立,不执行遥测交接。消息反…
by DeepSeek
Web HTTP 与 upgrade route 注册插件(默认导出 WebServer,配置为 {host, port}):一个在激活时开始监听的 node:http 服务器,提供 ctx.webServer。register(route) 添加具名的 exact/prefix HTTP route;registerUpgrade(route) 添加精确 pathname 的 upgrade route;同一张表内的重复路径会抛错,因为 route 模式是组合层约定,冲突即配置错误;两者返回的 disposer…
by DeepSeek
当前 Cordis Loader 树的只读 Host 投影。PluginInventoryGateway 注册 pluginInventory 服务,并发布一个由 Typert 生成的直接 Remote:pluginInventory/list。每次调用都直接读取 ctx.loader.entries(),跳过结构性的 group 行,再按 Loader 顺序返回其余条目,并且只包含 Loader 条目 id、模块标识、有效启用状态与当前根 Fiber 阶段。
by DeepSeek
目录选择 seam 的自适应选择器:一个只有 node 半侧的插件,在启动时一次性判定宿主处境,并把匹配的双面后端——-native 或 -browse——作为真实的 Loader 条目挂进内存根树(绝不持久化到配置文件;根树的 write() 是 no-op)。由于后端以普通条目的形式到达,其 browser half 被 client 模块表发现的方式与配置行完全相同,因此对判定出的选择,seam 的“一行同时换两面”不变式依然成立。卸载该选择器会再次移除该条目,连同两面一起卸载。
by DeepSeek
由模型挂载的动态包在 host 侧的那一半:定义注册表、host 半所用的 node:vm 沙箱与 fiber 生命周期、invoke handler 表,以及由某个浏览器页面执行的 run 往返。以 ctx.dynamicCordisRunner 提供。面向模型的工具在 @deepseek-ai/dsh-tool-cordis 中;浏览器半由 @deepseek-ai/dsh-cordis-client-runner 装载。
by DeepSeek
共享 Workspace 浏览器与选择器插件。WorkspaceBrowser 填充侧边栏的 sidebar.workspaces slot,WorkspacePicker 则填充页面局部 Session Intent 主视觉区的 conversation.hero.workspace slot;两个界面使用同一套 Workspace 菜单和添加流程。
by DeepSeek
这个浏览器插件把持久化的顶层工作流运行重建为独立 Chat 节点。它消费由 dsh-tool-workflow 拥有的四类 tool-workflow/* Session 事件,注册一个 ConversationNodeDefinition,并通过 keyed conversation.chat.node slot 渲染,不改变现有工作流工具卡。
by DeepSeek
Web 提问功能插件:其浏览器侧把 question 条目注册到会话拥有的 conversation.composer 键控 slot 中。其主机侧刻意为空——在那里挂载 dsh-tool-ask-user 会把工具放进注册表的全局层,而全局层会并入每一个 agent(智能体),无论它由哪个 preset 组装,于是一个「两工具」的 benchmark preset 实际会呈现三个。渲染提问是宿主的 UI 能力,拥有该工具则是 agent 的能力,因此 tool-ask-user 行属于需要它的各个 preset(…
by DeepSeek
Trajectory 渲染按轮次组织的事件记录表,其中可选择用户、助手、工具和嵌套子工具记录。较粗的分割线标示轮次边界,紧凑的行内标记标识步骤,主记录表仅保留索引、事件和内容;选择记录则会打开局部检查器,查看 token 用量、耗时、输入、输出和计时。可滚动的概述区域默认保持滚动条滑块透明,直到鼠标悬停该区域或其中包含键盘焦点时才显示,同时不改变滚动条预留的几何空间。独立运行的压缩(compaction)请求会按时间顺序显示在自己的 Between turns 区段中,而带编号的压缩仍位于其所属轮次内。长记录表打开…
by DeepSeek
Client 工具展示插件。ui-conversation 通过 conversation.chat.node 的匹配 key 分发每个已排序的 tool-call Conversation Node;本包渲染其中的 root 及其 Code Dispatch 子调用,并把每个原子调用通过 keyed slot tool.call.toolview 分发。没有注册的工具名称使用通用卡片。
by DeepSeek
主题插件:基于 --dsw-* token 基础样式表(静态尺度 + 别名语义层)的 ThemeRuntime。该服务拥有实时主题偏好(light/dark/system),将 system 通过 prefers-color-scheme 解析为实际主题,并发布不可变的 ThemeSnapshot,通过 theme/change 事件通知变化;它绝不接触 DOM:ui-layout 的呈现器会应用解析后的快照(html { color-scheme }、body[data-ds-dark-theme],以及主题的别…
by DeepSeek
Web subagent 功能 owner:向 conversation.session.header.actions 贡献可懒加载展开的目录树,向会话编辑器链贡献按原因区分的只读替代呈现,并保留注册到 ctx.inputTriggers 的既有 @ 引用 source。
by DeepSeek
skill(技能)调用 source 的浏览器端:把 / 触发的 skill source 注册进 ctx.inputTriggers。普通会话的候选来自 skill.list RPC,以每次调用的 ClientSessionContext 投影中的 {sessionId} 寻址,host 从会话 header 解析 cwd。宿主提供每一个用户可调用的 skill;modelInvocable: false 的条目(即 disable-model-invocation skill,此路径是其唯一入口)会以当前语言把…
by DeepSeek
侧边栏外壳插件:负责字标、New Session 操作、布局持有的折叠控件、可感知滚动的区域 seat,以及固定在底部的 Settings seat。ui-workspace 持有渲染到 sidebar.workspaces 的 Workspace 与 Session 浏览器;本包既不派生其中的行,也不持有其视图偏好。折叠到布局拥有的 56px 轨道仍属于本地呈现行为。约定:slot 系统标准。
by DeepSeek
插件设置分区及其插件配置标签页。该分区拥有标题与紧凑的标签栏;功能插件通过 settings.plugins.tab 贡献页面。本包自己的标签页为每个配置由用户拥有的 Host 插件展示一张可展开卡片。卡片展示插件名称及其管辖范围;就地展开后是绑定到该插件 settings 命名空间的手写控件,每个字段标注用户是否覆盖过它,并提供重置回部署组装值的入口。
by DeepSeek
Web 设置中的只读插件列表标签页。浏览器插件注册一个 id 为 all 的本地化 settings.plugins.tab 贡献;“插件”分区拥有导航入口与标签栏。插件激活期间不会读取 Remote;首次选择该标签页时才挂载组件,并通过 api-remotes 懒调用 ctx.remote.pluginInventory.list()。
by DeepSeek
模型设置与产品引导插件。同一个 client Cordis 插件会注册 Models 页面和两个有序的首次使用弹窗:版本化内测声明,以及按条件显示的 DeepSeek 官方凭据步骤。两个步骤共用同一套弹窗组件,并继续由 settings.onboarding 排序。Models 平面把三个协议领域汇聚为一个共享快照:llm.providers(可配置提供方目录,含每条路由的存活/休眠状态)、settings.describe(序列化 schema、分层脱敏值、secret slot)与 credentials.de…
by DeepSeek
设置外壳、无特定功能归属文案与持久化产品引导 namespace。它以触发控件和模态设置面板占用 sidebar.settings,把 settings.section 账本投影成导航、把 settings.onboarding 账本投影成每次只挂载一个步骤的引导流程,并在设置页面上注册所有不属于单一功能的内容:触发器、标题栏与关闭控件内容、本地配置文件操作,「通用」分区及其 settings.general.item slot,以及 settings 字典。它渲染进的那些 slot 类型归 ui-settings…
by DeepSeek
设置领域的底座,承担两项职责,本身不含任何呈现内容。它提供 ctx.settingsScope——每个偏好设置行绑定自己那份持久化命名空间分区所用的宿主传输层;并声明由注册方填充的设置 slot 类型:settings.trigger/settings.header/settings.close(界面框架内容)、settings.action(内容标题栏中的有序操作)、settings.section(每项功能一页)、settings.plugins.tab(“插件”分区内由各功能持有的页面)和 settings.…
by DeepSeek
Plan mode 状态徽章,纯浏览器 surface 插件。浏览器侧占用会话声明的 conversation.input.plan 单实例 seat(位于 access 模式控件右侧);node 侧是空 apply(roster 行)。plan 行为本身——/plan 命令、边界或空闲即时提交的 plan/mode 状态、plan 投影单元与 policy 段——归 @deepseek-ai/dsh-plan-mode 所有,由 host roster 独立组合。
by DeepSeek
面向两种不同生命周期的浏览器权限界面。「通用」设置行读取显式暴露的 permission Settings 描述符,从 host 的动态 defaultPreset enum 中推导选项,并携带描述符的 revision 写入一条 settings.mutate 路径操作。它的 observable 经 slot 系统的 hooks 格传递,因此 React 钩子由渲染器绑定;推送的失效通知会重新获取描述符。这个值仅在后续会话创建时生效;改变它不会切换当前会话。选择 Full access 时必须先显式确认风险,该…
by DeepSeek
模型选择插件(浏览器侧):两个入口共用一份会话级目录,由 ModelDirectoryResolver(ctx.modelDirectories)持有。对于普通会话,/model popupSelect 贡献项(经 ctx.commandUi 注册)与 composer 的具名 conversation.input.model slot 都通过同一个 ModelDirectory 实例,经 session.models 加载会话的建议目录,并经 session.selectModel 提交。紧凑型 composer…
by DeepSeek
单条消息反馈插件的浏览器侧:一对 Like/Dislike 按钮加一个可选备注,作为 conversation.chat.assistant-actions 条带的 feedback 条目(order 10)贡献。该条带由 ui-conversation 声明,渲染在已定稿助手消息的 IconActions 行内、复制与分支之间,因此控件沿用该行的样式与 hover 行为。只有已定稿的消息能到达这个 slot——被中断冻结的部分输出不带 messageId,因此也没有反馈控件。该操作栏每个 Turn 渲染一次,位于…
by DeepSeek
外壳插件:三栏 AppFrame(拖动手柄与让步链)加 ctx.layout 面板几何服务;它注册到运行时拥有的 root slot,并声明 sidebar、conversation、details 和 conversation.empty。侧边栏的缩放边界是不可见命中条带,详情栏边界则保留其浮动胶囊;让步期间只有详情栏会收缩并随后自动关闭。关闭的侧边栏仍保留 56px 控制栏,详情栏则关闭到零宽度。该包还提供主题呈现器:它消费解析后的 ctx.theme 快照,并将其投影到 document(用 html { c…
by DeepSeek
Web 后台任务特性的归属方:向 conversation.session.header.actions 贡献一个条目,列出当前会话可见的 ctx.jobs 记录。数据完全来自 dsh-client-runtime 从 session/jobs 帧折叠出的 jobsBySession 列表镜像,因此本包不发任何 RPC,除弹层开合外不持有任何状态。
by DeepSeek
输入触发流水线插件:光标处的 / 与 @ 检测(词边界 + guard tier 规则)、分组候选菜单,以及把 pick 路由到已注册 source。ctx.inputTriggers 拥有 source roster,并按会话 scope(sessionOf)各解析一个 InputTriggerController;对话接线层在 controller 上驱动 track/arbitrate/onSpace/adjudicate。同一个 controller 还暴露 toggleSource,供 chrome la…
by DeepSeek
Goal 界面插件(浏览器端部分):GoalBar 条带是 conversation.input.dock composer 上下文堆栈中的第二张独立卡片(order 10,位于 Todo 之后、Queue 之前)。活值经 useProjection('goal') 到达——host 计算的全量值由历史尾页播种、由 session/projection 帧更新——因此本插件不持有领域 store、不设刷新链、不挂事件监听。slot 注入面只携带四个变更动词(edit / pause / resume / clear…
by DeepSeek
产出文件与可点击文件引用功能的属主。Node 侧向系统提示词 registry 注册最终回复指引;浏览器侧把已完成轮次末尾的产出文件行注册到 chat 视图的 conversation.chat.turnTail slot,并将收尾正文中匹配的行内代码引用转换为链接。正式提供的组合中只有 Web patch 加载本包;从 cordis.yml 中删去这一项会同时移除提示词、文件行与正文链接。
by DeepSeek
会话领域:骨架(标题栏/标签页/编辑器/空状态)、聊天视图(分组步骤摘要流、流式尾部隔离与轮次状态)、编辑器 dock(与输入区一同 sticky 的会话统计行)、输入区 dock(队列行加 todo 计划条)、详情壳层,以及按 scope 寻址的 ConversationController。工具展示属于 ui-tool。
by DeepSeek
客户端命令 API(ctx.commandUi):以会话为 key 的命令目录缓存、带 matchSpace/matchEnter 决策钩子的 / 命令 source、三类派发(execute/popupSelect/leadingInput),以及面向业务包的 popupSelect 注册。Web 命令 Agent Note 记录了这项决策。
by DeepSeek
客户端 cordis 启动与不依赖 React 的对象服务:SlotRegistry 包装 SlotCore 并提供 renderer 数据源;SessionRuntime 拥有 Session 对象、列表与 scope 状态,以及供已注册 conversation view target 共用的事件窗口与历史分页。WorkspaceRuntime 依赖 SessionRuntime,拥有 Workspace 对象、列表/操作、默认目标派生,以及 New Session 空会话复用入口(connectWorkspa…
by DeepSeek
客户端模块系统:Node 内部 ESM loader 的浏览器端对等实现,以惰性 CJS 表实现。web 外壳挂载 vendored cordis Loader 来治理配置项(fiber 生命周期、inject 等待、update/refresh),并通过其 internal 约定注入该包的 ClientModuleLoader;vendored 一侧唯一的消费点是 EntryTree.import,因此替换 internal 恰好只会替换「插件代码如何到达」,不会改变其他内容。
by DeepSeek
locale 插件:LocaleRuntime——zh/en 偏好以 locale.preference 存储在 $DSH_HOME/settings.yaml 中;若没有显式 Host 值,全新浏览器会暂时使用 navigator 请求的语言(按主子标签匹配;若其请求的语言本应用都不提供,则使用 zh)。Host 读取在插件激活后执行,因此 settings 服务不可用不会阻塞页面;读取结果会实时替换浏览器暂定值。settings API 仅限回环请求,因此远程浏览器的选择仅保留在进程内。locale/chang…
by DeepSeek
为通过脚本加载的客户端插件提供热重载。web 组合包无条件挂载该行;没有重建 watcher(pnpm run dev:web)改写客户端 bundle 时,轮询观察不到变化,链路保持空闲。
by DeepSeek
协议消费层:客户端插件的 apply 会挂载 ctx.connection(共享 API 客户端 + 当前页面的 loopback 状态 + 可观察且按 generation 生效的 hostDescription + 单消费方流循环启动器);导出表层携带协议约定类型、AbstractApiClient 抽象,以及循环的 sink/配置类型。每次就绪握手成功后,都会在 onConnected 之前发布完整的 host.describe 值;generation 失效或显式 stop 会清空它,因此原生能力消费者不会…
by DeepSeek
所有客户端共用的 API 网关由三部分组成:TypeScript API 约定(src/api/,不依赖 Node,可从浏览器导入)、fetch 载体对(src/fetch/:宿主侧的 toFetchHandler,以及客户端侧的 AbstractApiClient 与平台子类)和宿主侧实现(src/api-proxy.ts:createApiProxy 加上默认导出的 ApiProxyService 网关插件,其配置为 {nativeOpen?, sessionExportCompressionLevel?, c…
by DeepSeek
DeepSeek Harness 的 Workspace 实体注册表(ctx.workspaceRegistry):通过领域数据形式存储持久 workspace 记录、稳定 workspace 顺序和按新到旧排列的候选会话索引。消费方看到 Workspace 接口;实体实现保持包私有。
by DeepSeek
持久投影缓存(ctx.sessionProjectionCache):把每个已注册投影单元的状态持久化为检查点,基于域数据形态(domain data form)每会话一条记录(session_projcache 域——出厂 JSON 后端将其落在配置的存储根目录下、workspace.json 旁边)。设计权威:session-projection RFC(persisted projection cache 一节)。
by DeepSeek
为本应用选定的 Host Remote 能力提供双侧 BFF。Host 入口负责 Agent/Session 身份策略;Client 入口以运行时值形式导入生成的 /remote 产物,通过 ctx.remote.$mount() 挂载每项贡献,并重新导出对应的声明合并。Client 业务包依赖该外观,而不依赖 Gateway 实现或单独的 Remote 运行时入口。
by DeepSeek
按 preset 组装 agent(智能体)。preset 是一个目录,其中放置一份 agent.cordis.yml;roster 在整个进程内只把它挂载一次(常驻 scope),命名它的每个会话通过把自己 agent 的 scope key 认父到该挂载(dsh-scope 的父链)来加入。挂载的工具、提示词段落与投影单元只存在一份,覆盖所有已加入的 agent——其插件本就按 Session/Agent 分键存状态,会话在共享实例内互不串扰——而完全没有 agent 的宿主读取方(冷读记录)也能按 prese…
by DeepSeek
模型侧 ask_user_question 工具,基于 ctx.userQuestions 实现。当模型需要确认、选择结果或缺失的信息才能继续时,它可以借此向用户提出简明问题。
by DeepSeek
把 agent(智能体)人设做成一个可组装的行:它既可以遮蔽部署级人设,也可以拥有完整系统提示词。
by DeepSeek
无需浏览器或 HTTP 层即可运行 DSH 单次任务的官方 bundle。
by DeepSeek
这是 @deepseek-ai/dsh-code-runtime seam 的 worker 线程实现:WorkerThreadCodeRuntime 会在每次运行中使用一个全新的 Node worker_threads.Worker,输入 TypeScript,由宿主侧剥离类型,通过消息端口桥接绑定,输出 { value, logs, error?
by DeepSeek
动态双半插件包的浏览器半。host 侧 runner 把每个定义的代码留在进程内存里,并经一条 cordis/request-run 事件向打开的页面发问「要不要运行它」;本包回答这个请求、把定义变成活的浏览器插件,并把 dynamicCordisRunner/retract 事件变回干净的页面。
by DeepSeek
Cordis 动态插件的浏览器半:一个覆盖整个框架的面板,操作 host 持有的全部定义;以及一张只读的 cordis_define 卡片,记录某个会话定义了什么。
by DeepSeek
agent preset 的各个表层:General 设置中的一行,用于选择新建会话据以组装的 preset;新建会话界面上的一枚 chip,用于选择下一个会话的 preset;会话标题旁的一个只读标签;以及一个设置页分区,用于管理名单——复制、删除、默认值,以及通往 preset 自身文件的入口。
by DeepSeek
每个 DSH profile 都会首先加载的官方核心配置 bundle。
by DeepSeek
本包为 WorkflowEngine 提供实现,每次运行使用一个 Node worker thread。worker 执行编排脚本;子 agent(智能体)留在宿主上,脚本通过带类型的宿主/worker 协议经由 ctx.subagents 访问它们。
by DeepSeek
由 DeepSeek 支持的 WebSearchProvider,用于 harness web 能力 seam(ctx.web)。它调用 DeepSeek 的 Anthropic 兼容 Messages API(POST {baseURL}/messages),启用原生 web_search_20250305 服务器工具,并把 DeepSeek 返回的结构化 web_search_tool_result 块映射为 seam 规范化的 WebSearchResult。
by DeepSeek
WebRuntime(ctx.web)定义 harness 具备哪些 web 访问能力(搜索 web、抓取 URL),并通过多个提供方实现,不把模型约定绑定到某个厂商的 API 形状。
by DeepSeek
用户交互 Service Definition。它定义 ctx.userQuestions,供面向模型的工具或权限插件在需要暂停工作并询问人类决定时使用。
by DeepSeek
与通道无关的一次性审批 seam。ctx.approval.request(req) 返回 allowed-once、rejected、cancelled 或 unavailable;应答者缺失或失败时会以拒绝方式关闭,授权也只适用于所请求的操作。确切事件签名见 approval.md 的生成区块。
by DeepSeek
生成的 Typert 产物所用的运行时注册表。每个注册项包含某个包在一个 face 上的业务反射信息,以及可选的运行时 Zod schema;ctx.typert 会以原子方式同时注册两者,并在发起调用的 Cordis fiber 释放时一并移除它们。TypeScript 分析和代码生成由 dsh-typert-generator 负责。
by DeepSeek
生成的 Typert 产物所用的 Loader 集成,仅支持 Node。该插件需要 ctx.loader 和 ctx.typert;它本身不提供注册表。
by DeepSeek
工具注册表与执行流水线。工具插件注册各自的 schema 和执行器;agent loop(智能体循环)依次让每次调用经过 tools/pre-execute(可扩展的允许/拒绝门禁)→ 已注册的单调守卫 → tools/execute(供超时/重试/指标插件使用的环绕分发包装层)→ tools/post-execute(检查/替换结果、附加上下文)→ 由工具定义持有的 finalizeContent 边界 → 仅观测的 tools/result 通知。注册表还决定以何种方式向模型呈现工具:mode 配置可以选择原生…
by DeepSeek
面向模型的 workflow 工具:运行一段扇出 subagent 的 JavaScript 编排脚本,并返回脚本的最终值。本包负责基于 ctx.workflowEngine 定义面向模型的 schema 和运行生命周期;脚本解析、执行、上限与取消位于 seam 之后,消费方仍负责面向父级的 schema 和结果包络。
by DeepSeek
面向模型的 web 工具套件 web_search 与 web_fetch,构建于 web 能力 seam(ctx.web)之上。它只负责面向模型的事项:工具名称、JSON Schema、snake_case 参数名称、提示词区段、结果数量上限、结果格式、HTML→markdown 呈现,以及 UI 呈现投影——presentCall、presentResult(以 kind: 'search' | 'fetch' 区分的 card: 'web' 结果卡片),以及承载有损渲染文本无法携带的结构化搜索来源或抓取摘要的…
by DeepSeek
面向模型的 todo_write 工具:agent(智能体)的完整任务列表,每次调用都会整体替换。
by DeepSeek
可选的子级作用域 report 工具是 ctx.subagents.reportFrom() 之上的轻量适配器。它为每个可继续的进程内子级提供一条返回通道,指向启动该子级的 Agent(智能体),并安装指示子级使用该通道的提示词 section。本包注册的是可继续子级设置贡献,而不是全局工具,因此该工具及其指引只存在于这些子级内部。根 Agent、一次性 subagent、远程 subagent 提供方、同级作用域以及不关联 Agent 的工具执行都不会提供或执行它。安装本包只授予这项子级作用域能力;父到子方向仍由…
by DeepSeek
可选的全局具名 send_message、interrupt_agent 与 list_agents 工具是 ctx.subagents 之上的轻量适配器。绑定提供方的 @deepseek-ai/dsh-tool-subagent 实例会为每种传输注册不同的委派工具;这个单独加载的包只注册一次共享控制工具,因此多个委派工具绝不会重复注册全局控制工具。根插件注册 send_message 与 interrupt_agent,且只要求 subagents;可单独加载的 ./list-agents 插件注册 list_a…
by DeepSeek
基于一个已配置 ctx.subagents 提供方、面向模型的委派工具。更换提供方只会改变传输,不会改变执行约定。
by DeepSeek
基于 ctx.fs、面向模型的独立 str_replace_editor。它可与持久 Bash、一次性 Bash、沙箱 Bash 或其他终端接口组合。
by DeepSeek
面向模型的 skill(技能)目录和 skill 工具。
by DeepSeek
面向模型的 ralph 工具运行固定的前台工作流,把一个不可变目标依次交给多个全新子 agent(智能体)。它展示如何把专用编排策略实现为基于 ctx.workflowEngine 和 ctx.subagents 的普通插件:不会向 agent-loop 添加 Ralph 模式或全新 agent loop(智能体循环),同会话的目标领域也保持独立。策略和暂缓事项由 Ralph Agent Note(agent 决策记录)负责。
by DeepSeek
注册在 ctx.shell 执行器 seam 之上的面向模型的 pwsh 工具。面向由 PowerShell 执行器(如 @deepseek-ai/dsh-pwsh-local)支撑 ctx.shell 的 Windows 组合;工具约定是 PowerShell 方言:原生 C:\...
by DeepSeek
ctx.jobs 的面向模型控制器:三个与 kind 无关的工具、完成通知和一个后台工作提示词区段。加载该插件会附加 ctx.jobs.start() 所要求的控制器。
by DeepSeek
ctx.goals 的面向模型控制 API:get_goal、create_goal 和 update_goal。goal 工具 Agent Note 负责权限拆分与 Codex 风格用户体验。
by DeepSeek
面向模型的文件系统发现工具(glob、grep)由 打包的 ripgrep 二进制(@vscode/ripgrep)支持,而不是由 ctx.fs 提供方方法或系统 rg 安装支持。注册是无条件的:二进制随 NPM 依赖一起交付,因此没有加载期可用性探针。每次调用都通过 ctx.subprocess seam 以固定 argv 向量 spawn 该二进制(前缀 --no-config,使宿主的 RIPGREP_CONFIG_PATH 无法向不受约束的 spawn 注入 --pre 预处理器;模型控制的值是普通 arg…
by DeepSeek
面向模型的文件系统工具(read、read_image、write、edit)及其执行器。这是文件系统栈的消费方层:拥有工具名称、JSON Schema、参数校验、提示词段、读取窗口逻辑和结果格式化。它直接通过 ctx.fs 提供方约定(@deepseek-ai/dsh-fs)读取/写入/编辑。新鲜度/观察策略由独立插件(@deepseek-ai/dsh-fs-observation-policy)通过 fs/* 事件门禁贡献;工具不与其方法耦合。使用施加沙箱限制的提供方时,逐会话执行需要共享沙箱策略服务,工具还会…
by DeepSeek
工具调用超时强制执行器:单个 tools/execute 环绕分发监听器,会在 exec.signal 上设置单次调用的协作式截止时间;适用于声明了 timeoutMs 且声明位于其 ToolDefinition 上的工具。该截止时间先到时,它返回结构化 TOOL_TIMEOUT 结果。预算从工具自身的声明中读取(ToolDefinition.timeoutMs,由拥有该工具的插件设置),因此此插件是零配置的。它是 tools/execute 包装层的参考实现,也是面向模型工具调用预算的强制执行归属地(超时库 Ag…
by DeepSeek
模型侧 bash 工具,注册在 ctx.shell 执行器 seam 上。前台执行始终位于该 seam 之后;后台进程句柄会注册到通用 ctx.jobs 运行时,并通过 job_output、job_list 和 job_kill 控制;这些工具由 @deepseek-ai/dsh-tool-jobs 提供。
by DeepSeek
通过单例 ctx.tokenMeter 服务进行具备回放感知能力的 token 测量。它从持久日志为每个会话推进一个隔离 fold,因此压缩(compaction)与其他压力敏感插件可以共享计量,无需依赖 CompactionEngine。
by DeepSeek
系统提示词组装注册表。插件可以贡献有序段、工具 schema 和具名变量。循环在每个步骤组装一次,并将结果渲染为完整的模型提示词。此插件拥有静态 harness 身份和全局部署 persona;agent(智能体)作用域的 persona 会遮蔽全局默认值。
by DeepSeek
@deepseek-ai/dsh-subprocess seam 的本地 Service Provider。LocalSubprocessRuntime 解析本地可执行文件,以显式 stdio spawn 普通 detached 进程树,并通过 node-pty 加平台进程检查实现终端进程。该实现没有任何配置:每项处置方式、限制、终端尺寸、宽限期与目录都来自调用方能力 seam(dsh-bash-local、dsh-lsp-stdio 和 dsh-terminal-bash)。
by DeepSeek
spawn 提供方会在当前进程中创建一个全新的子 Agent。子 agent(智能体)有自己的会话,看不到父 agent 的对话历史,并复用宿主的 agent 工厂及 LLM(大语言模型)/工具服务。
by DeepSeek
fork 提供方会创建一个进程内子 agent(智能体),并以父 agent 已完成的对话轮次作为初始内容。它与 spawn 共用全部运行机制;唯一的行为差异是会话初始内容。
by DeepSeek
subagent seam 允许一个 agent(智能体)通过具名提供方把工作委派给子 agent。调用方统一使用 ctx.subagents 服务 API;提供方决定子 agent 在当前进程、其他进程,还是通过未来的传输方式运行。
by DeepSeek
工具结果 spill 策略:一个 tools/post-execute 转换器,用于防止过大的纯文本工具结果进入模型上下文。当最终结果超过 maxInlineBytes 时,它会通过 ctx.spillStore 保存完整文本,并将面向模型的结果替换为有界的首尾预览、后端定位信息与取回指引。
by DeepSeek
@deepseek-ai/dsh-spill 存储 seam 的本地文件系统实现。它注册为 ctx.spillStore,将工具产生的过大文本持久化到私有的会话级文件;定位信息是文件路径,取回指引会告诉模型对该路径使用 read 或 grep。
by DeepSeek
ctx.skills 注册表的本地文件系统提供方。
by DeepSeek
可选的内置 skill(技能)提供方,向 ctx.skills 贡献 dsh-badge。该 skill 提供官方「powered by dsh」Markdown 片段和随包分发的 PNG,供无法可靠导入远程图片的系统使用。
by DeepSeek
纯 agent skill(智能体技能)提供方注册表。
by DeepSeek
工具无关的 shell 环境插件:拥有 ctx.shellEnv 注册表,管理受信任的、每次执行收集的 DSH_* 变量,供模型可见的 shell 工具(dsh-tool-bash、dsh-tool-pwsh)收集进每次 shell 调用的环境。内置 shell 事实(DSH_HOME、DSH_SHELL=1、DSH_SESSION_ID)归注册表自身所有;其他插件可以注册额外的可枚举事实,注册随插件纤维(fiber)释放,重复所有权或未声明的运行时键会响亮失败。
by DeepSeek
基于文件的设置提供方。一个 YAML 或 JSON 文档承载全部 namespace 分节;外部编辑经 ctx.settings 热发布,update() 在写锁下先重读文档再原子写回,保留用户的 YAML 注释、当前未加载插件所拥有的分节,以及任何本进程尚未观察到的磁盘变更。
by DeepSeek
可选的 ctx.sessionTitle 提供方,通过 ctx.llm 总结第一条符合条件的用户消息。它注册 first-prompt 节奏,只在全新非 fork 会话首次创建回退时自动运行,并将结果归因于该消息的确切 seq。自动失败会保留回退,之后只能通过 ctx.sessionTitle.refresh() 重试。
by DeepSeek
由日志支持的会话标题,提供即时确定性回退与一个可选异步提供方。每次已接受的修订都是仅写入日志的 session/title 事件;foldSessionTitle() 与 ctx.sessionTitle.get() 会选择最新事件,并返回其事件 seq 和时间戳。
by DeepSeek
遥测(telemetry)seam 的 OpenTelemetry 后端,也是部署方唯一要加载的条目。其 mode 决定 seam 是实时跟随会话事件、仅在记录反馈时回放权威日志,还是将遥测留在本地。上传模式会原样组合 OTel JS SDK(LoggerProvider → BatchLogRecordProcessor → OTLP/HTTP 日志导出器),把每条已交接记录映射到 logger.emit(),并使用两个插桩作用域(instrumentation scope):ledger 记录挂在 @deeps…
by DeepSeek
具体 ctx.sessionQuery 提供方。SqliteSessionQueryEngine 从 Service Definition 包继承精确读取、跟踪和提供方无关的过滤,并使用 SQLite FTS5 实现其两个全文方法。搜索使用实时优先的逻辑会话语料库,并按每个会话中匹配度最高的事件对跨会话结果分组。
by DeepSeek
会话投影 Service Definition 与驱动注册表。它拥有 ctx.sessionProjections:该注册表在已提交的会话事件上驱动每个已注册的投影单元,并向载体提供完整的最终值,目前包括 api-proxy 历史尾页和 session/projection 推送帧。领域注册的只是纯数学;驱动权归框架。session-projection RFC 记录了设计理由。
by DeepSeek
JSONL 持久会话存储后端:SessionPersistence 的一个具体实现(dsh-session-persistence seam)。每个会话有一个仅追加的逻辑 JSONL 日志,默认存储为 .jsonl.zstd;禁用压缩时使用原始 .jsonl。
by DeepSeek
已持久化的 agent(智能体)的语义持久性策略。它会在模型适配器收到请求前、顶层工具正文可产生外部副作用前,以及每个 agent/pre-step 边界为事件溯源会话创建检查点,使前一响应与有序工具结果在下一个请求前已持久化。
by DeepSeek
事件溯源的会话日志和内存存储。Session 是 agent(智能体)全部交互历史的仅追加真源,LLM(大语言模型)消息历史由它*派生*。原始日志之上维护一个 surface 层(产生消息事件的有序投影),以便高效派生和压缩(compaction)。
by DeepSeek
沙箱策略解析的唯一归属位置:部署默认 SandboxMode 与回退根目录,加上每个会话的持久模式覆盖和不可变工作区根目录。每项负责强制执行的能力在每次调用时都会收到一项解析完成的模式与根目录策略;模型在每次请求前会收到当前策略,而不会另收一份能力清单。
by DeepSeek
dsh-sandbox seam 的本地实现。它选择并缓存一个平台 runner:Linux 优先选择可工作的 bwrap,否则选择 Landlock;macOS 使用 Seatbelt;Windows 使用 ACL 受限令牌 runner。多个候选项会按顺序探测,只有一个候选项时则直接选择。
by DeepSeek
这是一个仅提供建议的循环中断器,而非面向模型的工具:它不会出现在工具列表中,不会否决或改写调用,只增加一种行为。它监视每个 agent(智能体)的工具调用流,统计以完全相同的规范化参数连续调用同一工具的次数;达到所配置的连续次数时,它会注入逐级增强的提示,要求模型停止重复、重新阅读上一次结果,并改用其他方案或结束任务。究竟是换一种方式重试、收集更多证据还是完成任务,仍完全由模型决定:合理的重复调用既不会延迟,也不会受阻。决策记录见 repeat-tool-reminder Agent Note。
by DeepSeek
沙盒消费型的 ctx.shell 执行器 seam 的 PowerShell 实现:每条命令以 pwsh -NoLogo -NoProfile -NonInteractive -Command <command> 运行,经 ctx.sandbox 隔离,选定模式、强制完整性、拒绝事实都盖在每次结算的结果上。它是 @deepseek-ai/dsh-bash-sandbox 的 pwsh 孪生,按 pwsh 执行器与工具决策 逐调用镜像——隔离实体本身是平台无关的:Windows 上沙盒 seam 解析到 ACL 受限…
by DeepSeek
按 agent(智能体)分别记录到日志的 plan 协作状态,提供由部署方配置的引导内容、用于直接进入的 /plan [message] 命令、用于直接退出的 /plan off 命令,以及经用户评审的 exit_plan_mode 退出方式。Plan mode 是软引导;沙箱模式和批准策略各自强制执行限制,且不读写 plan 状态。
by DeepSeek
通过 ctx.permissionPresets(PermissionPresetService)提供面向用户的权限预设。每个配置名称都会将 sandbox/mode 与 approval/policy 组成一组;默认项为 workspace-write(workspace-write + ask)和 danger-full-access(danger-full-access + never)。UI 适配器可以将该表作为单个选择器公开,而沙箱执行与审批仍分别消费各自的调节项。
by DeepSeek
一个函数插件,通过 agent loop(智能体循环)在已关闭步骤上触发的 agent/request-error waterfall(瀑布式事件)应用确切提供方重试策略。它不包装 ctx.llm.stream():每次适配器调用仍是一次提供方尝试,每次重试都会开启新的编号轮次。
by DeepSeek
基于 @earendil-works/pi-ai 的 harness LLM(大语言模型)seam 通用多提供方适配器。一个插件实例拥有一份以路由为键的提供方 profile 字典;每个请求使用 GenerateOptions.provider 选择 profile,并针对该路由已配置的 catalog 解析 GenerateOptions.model。点名了已安装 pi-ai 提供方的路由会继承其端点、协议格式(wire format)与模型 catalog 作为默认值,并逐字段覆盖;pi-ai 未提供的路由则整…
by DeepSeek
harness LLM(大语言模型)seam 的 DeepSeek chat-completions 适配器:直接 fetch + SSE(Server-Sent Events,由 eventsource-parser 分帧),将官方协议格式(wire format;真源:API 文档 guides/thinking_mode、guides/tool_calls、api/create-chat-completion)转换为 StreamChunk 协议。
by DeepSeek
提供方无关的 LLM(大语言模型)词汇与抽象服务。本包定义 agent loop(智能体循环)、会话日志和所有插件共同使用的规范词汇。
by DeepSeek
@deepseek-ai/dsh-jobs 注册表约定的进程本地实现:LocalJobRegistry 把每条记录保存在内存中,按 kind 签发 <kind>-N id,并且只交出全新快照,从不交出实时状态。作为插件加载后即注册为 ctx.jobs。
by DeepSeek
ctx.goals 的同会话续行驱动器。它通过公开 Agent 与会话服务,把 phase 为 active 且已启用续行的目标转换为连续的 Goal Round;同会话驱动器 Agent Note 记载竞态与生命周期方面的设计理由。
by DeepSeek
事件溯源的同会话目标状态。该服务在 agent(智能体)的现有会话中保留一个当前待完成目标,同时将继续执行的权限作为进程本地续行启用状态。goal 领域 Agent Note 负责设计理由;goal 类型目录记录具体的数据形状。
by DeepSeek
SandboxedFileSystem 扩展 LocalFileSystem 并注册为 ctx.fs。它逐字继承全部文本存储机制(解析、stat、读取/流式读取、列出、原子写入、按读取、匹配、写入顺序执行的编辑临界区),只为 writeText/editText 增加按调用的模式围栏。读取始终直接通过:所有模式都允许读取。
by DeepSeek
fs-observation-policy 插件:它记录观测到的存在或缺失状态,并在 ctx.fs 提供方约定(@deepseek-ai/dsh-fs)之上增加编辑前读取和带防护的写入/编辑;它通过 fs/* 事件门禁参与,不是通过方法服务。该插件不注册 ctx.fsPolicy 服务,也没有公开的 read/write/edit/resolve 方法。它是文件系统栈的政策层:不是可替换 seam,而是不应位于 FileSystem 提供方基类上的政策。
by DeepSeek
文件型凭据提供方:四层来源,一套明确的优先级。
by DeepSeek
可安全回放、不依赖模型的剪枝服务(ctx.toolResultPruner)。它会将超出预算的 tool/result 表层节点改写为长度受限的头部、固定省略标记和长度受限的尾部,同时在仅追加会话日志中保留完整原始事件。
by DeepSeek
基础压缩(compaction)后端:BasicCompactionEngine 实现 @deepseek-ai/dsh-compaction Service Definition,使用可复用的 ctx.tokenMeter 压力、token 预算保留与摘要。摘要是直接的一次性 ctx.llm.stream() 调用,它会回放会话前缀以复用提供方的 KV Cache(可在 llm/stream 处拦截)。
by DeepSeek
由插件负责、供交互式 UI 适配器使用的面向用户命令注册表。插件命令注册 Agent Note定义了其边界与分发约定。
by DeepSeek
面向用户的 /goal 控制,基于 ctx.goals 实现。该插件通过 ctx.commands 注册一个全局命令,因此每个已组合的命令适配器都能发现并执行它,无需模型轮次。用户 goal 命令 Agent Note 负责用户体验与组合决策。
by DeepSeek
与触发方式无关的会话反馈,以及面向用户的 /feedback 采集。本包导出 recordFeedback(session, text);该函数会追加一个仅写入日志的 feedback/record 事件。该插件通过 ctx.commands 注册一个全局命令,因此每个已组合的命令适配器都能发现它;随附的 Web 客户端无需模型轮次即可执行。
by DeepSeek
通过 ctx.compaction 提供面向用户的 /compact 压缩(compaction)控制。该插件通过 ctx.commands 注册一个全局命令,因此组合中的每个命令适配器都能发现并执行它,无需模型轮次。排队手动压缩 Agent Note拥有接纳、锁与持久性决策。
by DeepSeek
这是使用沙箱能力的 @deepseek-ai/dsh-shell 执行器 seam 的 Service Provider。加载它时,应用它替代 @deepseek-ai/dsh-bash-local,并同时加载 ctx.sandbox 提供方(例如 @deepseek-ai/dsh-sandbox-local)及 ctx.sandboxPolicy;默认模式和工作区根目录由后者负责,并与受沙箱约束的文件系统共享这些设置。无需使用替代工具插件;dsh-tool-bash 会检测执行器的 sandboxMode 能力并…
by DeepSeek
这是 @deepseek-ai/dsh-attachment 的私有本地实现。对象存放在 <DSH_HOME>/attachments/v1/objects/<sha256-prefix>/<sha256>,并通过不透明的 sha256: 标识符寻址。每个进程都会通过将每个祖先目录项逐级同步到文件系统根目录,为某个 home 一次性证明其持久性,因此绝不会把另一个进程已经创建但尚未同步的目录误认为安全边界。随后,写入过程使用私有暂存目录、仅所有者可访问的文件、经过同步的临时文件、原子且排他的硬链接发布,并对发布路径…
by DeepSeek
为 Host 与 Client 两侧的 Cordis 环境提供 Typert RPC endpoint。Host 入口提供 ctx.typertGateway,@deepseek-ai/dsh-api-gateway/client 则提供 ctx.remote;两者使用同一份生成的 InvocationDescriptor 约定,并将业务选择交给 API Remotes,将传输、请求关联、信任和响应封装交给 Connection。
by DeepSeek
agent(智能体)的唯一具体实现插件和循环驱动器。其包内部实现满足 Agent 接口,并驱动会话、轮次和步骤的生命周期。
by DeepSeek
该部署默认值供入口在创建尚无会话级模型选择的 Agent 时使用。AgentDefaultModelConfig 提供 ctx.agentDefaultModel;dsh --profile headless 这类直接入口与 ApiProxy 这类由 Host 支撑的入口读取同一服务,而不是分别持有平行的提供方/模型默认值。
by DeepSeek
Agent 接口、注册表、进程本地发起方作用域,以及 agent/* 事件词汇。每个插件(UI、钩子、编排器)都面向此处定义的 Agent handle 编程;它不依赖循环,因此循环可以替换。
by DeepSeek
为每个会话加载与 AGENTS.md 兼容的工作区指令文件。该插件会将初始的用户全局指令与项目指令链注入持久历史,随后发现嵌套文件,并在成功的文件系统工具调用后报告后续变更或移除。
by DeepSeek
支持随插件卸载自动清理的 Cordis 定时器服务。
by DeepSeek
基于文件的 Cordis Loader 配置树:读取 YAML 或 JSON 文件,将其转换为 Loader 条目,并在文件可写时回写更新。
by DeepSeek
用于由 Loader 管理的 Cordis 插件的热模块替换。