目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
依赖链 · 下游(依赖该插件的节点):
dsh-api-remotesdsh-client-ui-conversationdsh-client-ui-goaldsh-command-goaldsh-goal-round-driverdsh-tool-goal
同一拓扑层(Layer 5,层次遍历层序):
dsh-agent-default-modeldsh-agent-instructionsdsh-agent-loopdsh-agent-preset-registrydsh-agent-tool-presentationdsh-api-account-controllerdsh-api-settings-controllerdsh-api-terminal-controllerdsh-api-workspace-filesdsh-bash-sandboxdsh-client-file-uploaddsh-compaction-image-offloaddsh-compaction-tool-result-prunerdsh-cordis-host-runnerdsh-experimental-browser-use-chrome-devtools-mcpdsh-experimental-browser-use-playwright-mcpdsh-experimental-tool-agent-teamdsh-file-reference-localdsh-fs-sandboxdsh-fs-sshdsh-goaldsh-hooks-codexdsh-jobs-localdsh-llm-retrydsh-mcp-resourcesdsh-message-feedbackdsh-permission-presetsdsh-ptc-runtime-nodedsh-pwsh-sandboxdsh-repeat-tool-reminderdsh-sdk-jsonrpc-serverdsh-session-checkpoint-policydsh-session-referencedsh-session-title-all-prompts-llmdsh-session-title-first-prompt-llmdsh-spill-policydsh-terminaldsh-time-contextdsh-tmux-contextdsh-tool-bashdsh-tool-call-timeout-policydsh-tool-fsdsh-tool-fs-searchdsh-tool-jobsdsh-tool-lspdsh-tool-presentdsh-tool-pwshdsh-tool-session-querydsh-tool-skilldsh-tool-str-replace-editordsh-tool-tododsh-tool-webdsh-tool-workspace-dependenciesdsh-user-questionsdsh-web-search-deepseek
插件信息
| 包名 | @deepseek-ai/dsh-goal |
|---|---|
| 分组 | G17 · 目标与计划 |
| 拓扑层 | Layer 5(层次遍历:被依赖方先于依赖方) |
| 源码路径 | packages/goal/goal |
① 实现逻辑
GoalService 以会话日志为唯一持久源:每次变更把完整快照写成一个 goal/change 会话事件(src/index.ts:609-626),并由 goalProjectionDefinition 严格重放派生当前目标(src/index.ts:146-169)。fold.ts 提供纯函数式解码/校验/折叠,逐操作校验相位转移与修订号恰好加一(src/fold.ts:199-332)。进程本地的 activation(armed/disarmed)单独保存,变更时 emit 'goal/activation-changed'(src/index.ts:496-515)。invariant.ts 以独立增量折叠校验全量目标流的合法性(src/invariant.ts:40-80)。
内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件
上游依赖
下游依赖
外部 seam
② 注册/提供(provides)
- ctx.goals (目标域服务 seam:create/edit/pause/resume/complete/block/clear/get/disarm + 远程绑定)
- goal 会话投影 ('goal' 投影键,含 seenGoalIds 与失败状态)
- goal/change 会话事件类型 (持久化目标变更载荷)
- goal/changed 与 goal/activation-changed 事件 (变更通知与进程本地激活边)
- goal-invariant 不变量伴随件 (目标流严格重放校验)
③ 依赖(depends_on · 上游前驱)
dsh-agentE1+E2
以 agent 为键持有运行时激活状态、校验 live 身份并订阅 agent/created
src/index.ts:12-13 import (agentEvents, Agent) + src/index.ts:241 inject ['agents','sessionProjections'] + src/index.ts:470 ctx.agents.get
dsh-invariantsE1+E2
注册目标流不变量校验伴随件
src/invariant.ts:4 import InvariantInstaller + src/invariant.ts:14 inject ['invariants'] + src/invariant.ts:80 ctx.invariants.register
dsh-llmE1
目标消息来源类型合并与 GoalError 的错误基类
src/fold.ts:3 import MessageSource + src/runtime.ts:3 import HarnessError
dsh-scopeE1
goal/changed 事件按 agent 作用域分发的类型约束
src/domain.ts:114 import('@deepseek-ai/dsh-scope').Scoped + package.json peerDependencies
dsh-sessionE1+E2
以会话事件日志作为目标状态的唯一持久来源
src/fold.ts:4 import SessionEvent + src/index.ts:14-15 import SessionSeq/Session + src/index.ts:613 agent.session.append('goal/change', change)
dsh-session-projectionE1+E2
注册并读取 'goal' 会话投影以派生当前目标
src/index.ts:17-18 import (ProjectionDefinition) + src/index.ts:258 ctx.sessionProjections.register(goalProjectionDefinition) + src/index.ts:477 ctx.sessionProjections.stateOf(session,'goal')
④ 被依赖(dependents · 下游消费者)
dsh-api-remotes
装配 goal 命名空间
src/client/index.ts:9 import remote + src/client/index.ts:43 import remote
dsh-client-ui-goal
目标投影与目标标识类型
src/client/GoalBar.tsx:12 + src/client/slots.ts:12 import GoalProjection/GoalId from @deepseek-ai/dsh-goal/client
dsh-command-goal
通过目标域服务读写持久化目标并捕获 GoalError
src/index.ts:9-10 import (GoalError, GoalPhase/GoalRef/GoalView) + src/index.ts:135 ctx.goals.get + src/index.ts:150 ctx.goals.create
dsh-goal-round-driver
读取目标状态、disarm/block/pause 并在续轮消息上标注目标来源
src/index.ts:10 import (GoalMessageSource/GoalRef/GoalView) + src/index.ts:19 inject ['agents','goals','sessions'] + src/index.ts:99 ctx.goals.get
dsh-tool-goal
通过目标域服务执行工具操作并读取 CAS 引用
src/index.ts:9-10 import (GoalId, GoalRef, GoalView) + src/authority.ts:113 ctx.goals.get + src/index.ts:225 ctx.goals.create