DAG总览 / 组目录 / G31 定时调度

dsh-schedule · @deepseek-ai/dsh-schedule

Layer 8G31L2 web-app
目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
依赖链 · 下游(依赖该插件的节点):
同一拓扑层(Layer 8,层次遍历层序):
↑ Layer 7(16 插件)Layer 8↓ Layer 9(1 插件)

插件信息

包名@deepseek-ai/dsh-schedule
分组G31 · 定时调度
拓扑层Layer 8(层次遍历:被依赖方先于依赖方)
源码路径packages/schedule/schedule
来源层L2 web-app bundle(base 之上装配)

① 实现逻辑

ScheduleService(ctx.schedule)以 storageDomain 持久化 Host 级提醒任务,暴露 create/list/catalog/history/delete/update(部分 @Remote)并派生四条 agent 作用域工具 schedule_create/list/delete/update(src/index.ts:100-460, src/tools.ts:408-551)。ScheduleRuntime 持有单个定时器,扫描到期任务、经 sessionController.resolveAgent 恢复会话、以 producer kind 'schedule' 投递提醒消息并在 ctx.sessions.flush 确认后推进或退休任务(src/runtime.ts:44-165)。storage.ts 用严格 zod schema 定义 tasks 表与投递历史(src/storage.ts:37-60),domain.ts 负责纯递归/一次性规则与视图,invariant.ts 校验 schedule/change 事件流(src/invariant.ts:19-54)。

内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件 上游依赖 下游依赖 外部 seam

② 注册/提供(provides)

③ 依赖(depends_on · 上游前驱)

dsh-agentE1+E2
把工具注册绑定到根 agent 的作用域与会话
src/tools.ts:7 import + src/index.ts:170 ctx.agents.roots
dsh-api-session-controllerE1+E2
在到期投递时恢复/激活目标会话
src/index.ts:7 type import + src/runtime.ts:10 import + src/runtime.ts:101 ctx.sessionController.resolveAgent
dsh-invariantsE1+E2
注册 schedule/change 事件流的运行时不变式
src/invariant.ts:8 import + src/invariant.ts:63 ctx.invariants.register
dsh-llmE1
构造 schedule 来源的用户消息并标记 MessageId 品牌
src/runtime.ts:2-3 import + src/storage.ts:4 import
dsh-sessionE1+E2
以会话作为投递目标并强制送达前持久化
src/domain.ts:7-8 import + src/storage.ts:3 import + src/index.ts:96 ctx.sessions + src/runtime.ts:124 ctx.sessions.flush
dsh-storage-domainE1+E2
把任务与投递历史持久化到 schedule 存储域
src/index.ts:6 import + src/storage.ts:5 import + src/index.ts:126 ctx.storageDomain.open
dsh-toolsE1+E2
用 defineTool 向 agent 作用域注册四个 schedule 工具
src/tools.ts:9-10 import + src/index.ts:101 static inject
dsh-workspaceE1
以 SessionActivity 类型参与工作区归档准入与停止判定
src/index.ts:9 type import + src/types.ts:11 import

④ 被依赖(dependents · 下游消费者)

dsh-api-remotes
装配 schedule 命名空间
src/client/index.ts:10 import remote + src/client/index.ts:44 import remote
dsh-client-ui-schedule
读/写/删 Host 日程任务与投递历史
src/client/index.ts:44 import + src/client/index.ts:97 ctx.remote.schedule.catalog()
dsh-client-ui-workspace
归档前检查会话是否有计划任务
src/client/session-actions/ArchiveSession.tsx:14 import type