@aiwayds/dsh-cron

中文文档
0.6.1发布于 2026/10/26MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 1857

dsh 插件: cron 排程 — 带有日历和间隔规则的被绑定的任务, 交付给活代理

中文使用文档
文档目录15 节
  1. 为什么不安排?
  2. 核心属性
  3. 代理使用(初级)
  4. 工具参考
  5. 语法
  6. 人类使用
  7. 持久性
  8. 安装
  9. 卸载
  10. 技能(示范指导)——默认安装
  11. 设置( E) dsh-cron 配置补丁中的条目)
  12. 限制
  13. 建筑
  14. 欧2E
  15. 许可证

@aiwayds/dsh-cron (英语)

安排会议日程 深搜索策略 作为独立的插件:在标准克龙表达式或固定间隔上的时间表提示,绑定在一个准确的会话上——默认生成者,或专用的新会话——没有全局发送(ADR 0010).

需要dsh >= 6.2.0-rc.2 ——此插件仅针对 dsh RC/ stable 线条( CI并发布解析其中最新的 latest编号 :next 运行时的分数). Α行不再被支持.

设计文件 : 内 容 提 要 (荣耀)和 页:1 (决定).

为什么不安排?

@deepseek-ai/dsh-schedule 提供会话范围提醒( e)after 编号 : at 编号 : every_seconds ≥ 5min),其协议明确排除克龙表达. dsh-cron是补充: 真实克龙表达式上的经常性任务,使用相同的有会话约束的纪律——火灾只在会话中降落,任务必须(默认生成,或专用的新会话),而停止的会话会取消它的任务,这与dsh-chedule的提醒完全一样. dsh-chedule说"在时间X重回这次对话"的地方,dsh-cron说"运行这个有界限的克龙任务用于会话Y".

截止 dsh. 0. 2. 0, 正式自动化调度船作为 OPTIONAL BUNDLE 默认已禁用 ——升级后,现有的官方计划任务静悄悄地停止开火,直到你手动选择加入(而官方的时间文本功能也随之变暗了). dsh-cron不受开关的影响:这是一个 独立、常住调度插件 以注册它自己的 cordis 插件和时钟, 不依赖于正式的捆绑 。 。 如果您依赖于官方的预定任务,并且不希望在每次主机升级后猎取隐藏的设置来切换,dsh-cron是总是在运行的选项;两者也可以并存,因为他们的规则词汇不相重叠(在/每一次提醒vs cron表达式和短限间隔).

核心属性

  • 以一次届会为准,绝不是全球性的 (ADR 0010):每一项任务都包含 attach —— 说 creator (默认)向会话传递出每道火花 cron_create· ; new 打开任务专用会话(从对话中分离出背景显示器). 其会话被停止的起火从未在别处改道;发生时跳过(ADR 0002).
  • 没有无限的曲折 (ADR 0006):每个经常性任务都带有强制性有效性窗口(max_duration_seconds 或者说 end_at),上限为一年. 任务到期后会交付一个终端 expired 火和档案本身。 单发任务在他们单发后进行自制.
  • 两个规则形状 (ADR0007): (中文(简体) ) cron (5-字段日历表达式,主机-本地时间)或 every_seconds 60分,停靠在 start_at,第一个射击 整个间隔.
  • 该插件拥有时钟 (ADR 0007):模型仅表示意图(every_seconds: 600, (中文(简体) ), end_at: "2026-12-31T00:00:00Z"); 插件中所有时间的数学发生,工具结果对绝对ISO时间(now, (中文(简体) ), next_fire) (中文(简体) ). 模型从来不需要知道当前时间.
  • 每个任务执行政策 (ADR0003): (英语: followup (默认) 通过会话代理器的闲置相间排入一个新的转折—— 繁忙的目标等待和将已逾期的事件合并为一个带有注释的起火 coalesced_count。 。 。 . steer 通过 agent.steer() 并在最近的阶地边界上着陆, 中间转弯—— 监督选项.
  • 两种执行模式 (ADR 0005): (韩语) sub-agent (默认)——框架指示模型产出一个孤立的背景工作者,然后呼叫 cron_report 将回填状态/摘要输入火灾记录; self ——在捆绑的对话中自己处理,最好的报告.
  • 错过的事件被跳过, 从来没有迟到 (ADR 0002):如果配置文件已下调,或者当发生时约束会话无法解决,则记录并结算。 在停机档案中少了一发子弹 missed. Cron意为"执行时为X";dsh-cron不复活已过时的工作.
  • 周期随会 (ADR 0010):当火灾到期时,根据需要恢复冷会(主机重新启动);停止会话(存档于 stopActivity)取消它的任务;归档一个仍然持有克龙任务的会话被拒绝,直到它们停止——dsh-chedule的纪律,被应用于克龙.
  • 完全可追踪性 (问题3):每一发火都会产生耐用性 FireRecord (时间,政策,模式,结合计数,状态,汇总). 记录与任务一起运行, 上限为每任务7个( 可配置); 结束的任务移动到 _history.json (第50页).
  • 每个顶级代理工具 (ADR 0006): (韩语) cron_create 编号 : cron_list 编号 : cron_delete 编号 : cron_report 在所有运行时代理和每个任务记录上注册 createdBy授权的儿童会议在创立时遭到拒绝——他们的会议从未遭到火灾.

代理使用(初级)

LLM直接调用工具. 人类只是说:

  • "MH 10 Q CI跑出1234分,""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" cron_create({ every_seconds: 600, prompt: "检查 CI run 1234,终态则 cron_delete 本任务并汇报", max_duration_seconds: 7200 })
  • "... 9..." ,"...","..." ..... cron_create({ cron: "0 9 * * 1-5", prompt: "生成本周周报", end_at: "2026-12-31T23:59:59+08:00" })
  • "... 90%..." ......"...".. cron_create({ cron: "0 * * * *", prompt: "检查磁盘使用率", delivery_policy: "steer", execution_mode: "self", max_duration_seconds: 86400 })

工具参考

工具目的
cron_create创建任务 。 一条规则就是cron | every_seconds); 重复性任务需要精确一个窗口(max_duration_seconds | end_at) (中文(简体) ). attach 选择绑定会话 : creator (违约)或 new (专事.
cron_list带有绑定会话,下发时间的主动任务,并保留消防记录.
cron_delete删除和归档( 状态) cancelled) (中文(简体) ).
cron_report倒装出火的结果( E)completed编号 :failed + 摘要;报告一发档案.

语法

标准5字段 : minute hour day-of-month month day-of-week,附有清单1,3,5),范围(1-5),步骤*/2),以及月/日名称(jan, (中文(简体) ), mon) (中文(简体) ). 评估 主机的本地时区 (每个任务IANA) time_zone 计划快速跟进——见ADR 0009.

人类使用

/cron list
/cron create "*/10 * * * *" "检查 CI run 1234,终态则删除本任务" --for=7200
/cron create "0 9 * * 1-5" "生成周报" --until=2026-12-31T23:59:59+08:00
/cron create "0 * * * *" "磁盘水位巡检" --new-session --for=2592000
/cron delete a1b2c3d4
/cron fires a1b2c3d4
/cron history 20

--new-session 打开任务专用会话而不是绑定 谈话是你指挥的.

持久性

存储为 profile- 级别, 因此绑定可幸存重新启动; 每个任务文件 记录它交付给的会话(ADR 0001存储位置,ADR 0010) 绑定 :

$DSH_HOME/storages/cron/<8-hex-id>.json   # active tasks with their fire records
$DSH_HOME/storages/cron/_history.json     # capped archive of ended tasks

Antomic 写入(tmp + fsync + rename); 腐败文件被跳过,永远不会致命.

安装

dsh plugin --profile tui add @aiwayds/dsh-cron

然后在配置文件中添加软件包 dsh.profile.bundles (之后) (中文(简体) ) @deepseek-ai/dsh-base)并重新启动配置文件.

卸载

dsh plugin --profile tui remove @aiwayds/dsh-cron

主机自动调节配置文件: dsh.profile.bundles 条目被分解,插件的补丁层会下降——时刻表静静地停止射击,并捆绑 dsh-cron-config 技能随插件从注册处消失.

哪些留在磁盘上,哪些是故意的(删除数据具有破坏性,再安装后再加水):

  • <dsh home>/storages/cron/<id>.json 使用其消防记录,包括时刻表的有效性窗口,执行中的任务.
  • <dsh home>/storages/cron/_history.json ——结束任务的封顶档案.

以下为 Reinstall 语义 ADR 0002 (韩语): 插件离开时到期的事件是 跳过并记录下来,从未迟到 ——停机时间一发失联被存档为: missed. Cron 表示"在时间X执行";插件不会在空白后再复活已过时的工作.

遗产说明:0.2.0前的发行记录了手动技能副本(cp -r skill/cron $DSH_HOME/skills/) (中文(简体) ). 该副本已过时,因为技能现在通过供应商登记册上载——删除陈旧的 $DSH_HOME/skills/cron 如果制作一个目录,或者它阴影了被包装的指南。 清除任务数据:

rm -r ~/.dsh/storages/cron

技能(示范指导)——默认安装

Npm 柏油球飞船 a dsh-cron-config 技术(skill/dsh-cron-config/SKILL.md),教导模型何时以及如何使用工具(规则选择、窗口思维、会话约束、部署监测器和监视器模式)。 它会挂起 自动: 插件在启动时将它与主机的技能注册注册( )ctx.skills 提供者, 被捆绑的级别),所以安装插件就是技能安装—— 没有文件副本输入 $DSH_HOME/skills,并删除插件,删除了该插件的技巧,没有残留.

用户从不用手来引用:在任何顶级会话中,通过技巧来表达"MS 10 QQ CI"或"观察这个部署直到完成"等语句,以及模型路线 cron_create技能体生活在 技能/dsh-cron-config/SKILL.md。 。 。 .

设置( E)dsh-cron 配置补丁中的条目)

从第0.1.7段起,遗产 settings.yaml 在启动时导入并重新命名 settings.yaml.imported; 插件设置位于配置补丁 (单位:千美元)~/.dsh/profiles/<profile>/cordis.patch.yml在 dsh-cron 输入。 全体 四键易变 (设置- 页面可编辑, 运行在引擎读取的地方) * 每分一勾; storageDir 财务报告和审定财务报表 tickIntervalMs 在插件挂载时读取, 所以 重新开始后,该修改将适用.

密钥默认含义
fireHistoryLimit第7条每个任务(最老被逐出)都保存着火灾记录.
historyLimit第50条归档任务保存在 _history.json。 。 。 .
tickIntervalMs15000个排程计时周期 .
storageDir—— 说存储覆盖; 空 = <dsh home>/storages/cron。 。 。 .

从0.1.7前安装升级:顶级 cron: 旧章节 settings.yaml (主机重命名为) settings.yaml.imported 之后 1- shoot 导入—— 区域名称不匹配此插件的条目 id) 是 在下一个插件启动时迁移 ONCE 。 遗留价值与 当前有效值写入 dsh-cron 自动输入; 密码记录在审计标记中 <dsh home>/storages/dsh-cron/legacy-import.json (当前标记系指 迁移从不重运行;在下一个启动时重复写入失败 .

限制

  • 消防队需要现场资料: dsh-cron是一款由设计(ADR 0001;一个MCP服务器不能推)而来的一个进程内插件. dsh 运行时不会起火, 当火灾发生时,根据需要恢复冷会(ADR 0010),但只有在主机进程启动时.
  • 只在约束会话后交付 (ADR 0010):一个会话被停止到会话返回或被停止活动(取消任务)的任务. 从设计上讲,没有其他对话的路线.
  • 子代理会话既不创建也不接收- 拒绝授权的儿童开庭 cron_create 永远不能成为目标.
  • 主机- 本地日历时间:日历规则读取主机时钟的区;UTC中的容器会转换出站后钟表(ADR 0009).
  • self- 模式结果最好:没有什么可以强迫模型调用 cron_report;子代理模式是可追踪的默认值.
  • 每滴一个方向盘:当一个方向盘坐落在一个收件箱中时,后来的事件仍然每勾选一次提交而不是倒塌(dsh的收件箱不能从插件中进行内置).

建筑

src/
  index.ts        plugin entry: settings, agent/created mount, /cron, tick loop, session lifecycle
  scheduler.ts    dsh-free tick engine (fires, coalescing, skip, expiry)
  attach.ts       session binding glue: target resolution, cold resume, dedicated sessions
  rule.ts         selector + validity-window validation, occurrence math
  cron-expr.ts    5-field cron parser + next-fire computation
  framing.ts      [CRON FIRE] model framing (injection-resistant)
  tools.ts        cron_create / cron_list / cron_delete / cron_report
  store.ts        per-id JSON task store + capped history (atomic writes)
  legacy-import.ts one-time `cron:` section migration (0.1.5 → 0.1.7) + audit marker
  types.ts        data model and clock seam
  paths.ts        dsh home resolution
test/             unit suites over the compiled lib (fake clocks/agents)
scripts/
  smoke-boot.mjs  real-host smoke: pack → scratch profile → boot
e2e/              podman suite: real dsh TUI in tmux driven against a scripted mock LLM

欧2E

e2e/run-e2e.sh 构建容器图像( Ubuntu + Node + 全球 dsh 安装 + 包装的插件 tarball) 并驱动 tmux 中的真实 TUI 以对抗容器 模拟 OpenAI 兼容 LLM - 没有证书,完全有决定性, 同一个套房的门CI。 这些假设情景将整个链末到:

  1. profile 组装 - 插件会编成真正的 dsh 捆绑树
  2. TUI 启动到脚本提供者
  3. 自模式链——模型生成任务,60后调度器起火 [CRON FIRE] 将土地活埋, cron_report 回填记录,商店声称 status: completed
  4. 副剂链——火产出一种真正的 dsh 子剂,其 cron_report 由孩子补充
  5. 命令过期( e) - /cron list 编号 : /cron help,窗口关闭,任务存档本身为 expired, (中文(简体) ), /cron delete 存档为 cancelled
./e2e/run-e2e.sh                   # dev machine (uses registry mirrors)
CLEAN_NETWORK=1 ./e2e/run-e2e.sh   # CI-like network (official endpoints)

从 @aiwayds/pi-kimi-cron (英语) (从Kimi Code的克龙模块中自行移植),重新设计了dsh的运行时间——三角洲全部被收录在 页:1。 。 。 .

许可证

麻省理工学院

版本与发布记录

@aiwayds/dsh-cron 共发布 12 个版本,首次发布于 2026/09/03;过去 12 个月发布了 12 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.6.1latest2026/10/2612 天前
0.6.02026/10/2118 天前
0.5.12026/10/1226 天前
0.5.02026/09/291 个月前
0.4.32026/09/251 个月前
0.4.22026/09/251 个月前

关于 @aiwayds/dsh-cron 的常见问题

@aiwayds/dsh-cron 是什么?

dsh 插件: cron 排程 — 带有日历和间隔规则的被绑定的任务, 交付给活代理

如何安装 @aiwayds/dsh-cron?

在项目目录运行 npm install @aiwayds/dsh-cron,或使用 pnpm add / yarn add / bun add。

@aiwayds/dsh-cron 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aiwayds/dsh-cron 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@aiwayds/dsh-cron 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.19.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aiwayds/dsh-cron 可以商用吗?

@aiwayds/dsh-cron 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@aiwayds/dsh-cron 的下载量有多少?

根据 npm 官方下载统计,@aiwayds/dsh-cron 在 2026/10/05 – 2026/11/03 这 30 天内被下载 1,857 次,日均约 62 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aiwayds/dsh-cron 还在维护吗?

最新版本 0.6.1 发布于 2026/10/26(12 天前);至今共发布 12 个版本,其中过去 12 个月发布了 12 个;首次发布于 2026/09/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。