Skip to content
dsh.fish
Bundle

dsh-yierpet-sentinel

Forwards dsh lifecycle events to the YierPet desktop-pet sentinel (fire-and-forget, never blocks dsh).

Source
wusai2333
License
MIT
Updated
Updated 22 days ago

Readme

# dsh-yierpet-sentinel

把 [dsh](https://github.com/deepseek-ai/deepseek-harness)(DeepSeek Harness)的
生命周期事件推给桌宠哨兵 **YierPet**(macOS 桌宠,监听本地 agent CLI 状态):
等确认 / 完成 / 报错时气泡+动画+提示音提醒。

零依赖、纯 host 侧的 Cordis 插件。监听 dsh 的 `session/event` 事件流
(dsh 内置宠物消费的同一条缝),fire-and-forget 转发到 YierPet 的 loopback
HTTP 端点:

| dsh 事件 | YierPet hook | body |
|---|---|---|
| `turn/start` | `UserPromptSubmit` | — |
| `tool/result` | `PostToolUse`(心跳)/ `PostToolUseFailure` | `{error}` |
| `approval/asked` | `PermissionRequest` | `{message}` |
| `llm/retry` | `PostToolUseFailure`(限流/模型报错,重试中) | `{error}` |
| `turn/end` completed | `Stop` | `{text: 最后一条回复}` |
| `turn/end` error | `PostToolUseFailure` | `{error}` |
| `session/disposed` | `SessionEnd` | — |

**铁律**:1 秒超时、所有错误静默、绝不阻塞 dsh;`~/.yierpet/endpoint` 不存在
(YierPet 没运行)时直接跳过。子 agent 会话不打扰(其审批除外)——主回合的
Stop 已覆盖用户可见的完成时刻。

## 前置

运行中的 YierPet(它会把监听 URL 写入 `~/.yierpet/endpoint`)。

## 安装

```sh
dsh plugin --profile web add github:wusai2333/dsh-yierpet-sentinel
```

装完重启 dsh 生效。用 TUI 的话同样装进 `dsh-tui` profile
(`--profile dsh-tui`)。验证已组合:

```sh
dsh --profile web --dump-config | grep yierpet
```

## 自检

```sh
node --test test.js                                          # 映射逻辑
printf '{"text":"dsh 接入测试"}' | ~/.yierpet/hook.sh dsh Stop  # YierPet 侧(运行时)
```

卸载:`dsh plugin --profile web remove dsh-yierpet-sentinel`。

Install

dsh plugin --profile web add github:wusai2333/dsh-yierpet-sentinel

Profile: web

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