Skip to content
dsh.fish
Bundle

@anco-dsh/dsh-task-notifier

DSH 任务完成通知器:Agent 每轮完成、子代理结束、Workflow 跑完、目标完成、Agent 提问时发送系统通知(macOS osascript)。

Source
AnCoSONG
Updated
Updated 7 days ago

Readme

# dsh-task-notifier

DSH 任务完成通知器:任务结束时发送**系统通知**(当前实现为 macOS `osascript` 横幅),触发链来自浏览器/会话事件;通知通道按平台分发(macOS osascript / Linux notify-send / Windows toast),不依赖浏览器权限。

## 功能

| 场景 | 事件 | 默认 |
|---|---|---|
| 每轮对话完成(仅根 agent) | `agent/status` | 开 |
| 子代理结束 | `subagent/end` | 开 |
| Workflow 跑完 | `workflow/end` | 开 |
| 目标(goal)完成 | `goal/changed` (complete) | 开 |
| Agent 提问 | `tools/execute` (ask_user_question) | 开 |

通知通道:Host 端通过 `ctx.shell` 执行平台系统通知命令(macOS `osascript` / Linux `notify-send` / Windows PowerShell toast),无需 Client 端、无需审批。

## 安装

在 DSH profile(Web GUI 默认 profile 为 `web`)中安装:

```sh
dsh plugin --profile web add @anco-dsh/dsh-task-notifier
```

或从本仓库直接安装(本地开发):

```sh
dsh plugin --profile web add .
```

> 提示:如果你使用非 `web` 的 profile,把上面的 `web` 换成你的 profile 名即可(`dsh --profile <name>` 或 GUI 设置里的当前 profile)。

## 配置

所有场景默认开启,可通过 profile 的 `cordis.patch.yml` 按 id 覆盖整行 config:

```yaml
- id: task-notifier
  config:
    notifyOnTurnEnd: true
    notifyOnSubagentEnd: false
    notifyOnWorkflowEnd: true
    notifyOnGoalComplete: false
    notifyOnQuestion: true
```

## 发布

```sh
# 1. 构建产物
pnpm pack

# 2. 发布到 npm(需要 npm 账号)
npm publish

# 或交付 tarball
dsh plugin --profile web add ./anco-dsh-dsh-task-notifier-0.1.4.tgz
```

## 依赖

- 运行时:零依赖(Config 为手写 Standard Schema)
- 环境:跨平台(macOS `osascript` / Linux `notify-send` / Windows PowerShell toast)

Install

dsh plugin --profile web add github:AnCoSONG/dsh-task-notifier

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source