{ "schema_version": 1, "note": "官方预设插件:DeepSeek Harness(DSH)随包分发的 @deepseek-ai/* 内置插件。作用说明独立维护、源自官方 packages 目录,不参与社区发现、安装用法与安全审查。", "source_repo": "https://github.com/deepseek-ai/deepseek-harness", "source_path": "packages/", "generated_at": "2026-08-16T15:42:43.904Z", "plugins": [ { "id": "@deepseek-ai/dsh-acp", "name": "@deepseek-ai/dsh-acp", "domain": "acp", "sub": "acp", "path": "acp/acp", "description_zh": "通过 JSON-RPC stdio 提供的仅面向自动化的 ACP(Agent Client Protocol) 服务器。程序化客户端可以创建新 harness agent(智能体)、发送文本提示词、收集已提交的 assistant 文本、按策略响应一次性权限请求并取消工作。仓库中的主要客户端是 dsh-subagent-acp。", "description_en": "Automation-only Agent Client Protocol server for driving DeepSeek Harness agents over JSON-RPC stdio" }, { "id": "@deepseek-ai/dsh-api-gateway", "name": "@deepseek-ai/dsh-api-gateway", "domain": "api", "sub": "gateway", "path": "api/gateway", "description_zh": "为 Host 与 Client 两侧的 Cordis 环境提供 Typert RPC endpoint。Host 入口提供 ctx.typertGateway,@deepseek-ai/dsh-api-gateway/client 则提供 ctx.remote;两者使用同一份生成的 InvocationDescriptor 约定,并将业务选择交给 API Remotes,将传输、请求关联、信任和响应封装交给 Connection。", "description_en": "Typert Remote Host dispatcher and Client API endpoint" }, { "id": "@deepseek-ai/dsh-api-remotes", "name": "@deepseek-ai/dsh-api-remotes", "domain": "api", "sub": "remotes", "path": "api/remotes", "description_zh": "为本应用选定的 Host Remote 能力提供双侧 BFF。Host 入口负责 Agent/Session 身份策略;Client 入口以运行时值形式导入生成的 /remote 产物,通过 ctx.remote.$mount() 挂载每项贡献,并重新导出对应的声明合并。Client 业务包依赖该外观,而不依赖 Gateway 实现或单独的 Remote 运行时入口。", "description_en": "Remote BFF assembly and Host Agent/Session lookup policy" }, { "id": "@deepseek-ai/dsh-attachment", "name": "@deepseek-ai/dsh-attachment", "domain": "attachment", "sub": "attachment", "path": "attachment/attachment", "description_zh": "持久附件服务边界。ctx.attachments 校验并以原子方式提交不可变图片字节,随后返回可序列化的 ImageAttachmentRef;消费方绝不会在会话事件中持久保存浏览器路径、对象 URL、提供方 URL 或 base64。", "description_en": "Durable immutable attachment storage seam for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-attachment-local", "name": "@deepseek-ai/dsh-attachment-local", "domain": "attachment", "sub": "attachment-local", "path": "attachment/attachment-local", "description_zh": "这是 @deepseek-ai/dsh-attachment 的私有本地实现。对象存放在 /attachments/v1/objects//,并通过不透明的 sha256: 标识符寻址。每个进程都会通过将每个祖先目录项逐级同步到文件系统根目录,为某个 home 一次性证明其持久性,因此绝不会把另一个进程已经创建但尚未同步的目录误认为安全边界。随后,写入过程使用私有暂存目录、仅所有者可访问的文件、经过同步的临时文件、原子且排他的硬链接发布,并对发布路径执行目录同步(适用于 POSIX;Windows 依赖文件系统元数据日志),确保已报告的引用能够在崩溃后继续存在。", "description_en": "Private content-addressed DSH_HOME attachment storage" }, { "id": "@deepseek-ai/dsh-app-boot", "name": "@deepseek-ai/dsh-app-boot", "domain": "boot", "sub": "app-boot", "path": "boot/app-boot", "description_zh": "供 app bin(dsh 与 dsh-acp-demo)共用的启动粘合层:每个 bin 都是在这些辅助函数之上构建的精简自执行组合,并以自身诊断前缀参数化。这样,Loader 故障行为只由一处负责,不会在已发布产物之间逐渐分化。", "description_en": "Shared boot glue for the app bins: .env loading, fail-loud Loader guards, snapshot-aware config resolution, and the Loader boot sequence" }, { "id": "@deepseek-ai/dsh-cmdline", "name": "@deepseek-ai/dsh-cmdline", "domain": "boot", "sub": "cmdline", "path": "boot/cmdline", "description_zh": "dsh 启动器交给它所引导应用的那条命令行。启动器只解析属于自己的 flag(--profile、--patch、配置 dump),并把其后的一切原样交给配置树,因此 flag 家族、--help 文本和解析错误都由应用自己持有,启动器不必知道它们。", "description_en": "Immutable command-line handoff from a dsh launcher to any app plugin that injects cmdlineArgs" }, { "id": "@deepseek-ai/dsh-base", "name": "@deepseek-ai/dsh-base", "domain": "bundle", "sub": "base", "path": "bundle/base", "description_zh": "以 profile 组合包形式交付的共享 dsh 核心:cordis.patch.yml 在空的 profile 根之上插入全部基础插件行——模型适配器、共享的 agent-default-model 选择、工具、持久化、策略、settings/credentials、遥测与宿主级 subagent provider——作为每个 profile 的 dsh.profile.bundles 列表中的第一层。Codex 与 Claude Code provider 以休眠状态加载;Agent Preset 分别决定自己的 agent 是否贡献任一面向模型的委派工具。", "description_en": "The shared dsh core as a profile bundle: every profile's first patch layer, inserting the base plugin rows over the empty profile root" }, { "id": "@deepseek-ai/dsh-headless", "name": "@deepseek-ai/dsh-headless", "domain": "bundle", "sub": "headless", "path": "bundle/headless", "description_zh": "dsh 一次性任务组合包。cordis.patch.yml 直接叠加在 dsh-base 之上:提供编码 persona 和工具模式、禁用 HMR(热模块替换)、将 Code Mode 的 worker 作为核心执行能力挂载,并插入本包的 headless-runner 插件(配置为 {task},从注入的 headlessStartup 提供方解析)。它不挂载任何 Host、HTTP server、Web runtime 或浏览器插件。", "description_en": "The dsh one-shot bundle: a direct core Agent/Session runner over dsh-base with no Host, HTTP, or browser layer" }, { "id": "@deepseek-ai/dsh-web-app", "name": "@deepseek-ai/dsh-web-app", "domain": "bundle", "sub": "web-app", "path": "bundle/web-app", "description_zh": "dsh 浏览器表层组合包。cordis.patch.yml 叠加在 dsh-base 之上:设置 coding persona,插入 Web 宿主行(webserver、API 网关、workspace、投影缓存、存储)、浏览器插件名录与始终挂载的客户端插件重载链(dsh-client-hmr,在重建 watcher 改写客户端 bundle 之前保持空闲),并挂载本包的 web-runtime 粘合插件(配置为 {printUrl, surfaceContext, trustedHosts})。", "description_en": "The dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)" }, { "id": "@deepseek-ai/dsh-client-connection", "name": "@deepseek-ai/dsh-client-connection", "domain": "client", "sub": "connection", "path": "client/connection", "description_zh": "协议消费层:客户端插件的 apply 会挂载 ctx.connection(共享 API 客户端 + 当前页面的 loopback 状态 + 可观察且按 generation 生效的 hostDescription + 单消费方流循环启动器);导出表层携带协议约定类型、AbstractApiClient 抽象,以及循环的 sink/配置类型。每次就绪握手成功后,都会在 onConnected 之前发布完整的 host.describe 值;generation 失效或显式 stop 会清空它,因此原生能力消费者不会保留已经断线的判断。", "description_en": "Wire consumer layer: HTTP-up/WebSocket-down client, ConnectionController dual streams with reconnect, and fixture api" }, { "id": "@deepseek-ai/dsh-client-hmr", "name": "@deepseek-ai/dsh-client-hmr", "domain": "client", "sub": "hmr", "path": "client/hmr", "description_zh": "为通过脚本加载的客户端插件提供热重载。web 组合包无条件挂载该行;没有重建 watcher(pnpm run dev:web)改写客户端 bundle 时,轮询观察不到变化,链路保持空闲。", "description_en": "Dev-only hot-reload driver for script-loaded client entries: SSE rebuilt frames → invalidate/prefetch → fiber swap through the vendored Loader entry" }, { "id": "@deepseek-ai/dsh-client-locale", "name": "@deepseek-ai/dsh-client-locale", "domain": "client", "sub": "locale", "path": "client/locale", "description_zh": "locale 插件:LocaleRuntime——zh/en 偏好以 locale.preference 存储在 $DSH_HOME/settings.yaml 中;若没有显式 Host 值,全新浏览器会暂时使用 navigator 请求的语言(按主子标签匹配;若其请求的语言本应用都不提供,则使用 zh)。Host 读取在插件激活后执行,因此 settings 服务不可用不会阻塞页面;读取结果会实时替换浏览器暂定值。settings API 仅限回环请求,因此远程浏览器的选择仅保留在进程内。locale/change 仅在切换语言时触发。", "description_en": "Locale plugin: Host-backed zh/en preference, browser-derived fallback, locale snapshots, and typed namespace dictionaries" }, { "id": "@deepseek-ai/dsh-client-modules", "name": "@deepseek-ai/dsh-client-modules", "domain": "client", "sub": "modules", "path": "client/modules", "description_zh": "客户端模块系统:Node 内部 ESM loader 的浏览器端对等实现,以惰性 CJS 表实现。web 外壳挂载 vendored cordis Loader 来治理配置项(fiber 生命周期、inject 等待、update/refresh),并通过其 internal 约定注入该包的 ClientModuleLoader;vendored 一侧唯一的消费点是 EntryTree.import,因此替换 internal 恰好只会替换「插件代码如何到达」,不会改变其他内容。", "description_en": "Client module system, dual-face: node half composes the __DSH_BOOT__ entry graph (incremental dsh.client scan, bundle route, index tap, webPlugins service); browser half is the lazy-CJS module table the vendored cordis Loader consumes as its internal seam" }, { "id": "@deepseek-ai/dsh-client-runtime", "name": "@deepseek-ai/dsh-client-runtime", "domain": "client", "sub": "runtime", "path": "client/runtime", "description_zh": "客户端 cordis 启动与不依赖 React 的对象服务:SlotRegistry 包装 SlotCore 并提供 renderer 数据源;SessionRuntime 拥有 Session 对象、列表与 scope 状态,以及供已注册 conversation view target 共用的事件窗口与历史分页。WorkspaceRuntime 依赖 SessionRuntime,拥有 Workspace 对象、列表/操作、默认目标派生,以及 New Session 空会话复用入口(connectWorkspace)。", "description_en": "Client core services: SlotRegistry, SessionRuntime (scope tree + object layer)" }, { "id": "@deepseek-ai/dsh-client-schema-form", "name": "@deepseek-ai/dsh-client-schema-form", "domain": "client", "sub": "schema-form", "path": "client/schema-form", "description_zh": "面向 settings 编辑器的 schema/草稿模型层。wire 侧的 settings.describe 携带每个 namespace 的序列化 schemastery schema(schema.toJSON() 的 ref 封装);rehydrateSchema 用 new Schema(json) 将其还原(rehydrate)为活的校验器——在宿主上校验分节的那份 schema 对象,就是在浏览器里校验草稿的那份对象,因此客户端校验绝不会偏离 Service Definition 的校验。编辑器各自渲染自己的控件(Models 页围绕它在此探测到的字段手写自己的卡片);该包不含任何 React,也不做任何渲染。", "description_en": "Schema/draft model layer for settings editors: rehydrates a serialized schemastery schema, validates drafts, and edits them immutably by path" }, { "id": "@deepseek-ai/dsh-client-ui-agent-preset", "name": "@deepseek-ai/dsh-client-ui-agent-preset", "domain": "client", "sub": "ui-agent-preset", "path": "client/ui-agent-preset", "description_zh": "agent preset 的各个表层:General 设置中的一行,用于选择新建会话据以组装的 preset;新建会话界面上的一枚 chip,用于选择下一个会话的 preset;会话标题旁的一个只读标签;以及一个设置页分区,用于管理名单——复制、删除、默认值,以及通往 preset 自身文件的入口。", "description_en": "Agent-preset surfaces: the default for later sessions, this session's seat, and the composition editor" }, { "id": "@deepseek-ai/dsh-client-ui-attachment", "name": "@deepseek-ai/dsh-client-ui-attachment", "domain": "client", "sub": "ui-attachment", "path": "client/ui-attachment", "description_zh": "纯 React 附件原子组件(零 cordis):输入框草稿图片栏(AttachmentRail)、聊天历史图片画廊(MessageImage/ImageGallery)、原图灯箱(ImageLightbox)与整页拖放遮罩(DropOverlay)。所有文案都由持有方插件在自己的语言命名空间中解析后经 label props 传入,此包不读取任何应用状态;当前消费者是 @deepseek-ai/dsh-client-ui-conversation,经其 image-labels 模块桥接 conversation 词典。", "description_en": "Pure React attachment atoms for the dsh web UI: draft-image rail, message image gallery, and original-image lightbox (zero cordis)" }, { "id": "@deepseek-ai/dsh-client-ui-commands", "name": "@deepseek-ai/dsh-client-ui-commands", "domain": "client", "sub": "ui-commands", "path": "client/ui-commands", "description_zh": "客户端命令 API(ctx.commandUi):以会话为 key 的命令目录缓存、带 matchSpace/matchEnter 决策钩子的 / 命令 source、三类派发(execute/popupSelect/leadingInput),以及面向业务包的 popupSelect 注册。Web 命令 Agent Note 记录了这项决策。", "description_en": "Client command surface: global directory cache, '/' source, three command UI kinds, popupSelect registry" }, { "id": "@deepseek-ai/dsh-client-ui-conversation", "name": "@deepseek-ai/dsh-client-ui-conversation", "domain": "client", "sub": "ui-conversation", "path": "client/ui-conversation", "description_zh": "会话领域:骨架(标题栏/标签页/编辑器/空状态)、聊天视图(分组步骤摘要流、流式尾部隔离与轮次状态)、编辑器 dock(与输入区一同 sticky 的会话统计行)、输入区 dock(队列行加 todo 计划条)、详情壳层,以及按 scope 寻址的 ConversationController。工具展示属于 ui-tool。", "description_en": "Conversation domain: skeleton, ordered chat flow, composer with the Host-backed busy-Enter preference, and details host" }, { "id": "@deepseek-ai/dsh-client-ui-deliverables", "name": "@deepseek-ai/dsh-client-ui-deliverables", "domain": "client", "sub": "ui-deliverables", "path": "client/ui-deliverables", "description_zh": "产出文件与可点击文件引用功能的属主。Node 侧向系统提示词 registry 注册最终回复指引;浏览器侧把已完成轮次末尾的产出文件行注册到 chat 视图的 conversation.chat.turnTail slot,并将收尾正文中匹配的行内代码引用转换为链接。正式提供的组合中只有 Web patch 加载本包;从 cordis.yml 中删去这一项会同时移除提示词、文件行与正文链接。", "description_en": "Produced-files turn tail and clickable final-response file references for Web" }, { "id": "@deepseek-ai/dsh-client-ui-directory-picker-browse", "name": "@deepseek-ai/dsh-client-ui-directory-picker-browse", "domain": "client", "sub": "ui-directory-picker-browse", "path": "client/ui-directory-picker-browse", "description_zh": "应用内目录浏览界面:浏览式选取交互的浏览器半边。它通过 ui-workspace 的两个 directory-flow 洞(conversation.hero.workspace.directoryFlow 与 sidebar.workspaces.directoryFlow)装入「选择工作区目录」对话框,经 ctx.workspaces 驱动本地 Host 的 host.listDirectory 与 host.createDirectory 原语。它的 node 对侧是 dsh-host-directory-picker-browse;挂载本包即用一行 cordis.yml 把界面与该后端组合起来,因此没有任何客户端代码按能力种类分支。", "description_en": "In-app directory browsing surface: the workspace directory-flow owner rendering the host's listing and creation primitives" }, { "id": "@deepseek-ai/dsh-client-ui-directory-picker-native", "name": "@deepseek-ai/dsh-client-ui-directory-picker-native", "domain": "client", "sub": "ui-directory-picker-native", "path": "client/ui-directory-picker-native", "description_zh": "原生目录选择界面:原生选取交互的浏览器半边。它通过 ui-workspace 的两个 directory-flow 洞(conversation.hero.workspace.directoryFlow 与 sidebar.workspaces.directoryFlow)装入一个无渲染占位者,每次收到 open 请求就用 ctx.workspaces.pickDirectory() 驱动本地 Host 的操作系统选择框,然后通过 owner 会话回报恰好一个结果——选中的路径、取消、或失败。系统对话框本身属于 dsh-host-directory-picker-native;挂载本包即用一行 cordis.yml 把界面与该后端组合起来,因此没有任何客户端代码按能力种类分支。", "description_en": "Native directory-picker surface: the renderless workspace directory-flow occupant driving the host's OS chooser" }, { "id": "@deepseek-ai/dsh-client-ui-goal", "name": "@deepseek-ai/dsh-client-ui-goal", "domain": "client", "sub": "ui-goal", "path": "client/ui-goal", "description_zh": "Goal 界面插件(浏览器端部分):GoalBar 条带是 conversation.input.dock composer 上下文堆栈中的第二张独立卡片(order 10,位于 Todo 之后、Queue 之前)。活值经 useProjection('goal') 到达——host 计算的全量值由历史尾页播种、由 session/projection 帧更新——因此本插件不持有领域 store、不设刷新链、不挂事件监听。", "description_en": "Session goal surface: GoalBar docked above the composer, read from the goal session projection" }, { "id": "@deepseek-ai/dsh-client-ui-input-trigger", "name": "@deepseek-ai/dsh-client-ui-input-trigger", "domain": "client", "sub": "ui-input-trigger", "path": "client/ui-input-trigger", "description_zh": "输入触发流水线插件:光标处的 / 与 @ 检测(词边界 + guard tier 规则)、分组候选菜单,以及把 pick 路由到已注册 source。ctx.inputTriggers 拥有 source roster,并按会话 scope(sessionOf)各解析一个 InputTriggerController;对话接线层在 controller 上驱动 track/arbitrate/onSpace/adjudicate。同一个 controller 还暴露 toggleSource,供 chrome launcher 在一段合成 selection span 上只打开一个已注册 source;所得候选仍走通常的菜单、键盘仲裁、pick callback 与 scoped 输入改写。", "description_en": "Input trigger pipeline: '/' and '@' detection, candidate menu, pick routing to registered sources" }, { "id": "@deepseek-ai/dsh-client-ui-jobs", "name": "@deepseek-ai/dsh-client-ui-jobs", "domain": "client", "sub": "ui-jobs", "path": "client/ui-jobs", "description_zh": "Web 后台任务特性的归属方:向 conversation.session.header.actions 贡献一个条目,列出当前会话可见的 ctx.jobs 记录。数据完全来自 dsh-client-runtime 从 session/jobs 帧折叠出的 jobsBySession 列表镜像,因此本包不发任何 RPC,除弹层开合外不持有任何状态。", "description_en": "Session-header background-job list: live registry state mirrored from session/jobs frames" }, { "id": "@deepseek-ai/dsh-client-ui-layout", "name": "@deepseek-ai/dsh-client-ui-layout", "domain": "client", "sub": "ui-layout", "path": "client/ui-layout", "description_zh": "外壳插件:三栏 AppFrame(拖动手柄与让步链)加 ctx.layout 面板几何服务;它注册到运行时拥有的 root slot,并声明 sidebar、conversation、details 和 conversation.empty。侧边栏的缩放边界是不可见命中条带,详情栏边界则保留其浮动胶囊;让步期间只有详情栏会收缩并随后自动关闭。关闭的侧边栏仍保留 56px 控制栏,详情栏则关闭到零宽度。", "description_en": "Shell plugin: three-column AppFrame with drag handles, ctx.layout viewing-state service (navigation + panels)" }, { "id": "@deepseek-ai/dsh-client-ui-message-feedback", "name": "@deepseek-ai/dsh-client-ui-message-feedback", "domain": "client", "sub": "ui-message-feedback", "path": "client/ui-message-feedback", "description_zh": "单条消息反馈插件的浏览器侧:一对 Like/Dislike 按钮加一个可选备注,作为 conversation.chat.assistant-actions 条带的 feedback 条目(order 10)贡献。该条带由 ui-conversation 声明,渲染在已定稿助手消息的 IconActions 行内、复制与分支之间,因此控件沿用该行的样式与 hover 行为。只有已定稿的消息能到达这个 slot——被中断冻结的部分输出不带 messageId,因此也没有反馈控件。该操作栏每个 Turn 渲染一次,位于持有该 Turn IconActions 行的收尾助手消息上:多步骤 Turn 中较早的步骤产出的是工具行而非可评分正文,因此即使 Host 会接受它们作为目标,界面上也不出现控件。", "description_en": "Per-message feedback controls contributed to the assistant-message action strip, backed by the messageFeedback Host Remote" }, { "id": "@deepseek-ai/dsh-client-ui-model-selection", "name": "@deepseek-ai/dsh-client-ui-model-selection", "domain": "client", "sub": "ui-model-selection", "path": "client/ui-model-selection", "description_zh": "模型选择插件(浏览器侧):两个入口共用一份会话级目录,由 ModelDirectoryResolver(ctx.modelDirectories)持有。对于普通会话,/model popupSelect 贡献项(经 ctx.commandUi 注册)与 composer 的具名 conversation.input.model slot 都通过同一个 ModelDirectory 实例,经 session.models 加载会话的建议目录,并经 session.selectModel 提交。紧凑型 composer 触发器会打开两级 Model/Effort 菜单:模型仍按提供方分组,所选具体模型则提供由其适配器持有的推理强度名称、说明和默认值。", "description_en": "Model selection: the /model popupSelect over session.models / session.selectModel" }, { "id": "@deepseek-ai/dsh-client-ui-permission-presets", "name": "@deepseek-ai/dsh-client-ui-permission-presets", "domain": "client", "sub": "ui-permission-presets", "path": "client/ui-permission-presets", "description_zh": "面向两种不同生命周期的浏览器权限界面。「通用」设置行读取显式暴露的 permission Settings 描述符,从 host 的动态 defaultPreset enum 中推导选项,并携带描述符的 revision 写入一条 settings.mutate 路径操作。它的 observable 经 slot 系统的 hooks 格传递,因此 React 钩子由渲染器绑定;推送的失效通知会重新获取描述符。这个值仅在后续会话创建时生效;改变它不会切换当前会话。选择 Full access 时必须先显式确认风险,该行随后才会写入。", "description_en": "Permission surfaces: a new-session default in General settings and a current-session /permission popup over the permissions projection" }, { "id": "@deepseek-ai/dsh-client-ui-plan", "name": "@deepseek-ai/dsh-client-ui-plan", "domain": "client", "sub": "ui-plan", "path": "client/ui-plan", "description_zh": "Plan mode 状态徽章,纯浏览器 surface 插件。浏览器侧占用会话声明的 conversation.input.plan 单实例 seat(位于 access 模式控件右侧);node 侧是空 apply(roster 行)。plan 行为本身——/plan 命令、边界或空闲即时提交的 plan/mode 状态、plan 投影单元与 policy 段——归 @deepseek-ai/dsh-plan-mode 所有,由 host roster 独立组合。", "description_en": "Plan-mode composer control: the conversation.input.plan seat over the plan projection and the /plan command channel" }, { "id": "@deepseek-ai/dsh-client-ui-primitives", "name": "@deepseek-ai/dsh-client-ui-primitives", "domain": "client", "sub": "ui-primitives", "path": "client/ui-primitives", "description_zh": "纯 React 原子组件(零 cordis):StateDot、DisclosureRow、ic_ds_ 图标、Button/Pill/Menu/Modal/Input、Toast 短时横幅、OnboardingSurface 首次使用接管层(portal 到 body 的遮罩加不透明展示层,在且仅在自身生命周期内保持 #root 为 inert)、markdown 家族(MessageText/MarkdownText/JsonBlock)、只读 JsonTree 检查器、useAnchoredMaxHeight 钩子(把底部锚定的浮层高度收敛到锚点上方的视口空间,并在 resize、scroll 与调用方提供的依赖变化时重新测量)、TerminalBlock、DiffBlock、ReadBlock、Sear。", "description_en": "Pure React atoms for the dsh web UI: controls, icons, markdown, and JSON inspectors (zero cordis)" }, { "id": "@deepseek-ai/dsh-client-ui-settings", "name": "@deepseek-ai/dsh-client-ui-settings", "domain": "client", "sub": "ui-settings", "path": "client/ui-settings", "description_zh": "设置领域的底座,承担两项职责,本身不含任何呈现内容。它提供 ctx.settingsScope——每个偏好设置行绑定自己那份持久化命名空间分区所用的宿主传输层;并声明由注册方填充的设置 slot 类型:settings.trigger/settings.header/settings.close(界面框架内容)、settings.action(内容标题栏中的有序操作)、settings.section(每项功能一页)、settings.plugins.tab(“插件”分区内由各功能持有的页面)和 settings.onboarding(由各功能持有的有序页面)。", "description_en": "Settings domain base plugin: the settings-namespace scope service and the canonical settings slot-type contract" }, { "id": "@deepseek-ai/dsh-client-ui-settings-general", "name": "@deepseek-ai/dsh-client-ui-settings-general", "domain": "client", "sub": "ui-settings-general", "path": "client/ui-settings-general", "description_zh": "设置外壳、无特定功能归属文案与持久化产品引导 namespace。它以触发控件和模态设置面板占用 sidebar.settings,把 settings.section 账本投影成导航、把 settings.onboarding 账本投影成每次只挂载一个步骤的引导流程,并在设置页面上注册所有不属于单一功能的内容:触发器、标题栏与关闭控件内容、本地配置文件操作,「通用」分区及其 settings.general.item slot,以及 settings 字典。它渲染进的那些 slot 类型归 ui-settings——设置领域底座——所有;只有外壳自身的契约类型放在这里,因为它们引用 ui-sidebar 的 slot 类型,而底座不得依赖任何 ui- 包。", "description_en": "Settings ownerless-copy and product onboarding plugin: the General section, shell trigger/header chrome content, settings dictionaries, and the versioned welcome notice" }, { "id": "@deepseek-ai/dsh-client-ui-settings-models", "name": "@deepseek-ai/dsh-client-ui-settings-models", "domain": "client", "sub": "ui-settings-models", "path": "client/ui-settings-models", "description_zh": "模型设置与产品引导插件。同一个 client Cordis 插件会注册 Models 页面和两个有序的首次使用弹窗:版本化内测声明,以及按条件显示的 DeepSeek 官方凭据步骤。两个步骤共用同一套弹窗组件,并继续由 settings.onboarding 排序。Models 平面把三个协议领域汇聚为一个共享快照:llm.providers(可配置提供方目录,含每条路由的存活/休眠状态)、settings.describe(序列化 schema、分层脱敏值、secret slot)与 credentials.describe(不含值的 configured/source/writable 徽标);页面据此渲染提供方行,一次只展开一张编辑卡片,且不把路由存活状态呈现为提供方状态。", "description_en": "Models settings and shared product-onboarding dialogs over existing settings and credential joins" }, { "id": "@deepseek-ai/dsh-client-ui-settings-plugin-inventory", "name": "@deepseek-ai/dsh-client-ui-settings-plugin-inventory", "domain": "client", "sub": "ui-settings-plugin-inventory", "path": "client/ui-settings-plugin-inventory", "description_zh": "Web 设置中的只读插件列表标签页。浏览器插件注册一个 id 为 all 的本地化 settings.plugins.tab 贡献;“插件”分区拥有导航入口与标签栏。插件激活期间不会读取 Remote;首次选择该标签页时才挂载组件,并通过 api-remotes 懒调用 ctx.remote.pluginInventory.list()。", "description_en": "Read-only Cordis Loader inventory tab in Web Plugins settings" }, { "id": "@deepseek-ai/dsh-client-ui-settings-plugins", "name": "@deepseek-ai/dsh-client-ui-settings-plugins", "domain": "client", "sub": "ui-settings-plugins", "path": "client/ui-settings-plugins", "description_zh": "插件设置分区及其插件配置标签页。该分区拥有标题与紧凑的标签栏;功能插件通过 settings.plugins.tab 贡献页面。本包自己的标签页为每个配置由用户拥有的 Host 插件展示一张可展开卡片。卡片展示插件名称及其管辖范围;就地展开后是绑定到该插件 settings 命名空间的手写控件,每个字段标注用户是否覆盖过它,并提供重置回部署组装值的入口。", "description_en": "Plugins settings section with feature-owned tabs and configurable host-plane plugin cards" }, { "id": "@deepseek-ai/dsh-client-ui-sidebar", "name": "@deepseek-ai/dsh-client-ui-sidebar", "domain": "client", "sub": "ui-sidebar", "path": "client/ui-sidebar", "description_zh": "侧边栏外壳插件:负责字标、New Session 操作、布局持有的折叠控件、可感知滚动的区域 seat,以及固定在底部的 Settings seat。ui-workspace 持有渲染到 sidebar.workspaces 的 Workspace 与 Session 浏览器;本包既不派生其中的行,也不持有其视图偏好。折叠到布局拥有的 56px 轨道仍属于本地呈现行为。约定:slot 系统标准。", "description_en": "Sidebar plugin: session multi-level tree, search, grouping, state dots" }, { "id": "@deepseek-ai/dsh-client-ui-skill", "name": "@deepseek-ai/dsh-client-ui-skill", "domain": "client", "sub": "ui-skill", "path": "client/ui-skill", "description_zh": "skill(技能)调用 source 的浏览器端:把 / 触发的 skill source 注册进 ctx.inputTriggers。普通会话的候选来自 skill.list RPC,以每次调用的 ClientSessionContext 投影中的 {sessionId} 寻址,host 从会话 header 解析 cwd。宿主提供每一个用户可调用的 skill;modelInvocable: false 的条目(即 disable-model-invocation skill,此路径是其唯一入口)会以当前语言把仅限用户标记作为描述前缀带上。由目录寻址的可继续 subagent 在客户端解析为没有 skill 候选,因为现有 skill RPC 要求会话已挂载;查看其持久化历史不得激活它。", "description_en": "Web skill references and the dedicated skill tool row" }, { "id": "@deepseek-ai/dsh-client-ui-slots", "name": "@deepseek-ai/dsh-client-ui-slots", "domain": "client", "sub": "ui-slots", "path": "client/ui-slots", "description_zh": "Slot 注册表纯核心、slot 终端设计:SlotMap 声明合并、SlotCore 上唯一的 register 组合 API、四 share 组件 props 类型家族、store seat 类型家族,以及 renderer 安装约定。只使用 React 类型;该包不依赖 React,也不依赖 Cordis。", "description_en": "Slot registry pure core: SlotMap declaration merging, single register composition API, four-share props types, store-seat types, renderer install seam" }, { "id": "@deepseek-ai/dsh-client-ui-subagent", "name": "@deepseek-ai/dsh-client-ui-subagent", "domain": "client", "sub": "ui-subagent", "path": "client/ui-subagent", "description_zh": "Web subagent 功能 owner:向 conversation.session.header.actions 贡献可懒加载展开的目录树,向会话编辑器链贡献按原因区分的只读替代呈现,并保留注册到 ctx.inputTriggers 的既有 @ 引用 source。", "description_en": "Subagent conversation catalog, continuation routing UI, and '@' reference source" }, { "id": "@deepseek-ai/dsh-client-ui-theme", "name": "@deepseek-ai/dsh-client-ui-theme", "domain": "client", "sub": "ui-theme", "path": "client/ui-theme", "description_zh": "主题插件:基于 --dsw- token 基础样式表(静态尺度 + 别名语义层)的 ThemeRuntime。该服务拥有实时主题偏好(light/dark/system),将 system 通过 prefers-color-scheme 解析为实际主题,并发布不可变的 ThemeSnapshot,通过 theme/change 事件通知变化;它绝不接触 DOM:ui-layout 的呈现器会应用解析后的快照(html { color-scheme }、body[data-ds-dark-theme],以及主题的别名 token 内联变量)。", "description_en": "Theme plugin: Host bootstrap for the pre-plugin palette; DOM-free ThemeRuntime for light/dark/system state; --dsw-* token styles and Appearance settings row" }, { "id": "@deepseek-ai/dsh-client-ui-tool", "name": "@deepseek-ai/dsh-client-ui-tool", "domain": "client", "sub": "ui-tool", "path": "client/ui-tool", "description_zh": "Client 工具展示插件。ui-conversation 通过 conversation.chat.node 的匹配 key 分发每个已排序的 tool-call Conversation Node;本包渲染其中的 root 及其 Code Dispatch 子调用,并把每个原子调用通过 keyed slot tool.call.toolview 分发。没有注册的工具名称使用通用卡片。", "description_en": "Client Tool call-tree renderer and keyed per-tool presentation slot" }, { "id": "@deepseek-ai/dsh-client-ui-trajectory", "name": "@deepseek-ai/dsh-client-ui-trajectory", "domain": "client", "sub": "ui-trajectory", "path": "client/ui-trajectory", "description_zh": "Trajectory 渲染按轮次组织的事件记录表,其中可选择用户、助手、工具和嵌套子工具记录。较粗的分割线标示轮次边界,紧凑的行内标记标识步骤,主记录表仅保留索引、事件和内容;选择记录则会打开局部检查器,查看 token 用量、耗时、输入、输出和计时。可滚动的概述区域默认保持滚动条滑块透明,直到鼠标悬停该区域或其中包含键盘焦点时才显示,同时不改变滚动条预留的几何空间。独立运行的压缩(compaction)请求会按时间顺序显示在自己的 Between turns 区段中,而带编号的压缩仍位于其所属轮次内。长记录表打开时定位于当前尾部,用户到达已加载范围顶部时加载一页更早的历史,并且只挂载可见行窗口和少量额外缓冲行;仅含请求的分隔行并入下一个具备可测高度的虚拟项,语义行键和 ARIA 索引在向前补页后保持不变。", "description_en": "Trajectory event ledger with an interactive timing overview: pure-consumer plugin registering into the conversation ViewMap (no service)" }, { "id": "@deepseek-ai/dsh-client-ui-user-questions", "name": "@deepseek-ai/dsh-client-ui-user-questions", "domain": "client", "sub": "ui-user-questions", "path": "client/ui-user-questions", "description_zh": "Web 提问功能插件:其浏览器侧把 question 条目注册到会话拥有的 conversation.composer 键控 slot 中。其主机侧刻意为空——在那里挂载 dsh-tool-ask-user 会把工具放进注册表的全局层,而全局层会并入每一个 agent(智能体),无论它由哪个 preset 组装,于是一个「两工具」的 benchmark preset 实际会呈现三个。渲染提问是宿主的 UI 能力,拥有该工具则是 agent 的能力,因此 tool-ask-user 行属于需要它的各个 preset(以及没有 preset 的 TUI 组装)。", "description_en": "Web ask_user_question feature: host tool mount plus composer-takeover question UI" }, { "id": "@deepseek-ai/dsh-client-ui-workflow-run", "name": "@deepseek-ai/dsh-client-ui-workflow-run", "domain": "client", "sub": "ui-workflow-run", "path": "client/ui-workflow-run", "description_zh": "这个浏览器插件把持久化的顶层工作流运行重建为独立 Chat 节点。它消费由 dsh-tool-workflow 拥有的四类 tool-workflow/ Session 事件,注册一个 ConversationNodeDefinition,并通过 keyed conversation.chat.node slot 渲染,不改变现有工作流工具卡。", "description_en": "Durable workflow-run Conversation Node and nested member disclosure for dsh web" }, { "id": "@deepseek-ai/dsh-client-ui-workspace", "name": "@deepseek-ai/dsh-client-ui-workspace", "domain": "client", "sub": "ui-workspace", "path": "client/ui-workspace", "description_zh": "共享 Workspace 浏览器与选择器插件。WorkspaceBrowser 填充侧边栏的 sidebar.workspaces slot,WorkspacePicker 则填充页面局部 Session Intent 主视觉区的 conversation.hero.workspace slot;两个界面使用同一套 Workspace 菜单和添加流程。", "description_en": "Workspace picker plugin: one WorkspacePicker registered into the sidebar and empty-state workspace slots" }, { "id": "@deepseek-ai/dsh-client-web", "name": "@deepseek-ai/dsh-client-web", "domain": "client", "sub": "web", "path": "client/web", "description_zh": "Web 外壳内核:new AppWebEntry(el, seams?).run() 通过两阶段启动(web2)挂载整个客户端。第一阶段(模块侧):构建客户端模块系统(@deepseek-ai/dsh-client-modules),以主机推送的配置项图(window.__DSH_BOOT__)为基础,并行预取 immediately 层级;执行组合包只会注册 factory。第二阶段(插件侧):挂载仓库内置的 Cordis Loader,并通过其 internal 约定注入模块系统;为每一行图数据创建一个 loader 配置项,另创建外壳自身的 app-shell 组装配置项(tree.import 会物化各模块);以 settle 作为 AppRoot 的门禁(loader 完全停稳 + 每个配置项 fib。", "description_en": "Web shell kernel: bootWebShell (module system holding + seed table + two-stage boot + AppRoot gate + app-shell assembly entry), consumed by the apps/web vite entry" }, { "id": "@deepseek-ai/dsh-client-web-react", "name": "@deepseek-ai/dsh-client-web-react", "domain": "client", "sub": "web-react", "path": "client/web-react", "description_zh": "slot 终端设计的外壳侧 React 胶水:createSlotRenderer(外壳安装到运行时 SlotRegistry 的 SlotRenderer 实现)、SessionProvider(由框架接入的 render prop,也作为标准 seat 注入到声明会话 scope 子 slot 的配置项)、bindSnapshotSelector(唯一的钩子构造器:主机与引擎只传递裸 observable source;每个钩子在此绑定,并按 source 缓存)、useInvoke。", "description_en": "Shell-side React glue: createSlotRenderer, SessionProvider, bindSnapshotSelector (uSES bridge), useInvoke" }, { "id": "@deepseek-ai/dsh-code-runtime", "name": "@deepseek-ai/dsh-code-runtime", "domain": "code-runtime", "sub": "code-runtime", "path": "code-runtime/code-runtime", "description_zh": "CodeRuntime(ctx.codeRuntime)定义代码运行时做什么,即针对宿主提供的一组异步绑定运行一段模型编写的程序,并报告 { value, logs, error? },而不规定如何实现。", "description_en": "Abstract code-execution seam (ctx.codeRuntime) for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-code-runtime-worker-thread", "name": "@deepseek-ai/dsh-code-runtime-worker-thread", "domain": "code-runtime", "sub": "code-runtime-worker-thread", "path": "code-runtime/code-runtime-worker-thread", "description_zh": "这是 @deepseek-ai/dsh-code-runtime seam 的 worker 线程实现:WorkerThreadCodeRuntime 会在每次运行中使用一个全新的 Node worker_threads.Worker,输入 TypeScript,由宿主侧剥离类型,通过消息端口桥接绑定,输出 { value, logs, error? }。这是隔离措施,而非安全边界:其信任立场有意与 bash 等价(参见 Code Mode Agent Note 的 Trust posture 章节),但提供 bash 没有的隔离:独立 isolate、空环境、堆上限与强制终止。", "description_en": "Worker-thread implementation of the DeepSeek Harness code-execution seam" }, { "id": "@deepseek-ai/dsh-command-compact", "name": "@deepseek-ai/dsh-command-compact", "domain": "compaction", "sub": "command-compact", "path": "compaction/command-compact", "description_zh": "通过 ctx.compaction 提供面向用户的 /compact 压缩(compaction)控制。该插件通过 ctx.commands 注册一个全局命令,因此组合中的每个命令适配器都能发现并执行它,无需模型轮次。排队手动压缩 Agent Note拥有接纳、锁与持久性决策。", "description_en": "Human-facing slash command for explicit session compaction" }, { "id": "@deepseek-ai/dsh-compaction", "name": "@deepseek-ai/dsh-compaction", "domain": "compaction", "sub": "compaction", "path": "compaction/compaction", "description_zh": "CompactionEngine(ctx.compaction)定义压缩(compaction)做什么,即判定历史记录是否过大,并将较早范围摘要为单个表层节点,但不规定如何实现。", "description_en": "Abstract compaction service seam (ctx.compaction) for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-compaction-basic", "name": "@deepseek-ai/dsh-compaction-basic", "domain": "compaction", "sub": "compaction-basic", "path": "compaction/compaction-basic", "description_zh": "基础压缩(compaction)后端:BasicCompactionEngine 实现 @deepseek-ai/dsh-compaction Service Definition,使用可复用的 ctx.tokenMeter 压力、token 预算保留与摘要。摘要是直接的一次性 ctx.llm.stream() 调用,它会回放会话前缀以复用提供方的 KV Cache(可在 llm/stream 处拦截)。", "description_en": "Token-meter-driven compaction policy and LLM summarization backend for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-compaction-tool-result-pruner", "name": "@deepseek-ai/dsh-compaction-tool-result-pruner", "domain": "compaction", "sub": "compaction-tool-result-pruner", "path": "compaction/compaction-tool-result-pruner", "description_zh": "可安全回放、不依赖模型的剪枝服务(ctx.toolResultPruner)。它会将超出预算的 tool/result 表层节点改写为长度受限的头部、固定省略标记和长度受限的尾部,同时在仅追加会话日志中保留完整原始事件。", "description_en": "Replay-safe model-free head/middle/tail pruning for tool-result surface nodes" }, { "id": "@deepseek-ai/dsh-agent-instructions", "name": "@deepseek-ai/dsh-agent-instructions", "domain": "context", "sub": "agent-instructions", "path": "context/agent-instructions", "description_zh": "为每个会话加载与 AGENTS.md 兼容的工作区指令文件。该插件会将初始的用户全局指令与项目指令链注入持久历史,随后发现嵌套文件,并在成功的文件系统工具调用后报告后续变更或移除。", "description_en": "Workspace context loader for AGENTS.md/CLAUDE.md instruction files" }, { "id": "@deepseek-ai/dsh-session-reference", "name": "@deepseek-ai/dsh-session-reference", "domain": "context", "sub": "session-reference", "path": "context/session-reference", "description_zh": "ctx.sessionReferenceResolver 会把其他会话准备为有界、只读快照,作为带来源信息、面向模型的上下文。它消费 ctx.sessionQuery 与后端无关的 compact 检查点标记;不需要 SQLite FTS。支持跨会话 mention 的宿主可以主动启用该服务。", "description_en": "Cross-session snapshot references and durable untrusted model context (ctx.sessionReferenceResolver)" }, { "id": "@deepseek-ai/dsh-time-context", "name": "@deepseek-ai/dsh-time-context", "domain": "context", "sub": "time-context", "path": "context/time-context", "description_zh": "可选的持久上下文,包含当前带时区时间、附加到当前开放请求的浏览器时区,以及在模型请求准备期间采样的经过时长。默认组合不启用它;Schedule Web overlay 会挂载它,使模型可以按用户的浏览器时区解释未明确限定时区的日期和时间。决策记录:持久 time-context Agent Note。", "description_en": "Opt-in durable per-step context with the current time and elapsed time" }, { "id": "@deepseek-ai/dsh-tmux-context", "name": "@deepseek-ai/dsh-tmux-context", "domain": "context", "sub": "tmux-context", "path": "context/tmux-context", "description_zh": "可选启用的持久上下文,记录本 agent(智能体)进程所在的 tmux session、window、pane,以及该 window 的 pane 树布局。在准备模型请求时每轮采样一次;随附 Web/无头组合不包含它。决策记录见:tmux-context Agent Note。", "description_en": "Opt-in durable per-step context with this agent's tmux pane and window location" }, { "id": "@deepseek-ai/dsh-agent", "name": "@deepseek-ai/dsh-agent", "domain": "core", "sub": "agent", "path": "core/agent", "description_zh": "Agent 接口、注册表、进程本地发起方作用域,以及 agent/ 事件词汇。每个插件(UI、钩子、编排器)都面向此处定义的 Agent handle 编程;它不依赖循环,因此循环可以替换。", "description_en": "Agent interface, registry, initiator scope, and event vocabulary for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-agent-default-model", "name": "@deepseek-ai/dsh-agent-default-model", "domain": "core", "sub": "agent-default-model", "path": "core/agent-default-model", "description_zh": "该部署默认值供入口在创建尚无会话级模型选择的 Agent 时使用。AgentDefaultModelConfig 提供 ctx.agentDefaultModel;dsh --profile headless 这类直接入口与 ApiProxy 这类由 Host 支撑的入口读取同一服务,而不是分别持有平行的提供方/模型默认值。", "description_en": "Default model selection shared by Agent entry points" }, { "id": "@deepseek-ai/dsh-agent-loop", "name": "@deepseek-ai/dsh-agent-loop", "domain": "core", "sub": "agent-loop", "path": "core/agent-loop", "description_zh": "agent(智能体)的唯一具体实现插件和循环驱动器。其包内部实现满足 Agent 接口,并驱动会话、轮次和步骤的生命周期。", "description_en": "The concrete agent loop plugin for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-agent-tool-presentation", "name": "@deepseek-ai/dsh-agent-tool-presentation", "domain": "core", "sub": "agent-tool-presentation", "path": "core/agent-tool-presentation", "description_zh": "agent preset 用来声明「模型看到的工具是哪一种形态」的那一行:native(全部 schema)、code(只有 run_code 加一份生成的 TypeScript SDK)或 both。", "description_en": "Agent-plane presentation selector: composes one agent's tools as Code Mode, native, or both" }, { "id": "@deepseek-ai/dsh-scope", "name": "@deepseek-ai/dsh-scope", "domain": "core", "sub": "scope", "path": "core/scope", "description_zh": "带作用域的注册原语。createScope(ctx, key) 创建一个带标签的 Cordis 上下文,其底层 fiber 拥有通过该上下文进行的每项注册。scopeOf(ctx) 读取标签;scopeTarget(base, key) 将带作用域的事件路由到键相同的监听器,同时让无作用域监听器保持全局可见。键可以构成可选的父链(bindScopeParent):注册视图沿链向下继承——子作用域看得见祖先各层,近者遮蔽远者——事件放行沿链向上扩展——标签为祖先的监听器能收到子孙键的事件,反向永不成立。agent loop(智能体循环)为每个存活的 agent 创建一个作用域,agent preset 的常驻挂载则是其 agent 们的父作用域,但该机制与键的具体含义无关,底层包无需依赖两者即可使用。", "description_en": "Scoped-context registration primitive (scope tags, scope-filtered event dispatch) for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-session", "name": "@deepseek-ai/dsh-session", "domain": "core", "sub": "session", "path": "core/session", "description_zh": "事件溯源的会话日志和内存存储。Session 是 agent(智能体)全部交互历史的仅追加真源,LLM(大语言模型)消息历史由它派生。原始日志之上维护一个 surface 层(产生消息事件的有序投影),以便高效派生和压缩(compaction)。", "description_en": "Event-sourced session store for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-system-prompt", "name": "@deepseek-ai/dsh-system-prompt", "domain": "core", "sub": "system-prompt", "path": "core/system-prompt", "description_zh": "系统提示词组装注册表。插件可以贡献有序段、工具 schema 和具名变量。循环在每个步骤组装一次,并将结果渲染为完整的模型提示词。此插件拥有静态 harness 身份和全局部署 persona;agent(智能体)作用域的 persona 会遮蔽全局默认值。", "description_en": "System prompt assembly registry for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-tools", "name": "@deepseek-ai/dsh-tools", "domain": "core", "sub": "tools", "path": "core/tools", "description_zh": "工具注册表与执行流水线。工具插件注册各自的 schema 和执行器;agent loop(智能体循环)依次让每次调用经过 tools/pre-execute(可扩展的允许/拒绝门禁)→ 已注册的单调守卫 → tools/execute(供超时/重试/指标插件使用的环绕分发包装层)→ tools/post-execute(检查/替换结果、附加上下文)→ 由工具定义持有的 finalizeContent 边界 → 仅观测的 tools/result 通知。注册表还决定以何种方式向模型呈现工具:mode 配置可以选择原生 Function Calling(函数调用)、Code Mode,或同时选择两者;单个 agent 可用 presentAs 为自己遮蔽该默认值。", "description_en": "Tool registry and execution pipeline for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-credentials", "name": "@deepseek-ai/dsh-credentials", "domain": "credentials", "sub": "credentials", "path": "credentials/credentials", "description_zh": "凭据 Service Definition(ctx.credentials)。一条准则,三个推论:", "description_en": "Abstract credential seam (ctx.credentials): settings carry references to secrets, providers own the values" }, { "id": "@deepseek-ai/dsh-credentials-local", "name": "@deepseek-ai/dsh-credentials-local", "domain": "credentials", "sub": "credentials-local", "path": "credentials/credentials-local", "description_zh": "文件型凭据提供方:四层来源,一套明确的优先级。", "description_en": "File-backed credentials provider ($DSH_HOME/.env under the live process environment) for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-e2b", "name": "@deepseek-ai/dsh-e2b", "domain": "e2b", "sub": "e2b", "path": "e2b/e2b", "description_zh": "一个 E2B 沙箱的共享生命周期所有者。文件系统与进程管理适配器注入 ctx.e2b,等待其唯一的 SDK 句柄,因此处于同一个远程 Linux 工作树与进程环境中。本包固定使用 e2b@2.29.1;可选组合见包族索引。", "description_en": "Shared E2B sandbox lifecycle for DeepSeek Harness provider adapters" }, { "id": "@deepseek-ai/dsh-fs-e2b", "name": "@deepseek-ai/dsh-fs-e2b", "domain": "e2b", "sub": "fs-e2b", "path": "e2b/fs-e2b", "description_zh": "@deepseek-ai/dsh-fs 提供方约定的 E2B 实现。它没有配置:先加载 @deepseek-ai/dsh-e2b,再用本服务取代 dsh-fs-local。该提供方使用所有者的远程 cwd 和 SDK 句柄,因此文件工具观察到的环境与 E2B 后端 Bash 进程相同。", "description_en": "E2B filesystem implementation for DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-subprocess-e2b", "name": "@deepseek-ai/dsh-subprocess-e2b", "domain": "e2b", "sub": "subprocess-e2b", "path": "e2b/subprocess-e2b", "description_zh": "@deepseek-ai/dsh-subprocess seam 的 E2B 实现。先加载 @deepseek-ai/dsh-e2b,再用本服务取代 dsh-subprocess-local。现有的 Bash、PTY 和 LSP 消费方随后会在共享远程沙箱中执行,无需 E2B 专用的能力包。", "description_en": "E2B subprocess implementation for DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-cordis-client-runner", "name": "@deepseek-ai/dsh-cordis-client-runner", "domain": "extensions", "sub": "cordis-client-runner", "path": "extensions/cordis-client-runner", "description_zh": "动态双半插件包的浏览器半。host 侧 runner 把每个定义的代码留在进程内存里,并经一条 cordis/request-run 事件向打开的页面发问「要不要运行它」;本包回答这个请求、把定义变成活的浏览器插件,并把 dynamicCordisRunner/retract 事件变回干净的页面。", "description_en": "Browser half of dynamic dual-half plugin packages: event subscription, closure evaluation, guard facade, and loader entries" }, { "id": "@deepseek-ai/dsh-cordis-host-runner", "name": "@deepseek-ai/dsh-cordis-host-runner", "domain": "extensions", "sub": "cordis-host-runner", "path": "extensions/cordis-host-runner", "description_zh": "由模型挂载的动态包在 host 侧的那一半:定义注册表、host 半所用的 node:vm 沙箱与 fiber 生命周期、invoke handler 表,以及由某个浏览器页面执行的 run 往返。以 ctx.dynamicCordisRunner 提供。面向模型的工具在 @deepseek-ai/dsh-tool-cordis 中;浏览器半由 @deepseek-ai/dsh-cordis-client-runner 装载。", "description_en": "Dynamic package definition registry, host-half sandbox lifecycle, and invoke handler table for model-mounted dual-half packages" }, { "id": "@deepseek-ai/dsh-tool-cordis", "name": "@deepseek-ai/dsh-tool-cordis", "domain": "extensions", "sub": "tool-cordis", "path": "extensions/tool-cordis", "description_zh": "自引用 Cordis 工具集:五个面向模型的工具,操作当前 DSH 进程中的实时运行时。注册表、vm 沙箱与浏览器广播属于 @deepseek-ai/dsh-cordis-host-runner(ctx.dynamic),本工具集注入它——只装这些工具而不装 runner 的组合永远不会激活它们。沙箱语义、动态包生命周期与组合及既定决策详见工具集 Agent Note。", "description_en": "Self-referential cordis toolset: inspect the live runtime, mount and dispose model-written plugins" }, { "id": "@deepseek-ai/dsh-client-ui-cordis", "name": "@deepseek-ai/dsh-client-ui-cordis", "domain": "extensions", "sub": "ui-cordis", "path": "extensions/ui-cordis", "description_zh": "Cordis 动态插件的浏览器半:一个覆盖整个框架的面板,操作 host 持有的全部定义;以及一张只读的 cordis_define 卡片,记录某个会话定义了什么。", "description_en": "Cordis dynamic-plugin definition card: the keyed cordis_define tool row with its run/stop switch" }, { "id": "@deepseek-ai/dsh-command-feedback", "name": "@deepseek-ai/dsh-command-feedback", "domain": "feedback", "sub": "command-feedback", "path": "feedback/command-feedback", "description_zh": "与触发方式无关的会话反馈,以及面向用户的 /feedback 采集。本包导出 recordFeedback(session, text);该函数会追加一个仅写入日志的 feedback/record 事件。该插件通过 ctx.commands 注册一个全局命令,因此每个已组合的命令适配器都能发现它;随附的 Web 客户端无需模型轮次即可执行。", "description_en": "Log-only session feedback producer and human-facing slash command" }, { "id": "@deepseek-ai/dsh-message-feedback", "name": "@deepseek-ai/dsh-message-feedback", "domain": "feedback", "sub": "message-feedback", "path": "feedback/message-feedback", "description_zh": "本包提供由 Host 拥有、针对单条已完成 assistant 消息的可编辑反馈。它注册 ctx.messageFeedback,在 storage-domain 中为每个 Session 持久化一条绑定生命周期的伴随记录(sidecar),并发布 Host messageFeedback.list、messageFeedback.put 与 messageFeedback.delete 一元 Remote 契约。它与不可变的 Session 级 feedback/record 事件相互独立,不执行遥测交接。消息反馈伴随记录 Agent Note拥有其设计边界。", "description_en": "Lifecycle-bound per-message rating and note sidecar for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-fs", "name": "@deepseek-ai/dsh-fs", "domain": "fs", "sub": "fs", "path": "fs/fs", "description_zh": "FileSystem(ctx.fs)定义同一个执行世界中的存储原语,包括解析路径、公开规范化进程路径与文件 URI、检查包含关系、完整或流式读取文本、有界读取原始字节、检查/列出元数据、原子写入和应用字面量编辑,但不规定实现方式。两个变更操作都可选 接收版本防护,因此 ctx.fs 本身就是完整且不受约束的存储 seam。本包还拥有由工具分派、政策插件监听的 fs/ 政策事件词汇。", "description_en": "Abstract filesystem capability seam (ctx.fs) for the DeepSeek Harness — vocabulary types, the FileSystem service (text IO + optional version-guarded atomic mutations), and the fs/* policy event vocabulary" }, { "id": "@deepseek-ai/dsh-fs-local", "name": "@deepseek-ai/dsh-fs-local", "domain": "fs", "sub": "fs-local", "path": "fs/fs-local", "description_zh": "ctx.fs 提供方约定(@deepseek-ai/dsh-fs)的本地文件系统实现。它使用宿主文件系统支持十二个 FileSystem 原语;将其作为插件加载会填充 ctx.fs。", "description_en": "Local-filesystem implementation of the DeepSeek Harness filesystem seam (ctx.fs)" }, { "id": "@deepseek-ai/dsh-fs-observation-policy", "name": "@deepseek-ai/dsh-fs-observation-policy", "domain": "fs", "sub": "fs-observation-policy", "path": "fs/fs-observation-policy", "description_zh": "fs-observation-policy 插件:它记录观测到的存在或缺失状态,并在 ctx.fs 提供方约定(@deepseek-ai/dsh-fs)之上增加编辑前读取和带防护的写入/编辑;它通过 fs/ 事件门禁参与,不是通过方法服务。该插件不注册 ctx.fsPolicy 服务,也没有公开的 read/write/edit/resolve 方法。它是文件系统栈的政策层:不是可替换 seam,而是不应位于 FileSystem 提供方基类上的政策。", "description_en": "File-context policy plugin for the DeepSeek Harness — observed-state, read-before-edit, and version-guarded write/edit added over the ctx.fs provider seam through the fs/* event gate (no service API)" }, { "id": "@deepseek-ai/dsh-fs-sandbox", "name": "@deepseek-ai/dsh-fs-sandbox", "domain": "fs", "sub": "fs-sandbox", "path": "fs/fs-sandbox", "description_zh": "SandboxedFileSystem 扩展 LocalFileSystem 并注册为 ctx.fs。它逐字继承全部文本存储机制(解析、stat、读取/流式读取、列出、原子写入、按读取、匹配、写入顺序执行的编辑临界区),只为 writeText/editText 增加按调用的模式围栏。读取始终直接通过:所有模式都允许读取。", "description_en": "Sandbox-enforcing implementation of the DeepSeek Harness filesystem seam: fences write/edit by the per-call sandbox mode (read-only denies mutation, workspace-write contains it to the workspace + temp roots) while reads pass through" }, { "id": "@deepseek-ai/dsh-tool-fs", "name": "@deepseek-ai/dsh-tool-fs", "domain": "fs", "sub": "tool-fs", "path": "fs/tool-fs", "description_zh": "面向模型的文件系统工具(read、read_image、write、edit)及其执行器。这是文件系统栈的消费方层:拥有工具名称、JSON Schema、参数校验、提示词段、读取窗口逻辑和结果格式化。它直接通过 ctx.fs 提供方约定(@deepseek-ai/dsh-fs)读取/写入/编辑。新鲜度/观察策略由独立插件(@deepseek-ai/dsh-fs-observation-policy)通过 fs/ 事件门禁贡献;工具不与其方法耦合。使用施加沙箱限制的提供方时,逐会话执行需要共享沙箱策略服务,工具还会为文件系统变更提供升权路径。", "description_en": "Model-facing filesystem tools (read, write, edit) over the DeepSeek Harness filesystem seam (ctx.fs)" }, { "id": "@deepseek-ai/dsh-tool-fs-search", "name": "@deepseek-ai/dsh-tool-fs-search", "domain": "fs", "sub": "tool-fs-search", "path": "fs/tool-fs-search", "description_zh": "面向模型的文件系统发现工具(glob、grep)由 打包的 ripgrep 二进制(@vscode/ripgrep)支持,而不是由 ctx.fs 提供方方法或系统 rg 安装支持。注册是无条件的:二进制随 NPM 依赖一起交付,因此没有加载期可用性探针。每次调用都通过 ctx.subprocess seam 以固定 argv 向量 spawn 该二进制(前缀 --no-config,使宿主的 RIPGREP_CONFIG_PATH 无法向不受约束的 spawn 注入 --pre 预处理器;模型控制的值是普通 argv 元素——不存在 shell 层,因此不涉及 shell 引号处理),解析原始 rg 输出,并返回相对于工作目录的规范值。", "description_en": "Model-facing filesystem discovery tools (glob, grep) backed by the packaged ripgrep binary (@vscode/ripgrep)" }, { "id": "@deepseek-ai/dsh-tool-str-replace-editor", "name": "@deepseek-ai/dsh-tool-str-replace-editor", "domain": "fs", "sub": "tool-str-replace-editor", "path": "fs/tool-str-replace-editor", "description_zh": "基于 ctx.fs、面向模型的独立 str_replace_editor。它可与持久 Bash、一次性 Bash、沙箱 Bash 或其他终端接口组合。", "description_en": "Model-facing view, create, literal replace, and line insert tool over the Harness filesystem service" }, { "id": "@deepseek-ai/dsh-command-goal", "name": "@deepseek-ai/dsh-command-goal", "domain": "goal", "sub": "command-goal", "path": "goal/command-goal", "description_zh": "面向用户的 /goal 控制,基于 ctx.goals 实现。该插件通过 ctx.commands 注册一个全局命令,因此每个已组合的命令适配器都能发现并执行它,无需模型轮次。用户 goal 命令 Agent Note 负责用户体验与组合决策。", "description_en": "Human-facing slash command for persisted same-session goals" }, { "id": "@deepseek-ai/dsh-goal", "name": "@deepseek-ai/dsh-goal", "domain": "goal", "sub": "goal", "path": "goal/goal", "description_zh": "事件溯源的同会话目标状态。该服务在 agent(智能体)的现有会话中保留一个当前待完成目标,同时将继续执行的权限作为进程本地续行启用状态。goal 领域 Agent Note 负责设计理由;goal 类型目录记录具体的数据形状。", "description_en": "Event-sourced same-session goal state and lifecycle service for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-goal-round-driver", "name": "@deepseek-ai/dsh-goal-round-driver", "domain": "goal", "sub": "goal-round-driver", "path": "goal/goal-round-driver", "description_zh": "ctx.goals 的同会话续行驱动器。它通过公开 Agent 与会话服务,把 phase 为 active 且已启用续行的目标转换为连续的 Goal Round;同会话驱动器 Agent Note 记载竞态与生命周期方面的设计理由。", "description_en": "Race-fenced same-session goal-round driver" }, { "id": "@deepseek-ai/dsh-tool-goal", "name": "@deepseek-ai/dsh-tool-goal", "domain": "goal", "sub": "tool-goal", "path": "goal/tool-goal", "description_zh": "ctx.goals 的面向模型控制 API:get_goal、create_goal 和 update_goal。goal 工具 Agent Note 负责权限拆分与 Codex 风格用户体验。", "description_en": "Model-facing same-session goal tools with execution-time authority checks" }, { "id": "@deepseek-ai/dsh-repeat-tool-reminder", "name": "@deepseek-ai/dsh-repeat-tool-reminder", "domain": "guard", "sub": "repeat-tool-reminder", "path": "guard/repeat-tool-reminder", "description_zh": "这是一个仅提供建议的循环中断器,而非面向模型的工具:它不会出现在工具列表中,不会否决或改写调用,只增加一种行为。它监视每个 agent(智能体)的工具调用流,统计以完全相同的规范化参数连续调用同一工具的次数;达到所配置的连续次数时,它会注入逐级增强的提示,要求模型停止重复、重新阅读上一次结果,并改用其他方案或结束任务。究竟是换一种方式重试、收集更多证据还是完成任务,仍完全由模型决定:合理的重复调用既不会延迟,也不会受阻。决策记录见 repeat-tool-reminder Agent Note。", "description_en": "Repeat-tool-call guard plugin: advisory reminders when an agent loops on identical tool calls" }, { "id": "@deepseek-ai/dsh-tool-call-timeout-policy", "name": "@deepseek-ai/dsh-tool-call-timeout-policy", "domain": "guard", "sub": "timeout-policy", "path": "guard/timeout-policy", "description_zh": "工具调用超时强制执行器:单个 tools/execute 环绕分发监听器,会在 exec.signal 上设置单次调用的协作式截止时间;适用于声明了 timeoutMs 且声明位于其 ToolDefinition 上的工具。该截止时间先到时,它返回结构化 TOOL_TIMEOUT 结果。预算从工具自身的声明中读取(ToolDefinition.timeoutMs,由拥有该工具的插件设置),因此此插件是零配置的。它是 tools/execute 包装层的参考实现,也是面向模型工具调用预算的强制执行归属地(超时库 Agent Note)。", "description_en": "Tool-call timeout policy: a tools/execute wrapper that arms a per-tool deadline on exec.signal and returns TOOL_TIMEOUT when it wins" }, { "id": "@deepseek-ai/dsh-hook-protocol", "name": "@deepseek-ai/dsh-hook-protocol", "domain": "hooks", "sub": "hook-protocol", "path": "hooks/hook-protocol", "description_zh": "Claude Code/Codex hook 协议格式(wire format)的共享核心。它不是 Cordis 插件:不注册也不注入任何内容。它是一个库,提供两个桥接插件(@deepseek-ai/dsh-hooks-claude-code、@deepseek-ai/dsh-hooks-codex)导入的方言无关原语,使两者都无需重复实现协议中相同的部分。", "description_en": "Shared Claude Code / Codex hook wire protocol: matcher engine, stdin/exit-code/stdout codec, multi-hook merge, and hook/* session events" }, { "id": "@deepseek-ai/dsh-hooks-claude-code", "name": "@deepseek-ai/dsh-hooks-claude-code", "domain": "hooks", "sub": "hooks-claude-code", "path": "hooks/hooks-claude-code", "description_zh": "一个 Cordis 插件,在 harness 的规范拦截点上运行用户现有 Claude Code hook 配置(hooks.json 或 settings 文件的 hooks key)中受支持的 command hook 子集。它是 hooks 子系统的 CC 方言部分,负责桥接中 CC 格式的逐事件 stdin payload、CC 的 env 和 ${CLAUDE_PLUGIN_ROOT}/${CLAUDE_PROJECT_DIR} 替换,以及将 hook 的中性结果映射为 harness 的类型化 Decision。方言无关原语(matcher、退出码/stdout codec、ctx.shell 执行、最严格合并、hook/ 事件)来自 @deepseek-ai/dsh-hook-protocol。", "description_en": "Bridge plugin: run a Claude Code hooks.json / settings hook config on the DeepSeek Harness interception seams" }, { "id": "@deepseek-ai/dsh-hooks-codex", "name": "@deepseek-ai/dsh-hooks-codex", "domain": "hooks", "sub": "hooks-codex", "path": "hooks/hooks-codex", "description_zh": "一个 Cordis 插件,在 harness 的规范拦截点上运行用户现有 Codex hook 配置的受支持子集。它是 hooks 子系统中采用 Codex 方言 的一侧。方言无关原语来自 @deepseek-ai/dsh-hook-protocol;该桥接负责处理 Codex 形状的 payload、matcher 模式和决策映射。", "description_en": "Bridge plugin: run a Codex hooks.json hook config on the DeepSeek Harness interception seams" }, { "id": "@deepseek-ai/dsh-host-apiproxy", "name": "@deepseek-ai/dsh-host-apiproxy", "domain": "host", "sub": "apiproxy", "path": "host/apiproxy", "description_zh": "所有客户端共用的 API 网关由三部分组成:TypeScript API 约定(src/api/,不依赖 Node,可从浏览器导入)、fetch 载体对(src/fetch/:宿主侧的 toFetchHandler,以及客户端侧的 AbstractApiClient 与平台子类)和宿主侧实现(src/api-proxy.ts:createApiProxy 加上默认导出的 ApiProxyService 网关插件,其配置为 {nativeOpen?, sessionExportCompressionLevel?, coldBlankProbeMaxBytes?},提供 ctx.apiProxy)。该包不注册任何路由;HTTP 等载体自行包装 ctx.apiProxy。", "description_en": "API gateway: the ApiProxy contract (api/), the fetch carrier pair (fetch/), and the host-side gateway plugin providing ctx.apiProxy" }, { "id": "@deepseek-ai/dsh-host-directory-picker", "name": "@deepseek-ai/dsh-host-directory-picker", "domain": "host", "sub": "directory-picker", "path": "host/directory-picker", "description_zh": "web GUI 宿主的工作区目录选择是一项能力 seam。抽象的 DirectoryPicker 服务(ctx.directoryPicker)是其 Service Definition。该服务只提供一个方法:capability(),它返回一个可辨识联合类型,说明操作者如何选择目录。后端之间的用户交互不同,不只是实现不同:{ kind: 'native', pick(signal) } 在宿主屏幕上打开一个原生 OS 选择器(-native);{ kind: 'browse', list(path?), createDirectory(path, name) } 提供应用内浏览器使用的列举与创建操作,也能服务于无法访问 OS 对话框的远程客户端(-browse)。", "description_en": "Abstract workspace-directory picking seam (ctx.directoryPicker) for the DeepSeek Harness web GUI host" }, { "id": "@deepseek-ai/dsh-host-directory-picker-auto", "name": "@deepseek-ai/dsh-host-directory-picker-auto", "domain": "host", "sub": "directory-picker-auto", "path": "host/directory-picker-auto", "description_zh": "目录选择 seam 的自适应选择器:一个只有 node 半侧的插件,在启动时一次性判定宿主处境,并把匹配的双面后端——-native 或 -browse——作为真实的 Loader 条目挂进内存根树(绝不持久化到配置文件;根树的 write() 是 no-op)。由于后端以普通条目的形式到达,其 browser half 被 client 模块表发现的方式与配置行完全相同,因此对判定出的选择,seam 的“一行同时换两面”不变式依然成立。卸载该选择器会再次移除该条目,连同两面一起卸载。", "description_en": "Adaptive chooser of the directory-picker seam: resolves the host situation at boot and mounts the native or browse backend for the DeepSeek Harness web GUI host" }, { "id": "@deepseek-ai/dsh-host-directory-picker-browse", "name": "@deepseek-ai/dsh-host-directory-picker-browse", "domain": "host", "sub": "directory-picker-browse", "path": "host/directory-picker-browse", "description_zh": "目录选择 seam 的应用内浏览后端:BrowseDirectoryPicker 以 browse 能力注册 ctx.directoryPicker——基于 Node 标准库(跨 OS 适配本就由它承担)提供单层目录列举与子目录创建。宿主屏幕上不渲染任何东西,因此该后端能服务原生后端无法触及的远程客户端。", "description_en": "In-app browsing backend of the directory-picker seam (listing/creation primitives over the host filesystem)" }, { "id": "@deepseek-ai/dsh-host-directory-picker-native", "name": "@deepseek-ai/dsh-host-directory-picker-native", "domain": "host", "sub": "directory-picker-native", "path": "host/directory-picker-native", "description_zh": "目录选择 seam 的原生 OS 选择器后端:NativeDirectoryPicker 以 native 能力注册 ctx.directoryPicker,其 pick(signal) 每次调用打开一个原生选择器并解析出所选绝对路径(取消时为 null)。平台工具不经 shell 调用:macOS 使用 osascript,Linux 使用 Zenity 并以 KDialog 回退;调用方的中止信号会终止原生进程。Windows 在 spawn 的子进程中打开现代 IFileOpenDialog——由 koffi 在子进程主线程上驱动的 COM 会话,采用宿主接受的最佳线程 DPI 感知(优先 per-monitor-v2),中止时向对话框线程投递 WM_CLOSE。", "description_en": "Native-OS-chooser backend of the directory-picker seam for the DeepSeek Harness web GUI host" }, { "id": "@deepseek-ai/dsh-host-frontend-static", "name": "@deepseek-ai/dsh-host-frontend-static", "domain": "host", "sub": "frontend-static", "path": "host/frontend-static", "description_zh": "Web 壳的 SPA dist 服务器:一个函数插件(配置为 {distIndex}),占据 webserver 的唯一回退席位,并按壳层锁定的语义服务已构建的前端目录——越出 dist 根目录的遍历返回 403,任何未命中项都以 HTTP 200 回退到 index.html(SPA 路由),未知扩展名按 application/octet-stream 提供,GET/HEAD 之外的方法在没有匹配的具名路由时返回 405。每个 index 响应都会经过 webserver 已注册的 index 转换器(applyIndexTaps),启动 manifest(元数据清单)就是经这条路径送达页面的。", "description_en": "SPA dist server for the Web shell: owns the webserver fallback seat, serving the built frontend with index-tap injection, traversal rejection, and SPA index fallback" }, { "id": "@deepseek-ai/dsh-host-plugin-inventory", "name": "@deepseek-ai/dsh-host-plugin-inventory", "domain": "host", "sub": "plugin-inventory", "path": "host/plugin-inventory", "description_zh": "当前 Cordis Loader 树的只读 Host 投影。PluginInventoryGateway 注册 pluginInventory 服务,并发布一个由 Typert 生成的直接 Remote:pluginInventory/list。每次调用都直接读取 ctx.loader.entries(),跳过结构性的 group 行,再按 Loader 顺序返回其余条目,并且只包含 Loader 条目 id、模块标识、有效启用状态与当前根 Fiber 阶段。", "description_en": "Read-only Remote projection of current Cordis Loader plugin state" }, { "id": "@deepseek-ai/dsh-host-webserver", "name": "@deepseek-ai/dsh-host-webserver", "domain": "host", "sub": "webserver", "path": "host/webserver", "description_zh": "Web HTTP 与 upgrade route 注册插件(默认导出 WebServer,配置为 {host, port}):一个在激活时开始监听的 node:http 服务器,提供 ctx.webServer。register(route) 添加具名的 exact/prefix HTTP route;registerUpgrade(route) 添加精确 pathname 的 upgrade route;同一张表内的重复路径会抛错,因为 route 模式是组合层约定,冲突即配置错误;两者返回的 disposer 都会移除注册。registerFallback(handler) 注册一个 handler,处理所有未被具名 route 命中的请求。", "description_en": "Web route-registration plugin: HTTP and upgrade routes, index transform taps, and static dist fallback; knows no harness concepts" }, { "id": "@deepseek-ai/dsh-anonymous-user-id", "name": "@deepseek-ai/dsh-anonymous-user-id", "domain": "identity", "sub": "anonymous-user-id", "path": "identity/anonymous-user-id", "description_zh": "会话遥测、直接反馈确认与 DeepSeek 提供方请求共用的匿名身份。getOrCreateAnonymousUserId() 返回一个限定于单个 harness home 的随机 UUID v4,并以裸行形式持久化到 $DSH_HOME/.anonymous-user-id(未设置 DSH_HOME 时为 ~/.dsh/.anonymous-user-id)。OpenTelemetry 后端将其作为 Resource 的 user.id 上报;/feedback 在确认文本中包含同一个值;dsh-llm-deepseek 则通过 x-deepseek-harness-user-id 发送该值,使接收系统无需独立生成身份即可关联记录。", "description_en": "Shared anonymous user identity for DeepSeek Harness telemetry and feedback correlation" }, { "id": "@deepseek-ai/dsh-commands", "name": "@deepseek-ai/dsh-commands", "domain": "interaction", "sub": "commands", "path": "interaction/commands", "description_zh": "由插件负责、供交互式 UI 适配器使用的面向用户命令注册表。插件命令注册 Agent Note定义了其边界与分发约定。", "description_en": "Plugin-owned human command registry for DeepSeek Harness UIs" }, { "id": "@deepseek-ai/dsh-permission-presets", "name": "@deepseek-ai/dsh-permission-presets", "domain": "interaction", "sub": "permission-presets", "path": "interaction/permission-presets", "description_zh": "通过 ctx.permissionPresets(PermissionPresetService)提供面向用户的权限预设。每个配置名称都会将 sandbox/mode 与 approval/policy 组成一组;默认项为 workspace-write(workspace-write + ask)和 danger-full-access(danger-full-access + never)。UI 适配器可以将该表作为单个选择器公开,而沙箱执行与审批仍分别消费各自的调节项。", "description_en": "User-facing permission presets (ctx.permissionPresets) for the DeepSeek Harness: one product-level Permissions select bundling the sandbox-mode and approval-policy knobs, written through to their own session events" }, { "id": "@deepseek-ai/dsh-tool-ask-user", "name": "@deepseek-ai/dsh-tool-ask-user", "domain": "interaction", "sub": "tool-ask-user", "path": "interaction/tool-ask-user", "description_zh": "模型侧 ask_user_question 工具,基于 ctx.userQuestions 实现。当模型需要确认、选择结果或缺失的信息才能继续时,它可以借此向用户提出简明问题。", "description_en": "Model-facing ask_user_question tool over the ctx.userQuestions seam" }, { "id": "@deepseek-ai/dsh-user-approval", "name": "@deepseek-ai/dsh-user-approval", "domain": "interaction", "sub": "user-approval", "path": "interaction/user-approval", "description_zh": "与通道无关的一次性审批 seam。ctx.approval.request(req) 返回 allowed-once、rejected、cancelled 或 unavailable;应答者缺失或失败时会以拒绝方式关闭,授权也只适用于所请求的操作。确切事件签名见 approval.md 的生成区块。", "description_en": "User-approval seam (ctx.approval) for the DeepSeek Harness: one-shot permission decisions dispatched to composed answerers over the approval/request waterfall, fail-closed by default" }, { "id": "@deepseek-ai/dsh-user-questions", "name": "@deepseek-ai/dsh-user-questions", "domain": "interaction", "sub": "user-questions", "path": "interaction/user-questions", "description_zh": "用户交互 Service Definition。它定义 ctx.userQuestions,供面向模型的工具或权限插件在需要暂停工作并询问人类决定时使用。", "description_en": "Abstract user-questions seam (ctx.userQuestions) for asking the human during agent runs" }, { "id": "@deepseek-ai/dsh-jobs", "name": "@deepseek-ai/dsh-jobs", "domain": "jobs", "sub": "jobs", "path": "jobs/jobs", "description_zh": "后台任务注册表约定(ctx.jobs)。抽象的 JobRegistry 及其词汇类型在同一份约定下为长时间运行的生产方提供共享 id、owner 隔离、读取、取消、等待、通知和清理;进程局部注册表位于 dsh-jobs-local。生产方插件使用其不透明 id namespace 扩展 JobKindMap。", "description_en": "Background job registry (ctx.jobs) for the DeepSeek Harness — shared ids, owner isolation, polling, cancellation, and completion listeners for long-running tool work" }, { "id": "@deepseek-ai/dsh-jobs-local", "name": "@deepseek-ai/dsh-jobs-local", "domain": "jobs", "sub": "jobs-local", "path": "jobs/jobs-local", "description_zh": "@deepseek-ai/dsh-jobs 注册表约定的进程本地实现:LocalJobRegistry 把每条记录保存在内存中,按 kind 签发 -N id,并且只交出全新快照,从不交出实时状态。作为插件加载后即注册为 ctx.jobs。", "description_en": "Process-local implementation of the DeepSeek Harness background job registry seam" }, { "id": "@deepseek-ai/dsh-tool-jobs", "name": "@deepseek-ai/dsh-tool-jobs", "domain": "jobs", "sub": "tool-jobs", "path": "jobs/tool-jobs", "description_zh": "ctx.jobs 的面向模型控制器:三个与 kind 无关的工具、完成通知和一个后台工作提示词区段。加载该插件会附加 ctx.jobs.start() 所要求的控制器。", "description_en": "Model-facing background job control tools (job_output, job_list, job_kill) over the ctx.jobs registry" }, { "id": "@deepseek-ai/dsh-llm", "name": "@deepseek-ai/dsh-llm", "domain": "llm", "sub": "llm", "path": "llm/llm", "description_zh": "提供方无关的 LLM(大语言模型)词汇与抽象服务。本包定义 agent loop(智能体循环)、会话日志和所有插件共同使用的规范词汇。", "description_en": "Provider-neutral LLM service interface for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-llm-deepseek", "name": "@deepseek-ai/dsh-llm-deepseek", "domain": "llm", "sub": "llm-deepseek", "path": "llm/llm-deepseek", "description_zh": "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 协议。", "description_en": "DeepSeek chat-completions adapter for the DeepSeek Harness LLM seam" }, { "id": "@deepseek-ai/dsh-llm-pi-ai", "name": "@deepseek-ai/dsh-llm-pi-ai", "domain": "llm", "sub": "llm-pi-ai", "path": "llm/llm-pi-ai", "description_zh": "基于 @earendil-works/pi-ai 的 harness LLM(大语言模型)seam 通用多提供方适配器。一个插件实例拥有一份以路由为键的提供方 profile 字典;每个请求使用 GenerateOptions.provider 选择 profile,并针对该路由已配置的 catalog 解析 GenerateOptions.model。点名了已安装 pi-ai 提供方的路由会继承其端点、协议格式(wire format)与模型 catalog 作为默认值,并逐字段覆盖;pi-ai 未提供的路由则整体声明出来,因此接入 OpenAI 兼容网关、自建服务,或比已安装 catalog 更新的提供方,都属于配置而非改代码。", "description_en": "pi-ai-backed DeepSeek adapter for the DeepSeek Harness LLM seam (design-verification twin of dsh-llm-deepseek)" }, { "id": "@deepseek-ai/dsh-llm-retry", "name": "@deepseek-ai/dsh-llm-retry", "domain": "llm", "sub": "llm-retry", "path": "llm/llm-retry", "description_zh": "一个函数插件,通过 agent loop(智能体循环)在已关闭步骤上触发的 agent/request-error waterfall(瀑布式事件)应用确切提供方重试策略。它不包装 ctx.llm.stream():每次适配器调用仍是一次提供方尝试,每次重试都会开启新的编号轮次。", "description_en": "Provider-routed LLM request retry policy for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-token-meter", "name": "@deepseek-ai/dsh-token-meter", "domain": "llm", "sub": "token-meter", "path": "llm/token-meter", "description_zh": "通过单例 ctx.tokenMeter 服务进行具备回放感知能力的 token 测量。它从持久日志为每个会话推进一个隔离 fold,因此压缩(compaction)与其他压力敏感插件可以共享计量,无需依赖 CompactionEngine。", "description_en": "Replay-aware token measurement service (ctx.tokenMeter) for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-lsp", "name": "@deepseek-ai/dsh-lsp", "domain": "lsp", "sub": "lsp", "path": "lsp/lsp", "description_zh": "LSP 能力 seam:抽象 LspService(ctx.lsp)定义 harness 具备哪些语义代码导航能力(转到定义、查找引用、查找实现、悬停),并通过语言服务器提供方实现,不把模型约定绑定到本地子进程。", "description_en": "Abstract LSP capability seam (ctx.lsp) for the DeepSeek Harness — language-server provider registry keyed by branded id and extension mapping, order-independent per-query selection, normalized definition/references/implementation/hover requests and results, and the LspError taxonomy" }, { "id": "@deepseek-ai/dsh-lsp-stdio", "name": "@deepseek-ai/dsh-lsp-stdio", "domain": "lsp", "sub": "lsp-stdio", "path": "lsp/lsp-stdio", "description_zh": "ctx.lsp 的通用 stdio 语言服务器后端。一个插件实例接受一张命名服务器表,并逐配置项注册一个隔离的提供方。它通过 ctx.fs 读取,并通过 ctx.subprocess 启动,因此服务器与源文件始终位于已挂载的执行世界中。这是通用主机,而不是语言服务器目录或安装器:部署需要显式配置命令与映射,预设应放在 cordis.yml overlay 中。", "description_en": "Generic stdio language-server provider for the DeepSeek Harness LSP capability seam (ctx.lsp) — spawns configured servers, translates JSON-RPC, and serves transient-open goToDefinition/findReferences/goToImplementation/hover queries in the host filesystem namespace" }, { "id": "@deepseek-ai/dsh-tool-lsp", "name": "@deepseek-ai/dsh-tool-lsp", "domain": "lsp", "sub": "tool-lsp", "path": "lsp/tool-lsp", "description_zh": "面向模型的 lsp 工具,基于 ctx.lsp:一个只读工具,通过四种操作执行精确代码导航。它拥有模型 schema、提示词指引、坐标转换、结果限制与格式化,以及 UI 呈现;不导入任何提供方。", "description_en": "Model-facing lsp tool over the DeepSeek Harness LSP capability seam (ctx.lsp) — one read-only tool with goToDefinition/findReferences/goToImplementation/hover operations, one-based UTF-16 cursor coordinates, bounded location rendering, and hover normalization" }, { "id": "@deepseek-ai/dsh-mcp-client", "name": "@deepseek-ai/dsh-mcp-client", "domain": "mcp", "sub": "mcp-client", "path": "mcp/mcp-client", "description_zh": "MCP 客户端桥接插件:连接外部 Model Context Protocol 服务器,把它们的工具注册到 ctx.tools,使模型能够通过服务器限定名称(mcp____)将其作为原生工具使用。", "description_en": "MCP client bridge: connects to MCP servers and registers their tools on ctx.tools" }, { "id": "@deepseek-ai/dsh-plan-mode", "name": "@deepseek-ai/dsh-plan-mode", "domain": "plan", "sub": "plan-mode", "path": "plan/plan-mode", "description_zh": "按 agent(智能体)分别记录到日志的 plan 协作状态,提供由部署方配置的引导内容、用于直接进入的 /plan [message] 命令、用于直接退出的 /plan off 命令,以及经用户评审的 exit_plan_mode 退出方式。Plan mode 是软引导;沙箱模式和批准策略各自强制执行限制,且不读写 plan 状态。", "description_en": "Logged per-agent plan mode with deployment guidance, a direct slash command, and a user-reviewed exit" }, { "id": "@deepseek-ai/dsh-agent-presets", "name": "@deepseek-ai/dsh-agent-presets", "domain": "preset", "sub": "agent-presets", "path": "preset/agent-presets", "description_zh": "按 preset 组装 agent(智能体)。preset 是一个目录,其中放置一份 agent.cordis.yml;roster 在整个进程内只把它挂载一次(常驻 scope),命名它的每个会话通过把自己 agent 的 scope key 认父到该挂载(dsh-scope 的父链)来加入。挂载的工具、提示词段落与投影单元只存在一份,覆盖所有已加入的 agent——其插件本就按 Session/Agent 分键存状态,会话在共享实例内互不串扰——而完全没有 agent 的宿主读取方(冷读记录)也能按 preset id 解析到同一份常驻注册。", "description_en": "Per-session agent composition from preset cordis.yml files for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-persona", "name": "@deepseek-ai/dsh-persona", "domain": "preset", "sub": "persona", "path": "preset/persona", "description_zh": "把 agent(智能体)人设做成一个可组装的行:它既可以遮蔽部署级人设,也可以拥有完整系统提示词。", "description_en": "Composition-authored deployment persona section for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-invariants", "name": "@deepseek-ai/dsh-invariants", "domain": "runtime-diagnostics", "sub": "invariants", "path": "runtime-diagnostics/invariants", "description_zh": "用于包自有运行时不变量检查的可配置注册表服务。根插件注册 ctx.invariants;它不包含产品检查或产品包导入。每个工作区包都发布一个 ./invariant 配套入口,用于注册其精确 npm 包名。", "description_en": "Registry service for package-owned DeepSeek Harness runtime invariants" }, { "id": "@deepseek-ai/dsh-sandbox", "name": "@deepseek-ai/dsh-sandbox", "domain": "sandbox", "sub": "sandbox", "path": "sandbox/sandbox", "description_zh": "进程沙箱 Service Definition。负责定义 ctx.sandbox 服务约定(SandboxProvider)与 harness 共享的限制词汇:SandboxMode(read-only/workspace-write/danger-full-access,仅限文件操作)、SandboxEnforcement(full/partial,针对每种内核 ABI)、SandboxExecutionPolicy(每次调用的完整模式及工作区根目录)、SandboxPolicy(其中受限制的子集),以及故障时拒绝放行的 SANDBOX_UNAVAILABLE 错误。作为能力 seam 拆分中的 Service Definition 角色,它只依赖 cordis(及 harness 错误基类),绝不依赖后端。", "description_en": "Abstract process-sandbox seam (ctx.sandbox) for the DeepSeek Harness: same-world confinement vocabulary and the SandboxProvider contract" }, { "id": "@deepseek-ai/dsh-sandbox-local", "name": "@deepseek-ai/dsh-sandbox-local", "domain": "sandbox", "sub": "sandbox-local", "path": "sandbox/sandbox-local", "description_zh": "dsh-sandbox seam 的本地实现。它选择并缓存一个平台 runner:Linux 优先选择可工作的 bwrap,否则选择 Landlock;macOS 使用 Seatbelt;Windows 使用 ACL 受限令牌 runner。多个候选项会按顺序探测,只有一个候选项时则直接选择。", "description_en": "Local process-sandbox backends for the DeepSeek Harness sandbox seam: bwrap, the npm-distributed landlock-run launcher, macOS Seatbelt, or the Windows ACL restricted-token runner — functionally probed, fail-closed" }, { "id": "@deepseek-ai/dsh-sandbox-policy", "name": "@deepseek-ai/dsh-sandbox-policy", "domain": "sandbox", "sub": "sandbox-policy", "path": "sandbox/sandbox-policy", "description_zh": "沙箱策略解析的唯一归属位置:部署默认 SandboxMode 与回退根目录,加上每个会话的持久模式覆盖和不可变工作区根目录。每项负责强制执行的能力在每次调用时都会收到一项解析完成的模式与根目录策略;模型在每次请求前会收到当前策略,而不会另收一份能力清单。", "description_en": "Per-call sandbox policy resolver and current model context: deployment fallbacks plus each session's mode and workspace root, shared by every enforcing capability family" }, { "id": "@deepseek-ai/dsh-sandbox-windows-acl", "name": "@deepseek-ai/dsh-sandbox-windows-acl", "domain": "sandbox", "sub": "sandbox-windows-acl", "path": "sandbox/sandbox-windows-acl", "description_zh": "面向 harness 沙盒 seam 的 Windows 写入限制沙盒后端:一个 Node.js/koffi 实现的、对 huoyaoyuan/windows-acl-restrict-poc(10e4dfb,固定修订版本)机制的移植,挂载为 @deepseek-ai/dsh-sandbox-local 链中报告 enforcement: 'partial' 的 win32 一级(workspace-write / read-only 两种模式);Linux/macOS 后端在同一包中。", "description_en": "Windows ACL write-restriction sandbox backend (restricted-token spawn with capability-SID write allowlist) for the DeepSeek Harness sandbox seam" }, { "id": "@deepseek-ai/dsh-schedule", "name": "@deepseek-ai/dsh-schedule", "domain": "schedule", "sub": "schedule", "path": "schedule/schedule", "description_zh": "dsh-schedule 为未来创建的 live 根 agent(智能体)提供 3 个会话范围内的工具,用于管理持久提醒。版本 1 接受正的安全整数 after_seconds 延时、显式绝对时间 at 目标,以及至少 5 分钟的固定速率 every_seconds 间隔。会话事件日志拥有提醒状态;timer、工具值和模型 follow-up 都是该日志的可丢弃投影。", "description_en": "Agent-scoped durable after, at, and fixed-rate reminders over the session event log" }, { "id": "@deepseek-ai/dsh-sdk-client", "name": "@deepseek-ai/dsh-sdk-client", "domain": "sdk", "sub": "client", "path": "sdk/client", "description_zh": "以子进程方式驱动 DeepSeek Harness 运行时、走 stdio JSON-RPC 的 TypeScript 客户端 SDK——Python SDK(deepseek-harness)的设计孪生,共享同一个运行时对端、协议与分层:DeepSeekHarness 是高层自有运行 API,HarnessClient 是低层协议客户端。包(package)根枚举消费方接口:两层客户端、面向调用方的类型和 JsonRpcResponseError;源模块、规范化辅助函数与订阅投递机制不供消费方导入。纯库:不在任何 Cordis 上下文注册;它所 spawn 的运行时进程是一个完整 harness,其组成由自己的 cordis.yml 决定。", "description_en": "TypeScript client SDK for driving a DeepSeek Harness runtime subprocess over stdio JSON-RPC: the DeepSeekHarness high-level turns API and the lower-level HarnessClient" }, { "id": "@deepseek-ai/dsh-sdk-protocol", "name": "@deepseek-ai/dsh-sdk-protocol", "domain": "sdk", "sub": "protocol", "path": "sdk/protocol", "description_zh": "DeepSeek Harness SDK 运行时的共享协议格式(wire format):一个按换行分帧的 JSON-RPC 2.0 传输类,加上协议两端共同使用的具名请求、结果与通知类型。包根枚举协议消费方接口;源模块不支持深层导入。服务端是 dsh-sdk-jsonrpc-server 插件;客户端是 dsh-sdk-client(TypeScript)与 Python SDK(后者复现这些结构但不导入它们)。纯库——无插件、无 Config、无注册。", "description_en": "Shared wire protocol for the DeepSeek Harness SDK runtime: the newline-delimited JSON-RPC stdio transport and the named request, result, and notification types spoken between the runtime server and SDK clients" }, { "id": "@deepseek-ai/dsh-sdk-jsonrpc-server", "name": "@deepseek-ai/dsh-sdk-jsonrpc-server", "domain": "sdk", "sub": "server", "path": "sdk/server", "description_zh": "jsonrpc 插件通过 stdio 提供以换行符分隔的 JSON-RPC,使进程外 SDK 客户端能够驱动 harness agent(智能体)。HarnessSdkJsonRpcServer 负责协议方法和通知;传输与具名协议类型位于 dsh-sdk-protocol,与客户端 SDK 共享;jsonrpc-demo 提供外围的 cordis.yml 应用。", "description_en": "Stdio JSON-RPC server plugin for out-of-process DeepSeek Harness SDK clients" }, { "id": "@deepseek-ai/dsh-session-checkpoint-policy", "name": "@deepseek-ai/dsh-session-checkpoint-policy", "domain": "session", "sub": "session-checkpoint-policy", "path": "session/session-checkpoint-policy", "description_zh": "已持久化的 agent(智能体)的语义持久性策略。它会在模型适配器收到请求前、顶层工具正文可产生外部副作用前,以及每个 agent/pre-step 边界为事件溯源会话创建检查点,使前一响应与有序工具结果在下一个请求前已持久化。", "description_en": "Semantic session durability checkpoints before model requests and tool side effects" }, { "id": "@deepseek-ai/dsh-session-persistence", "name": "@deepseek-ai/dsh-session-persistence", "domain": "session", "sub": "session-persistence", "path": "session/session-persistence", "description_zh": "会话持久化是一项能力 seam。抽象的 SessionPersistence 服务(ctx.sessionPersistence)是其 Service Definition。它要求持久化后端持久存储、重新加载和列出会话,但不规定具体存储实现。该 seam 采用与 dsh-shell 相同的角色划分(见能力 seam):本包负责 Service Definition,同级包负责 Service Provider,Consumer 注入该服务。", "description_en": "Abstract durable session persistence seam (ctx.sessionPersistence) for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-session-persistence-jsonl", "name": "@deepseek-ai/dsh-session-persistence-jsonl", "domain": "session", "sub": "session-persistence-jsonl", "path": "session/session-persistence-jsonl", "description_zh": "JSONL 持久会话存储后端:SessionPersistence 的一个具体实现(dsh-session-persistence seam)。每个会话有一个仅追加的逻辑 JSONL 日志,默认存储为 .jsonl.zstd;禁用压缩时使用原始 .jsonl。", "description_en": "JSONL durable session persistence backend for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-session-persistence-sqlite", "name": "@deepseek-ai/dsh-session-persistence-sqlite", "domain": "session", "sub": "session-persistence-sqlite", "path": "session/session-persistence-sqlite", "description_zh": "SQLite 持久会话存储后端:第二个 SessionPersistence 提供方(见会话持久化),满足与 dsh-session-persistence-jsonl 相同的约定(仅追加、连续 seq、延迟实体化、在 load 时关闭中断轮次),但用 node:sqlite 行而非文件字节表达。", "description_en": "SQLite durable session persistence backend for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-session-projection", "name": "@deepseek-ai/dsh-session-projection", "domain": "session", "sub": "session-projection", "path": "session/session-projection", "description_zh": "会话投影 Service Definition 与驱动注册表。它拥有 ctx.sessionProjections:该注册表在已提交的会话事件上驱动每个已注册的投影单元,并向载体提供完整的最终值,目前包括 api-proxy 历史尾页和 session/projection 推送帧。领域注册的只是纯数学;驱动权归框架。session-projection RFC 记录了设计理由。", "description_en": "Session-projection seam: the merge-extensible projection type table, the provider contract, and the ctx.sessionProjections registry serving whole current values of log-derived per-session state" }, { "id": "@deepseek-ai/dsh-session-projection-cache", "name": "@deepseek-ai/dsh-session-projection-cache", "domain": "session", "sub": "session-projection-cache", "path": "session/session-projection-cache", "description_zh": "持久投影缓存(ctx.sessionProjectionCache):把每个已注册投影单元的状态持久化为检查点,基于域数据形态(domain data form)每会话一条记录(session_projcache 域——出厂 JSON 后端将其落在配置的存储根目录下、workspace.json 旁边)。设计权威:session-projection RFC(persisted projection cache 一节)。", "description_en": "Persisted projection cache (ctx.sessionProjectionCache): durable per-session projection checkpoints over the domain data form, throttled write-behind, and the cold-read ladder (cache row + persistence tail replay)" }, { "id": "@deepseek-ai/dsh-session-stats", "name": "@deepseek-ai/dsh-session-stats", "domain": "session", "sub": "session-stats", "path": "session/session-stats", "description_zh": "注册 sessionStats projection 单元的函数插件:从步边界、流式 chunk、工具配对与已组装的 assistant 消息折叠出全日志会话数字——轮/步计数以及 LLM、工具、首 token、解码墙钟时间——经 session-projection 缝对外提供(registry 快照、变更流,以及每一个 projection 载体:history 尾页、session/projection 推送帧、会话列表行)。客户端由此渲染分页与压缩都无法改变的全会话数字;参考消费者是 Web 聊天统计条,其窗口折叠以相同字段名充当无单元时的回退。", "description_en": "Whole-log conversation counts and wall times projection (sessionStats) for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-session-telemetry", "name": "@deepseek-ai/dsh-session-telemetry", "domain": "session", "sub": "session-telemetry", "path": "session/session-telemetry", "description_zh": "遥测(telemetry)Service Definition 声明 SessionTelemetrySink 后端约定,捕获协调器把会话记录传给实现该约定的任意上报 SDK 后端。捕获侧可跟随实时会话事件,也可按需回放权威会话日志前缀。本包调用 emit() 后就停止处理:批处理、重试、排队与丢失策略都属于后端自身的 SDK,本包既不规定也不包装。设计依据与被否决的替代方案见复活 Agent Note、反馈门控投递与无缓冲反馈回放。", "description_en": "SessionTelemetryBackend seam for the DeepSeek Harness: session-event capture, projection, redaction, and handoff to a reporting backend" }, { "id": "@deepseek-ai/dsh-session-telemetry-otel", "name": "@deepseek-ai/dsh-session-telemetry-otel", "domain": "session", "sub": "session-telemetry-otel", "path": "session/session-telemetry-otel", "description_zh": "遥测(telemetry)seam 的 OpenTelemetry 后端,也是部署方唯一要加载的条目。其 mode 决定 seam 是实时跟随会话事件、仅在记录反馈时回放权威日志,还是将遥测留在本地。上传模式会原样组合 OTel JS SDK(LoggerProvider → BatchLogRecordProcessor → OTLP/HTTP 日志导出器),把每条已交接记录映射到 logger.emit(),并使用两个插桩作用域(instrumentation scope):ledger 记录挂在 @deepseek-ai/dsh-session-sessionTelemetry-otel 下,运维记录挂在 @deepseek-ai/dsh-session-sessionTelemetry-otel/ops。", "description_en": "OpenTelemetry backend for the DeepSeek Harness telemetry seam: hands captured session records to the OTel JS SDK's log pipeline" }, { "id": "@deepseek-ai/dsh-session-title", "name": "@deepseek-ai/dsh-session-title", "domain": "session", "sub": "session-title", "path": "session/session-title", "description_zh": "由日志支持的会话标题,提供即时确定性回退与一个可选异步提供方。每次已接受的修订都是仅写入日志的 session/title 事件;foldSessionTitle() 与 ctx.sessionTitle.get() 会选择最新事件,并返回其事件 seq 和时间戳。", "description_en": "Log-backed session title service and provider registry for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-session-title-all-prompts-llm", "name": "@deepseek-ai/dsh-session-title-all-prompts-llm", "domain": "session", "sub": "session-title-all-prompts-llm", "path": "session/session-title-all-prompts-llm", "description_zh": "可选的 ctx.sessionTitle 提供方,通过 ctx.llm 总结所有符合条件的用户消息。它注册 all-prompts 节奏,并在每条新用户提示词后启动新 revision,同时使用预置历史与子会话提示词。较新的 revision 会中止并取代旧工作;即使提供方忽略取消,也无法提交陈旧输出。", "description_en": "All-user-messages LLM provider plugin for DeepSeek Harness session titles" }, { "id": "@deepseek-ai/dsh-session-title-first-prompt-llm", "name": "@deepseek-ai/dsh-session-title-first-prompt-llm", "domain": "session", "sub": "session-title-first-prompt-llm", "path": "session/session-title-first-prompt-llm", "description_zh": "可选的 ctx.sessionTitle 提供方,通过 ctx.llm 总结第一条符合条件的用户消息。它注册 first-prompt 节奏,只在全新非 fork 会话首次创建回退时自动运行,并将结果归因于该消息的确切 seq。自动失败会保留回退,之后只能通过 ctx.sessionTitle.refresh() 重试。", "description_en": "First-message LLM provider plugin for DeepSeek Harness session titles" }, { "id": "@deepseek-ai/dsh-session-title-llm", "name": "@deepseek-ai/dsh-session-title-llm", "domain": "session", "sub": "session-title-llm", "path": "session/session-title-llm", "description_zh": "由模型支持的会话标题提供方的共享实现策略。它解析辅助路由,将精确选中的用户消息封装为 JSON,记录可分发的确切请求,应用语言感知的标题指令,强制执行输入和输出预算,组合超时与调用方取消,组装流,并返回规范化文本,同时给出确切来源 seq 以及生成该文本时使用的提供方/模型路由。", "description_en": "Shared LLM generation policy for DeepSeek Harness session-title providers" }, { "id": "@deepseek-ai/dsh-session-log-export", "name": "@deepseek-ai/dsh-session-log-export", "domain": "session-query", "sub": "session-log-export", "path": "session-query/session-log-export", "description_zh": "Web Session 日志下载控制,使用 dsh-host-apiproxy 拥有的 Host 流式 ZIP 端点。Host 半包注册 /export;浏览器半包在 Session Header 中提供 111×32 的 Session log 操作,以及一个供该按钮与斜杠命令共用的下载控制器和弹窗。ZIP 生成、原始 JSONL/zstd 读取、子 Session、附件、背压和 HTTP 错误语义仍由 ApiProxy 下载实现负责。", "description_en": "Web Session-log export command and shared download dialog" }, { "id": "@deepseek-ai/dsh-session-query", "name": "@deepseek-ai/dsh-session-query", "domain": "session-query", "sub": "session-query", "path": "session-query/session-query", "description_zh": "SessionQueryEngine 是组合式抽象 ctx.sessionQuery 约定。它对实时 ctx.sessions 和可选的动态挂载 ctx.sessionPersistence 实现精确会话历史取回、关系跟踪和与提供方无关的过滤;具体后端实现它的两个全文方法。匹配 id 只产生一条记录:实时事件优先,而 live 和 persisted 会报告两种来源的可用性。如果不可变 header 存在冲突,则以 SESSION_QUERY_SOURCE_CONFLICT 失败。", "description_en": "Combined session query service contract with concrete reads, traces, and filters" }, { "id": "@deepseek-ai/dsh-session-query-sqlite", "name": "@deepseek-ai/dsh-session-query-sqlite", "domain": "session-query", "sub": "session-query-sqlite", "path": "session-query/session-query-sqlite", "description_zh": "具体 ctx.sessionQuery 提供方。SqliteSessionQueryEngine 从 Service Definition 包继承精确读取、跟踪和提供方无关的过滤,并使用 SQLite FTS5 实现其两个全文方法。搜索使用实时优先的逻辑会话语料库,并按每个会话中匹配度最高的事件对跨会话结果分组。", "description_en": "Concrete ctx.sessionQuery backend with SQLite FTS5 search" }, { "id": "@deepseek-ai/dsh-tool-session-query", "name": "@deepseek-ai/dsh-tool-session-query", "domain": "session-query", "sub": "tool-session-query", "path": "session-query/tool-session-query", "description_zh": "位于 ctx.sessionQuery 之上、经工作区授权的模型工具。该 opt-in 包只依赖统一接口,并注册 session_search、session_event_search、session_trace、session_event_trace 和 session_event_read;已发布的宿主组合默认不挂载它。", "description_en": "Workspace-authorized model-facing session history search, trace, and event read tools" }, { "id": "@deepseek-ai/dsh-settings", "name": "@deepseek-ai/dsh-settings", "domain": "settings", "sub": "settings", "path": "settings/settings", "description_zh": "用户设置 Service Definition(ctx.settings)。一个提供方持有按 namespace 分节的原始文档;插件注册 namespace schema 并读取分层解析值:schema 默认值,然后注册方的组合 base(其 cordis.yml entry 配置子集),最后用户文档分节。不挂载提供方时消费方行为不变:仍只按 entry 配置解析,因此任何组合有无 settings 都能工作。", "description_en": "Abstract user-settings seam (ctx.settings) for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-settings-file", "name": "@deepseek-ai/dsh-settings-file", "domain": "settings", "sub": "settings-file", "path": "settings/settings-file", "description_zh": "基于文件的设置提供方。一个 YAML 或 JSON 文档承载全部 namespace 分节;外部编辑经 ctx.settings 热发布,update() 在写锁下先重读文档再原子写回,保留用户的 YAML 注释、当前未加载插件所拥有的分节,以及任何本进程尚未观察到的磁盘变更。", "description_en": "File-backed settings provider (settings.yaml) for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-bash-local", "name": "@deepseek-ai/dsh-bash-local", "domain": "shell", "sub": "bash-local", "path": "shell/bash-local", "description_zh": "@deepseek-ai/dsh-shell 执行器 seam 的本地 Service Provider,构建在 @deepseek-ai/dsh-subprocess 服务之上:LocalBashExecutor 每次调用都通过 ctx.subprocess 把 bash -c 作为受管进程组 spawn,并负责所有 Bash 层职责(命令默认值补全与上限、超时与取消分类、适合模型的终端环境,以及后台读取时面向模型的 stdout/stderr 合并)。以 spill 文件兜底的有界输出、凭据清除、kill 升级和 dispose(资源释放)等进程组机制则由 subprocess 服务负责。", "description_en": "Local-subprocess implementation of the DeepSeek Harness bash executor seam" }, { "id": "@deepseek-ai/dsh-bash-sandbox", "name": "@deepseek-ai/dsh-bash-sandbox", "domain": "shell", "sub": "bash-sandbox", "path": "shell/bash-sandbox", "description_zh": "这是使用沙箱能力的 @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 能力并添加升权字段。", "description_en": "Sandbox-consuming implementation of the DeepSeek Harness bash executor seam (confines every command via ctx.sandbox, reports denial/enforcement result facts)" }, { "id": "@deepseek-ai/dsh-pwsh-local", "name": "@deepseek-ai/dsh-pwsh-local", "domain": "shell", "sub": "pwsh-local", "path": "shell/pwsh-local", "description_zh": "@deepseek-ai/dsh-shell 执行器 seam 的本地 PowerShell Service Provider,基于 @deepseek-ai/dsh-subprocess 服务:PwshLocalExecutor 每次调用以受管进程的方式通过 ctx.subprocess spawn pwsh -NoLogo -NoProfile -NonInteractive -Command ,并负责所有 PowerShell 相关事项——可执行文件解析、命令默认化与上限、超时/取消分类、面向模型的终端环境,以及后台读取的 stdout/stderr 合并。进程组机制(有界 spill 输出、凭据清理、终止升级、dispose(资源释放))属于 subprocess 服务。", "description_en": "Local PowerShell implementation of the DeepSeek Harness bash executor seam" }, { "id": "@deepseek-ai/dsh-pwsh-sandbox", "name": "@deepseek-ai/dsh-pwsh-sandbox", "domain": "shell", "sub": "pwsh-sandbox", "path": "shell/pwsh-sandbox", "description_zh": "沙盒消费型的 ctx.shell 执行器 seam 的 PowerShell 实现:每条命令以 pwsh -NoLogo -NoProfile -NonInteractive -Command 运行,经 ctx.sandbox 隔离,选定模式、强制完整性、拒绝事实都盖在每次结算的结果上。它是 @deepseek-ai/dsh-bash-sandbox 的 pwsh 孪生,按 pwsh 执行器与工具决策 逐调用镜像——隔离实体本身是平台无关的:Windows 上沙盒 seam 解析到 ACL 受限令牌 runner 链(@deepseek-ai/dsh-sandbox-windows-acl),Linux/macOS 上解析到 bwrap/Landlock/Seatbelt。", "description_en": "Sandbox-consuming implementation of the DeepSeek Harness PowerShell executor seam (confines every command via ctx.sandbox, reports denial/enforcement result facts)" }, { "id": "@deepseek-ai/dsh-shell", "name": "@deepseek-ai/dsh-shell", "domain": "shell", "sub": "shell", "path": "shell/shell", "description_zh": "ShellExecutor(ctx.shell)定义 bash 后端做什么,即运行前台命令与启动后台进程,但不规定如何实现。job id、所有权、收集、取消与通知属于通用 ctx.jobs 运行时。", "description_en": "Abstract bash executor seam (ctx.shell) for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-shell-env", "name": "@deepseek-ai/dsh-shell-env", "domain": "shell", "sub": "shell-env", "path": "shell/shell-env", "description_zh": "工具无关的 shell 环境插件:拥有 ctx.shellEnv 注册表,管理受信任的、每次执行收集的 DSH_ 变量,供模型可见的 shell 工具(dsh-tool-bash、dsh-tool-pwsh)收集进每次 shell 调用的环境。内置 shell 事实(DSH_HOME、DSH_SHELL=1、DSH_SESSION_ID)归注册表自身所有;其他插件可以注册额外的可枚举事实,注册随插件纤维(fiber)释放,重复所有权或未声明的运行时键会响亮失败。", "description_en": "Tool-independent managed DSH_* shell environment registry" }, { "id": "@deepseek-ai/dsh-tool-bash", "name": "@deepseek-ai/dsh-tool-bash", "domain": "shell", "sub": "tool-bash", "path": "shell/tool-bash", "description_zh": "模型侧 bash 工具,注册在 ctx.shell 执行器 seam 上。前台执行始终位于该 seam 之后;后台进程句柄会注册到通用 ctx.jobs 运行时,并通过 job_output、job_list 和 job_kill 控制;这些工具由 @deepseek-ai/dsh-tool-jobs 提供。", "description_en": "Model-facing bash tool with optional generic background-job and sandbox-escalation support" }, { "id": "@deepseek-ai/dsh-tool-bash-persistent", "name": "@deepseek-ai/dsh-tool-bash-persistent", "domain": "shell", "sub": "tool-bash-persistent", "path": "shell/tool-bash-persistent", "description_zh": "模型可见的 bash(command),底层复用一个按所有者隔离的 ctx.terminals shell。该包拥有工具约定和 shell 复用;PTY 后端与沙箱策略由部署选择。", "description_en": "Model-facing owner-scoped persistent Bash tool backed by the Harness PTY service" }, { "id": "@deepseek-ai/dsh-tool-pwsh", "name": "@deepseek-ai/dsh-tool-pwsh", "domain": "shell", "sub": "tool-pwsh", "path": "shell/tool-pwsh", "description_zh": "注册在 ctx.shell 执行器 seam 之上的面向模型的 pwsh 工具。面向由 PowerShell 执行器(如 @deepseek-ai/dsh-pwsh-local)支撑 ctx.shell 的 Windows 组合;工具约定是 PowerShell 方言:原生 C:\\... 路径与 $env:NAME 变量。行为与 dsh-tool-bash 逐调用对齐——通过通用任务运行时执行前台与 run_in_background、通过共享 shell-env 注册表管理 DSH_ 环境、sandbox 拒绝渲染与同轮次 sandbox_permissions 升级面、以及 bash 的 marker/截断渲染故事(干净退出不产生 marker)。", "description_en": "Model-facing pwsh tool over the bash executor seam" }, { "id": "@deepseek-ai/dsh-skill", "name": "@deepseek-ai/dsh-skill", "domain": "skill", "sub": "skill", "path": "skill/skill", "description_zh": "纯 agent skill(智能体技能)提供方注册表。", "description_en": "Agent skill provider registry for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-skill-badge", "name": "@deepseek-ai/dsh-skill-badge", "domain": "skill", "sub": "skill-badge", "path": "skill/skill-badge", "description_zh": "可选的内置 skill(技能)提供方,向 ctx.skills 贡献 dsh-badge。该 skill 提供官方「powered by dsh」Markdown 片段和随包分发的 PNG,供无法可靠导入远程图片的系统使用。", "description_en": "Bundled dsh badge skill provider for DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-skill-filesystem", "name": "@deepseek-ai/dsh-skill-filesystem", "domain": "skill", "sub": "skill-filesystem", "path": "skill/skill-filesystem", "description_zh": "ctx.skills 注册表的本地文件系统提供方。", "description_en": "Local filesystem skill provider for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-tool-skill", "name": "@deepseek-ai/dsh-tool-skill", "domain": "skill", "sub": "tool-skill", "path": "skill/tool-skill", "description_zh": "面向模型的 skill(技能)目录和 skill 工具。", "description_en": "Model-facing skill loading tool for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-spill", "name": "@deepseek-ai/dsh-spill", "domain": "spill", "sub": "spill", "path": "spill/spill", "description_zh": "SpillStore(ctx.spillStore)定义 spill 后端做什么,即持久化某个工具过大的文本,并返回面向模型的定位信息与取回指引;它不规定如何实现。", "description_en": "Abstract spill storage seam (ctx.spillStore) for the DeepSeek Harness — save oversized tool text and return a retrieval locator" }, { "id": "@deepseek-ai/dsh-spill-local", "name": "@deepseek-ai/dsh-spill-local", "domain": "spill", "sub": "spill-local", "path": "spill/spill-local", "description_zh": "@deepseek-ai/dsh-spill 存储 seam 的本地文件系统实现。它注册为 ctx.spillStore,将工具产生的过大文本持久化到私有的会话级文件;定位信息是文件路径,取回指引会告诉模型对该路径使用 read 或 grep。", "description_en": "Local-filesystem implementation of the DeepSeek Harness spill storage seam (private session-scoped files)" }, { "id": "@deepseek-ai/dsh-spill-policy", "name": "@deepseek-ai/dsh-spill-policy", "domain": "spill", "sub": "spill-policy", "path": "spill/spill-policy", "description_zh": "工具结果 spill 策略:一个 tools/post-execute 转换器,用于防止过大的纯文本工具结果进入模型上下文。当最终结果超过 maxInlineBytes 时,它会通过 ctx.spillStore 保存完整文本,并将面向模型的结果替换为有界的首尾预览、后端定位信息与取回指引。", "description_en": "Tool-result spill policy for the DeepSeek Harness — replaces oversized plain-text tool results with a retained preview plus a spill-file path (no service API)" }, { "id": "@deepseek-ai/dsh-storage", "name": "@deepseek-ai/dsh-storage", "domain": "storage", "sub": "storage", "path": "storage/storage", "description_zh": "非会话数据的存储中心(ctx.storage):具名后端注册表加已挂载的数据形式设施。中心自身不执行 IO:后端拥有介质,数据形式拥有语义。存储家族概述列出了这些包;领域 KV 存储 Agent Note记录了设计理由。", "description_en": "Storage hub (ctx.storage): named backend registry plus mounted data-form facilities for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-storage-domain", "name": "@deepseek-ai/dsh-storage-domain", "domain": "storage", "sub": "storage-domain", "path": "storage/storage-domain", "description_zh": "DeepSeek Harness 存储中心的领域数据形式:在所有已配置的后端注册后,公开可注入的 ctx.storageDomain 服务及对应的 ctx.storage.domain 投影。一个领域通过 defineDomain(zod 记录 schema、从 z.infer 派生的类型)声明一次,通过 DomainFacility.open 打开,并由具有最终决定权的内存状态提供服务:读取同步执行;写入在每个领域各自的一条链上串行化,先在已路由后端达到持久状态,再更新内存并发出 domain/changed。打开领域的消费方负责管理句柄的生命周期,并通过 Domain.close() 释放它(幂等;通常作为其自身的 ctx.effect 资源释放函数);插件卸载时,该设施会关闭仍处于打开状态的领域。", "description_en": "Domain data form (ctx.storage.domain): schema-validated, event-emitting KV domains over storage backends for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-storage-json", "name": "@deepseek-ai/dsh-storage-json", "domain": "storage", "sub": "storage-json", "path": "storage/storage-json", "description_zh": "存储中心的 JSON 后端:配置根目录下每个单元使用一个人类可读的 .json 文件,注册为后端 json。设计见领域 KV 存储 Agent Note。", "description_en": "JSON file KV storage backend for the DeepSeek Harness storage hub" }, { "id": "@deepseek-ai/dsh-storage-sqlite", "name": "@deepseek-ai/dsh-storage-sqlite", "domain": "storage", "sub": "storage-sqlite", "path": "storage/storage-sqlite", "description_zh": "存储中心的 SQLite 后端:注册为后端 sqlite,通过一个数据库提供 kv facet;该数据库由 node:sqlite 操作,可以是单个文件,也可以是 :memory:。设计与取舍见领域 KV 存储 Agent Note。", "description_en": "SQLite storage backend (kv facet) for the DeepSeek Harness storage hub" }, { "id": "@deepseek-ai/dsh-subagent", "name": "@deepseek-ai/dsh-subagent", "domain": "subagent", "sub": "subagent", "path": "subagent/subagent", "description_zh": "subagent seam 允许一个 agent(智能体)通过具名提供方把工作委派给子 agent。调用方统一使用 ctx.subagents 服务 API;提供方决定子 agent 在当前进程、其他进程,还是通过未来的传输方式运行。", "description_en": "Abstract subagent seam (ctx.subagents): named-provider registry for delegating to child agents" }, { "id": "@deepseek-ai/dsh-subagent-acp", "name": "@deepseek-ai/dsh-subagent-acp", "domain": "subagent", "sub": "subagent-acp", "path": "subagent/subagent-acp", "description_zh": "ACP(Agent Client Protocol)提供方会在全新的子进程中运行每个 subagent,并作为 Agent Client Protocol 客户端驱动它。这是 spawn 与 fork 的进程外替代方案:子 agent(智能体)拥有自己的运行时、会话、模型配置和工具。", "description_en": "Out-of-process ACP subagent backend: drives a child agent in a spawned subprocess over the Agent Client Protocol" }, { "id": "@deepseek-ai/dsh-subagent-claude-code", "name": "@deepseek-ai/dsh-subagent-claude-code", "domain": "subagent", "sub": "subagent-claude-code", "path": "subagent/subagent-claude-code", "description_zh": "本包(package)注册固定的 claude-code subagent 提供方。每次接受运行请求后,它都会在发起委托的会话工作区中调用官方 Claude Agent SDK,通过共享子进程服务解析原生 claude 可执行文件,提交一个自包含的文本任务,并通过共享的 dsh-subagent 结果约定仅返回最终答案。", "description_en": "One-shot Claude Code subagent provider over the official Agent SDK" }, { "id": "@deepseek-ai/dsh-subagent-codex", "name": "@deepseek-ai/dsh-subagent-codex", "domain": "subagent", "sub": "subagent-codex", "path": "subagent/subagent-codex", "description_zh": "本包注册固定的 codex subagent 提供方。每次接受运行请求后,它都会在发起委托的会话工作区中启动官方 codex app-server --stdio 命令,创建一个临时 Codex 线程,提交一个自包含的文本任务,并通过共享的 dsh-subagent 结果约定仅返回最终答案。", "description_en": "One-shot Codex subagent provider over the official app-server protocol" }, { "id": "@deepseek-ai/dsh-subagent-dsh-sdk", "name": "@deepseek-ai/dsh-subagent-dsh-sdk", "domain": "subagent", "sub": "subagent-dsh-sdk", "path": "subagent/subagent-dsh-sdk", "description_zh": "SDK 提供方会在全新的子进程中把每个 subagent 作为完整的 DeepSeek Harness 运行时运行,并经由 TypeScript SDK 客户端 通过 stdio JSON-RPC 驱动。它是 subagent-acp 之外的第二个进程外后端,差异在协议格式(wire format)和子进程约定:ACP(Agent Client Protocol)后端能驱动任何 Agent Client Protocol agent(智能体);本后端专门驱动 harness SDK 运行时(dsh-jsonrpc-agent bin 或打包后的可执行文件),因此子进程是一个完整的对等 harness,拥有由 cordis.yml 决定的组合、会话持久化、模型路由和工具。", "description_en": "Out-of-process SDK subagent backend: drives a child DeepSeek Harness runtime subprocess over stdio JSON-RPC through the TypeScript SDK client" }, { "id": "@deepseek-ai/dsh-subagent-fork-in-process", "name": "@deepseek-ai/dsh-subagent-fork-in-process", "domain": "subagent", "sub": "subagent-fork-in-process", "path": "subagent/subagent-fork-in-process", "description_zh": "fork 提供方会创建一个进程内子 agent(智能体),并以父 agent 已完成的对话轮次作为初始内容。它与 spawn 共用全部运行机制;唯一的行为差异是会话初始内容。", "description_en": "In-process fork subagent backend: runs a child agent seeded with a prefix of the parent's log" }, { "id": "@deepseek-ai/dsh-subagent-in-process-driver", "name": "@deepseek-ai/dsh-subagent-in-process-driver", "domain": "subagent", "sub": "subagent-in-process-driver", "path": "subagent/subagent-in-process-driver", "description_zh": "本包是两个进程内提供方共用的运行驱动器。spawn 不传入会话初始内容;fork 传入父 agent(智能体)已完成轮次的前缀。其余机制,包括深度、子 agent 创建、可选的子 agent 定制、结果读取、取消和 dispose(资源释放),都在此共用同一套实现。", "description_en": "Shared in-process subagent run driver: drives a child agent on ctx.agents (used by the spawn and fork backends)" }, { "id": "@deepseek-ai/dsh-subagent-spawn-in-process", "name": "@deepseek-ai/dsh-subagent-spawn-in-process", "domain": "subagent", "sub": "subagent-spawn-in-process", "path": "subagent/subagent-spawn-in-process", "description_zh": "spawn 提供方会在当前进程中创建一个全新的子 Agent。子 agent(智能体)有自己的会话,看不到父 agent 的对话历史,并复用宿主的 agent 工厂及 LLM(大语言模型)/工具服务。", "description_en": "In-process spawn subagent backend: runs a fresh child agent on ctx.agents" }, { "id": "@deepseek-ai/dsh-tool-subagent", "name": "@deepseek-ai/dsh-tool-subagent", "domain": "subagent", "sub": "tool-subagent", "path": "subagent/tool-subagent", "description_zh": "基于一个已配置 ctx.subagents 提供方、面向模型的委派工具。更换提供方只会改变传输,不会改变执行约定。", "description_en": "Model-facing subagent delegation tool over the ctx.subagents seam" }, { "id": "@deepseek-ai/dsh-tool-subagent-control", "name": "@deepseek-ai/dsh-tool-subagent-control", "domain": "subagent", "sub": "tool-subagent-control", "path": "subagent/tool-subagent-control", "description_zh": "可选的全局具名 send_message、interrupt_agent 与 list_agents 工具是 ctx.subagents 之上的轻量适配器。绑定提供方的 @deepseek-ai/dsh-tool-subagent 实例会为每种传输注册不同的委派工具;这个单独加载的包只注册一次共享控制工具,因此多个委派工具绝不会重复注册全局控制工具。根插件注册 send_message 与 interrupt_agent,且只要求 subagents;可单独加载的 ./list-agents 插件注册 list_agents,并将 subagents 与 agents 声明为加载时依赖。其目录读取在调用时还要求会话存储与投影注册表,但不要求任何查询服务。部署可保留根插件工具并省略列表工具。", "description_en": "Globally named send_message, interrupt_agent, and list_agents tools over ctx.subagents continuations" }, { "id": "@deepseek-ai/dsh-tool-subagent-report", "name": "@deepseek-ai/dsh-tool-subagent-report", "domain": "subagent", "sub": "tool-subagent-report", "path": "subagent/tool-subagent-report", "description_zh": "可选的子级作用域 report 工具是 ctx.subagents.reportFrom() 之上的轻量适配器。它为每个可继续的进程内子级提供一条返回通道,指向启动该子级的 Agent(智能体),并安装指示子级使用该通道的提示词 section。本包注册的是可继续子级设置贡献,而不是全局工具,因此该工具及其指引只存在于这些子级内部。根 Agent、一次性 subagent、远程 subagent 提供方、同级作用域以及不关联 Agent 的工具执行都不会提供或执行它。安装本包只授予这项子级作用域能力;父到子方向仍由独立的 @deepseek-ai/dsh-tool-subagent-control 负责,可继续模式不依赖这两个包中的任一个。", "description_en": "Child-scoped report tool over ctx.subagents continuations" }, { "id": "@deepseek-ai/dsh-subprocess", "name": "@deepseek-ai/dsh-subprocess", "domain": "subprocess", "sub": "subprocess", "path": "subprocess/subprocess", "description_zh": "子进程 seam(ctx.subprocess)是一个执行世界的进程部分。抽象的 SubprocessRuntime 公开可执行文件查找、普通受管 spawn 和一项终端进程原语;其词汇涵盖原始/收集式 stdio、进程与终端句柄、退出事实、进程树/会话清理,以及受管的 DSH_ 环境命名空间。本地实现位于 dsh-subprocess-local。", "description_en": "Subprocess seam (ctx.subprocess) for the DeepSeek Harness — managed process groups, bounded spill-backed output, and escalated kills behind one abstract service" }, { "id": "@deepseek-ai/dsh-subprocess-local", "name": "@deepseek-ai/dsh-subprocess-local", "domain": "subprocess", "sub": "subprocess-local", "path": "subprocess/subprocess-local", "description_zh": "@deepseek-ai/dsh-subprocess seam 的本地 Service Provider。LocalSubprocessRuntime 解析本地可执行文件,以显式 stdio spawn 普通 detached 进程树,并通过 node-pty 加平台进程检查实现终端进程。该实现没有任何配置:每项处置方式、限制、终端尺寸、宽限期与目录都来自调用方能力 seam(dsh-bash-local、dsh-lsp-stdio 和 dsh-terminal-bash)。", "description_en": "Local-subprocess implementation of the DeepSeek Harness subprocess seam" }, { "id": "@deepseek-ai/dsh-terminal", "name": "@deepseek-ai/dsh-terminal", "domain": "terminal", "sub": "terminal", "path": "terminal/terminal", "description_zh": "限定所有者范围的持久 PTY seam。TerminalSessionService 注册为 ctx.terminals,生成不透明的会话 id,通过具名后端路由创建操作,将每个操作限制在完全相同的活跃 Agent 内,并在该 agent(智能体)或服务 dispose(资源释放)时等待后端完全停稳。", "description_en": "Persistent PTY session seam for the DeepSeek Harness — owner-scoped ids, backend registry, interactive sends, reads, signals, and awaited cleanup" }, { "id": "@deepseek-ai/dsh-terminal-bash", "name": "@deepseek-ai/dsh-terminal-bash", "domain": "terminal", "sub": "terminal-bash", "path": "terminal/terminal-bash", "description_zh": "这是一个基于 ctx.subprocess.spawnTerminal、为 ctx.terminals 提供的持久 shell 后端。它在共享 ctx.sandboxPolicy 下启动交互式 shell,保留有界的逐行输出并检测就绪状态;进程管理提供方则负责 PTY 分配、环境清理、前台进程组、信号发送和完整终端会话清理。因此,同一个 PTY 后端可以与本地或远程执行世界提供方组合。", "description_en": "Persistent shell PTY backend over the DeepSeek Harness subprocess terminal primitive" }, { "id": "@deepseek-ai/dsh-tool-terminal", "name": "@deepseek-ai/dsh-tool-terminal", "domain": "terminal", "sub": "tool-terminal", "path": "terminal/tool-terminal", "description_zh": "基于 ctx.terminals 提供 6 个面向模型的工具:terminal_open、terminal_send、terminal_read、terminal_signal、terminal_close 和 terminal_list。每项操作都要求提供完全相同的发起 Agent,因此即使模型获知另一个 agent(智能体)的 id,也无法操作其终端。", "description_en": "Six model-facing persistent PTY tools with owner isolation and generic background-job integration" }, { "id": "@deepseek-ai/dsh-tool-todo", "name": "@deepseek-ai/dsh-tool-todo", "domain": "todo", "sub": "tool-todo", "path": "todo/tool-todo", "description_zh": "面向模型的 todo_write 工具:agent(智能体)的完整任务列表,每次调用都会整体替换。", "description_en": "Model-facing todo_write tool over the DeepSeek Harness event-sourced session log" }, { "id": "@deepseek-ai/dsh-typert-generator", "name": "@deepseek-ai/dsh-typert-generator", "domain": "typert", "sub": "generator", "path": "typert/generator", "description_zh": "TypeScript 项目分析器和模型驱动的 Typert 生成器。在生成任何产物之前,它会先将开发者编写的源类型树转换为独立于编译器的 FaceModel 和 TypeGraph 数据。静态分析无需 Cordis 即可消费该模型;各产物生成组件均不会接收 TypeScript 抽象语法树(AST)或类型检查器对象。", "description_en": "TypeScript project analyzer and model-driven Typert artifact generator" }, { "id": "@deepseek-ai/dsh-typert-loader", "name": "@deepseek-ai/dsh-typert-loader", "domain": "typert", "sub": "loader", "path": "typert/loader", "description_zh": "生成的 Typert 产物所用的 Loader 集成,仅支持 Node。该插件需要 ctx.loader 和 ctx.typert;它本身不提供注册表。", "description_en": "Loader integration for generated Typert package contributions" }, { "id": "@deepseek-ai/dsh-typert-protocol", "name": "@deepseek-ai/dsh-typert-protocol", "domain": "typert", "sub": "protocol", "path": "typert/protocol", "description_zh": "该包提供不依赖编译器的声明,由业务包、生成的 Typert 产物、宿主网关和客户端 API 共享。它负责 Remote 服务基类、装饰器、显式绑定回退、可通过声明合并扩展的协议映射、调用描述符、编解码器和提供方约定;它不执行 TypeScript 分析,也不注册具体 Cordis 服务。", "description_en": "Compiler-independent Remote metadata and Typert provider protocols" }, { "id": "@deepseek-ai/dsh-typert-registry", "name": "@deepseek-ai/dsh-typert-registry", "domain": "typert", "sub": "registry", "path": "typert/registry", "description_zh": "生成的 Typert 产物所用的运行时注册表。每个注册项包含某个包在一个 face 上的业务反射信息,以及可选的运行时 Zod schema;ctx.typert 会以原子方式同时注册两者,并在发起调用的 Cordis fiber 释放时一并移除它们。TypeScript 分析和代码生成由 dsh-typert-generator 负责。", "description_en": "Runtime registry for generated package reflection and Zod schemas" }, { "id": "@deepseek-ai/dsh-atomic-write", "name": "@deepseek-ai/dsh-atomic-write", "domain": "util", "sub": "atomic-write", "path": "util/atomic-write", "description_zh": "零依赖的原子文件替换,供绝不允许在磁盘上留下不完整、被符号链接劫持或权限过宽内容的文件型存储共用:用户设置文档(dsh-settings-file)与凭据存储(dsh-credentials-local)。", "description_en": "Zero-dependency atomic file replacement: exclusive-create random-suffix temp + rename carrying the caller-stated permissions (writeFileAtomic)" }, { "id": "@deepseek-ai/dsh-brand", "name": "@deepseek-ai/dsh-brand", "domain": "util", "sub": "brand", "path": "util/brand", "description_zh": "Branded 名义类型原语:一个微小的仅类型包,无运行时代码,也不依赖其他 harness 包;所有负责跨边界 id 的包都会共享它。", "description_en": "Type-only Branded nominal-typing primitive for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-home-paths", "name": "@deepseek-ai/dsh-home-paths", "domain": "util", "sub": "home-paths", "path": "util/home-paths", "description_zh": "DeepSeek Harness 用户数据的共享文件系统路径辅助工具。", "description_en": "Shared filesystem path helpers for the DeepSeek Harness" }, { "id": "@deepseek-ai/dsh-launch-environment", "name": "@deepseek-ai/dsh-launch-environment", "domain": "util", "sub": "launch-environment", "path": "util/launch-environment", "description_zh": "把本次运行的环境冻结为一份不可变快照,并记住每个值来自哪一层。消费方用它而不是 process.env 解析面向用户的值,因为各层的可信程度并不相同,而压平后的视图无法区分它们。", "description_en": "Immutable DeepSeek Harness launch environment that records which layer supplied each value" }, { "id": "@deepseek-ai/dsh-native-command", "name": "@deepseek-ai/dsh-native-command", "domain": "util", "sub": "native-command", "path": "util/native-command", "description_zh": "宿主原生 OS 集成共享的零依赖免 shell execFile 运行器:一次 runNativeCommand(command, args, signal) 调用直接 spawn 可执行文件(绝不拼 shell 字符串),以 utf8 捕获 stdout/stderr,把调用方的 abort 传播为子进程终止,并在 Windows 上隐藏瞬时控制台窗口。失败时,调用会以错误拒绝;该错误附带退出 code 与两路已捕获输出,调用方无需重跑即可分类(工具缺失、已取消、真实失败)。", "description_en": "Zero-dependency no-shell execFile runner for host-native OS integrations: utf8 stdio capture, abort propagation, Windows hide" }, { "id": "@deepseek-ai/dsh-output-retention", "name": "@deepseek-ai/dsh-output-retention", "domain": "util", "sub": "output-retention", "path": "util/output-retention", "description_zh": "一个轻依赖的保留库:为必须限制返回上下文量的工具提供有界的面向模型输出。调用方将项或文本分片送入有界对象,然后取回保留的内容和精确的省略元数据。", "description_en": "Zero-dependency bounded-retention primitive: ItemRetainer/TextRetainer + neutral notice helpers (what did we keep, what did we omit)" }, { "id": "@deepseek-ai/dsh-timeout", "name": "@deepseek-ai/dsh-timeout", "domain": "util", "sub": "timeout", "path": "util/timeout", "description_zh": "超时的时序与分类部分:一个零依赖纯函数库(无运行时 harness 依赖),由每个需要限制调用方超时提示、启动 deadline,并在之后区分「已超时」与「已取消」的能力共享。", "description_en": "Zero-dependency timeout/deadline primitive: clampTimeout, deadline, timeoutOf, TimeoutReason (timing + classification only, no termination)" }, { "id": "@deepseek-ai/dsh-tool-web", "name": "@deepseek-ai/dsh-tool-web", "domain": "web", "sub": "tool-web", "path": "web/tool-web", "description_zh": "面向模型的 web 工具套件 web_search 与 web_fetch,构建于 web 能力 seam(ctx.web)之上。它只负责面向模型的事项:工具名称、JSON Schema、snake_case 参数名称、提示词区段、结果数量上限、结果格式、HTML→markdown 呈现,以及 UI 呈现投影——presentCall、presentResult(以 kind: 'search' | 'fetch' 区分的 card: 'web' 结果卡片),以及承载有损渲染文本无法携带的结构化搜索来源或抓取摘要的 output.presentationMeta(见 web-result-card Agent Note)。所有 web 访问都通过 ctx.web;该包绝不导入具体提供方。", "description_en": "Model-facing web tools (web_search, web_fetch) over the DeepSeek Harness web capability seam (ctx.web)" }, { "id": "@deepseek-ai/dsh-web", "name": "@deepseek-ai/dsh-web", "domain": "web", "sub": "web", "path": "web/web", "description_zh": "WebRuntime(ctx.web)定义 harness 具备哪些 web 访问能力(搜索 web、抓取 URL),并通过多个提供方实现,不把模型约定绑定到某个厂商的 API 形状。", "description_en": "Abstract web access capability seam (ctx.web) for the DeepSeek Harness — search/fetch provider registry, registration-order-independent selection, request/result vocabulary, and the WebError taxonomy" }, { "id": "@deepseek-ai/dsh-web-fetch-http", "name": "@deepseek-ai/dsh-web-fetch-http", "domain": "web", "sub": "web-fetch-http", "path": "web/web-fetch-http", "description_zh": "一个匿名公共 HTTP(S) WebFetchProvider,用于 harness web 能力 seam(ctx.web)。它获取具体 URL,返回状态码和长度受限的解码内容。", "description_en": "Anonymous public HTTP(S) fetch provider for the DeepSeek Harness web capability seam (ctx.web)" }, { "id": "@deepseek-ai/dsh-web-search-deepseek", "name": "@deepseek-ai/dsh-web-search-deepseek", "domain": "web", "sub": "web-search-deepseek", "path": "web/web-search-deepseek", "description_zh": "由 DeepSeek 支持的 WebSearchProvider,用于 harness web 能力 seam(ctx.web)。它调用 DeepSeek 的 Anthropic 兼容 Messages API(POST {baseURL}/messages),启用原生 web_search_20250305 服务器工具,并把 DeepSeek 返回的结构化 web_search_tool_result 块映射为 seam 规范化的 WebSearchResult。", "description_en": "DeepSeek-backed search provider (native web_search via the Anthropic-compatible API) for the DeepSeek Harness web capability seam (ctx.web)" }, { "id": "@deepseek-ai/dsh-web-search-exa", "name": "@deepseek-ai/dsh-web-search-exa", "domain": "web", "sub": "web-search-exa", "path": "web/web-search-exa", "description_zh": "由 Exa 支持的 WebSearchProvider,用于 harness web 能力 seam(ctx.web)。它调用 Exa 的 POST /search 端点并请求高亮摘要内容,把扁平 results[] 映射为 seam 规范化的 WebSearchResult。", "description_en": "Exa-backed search provider for the DeepSeek Harness web capability seam (ctx.web)" }, { "id": "@deepseek-ai/dsh-web-search-perplexity", "name": "@deepseek-ai/dsh-web-search-perplexity", "domain": "web", "sub": "web-search-perplexity", "path": "web/web-search-perplexity", "description_zh": "由 Perplexity 支持的 WebSearchProvider,用于 harness web 能力 seam(ctx.web)。它调用 Perplexity 的 OpenAI 兼容 POST /chat/completions 端点,把生成答案与引用映射为 seam 规范化的 WebSearchResult。", "description_en": "Perplexity-backed search provider for the DeepSeek Harness web capability seam (ctx.web)" }, { "id": "@deepseek-ai/dsh-tool-ralph", "name": "@deepseek-ai/dsh-tool-ralph", "domain": "workflow", "sub": "tool-ralph", "path": "workflow/tool-ralph", "description_zh": "面向模型的 ralph 工具运行固定的前台工作流,把一个不可变目标依次交给多个全新子 agent(智能体)。它展示如何把专用编排策略实现为基于 ctx.workflowEngine 和 ctx.subagents 的普通插件:不会向 agent-loop 添加 Ralph 模式或全新 agent loop(智能体循环),同会话的目标领域也保持独立。策略和暂缓事项由 Ralph Agent Note(agent 决策记录)负责。", "description_en": "Model-facing fresh-agent Ralph loop over the workflow and subagent seams" }, { "id": "@deepseek-ai/dsh-tool-workflow", "name": "@deepseek-ai/dsh-tool-workflow", "domain": "workflow", "sub": "tool-workflow", "path": "workflow/tool-workflow", "description_zh": "面向模型的 workflow 工具:运行一段扇出 subagent 的 JavaScript 编排脚本,并返回脚本的最终值。本包负责基于 ctx.workflowEngine 定义面向模型的 schema 和运行生命周期;脚本解析、执行、上限与取消位于 seam 之后,消费方仍负责面向父级的 schema 和结果包络。", "description_en": "Model-facing workflow tool: run a JavaScript orchestration script over ctx.workflowEngine" }, { "id": "@deepseek-ai/dsh-workflow", "name": "@deepseek-ai/dsh-workflow", "domain": "workflow", "sub": "workflow", "path": "workflow/workflow", "description_zh": "工作流 seam(扩展点,ctx.workflowEngine)执行由模型编写、可扇出 subagent 的编排脚本。该 seam 定义脚本、运行、结果、错误和事件契约;引擎负责决定如何隔离并执行脚本。", "description_en": "Workflow capability seam: ctx.workflowEngine service, run vocabulary, and workflow/* events" }, { "id": "@deepseek-ai/dsh-workflow-worker-thread", "name": "@deepseek-ai/dsh-workflow-worker-thread", "domain": "workflow", "sub": "workflow-worker-thread", "path": "workflow/workflow-worker-thread", "description_zh": "本包为 WorkflowEngine 提供实现,每次运行使用一个 Node worker thread。worker 执行编排脚本;子 agent(智能体)留在宿主上,脚本通过带类型的宿主/worker 协议经由 ctx.subagents 访问它们。", "description_en": "worker-thread workflow engine: executes model-written orchestration scripts off the host event loop, bridging agent() calls back to ctx.subagents" }, { "id": "@deepseek-ai/dsh-workspace", "name": "@deepseek-ai/dsh-workspace", "domain": "workspace", "sub": "workspace", "path": "workspace/workspace", "description_zh": "DeepSeek Harness 的 Workspace 实体注册表(ctx.workspaceRegistry):通过领域数据形式存储持久 workspace 记录、稳定 workspace 顺序和按新到旧排列的候选会话索引。消费方看到 Workspace 接口;实体实现保持包私有。", "description_en": "Workspace entity registry (ctx.workspaceRegistry): durable workspace records with validated session attachment over the domain data form for the DeepSeek Harness" } ] }