Bundle
dsh-plugin-automations
On-time and valley-hour (off-peak) scheduled tasks with daily repeat for the DeepSeek Harness Web profile.
- Source
- Sev7een
- stars
- 3 stars
- License
- MIT
- Updated
- Updated 13 hours ago
Readme
[English](README.md) | [简体中文](README.zh-CN.md)
# dsh-plugin-automations
> Scheduled tasks for the DeepSeek Harness Web Profile: run once or on a standard six-field Cron schedule, either on time or during DeepSeek off-peak hours.
## Features
- Settings-page form and task list with 5-second polling.
- Two execution modes: **on time** and **when idle (valley hours)**.
- Two schedule types: **once** and standard six-field **Cron** expressions. Cron is evaluated in the host's local timezone.
- `when_idle` runs outside Beijing peak hours (`09:00-12:00` and `14:00-18:00`) and automatically defers to the next valley window.
- Optional Session title templates support all task fields and Moment-style datetime formats, for example `Daily Feed · {{scheduledAt:YYYY-MM-DD}}`.
- Durable task state through `ctx.storageDomain`.
- One serialized scheduler pump persists `running` before launching the runner.
- Each occurrence uses an ordinary isolated Session with the default Agent preset, model, and Host workspace root.
- Fixed 30-minute execution timeout and explicit `host_interrupted` recovery.
- Strict JSON API validation, request-size limits, same-origin checks, and a custom mutation header.
- Automated messages use `{ kind: 'plugin', plugin: 'dsh-plugin-automations' }` and never impersonate direct human input.
The full behavioral contract is documented in [SDD.zh-CN.md](SDD.zh-CN.md).
## Installation
### `dsh plugin add` (recommended)
Install into the Web profile and restart DSH after installation.
#### From GitHub
```bash
dsh plugin --profile web add github:Sev7een/dsh-plugin-automations
```
#### From npm
Once the package is published to npm:
```bash
dsh plugin --profile web add dsh-plugin-automations
```
If you run DSH through `npx`, use the equivalent command:
```bash
npx @deepseek-ai/dsh plugin --profile web add github:Sev7een/dsh-plugin-automations
```
Verify the composed profile and restart the Web app:
```bash
dsh --profile web --dump-config
dsh web
```
Then open **Settings → 定时任务 (Scheduled Tasks)**.
### Local checkout (development)
```bash
git clone https://github.com/Sev7een/dsh-plugin-automations.git
dsh plugin --profile web add ./dsh-plugin-automations
```
### Remove
```bash
dsh plugin --profile web remove dsh-plugin-automations
```
## Usage
### Execution modes
| Mode | Behavior |
| --- | --- |
| `on_time` | Creates an isolated DSH Session and starts as soon as the task is due. |
| `when_idle` | Runs only outside Beijing peak hours; a task due during peak hours waits for the next valley window. |
### Schedule types
| Schedule | Behavior |
| --- | --- |
| `once` | Reaches a terminal state and does not run again. |
| `cron` | After each terminal occurrence, computes the next matching occurrence. A failed occurrence is not retried. |
## HTTP API
- `POST /dsh-scheduled-tasks/api/v1/tasks`
- `Content-Type: application/json`
- `X-DSH-Scheduled-Tasks: 1`
- Body: `{ prompt, schedule, mode, sessionTitleTemplate? }`
- `GET /dsh-scheduled-tasks/api/v1/tasks`
```bash
curl -X POST http://127.0.0.1:3080/dsh-scheduled-tasks/api/v1/tasks \
-H 'Content-Type: application/json' \
-H 'X-DSH-Scheduled-Tasks: 1' \
-d '{
"prompt": "check project tests",
"schedule": { "type": "cron", "expression": "0 0 8 * * *" },
"mode": "on_time",
"sessionTitleTemplate": "Daily Feed · {{scheduledAt:YYYY-MM-DD}}"
}'
```
The MVP has no edit, delete, pause, cancel, retry, or pagination endpoints.
## Development
```bash
npm install --legacy-peer-deps
npm run check
npm test
npm run build
npm pack --dry-run
```
`--legacy-peer-deps` is currently needed for local development because the published `@deepseek-ai/dsh-storage-domain` package still carries an older peer range than the current DSH Web bundle.
## License
MIT
Install
dsh plugin --profile web add github:Sev7een/dsh-plugin-automations
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-plugin-automations from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.