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
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-yierpet-sentinel from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.