跳至内容

能力 Seams 与核心服务 ​

服务可以是核心主干服务、可替换的能力 seam、组合包/组合点或独立服务。下图展示了拥有服务声明的包、已知实现包,以及直接消费该服务的包。

ctx 键角色所属包实现直接消费方配套插件说明
ctx.actionCardsserviceaction-cards-creation-recommendations, client-ui-action-cards-负责卡片工具、卡片状态、用户操作和状态通知;各卡片种类注册自己的动作和处理器。
ctx.pluginRecommendationsserviceplugin-recommendations-client-ui-plugin-recommendations-读取官方插件卡片的当前目录文本,并在用户点击后通过配置插件管理器启用该插件。
ctx.headlessStartupcoreheadless-headless-将解析后的任务和运行选项提供给无界面运行器及其 sandbox-policy 配置。
ctx.cotTranslationserviceexperimental-client-ui-cot-translation---为展开的思考内容提供有界的 Session 翻译请求,不改变模型可见历史。
ctx.translatorserviceexperimental-translator-experimental-client-ui-cot-translation-解析 Google 或 Bing 请求,并可选保留统一的实验性 Session 记录。
ctx.hmrcorehmr-app-boot-负责模块和精确配置监听;应用修改共用其队列,自动重载等待应用文件锁。
ctx.pluginRegistryProbecoreclient-ui-plugin-manager-client-ui-plugin-manager-在 Host 上并发比较公共安装源响应;初始安装源推荐由 Client 负责。
ctx.pluginManagercoreplugin-manager-plugin-manager, ui-settings-plugin-inventory-与 CLI 共享 profile 包操作,并向 Web 和 Agent 调用方分别报告持久状态与运行状态。
ctx.pluginMarketcoreplugin-market-client-ui-plugin-market, plugin-market-获取并校验用户配置的索引源;安装通过插件管理器完成。
ctx.profileContextcoreapp-boot-plugin-manager-dsh launcher 提供纯数据形式的 profile 位置与组合输入;重载调度由 dsh-hmr 负责。
ctx.connectioncoreclient-connection-api-gateway, host-frontend-static-负责浏览器认证与共享 HTTP 请求分发;API 适配器注册端点和流。
ctx.forgeseamexperimental-forgeexperimental-forge-githubexperimental-forge-session, experimental-client-ui-forge-提供方映射远端与变更请求 URL、按 head 分支查找变更请求并批量读取状态;同一变更请求的监听方共享一个轮询循环。
ctx.forgeSessionserviceexperimental-forge-session-experimental-client-ui-forge-Session 投影从 shell 结果与绑定记录派生绑定,并把不含状态的 URL 发布给客户端;推送结果触发按 head 分支的发现,Session 监听方通过 forge 注册表轮询已绑定的变更请求。
ctx.forgePanelserviceexperimental-client-ui-forge---为每个被跟随的 Session 推送一份面板状态:使用 Session 权限进行的 Git 检查、识别出的代码托管平台及其登录状态,以及带轮询状态的已绑定变更请求。
ctx.worktreesseamexperimental-worktreeexperimental-worktreeexperimental-tool-worktree-显式实验组合从固定的本地提交创建工作树。检出目录与共享 Git 元数据受现有写权限约束;工作目录服务拥有创建后的 Session 目录。
ctx.workingDirectoryseamworking-directoryworking-directorytool-working-directory, tool-fs, tool-bash, tool-pwsh, subagent, sdk-jsonrpc-server-一个 Session 投影拥有有效执行目录。文件系统验证变更,用户上下文报告目录信息,原始元数据与写入授权保持不变。
ctx.mcpResourcesseammcp-resourcesmcp-clientmcp-resources-连接所有者提供的操作在调用 agent 的作用域内服务于共享资源工具。
ctx.browserUseseambrowser-useexperimental-browser-use-playwright-mcp, experimental-browser-use-chrome-devtools-mcp, experimental-browser-use-stagehand-nativeexperimental-browser-use-playwright-mcp, experimental-browser-use-chrome-devtools-mcp, experimental-browser-use-stagehand-native-每个服务实例注册一个提供方拥有的名称。提供方按实时 Session 拥有自己的工具与浏览器资源;共享服务不提供浏览器操作 API。
ctx.computerUseseamcomputer-useexperimental-computer-use-cua-driver-mcp, experimental-computer-use-cua-driver-nativeexperimental-computer-use-cua-driver-mcp, experimental-computer-use-cua-driver-native-每个服务实例只注册一个提供方自定的名称。各提供方也拥有自己的模型工具;服务不提供通用操作 API、运行时选择或 Session 流程锁。
ctx.cuaAccesscorecua-cua-原生 provider 负责应用授权和取消操作;可选的 Client 权限页面通过 Remote 查询和修改授权。
ctx.officeKitcoreoffice-kit-client-ui-sidebar-documentpreview, tool-office-已授权的 Office 字节在宿主上使用已声明的原生目标引擎渲染为 PDF 或图片、转换或重算;未声明原生目标时使用 Node WASM。
ctx.attachmentsseamattachmentattachment-localapi-session-controller, tool-fs, llm-pi-ai, llm-deepseek-宿主会在会话事件之前提交已接受的图片;提供方适配器将已授权的持久引用解析为提供方原生内容。
ctx.fileUploadscoreclient-file-upload-api-session-controller-负责流式接收、持久存储和暂存回执生命周期;Session Controller 将回执绑定到已接受的提交。
ctx.llmseamllmllm-deepseek, llm-pi-ai, llm-replayagent-loop, compaction-basic-适配器注册提供方实现;agent loop(智能体循环)与压缩功能调用提供方无关的流服务。
ctx.sessionLogDeepSeekcoresession-log-deepseek---插件在准备权威 Session 日志请求贡献前注册归调用方所有的排除条件;没有条件匹配的请求应用普通上传资格判断。
ctx.deepseekLlmApiExtensionsseamdeepseek-llm-api-extensionssession-log-deepseek, plugin-package-inventory-deepseekllm-deepseek-插件准备彼此独立的顶层字段;官方适配器会合并这些字段,并在 HTTP 接受后提交其交付状态。
ctx.tokenMetercoretoken-meter-compaction-basic-拥有按会话隔离的回放折叠区;压力消费方共享不可变且带修订版本的测量结果。
ctx.toolResultPrunercorecompaction-tool-result-pruner-compaction-basic-在摘要压缩前,通过可回放的单节点表层替换来改写过大的当前工具结果。
ctx.sessionscoresession-agent-loop, agent, session-persistence, session-query, session-query-sqlite, subagent, message-feedback-拥有仅追加的 Session 实例,并发出持久的会话事件流。
ctx.speechControllercoreexperimental-api-speech-to-text---在 Provider 调用前校验受限的浏览器音频。
ctx.sessionControllercoreapi-session-controller---负责 Session 命令、冷读取、持久事件跟随、实时控制状态、模型目录、workspace 打开与 Agent 激活策略。
ctx.sessionFileReferencescoreapi-session-controller---通过 Session Controller 的既有 Agent lookup 策略委托文件引用发现。
ctx.sessionSkillCatalogcoreapi-session-controller---在不激活冷 Agent 的前提下列出 Session 组合中允许用户调用的 skill。
ctx.jobControllercoreapi-job-controller---经生成的 Remote namespace 流式发送一个后台任务的观测 record;名册仍在会话控制流上。
ctx.credentialsControllercoreapi-settings-controller---把凭据引用 seam 投影到生成的 Remote namespace:批量扇出、视图投影与拒绝映射都在这里,而不在 seam Definition 上。
ctx.settingsControllercoreapi-settings-controller---把用户设置 seam 投影到生成的 Remote namespace:读取一律脱敏,所有拒绝在这里分类,而不在 seam Definition 上。
ctx.workspaceFilescoreapi-workspace-files---为会话工作区根内的文件提供 stat、分页文本、字节窗口、目录列举与变更流,经 lstat、包含关系与 stat 重检限定。
ctx.workspaceChangescoreworkspace-changes---Serves the summary each workspace/changes event announced and each listed file's turn-start and turn-end comparison, by Session and event sequence, until that Session is disposed; the log carries only the turn.
ctx.terminalControllercoreapi-terminal-controller---通过子进程提供方与类型化 Remote 传输管理用户终端进程、解析默认 shell,并恢复有界终端屏幕。
ctx.workspaceControllercoreapi-workspace-controller---通过生成的 Remote namespace 负责 Workspace 命令和可在重连后收敛的 Workspace 状态投递。
ctx.directoryPickerControllercoreapi-workspace-controller---把选目录 seam 送上线:能力门禁、取消传播,以及浏览器目录流程用于分支判断的 seam 错误码。
ctx.typertcoretypert-registry-typert-loader, api-gateway-插件直接或通过 dsh-typert-loader 注册实时 zod 贡献;API 网关消费调用描述符和提供方,其他运行时消费方则在各自边界查询 schema 与反射元数据。
ctx.typertGatewaycoreapi-gateway---将生成的 Remote 描述符与实时 Cordis 服务关联,解析已注册的身份,并通过共享的 Connection RPC 载体提供一元调用。
ctx.remoteAccesscoreapi-remote-access-api-gateway, api-session-controller, api-workspace-controller-通过业务方注册的基于 role 的 policy 判定非 owner Peer 可调用哪些 Remote 方法,过滤列表结果,并为每个 Peer 推送访问快照。
ctx.sessionPersistenceseamsession-persistencesession-persistence-jsonlagent-loop, tool-bash, hooks-claude-code, hooks-codex, session-query, session-query-sqlite, message-feedback-JSONL backend 把 SessionEvent 词汇持久化为每个 Session 一份产物。
ctx.configEditorcoreconfig-editor-settings, agent-default-model-Persists profile config patches under the application file lock and HMR queue, then reconciles Loader entries.
ctx.settingscoresettings-api-settings-controller-Forms project volatile Config fields from active profile entries and delegate validated edits to config-editor. Plugins consume their own Config references.
ctx.subagentModelSelectioncoretool-subagent-tool-subagent-拥有默认关闭的设置命名空间;Agent 作用域的委派工具会在组合新顶层 Session 时读取它。
ctx.credentialsseamcredentialscredentials-localapi-settings-controller, llm-deepseek, llm-pi-ai-配置携带对机密信息的引用;提供方拥有实际值。消费方按操作解析,因此轮换后的凭据会在紧接着的下一次请求中生效;settings controller 提供不含实际值的视图和只写存储。
ctx.deepseekAccountservicedeepseek-account-llm-deepseek-Host 负责浏览器授权和本地凭证;UI 使用方只接收不含 token 的状态。
ctx.authorizationseamauthorization-llm-pi-ai-flow 由知道如何取得某份凭据的插件注册,并以其写入的记录为键;seam 拥有这段对话与"每个键同时只跑一次尝试"的生命周期,而非协议本身。
ctx.productAnalyticsserviceclient-product-analytics---根据 Host 动态采集策略接收指定桌面事件、补充可用登录身份并监听实时压缩。
ctx.otelserviceotel-host-product-telemetry-otel, session-telemetry-otel-产品埋点和 Session 反馈适配器通过同一个注入服务创建独立上报通道。
ctx.productTelemetryservicehost-product-telemetry-otel---通过 OTLP/HTTP 发送显式提交的分析事件;仅挂载插件不会采集信息。
ctx.sessionTelemetryseamsession-telemetrysession-telemetry-otel--该 seam 捕获会话记录、进行脱敏并交给一个后端;没有其他组件消费该服务,其输出会离开当前进程。
ctx.storageseamstoragestorage-json, storage-sqlitestorage-domain-各后端以不同名称并列注册;数据形态(领域优先)挂载到枢纽上,并将类型化操作转换为不透明的 KV 单元原语。
ctx.storageDomaincorestorage-domain-workspace-等待所有已配置后端就绪,然后将领域形态发布为一个受生命周期约束的服务,用于类型化持久状态。
ctx.messageFeedbackcoremessage-feedback---拥有权威 Session 日志中的逐 assistant 消息反馈、目标校验、逐条目 compare-and-set 及 Host 一元 Remote 契约。反馈不进入模型历史;日志导出遵循消费方策略。
ctx.sessionFeedbackcorecommand-feedback---通过 Host 一元 Remote 契约在 live Session 上把一条带分类的 Session 级评价记录为仅写日志的 feedback/record 事件;/feedback 命令共用同一个生产方。
ctx.workspaceRegistrycoreworkspace-api-workspace-controller, api-session-controller-通过领域设施拥有带 WorkspaceId 品牌类型的记录;稳定的 sessionIds 账户驱动 Host RPC 与 GUI 投影。
ctx.sessionQueryseamsession-querysession-query-sqlitesession-reference, tool-session-query-该接口提供精确读取、过滤和追踪;具体后端还提供全文协调、排序、摘要片段和游标世代,而模型消费方负责工作区权限与不含游标的渲染。
ctx.fileReferencesseamfile-referencefile-reference-localapi-session-controller-该接口返回 Agent cwd 内仅含路径的补全候选;提供方负责命名空间访问与排序,但不读取文件内容。
ctx.sessionReferenceResolvercoresession-reference---将当前表层中有界的对话快照投影为持久但不可信的消息上下文;Host 适配器负责提及语法。
ctx.sessionTitleseamsession-titlesession-title-first-prompt-llm, session-title-all-prompts-llm--负责确定性回退、最新标题折叠区,以及唯一的可选异步提供方注册。
ctx.systemPromptcoresystem-prompt-agent-loop, tools, tool-fs, tool-terminal, tool-web-为每个步骤收集提示词各部分和面向模型的工具 schema。
ctx.toolscoretools-agent-loop, tool-ask-user, tool-bash, tool-cordis, tool-fs, tool-terminal, tool-skill, tool-subagent, tool-todo, tool-web-注册能力和作用域执行器。原生与 PTC 提供者负责工具描述及完整原始调用批次;它们可选用共享流水线处理工具策略和分发。
ctx.userQuestionsseamuser-questions-tool-ask-user-UI 前端提供当前生效的人工回答提供方;tool-ask-user 在提供方无关的 ask() promise 上暂停工具调用。
ctx.planModecoreplan-mode---折叠已记录的计划/模式状态,在轮次边界刷新用户选择,渲染由部署方拥有的指导信息,注册 /plan,并在状态转换期间保持计划退出 schema 稳定。
ctx.agentPresetscoreagent-preset-registry---立即挂载 YAML 声明的 preset 版本,把 Agent 和冷读取绑定到作用域内的贡献,并保留已替换的版本,直到最后一个使用者释放它。
ctx.commandscorecommands---插件注册直接面向人的命令,而不会把调用发送给模型。
ctx.sessionProjectionscoresession-projection-api-session-controller, tool-todo, session-title-各领域注册由状态驱动的折叠单元;主动驱动过程维护每个会话的水位状态,Session controller 提供 baseline 并推送发生变化的值。
ctx.sessionProjectionCachecoresession-projection-cache-api-session-controller, session-query, session-reference-按会话持久保存投影单元状态的检查点(节流检查点,以及轮次/结束/分离时的必选检查点),提供缓存投影视图,并加速 prepared Session 的投影恢复。
ctx.skillsseamskillsandbox-windows-acl, skill-badge, skill-filesystem, skill-officetool-skill-合并提供方的 skill(技能)目录;tool-skill 渲染会话前缀目录,并加载完整的 skill 正文。
ctx.agentscoreagent-agent-loop, acp, subagent-拥有实时 Agent 句柄、创建/恢复工厂 seam,以及进程本地的发起方传播。
ctx.agentDefaultModelcoreagent-default-model-api-session-controller, headless-Reads the default ModelSelection from volatile Config and saves selections through the profile editor.
ctx.agentLoopbundleagent-loop-base, sdk-minimal-唯一的具体循环插件;扩展包依赖 dsh-agent 的事件和服务,而不依赖此包。
ctx.mcpManagercoremcp-manager---依据自身 volatile servers 配置对账 mcp-client 实例,聚合它们的连接状态,并向管理界面提供 restart 与 probe。
ctx.schedulecoreschedule---独立于 Session 的加载状态存储任务,并将到期消息排入每个任务的目标 Session。
ctx.goalscoregoal---从会话日志折叠带修订版本的目标状态,并将实时延续激活保留在进程本地。
ctx.sshcoressh-fs-ssh, subprocess-ssh, sandbox-ssh-负责一条经过认证的 OpenSSH 连接、已安装辅助程序身份、独立程序流,以及配套远端提供方的断连清理。
ctx.subprocessseamsubprocesssubprocess-local, subprocess-sshbash-local, bash-sandbox, terminal-bash, lsp-stdio, subagent-acp, subagent-codex, subagent-claude-code-Bash 执行器、PTY shell 后端、LSP Host,以及进程外 ACP、Codex 和 Claude Code subagent 后端都通过 ctx.subprocess 执行 spawn;该服务负责进程坐标、进程树/会话生命周期、stdio 处置、终端机制和 kill 升级。
ctx.shellseamshellbash-local, bash-sandbox, pwsh-localtool-bash, tool-pwsh, hooks-claude-code, hooks-codex-面向模型的 shell 工具和钩子桥接消费此 seam;沙箱、远程或 PowerShell 执行器可以替换 bash-local,而无需改动这些消费方。
ctx.shellEnvcoreshell-env-tool-bash, tool-pwsh-插件声明限定于 effect 作用域的 DSH_* 事实;每个 shell 工具在每次执行时收集一份可信快照,其执行器据此重建命名空间。
ctx.terminalsseamterminalterminal-bash, terminal-paneltool-terminal-注册表负责精确到 Agent 的会话身份和清理;后端负责终端机制,tool-terminal 则提供限定于所有者作用域的模型接口。
ctx.sandboxseamsandboxsandbox-local, sandbox-sshbash-sandbox, terminal-bash, api-terminal-controller-消费方交出即将执行 spawn 的确切 argv;与配套子进程提供方共享执行环境的后端按每次调用的策略包装该 argv,并报告强制执行情况。
ctx.sandboxPolicycoresandbox-policy-bash-sandbox, fs-sandbox, terminal-bash, terminal-panel-统一保存部署默认模式和工作区根目录;只有沙箱执行器和提供方读取该服务(工具层使用它同时导出的纯 sandbox/mode 折叠区)。两类强制执行组件都读取该服务,因此 bash 与 fs 不会限制到不同的根目录。
ctx.approvalseamuser-approval-tools, tool-bash, acp-一次性权限决策通过 approval/request waterfall(瀑布式事件)分派;回答方是监听器(即 ACP 为自身 agent 提供的桥接),没有回答方时以 unavailable 关闭失败。
ctx.permissionPresetscorepermission-presets---面向用户的预设表(workspace-write/danger-full-access),将沙箱模式与审批策略选项组合在一起;一次切换会写入一个 permission/preset 事件,并贯通到两个选项事件。
ctx.ptcRuntimeseamptc-runtimeptc-runtime-node, experimental-ptc-runtime-pythontool-executor-ptc, workflow-ptc-使用 Host 提供的异步绑定运行程序;tool-executor-ptc 负责 PTC 呈现,workflow-ptc 负责工作流编排。
ctx.fsseamfsfs-local, fs-sandbox, fs-sshtool-fsfs-observation-policytool-fs 通过 ctx.fs 执行读取/写入/编辑;fs-sandbox 按共享沙箱模式限制变更;fs-observation-policy 通过 fs/* 事件门禁贡献基于观测状态的检查。
ctx.compactionseamcompactioncompaction-basiccompaction-basic-基础后端消费步骤后的压力事件和请求错误恢复事件;不存在面向模型的压缩工具。
ctx.subagentsseamsubagentsubagent-spawn-in-process, subagent-fork-in-process, subagent-acp, subagent-codex, subagent-claude-code, subagent-dsh-sdktool-subagent, tool-subagent-control, tool-ralph-提供方准备本地子级或执行外部任务;一个 activation 管理器持有两类生命周期。委派工具选择后端,控制工具投递本地后续消息,工作流等待 activation 结果。
ctx.speechToTextseamexperimental-speech-to-textexperimental-speech-to-text-sensevoiceexperimental-api-speech-to-text-路由显式选择的识别器;浏览器使用带认证的 Remote,并在提交前将转写保留在草稿中。
ctx.agentTeamscoreagent-team-tool-agent-team-负责子代理树共享的任务 DAG;tool-agent-team 提供任务控制工具。
ctx.claudeCodeModscoreexperimental-claude-code-mods---加载 defineMod 插件添加的模组,从 harness 扩展点触发其钩子链,并通过其 Remote 绘制提示框上方的横幅。
ctx.inspectorcoreinspector---负责 Worker 托管的 CDP target,以及独立于传输的 Host 和 Client observation 与 Cordis tree query API。
ctx.jobsseamjobsjobs-localtool-bash, tool-pwsh, tool-terminal, tool-jobs, api-job-controller-生产方(后台 bash/pwsh 与 PTY 发送)登记正在运行的工作;声明 record 的 job 还为非消费观察者流式提供原始输出;tool-jobs 是面向模型的控制器,用于读取、列出和终止这些工作;jobs-local 是进程本地注册表。
ctx.webseamwebweb-search-deepseek, web-deepseek-api, web-fetch-httptool-web-搜索和抓取提供方注册到同一个 ctx.web seam;tool-web 负责稳定的面向模型名称。
ctx.spillStoreseamspillspill-localspill-policy-后端保存过大的工具文本,并返回面向模型的定位信息和取回提示;spill-policy 是 tools/post-execute 消费方,负责决定何时 spill。
ctx.directoryPickerseamhost-directory-pickerhost-directory-picker-native, host-directory-picker-browseapi-workspace-controller-带判别标记的交互能力:原生后端在 Host 显示设备上打开一个操作系统选择器,浏览后端为应用内浏览器提供列表与创建原语;双端后端通过其浏览器侧填充 ui-workspace 目录流程的 slot(不通过协议发布)。
ctx.webServercorehost-webserver-client-connection, client-modules, client-hmr-普通的 node:http 载体:具名路由注册表、索引转换 tap,以及静态 dist 回退;Web 传输插件注册自己的路由。
ctx.webAppcoreweb-app-harness-dev-context-web-runtime 行为其 Web GUI 公告一个 URL:配置了 publicUrl 时用它,否则用监听器 origin;DSH_WEB_URL、启动 URL 与 harness-dev-context 读取同一个值。
ctx.clientModulescoreclient-modules-client-hmr-通过增量 dsh.client 扫描组合 DSH_BOOT 入口图,提供插件组合包,并通知重建/图变更订阅方。
ctx.workflowEngineseamworkflowworkflow-ptctool-workflow, tool-ralph-每个上下文使用一个引擎,与 bash 相同,且没有具名提供方注册表;通用工作流与固定 Ralph 消费方启动运行,其中的 agent() 调用通过 ctx.subagents 扇出。
ctx.webhookRuntimecorewebhook-webhook-github-提供方适配器分派已认证交付;可信插件注册独立的进程本地规则,runtime 把非 null 结果转换为普通的 Workspace-backed Session,不保留交付或完成状态。
ctx.lspseamlsplsp-stdiotool-lsp-提供方注册与选择,加上恰好四种操作的标准化查询执行;该 seam 不提供协议逃生口,后端必须转换为标准化请求和结果。
ctx.dynamicCordisRunnercorecordis-host-runner-tool-cordis-拥有内存定义注册表、Host 半的 vm 沙箱和 request-run 往返流程;浏览器页面通过其 Remote 命名空间在线访问同一服务。
ctx.cordisInspectcorecordis-host-runner-tool-cordis-注册 Host inspect 提供方、镜像 Client 提供方 manifest,并通过动态 Cordis 传输路由 Client 查询。
ctx.liveshareSharesserviceexperimental-liveshare---以单个 Typert Remote 命名空间发布 owner 分享管理操作,供 owner 客户端面调用;每个方法都委托给同源路由原先使用的同一组操作。

维护模式:混合模式。服务从 Cordis 声明中发现;接口、实现和消费方角色在 scripts/gen-doc-graphs.ts 中分类,并设有完整性守卫。