返回目录
其他 待识别

cronjob-dsh-plugin

peng-huiyang/cronjob-dsh-plugin

尝试开发适配deepseek harness的定时任务插件,支持在前端页面直接设置定时任务,实现内部驱动的定时请求,满足一定程度上的脱手需求

Stars
1
Forks
0
Issues
0
更新
2 天前

PROJECT TOPICS

项目标签

PROJECT README

README

cronjob-dsh-plugin

中文 | English

面向 DeepSeek Harness机器级定时任务插件: 直接在 Web 设置页配置定时任务,到点后由宿主内部驱动、自动触发到专用「定时任务」会话 —— 脱手执行

功能

  • 真实 cron 表达式(5/6/7 段,支持 IANA 时区),基于 croner
  • Web 设置页「定时任务」:新建、编辑、启停、删除、立即触发,表单实时显示下次运行预览
  • 机器级持久任务表ctx.settings 命名空间,存储于 ~/.dsh/settings.yaml,重启不丢
  • 内部驱动触发:到点后宿主以 [CRON JOB] 用户消息唤醒专用会话,agent 执行任务并在该会话中回复
  • 模型工具 cron_create / cron_list / cron_delete:直接对 agent 说"以后每天 9 点做 X",它就帮你建任务
  • 宿主 HTTP 路由 /cronjob/*(list/create/update/toggle/delete/fire),变更类请求带同源校验

快速开始

# 1. 安装(npm 发布版)
dsh plugin --profile web add cronjob-dsh-plugin

# 2. 重启 dsh web
dsh web

# 3. 打开 设置 -> 定时任务,新建一个任务即可

零配置开箱即用:专用会话默认创建在 $DSH_HOME/cron-job(即 ~/.dsh/cron-job,插件自动创建), 与你的日常工作区完全隔离——不需要配置任何路径。

可选覆盖:想自定义专用会话的位置或名称时,编辑 ~/.dsh/profiles/web/cordis.patch.yml

- id: cronjob
  config:
    dedicatedSessionCwd: 'D:\你的\工作区'      # 可选:覆盖默认目录(必填绝对路径,需存在)
    dedicatedSessionName: '定时任务'           # 可选:新建专用会话时的初始名称

专用会话会自动归入其工作目录对应的工作区(而不是「未分组」),会话行支持重命名。 修改 dedicatedSessionCwd 后无需手动删除旧会话:下一次触发会自动轮换到新目录。

工作原理

模块 职责
store 任务表 CRUD(settings 命名空间,带校验与串行写)
scheduler 墙钟调度:算最近触发时刻 → 单定时器等待 → 唤醒后重读时钟,错过周期跳过
fire [CRON JOB] 消息入队到专用会话(whenIdle + runMaintenance + followup
routes /cronjob/* HTTP 接口,供设置页调用
tools cron_create / cron_list / cron_delete 模型工具
client 设置页「定时任务」UI(tsdown 构建的浏览器包)

文档

开发

npm install
npm run typecheck
npm test
npm run build   # host tsc -> lib/,client tsdown -> client/client.js

已知限制

  • 调度器随 dsh web 进程存活:宿主关闭即停;重启后从当前时间重算下一次,错过的周期不补跑
  • 每次触发 = 专用会话里一条用户消息,消耗模型 token;会话日志会持续增长,可用内置 /compact 压缩
  • 触发消息中的任务文本按不可信内容处理(防止提示注入)

许可证

Apache-2.0

CLASSIFICATION EVIDENCE

分类依据

项目类型待识别
功能分类其他
规则置信度

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。