Chuyển đến nội dung chính

dsh-scheduled-actions

Đã xác minh

dsh-scheduled-actions · v0.2.0 · MIT · Giao diện web

Host-level scheduled actions for DeepSeek Harness — create, verify, and run actions on a schedule (one-shot, interval, daily, weekly, cron, on-startup) with a JSON store and a Settings UI.

Cài đặt

dsh plugin add dsh-scheduled-actions

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.

Thẻ

Readme

dsh-scheduled-actions

Планировщик действий для DeepSeek Harness (DSH) · Host-level scheduled actions for DeepSeek Harness

Плагин добавляет в DeepSeek Harness хост-уровневый планировщик действий: действия создаются, проверяются и выполняются по расписанию — независимо от какой-либо сессии агента. Они сохраняются в JSON-файл и сами запускаются, пока DSH работает.

Возможности

  • 6 типов расписаний: one-shot, interval, daily, weekly, cron, on-startup.
  • 2 типа действий: agent-prompt (доставка промпта в сессию агента) и shell-command (команда в POSIX-shell с захватом вывода).
  • Политики для on-startup: everyStart, onceNextStartup, oncePerDay, oncePerWeek — действие запускается при старте хоста по выбранному правилу.
  • JSON store ~/.dsh/scheduled-actions.json (настраивается через storePath) с атомарной записью (temp + rename).
  • SchedulerEngine на setTimeout — не привязан к сессии, работает на уровне хоста.
  • Валидация времени через встроенный Intl.DateTimeFormat (IANA-зоны, DST) — без внешних зависимостей.
  • UI в Настройках: секция «Запланированные действия» — таблица, фильтр «показать прошедшие», массовое удаление, форма создания/редактирования с проверкой, запуск «выполнить сейчас».
  • Куда отправлять запрос (для agent-prompt): по умолчанию — первому активному агенту, либо конкретный чат из списка живых, либо «создать чат для события» (имя = названию события), либо «каждый раз в новом чате» (имя = событие + дата запуска). Для создания чата выбирается workspace в форме.
  • AI-инструменты для агентов: scheduled_action_list, scheduled_action_create, scheduled_action_update, scheduled_action_delete, scheduled_action_run_now.
  • RPC-мост между браузером и хостом через ctx.connection (/scheduled-actions/<method>).
  • Полная обратимость: при остановке/удалении плагина все таймеры и обработчики корректно отключаются.

Установка

dsh plugin --profile web add dsh-scheduled-actions
dsh web

Удаление:

dsh plugin --profile web remove dsh-scheduled-actions

Использование

Настройки (UI)

Откройте Настройки → Запланированные действия. Доступно:

  • список действий с расписанием, состоянием (Активно / Отключено / ✓ Выполнено / ✗ Ошибка) и временем следующего запуска;
  • создание и редактирование действия: название, описание, тип (agent-prompt / shell-command), payload, расписание;
  • включение/отключение, удаление (по одному или выбранные) и немедленный запуск «выполнить сейчас»;
  • переключатель «показать прошедшие» для завершённых и завершившихся с ошибкой действий.

Через агента (AI-инструменты)

Каждый корневой агент получает инструменты управления:

Инструмент Назначение
scheduled_action_list Список всех действий: id, label, kind, enabled, next run.
scheduled_action_create Создать действие (dry_run — валидация без сохранения).
scheduled_action_update Обновить поля действия по id.
scheduled_action_delete Удалить действие по id.
scheduled_action_run_now Выполнить действие сейчас, вне расписания.

Хранилище

Действия лежат в ~/.dsh/scheduled-actions.json. Путь можно переопределить в конфигурации плагина scheduled-actions (поле storePath).

Сервис ctx.scheduledActions

  • list(), get(id)
  • create(input), update(id, changes), delete(id), toggle(id)
  • runNow(id), dispatch(action), checkOverdue()
  • runStartupActions() — запуск положенных on-startup действий при старте хоста.

Расписания

Тип Параметры Пример
one-shot at (ISO instant, строго в будущем) 2026-01-01T00:00:00Z
interval intervalSeconds (мин. 300), опц. repeatCount каждые 3600 с
daily dailyTime (HH:mm), опц. time_zone 09:00
weekly weeklyDay (0–6, 0 = вс), weeklyTime, опц. time_zone 1, 08:30
cron cronExpr (5 полей) 0 6 * * *
on-startup startMode: everyStart / onceNextStartup / oncePerDay / oncePerWeek при каждом старте

После успешного запуска расписание автоматически продвигается: повторяющиеся действия получают следующее nextRunAt, one-shot переходит в состояние completed — движок не зацикливается на уже выполненном действии.

Структура

  • lib/index.js — host-плагин: сервис ctx.scheduledActions, RPC-мост, жизненный цикл инструментов.
  • lib/domain.js — модель ScheduledAction, валидация времени, computeNextRun.
  • lib/store.js — ScheduledActionStore (JSON-файл, атомарная запись).
  • lib/scheduler.js — SchedulerEngine (таймеры).
  • lib/execution.js — исполнители payload: shell-command и agent-prompt.
  • lib/tools.js — регистрация AI-инструментов в область агента.
  • lib/remote.js — wire-проекция view(action) и Typert Remote-контроллер.
  • lib/client.js — браузерный клиент (секция в Настройках).
  • cordis.patch.yml — Cordis-патч, добавляющий плагин в композицию.
  • tests/ — smoke-тесты.

Разработка

npm run check   # синтаксическая проверка всех lib/*.js
node tests/smoke.mjs

prepack (выполняется при npm publish) автоматически запускает npm run check.

Лицензия

MIT


English

Host-level scheduled actions for DeepSeek Harness (DSH). Create, verify and run actions on a schedule (one-shot, interval, daily, weekly, cron, on-startup) with agent-prompt / shell-command payloads. Actions persist to a JSON store, self-execute while DSH is running, are manageable from a Settings UI section and via agent tools (scheduled_action_list/create/update/delete/run_now).

dsh plugin --profile web add dsh-scheduled-actions