Bundle
offpeak-panel
错峰任务队列面板:高峰/空闲状态徽章、队列列表(拖拽排序/删除)、高峰区间与冗余量设置。宿主侧通过 webServer 提供 /offpeak/api JSON 接口,客户端同源 fetch 展示。
- Source
- GoldenShit233
- License
- MIT
- Updated
- Updated 20 days ago
Readme
# offpeak-panel — 错峰任务队列(DeepSeek Harness 插件)
高峰时段收到较大的非即时任务时不直接执行:先 `ask_user_question` 核对任务细节、细化拆分后自动存入错峰队列,空闲时段由全局调度器自动派发回原会话执行。附右上角可拖拽的悬浮队列面板。
## 功能
- **任务入队工具**(全局注册,任何会话可用):
- `offpeak_queue_task` — 存入细化后的任务计划
- `offpeak_queue_status` — 查看队列 / 按 id 删除
- **错峰策略提示词**:收到任何需要执行的工作任务(无论大小、无论高峰与否)→ 先 `ask_user_question` 确认细节 → 拆分子任务 → 自动入队(无需用户声明「排队」)。例外:执行调度器派发的排队任务、用户明确要求立即执行、纯问答无需产出的交互。
- **全局调度器**:每分钟检查,空闲时段(北京时间非高峰窗口,可自定义)自动把 `waiting` 任务批量派发回 owner 会话执行(`[OFF-PEAK QUEUED TASK EXECUTION]`)。
- **悬浮面板**:
- 会话头「错峰队列」开关按钮(显示等待数)
- 右上角可拖拽悬浮窗:高峰/空闲徽章、北京时间、队列列表(拖拽排序 / ↑↓ / 删除)、高峰区间与冗余量设置(生效窗口 = 区间 ± 冗余,重叠自动合并)
## 安装
```bash
dsh plugin --profile web add github:GoldenShit233/offpeak-panel
```
本地安装:
```bash
dsh plugin --profile web add file:/path/to/offpeak-panel
```
安装后**重启 `dsh web`** 生效(需要 pnpm 可用;`dsh plugin` 会将其加入 `dsh.profile.bundles`)。
## 数据文件(会话工作区内)
- `.offpeak-queue.json` — 队列(只含等待任务,派发后自动清理)
- `.offpeak-config.json` — 高峰区间与冗余量配置(面板「设置」中修改)
## 结构
```
offpeak-panel/
├── package.json # dsh.bundle.patch + dsh.client(web) 声明
├── cordis.patch.yml # 插件行挂载
└── lib/
├── index.js # 宿主半部:工具 + 策略 + 调度器 + /offpeak/api/* JSON 路由
└── client.js # 浏览器半部:会话头开关 + 悬浮面板(手写 module-loader bundle)
```
## 许可
MIT
Install
dsh plugin --profile web add github:GoldenShit233/offpeak-panel
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 offpeak-panel from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.