dsh-mishu 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,90 @@
1
+ # dsh-mishu 调研与设计起点
2
+
3
+ > 2026-10-20 整理。给新开的写代码窗口用:先读完这份,再动手。
4
+
5
+ ## 一句话
6
+
7
+ **dsh-mishu(DSH 小秘书)**:替你把 GitHub、邮箱、飞书、Telegram 这些地方的消息拉过来,**判断哪些真需要你处理**,噪音自动归档,只把要做的事告诉你。
8
+
9
+ 和市场上几百个"通知插件"方向相反:它们是 DSH 跑完任务后**往外推**;mishu 是去各个来源**往里收**,再做分诊。
10
+
11
+ ## 为什么做:一个真实例子
12
+
13
+ 2026-10-20 手动查 AIcivilization 的 GitHub 通知:**51 条未读里,只有 1 处值得处理**。其余都是噪音,而且分辨规则都很明确:
14
+
15
+ | 通知 | 实际情况 | 判断规则 |
16
+ |---|---|---|
17
+ | `AIcivilization/awesome-dsh-plugin` 每天 3 个工作流失败(Adopt plugin discussions / Build site / Site health) | 这是个 fork,0 个自有提交、落后上游 2110 个,跑的是上游的定时工作流 | **fork 上跑上游的工作流 → 噪音**;建议关掉 fork 的 Actions 或删掉 fork(这是唯一要做的事) |
18
+ | 上游 awesome-dsh-plugin 的 4 个 PR(#5948 #6430 #7267 #7533) | 全部已合并 | **PR 已合并/关闭 → 已完结** |
19
+ | `dsh-vps-manager#6` alpha 兼容性检查失败 | 后续一轮通过,bot 已自动关闭 | **issue 已关闭 → 已完结** |
20
+ | dsh-model v0.18.1 ~ v0.21.5 的 ci 失败 | 旧 tag;main 和最新 v0.22.0 都是绿的(失败原因是测试里下载引擎文件得到空文件,sha256 = e3b0c442…) | **旧 tag 失败,但同工作流更新的 tag 或 main 已经变绿 → 已被取代** |
21
+ | vpssh v0.1.12 / v0.2.4 Release 失败 | 下一个版本就修好了 | 同上 |
22
+ | dsh-cpamc assets 失败 2 次 | 之后通过 | **同工作流同分支最新一次成功 → 已恢复** |
23
+ | dsh-vps-manager 多次"DSH 兼容性检查"失败 | 最新一次成功 | 同上 |
24
+
25
+ 核心价值就在这张表:**规则先过滤,模型只处理规则判断不了的**,最后输出"要做的事"清单。
26
+
27
+ ## 市场调研结论(awesome-dsh-plugin,共 6254 个插件)
28
+
29
+ **没有"多来源拉取 + 判断哪些要处理"的插件。** 相关的插件都只做了一块:
30
+
31
+ | 类别 | 插件 | 和 mishu 的差别 / 可借鉴点 |
32
+ |---|---|---|
33
+ | GitHub | `Harzva/dsh-pr-guardian` | 收集自己 PR 的评论和审查,有本地处理进度——可参考它的"已处理"状态设计 |
34
+ | GitHub | `delock/dsh-pr-board` | PR/issue 看板(等我 / 等作者 / 可合并…),有 CI 徽章——分类思路可借鉴 |
35
+ | GitHub | `173787247/dsh-wsl-github` | 只查当前仓库的 PR 和 Actions |
36
+ | 邮件 | `STARDUSTLC666/dsh-email`(npm 0.17.2,约 2000 下载,同类最热门) | 十个邮件工具:增量检查新邮件、标记、回复,内置 QQ/163/Gmail/Outlook 等预设,Outlook OAuth2——**可以考虑直接依赖它,而不是自己写 IMAP** |
37
+ | 邮件 | `Feizhaiqianqian/dsh-email-board` | 基于 dsh-email 的只读未读看板,证明"在 dsh-email 上叠一层"是可行的 |
38
+ | 邮件 | `huaxiren6/DSH-EmailReader` | Outlook OAuth2 IMAP 读取 |
39
+ | 待办 | `lumoping/dsh-todo-inbox` | agent 登记"等人处理"的事项,侧栏显示角标——**最接近 mishu 的输出形态** |
40
+ | 定时 | `john-walks-slow/dsh-proactive` | host 级定时唤醒(cron/间隔),有安静时段和每日预算——可以作为定时拉取的参考 |
41
+ | 定时 | `dsh-plugin-collection/dsh-later` | 定时提醒、延迟发送 |
42
+ | 待办派发 | `zhengjy01/dsh-task-dispatcher` | 定时从滴答清单拉到期任务,只在变化时通知——"只在变化时提醒"值得照搬 |
43
+ | IM 渠道 | `534119219/dsh-messaging`(27 个平台)、`shrekcg/dsh-im-channel`(飞书/TG/钉钉/Slack)、`ThreeBody6666/dsh-im-hub`、`173787247/dsh-wsl-im` | 都是"用 IM 驱动 agent",不是"读你的 IM 消息";但飞书长连接、TG 长轮询的接入方式可以参考 |
44
+ | 往外推的通知 | dsh-notify-center、dsh-herald、dsh-pharos 等几百个 | 方向相反,不是竞品 |
45
+ | 我们自己的 | `/Users/wf/dsh/dsh-watch`(本地 0.0.1,未发 npm) | **往外推**:Telegram / Bark / ntfy / webhook,有 urgent 立即推送和 info 进每日摘要——mishu 的提醒出口可以直接复用它的 providers |
46
+
47
+ **外部产品**也没有现成的:多是 n8n / Zapier 工作流模板(邮件分类后推到 Slack 或 Telegram);GitHub awesome-copilot 里的 roundup 技能会把 GitHub、邮件、Slack 汇总成简报,但只总结、不分诊;微软有用 MCP 处理 Outlook 和 Teams 的示例。
48
+
49
+ ## 来源清单(按优先级)
50
+
51
+ 1. **GitHub notifications**:`/notifications` API,再按 subject 去查 PR、issue 和 CI 的当前状态。第一版先做这个:例子最真实,规则也最清楚。
52
+ 2. **邮箱**:IMAP,或依赖 dsh-email。
53
+ 3. **飞书**:消息、@我、审批、日程、任务(开放平台 API)。
54
+ 4. **Telegram**:Bot API 只能收到发给 bot 的消息;要读自己账号的未读,得走用户账号的 MTProto,复杂度和风险都高,开工前要先定方案。
55
+ 5. 后续可加:
56
+ - 开发相关:npm 弃用和安全告警、Dependabot、证书和域名到期、VPS 监控告警、App Store 和 Google Play 审核
57
+ - 账单和额度:云服务续费、API 余额、订阅扣款
58
+ - 其他 IM:微信、企业微信、钉钉、Slack、Discord
59
+ - 日程和待办:Apple 日历和提醒事项、滴答清单
60
+ - 兜底:RSS / Webhook 通用入口
61
+
62
+ ## 待定的设计问题(写代码前先定)
63
+
64
+ - **分诊三档**:要处理 / 只需知道 / 噪音(自动标已读?还是只折叠?)。自动标已读属于对外操作,默认不要做。
65
+ - **规则和模型的分工**:规则覆盖确定的情况(见上表),模型只处理剩下的,并给出理由。
66
+ - **输出在哪**:DSH 侧栏面板、会话里的每日简报,还是经 dsh-watch 推到手机,或者三者都要。
67
+ - **频率**:定时拉取(参考 dsh-proactive),只在"要处理"的清单变化时提醒(参考 dsh-task-dispatcher)。
68
+ - **凭据**:GitHub token、邮箱密码、飞书 app secret 都放 DSH 凭据库,不落盘明文。
69
+ - **动作建议**:比如"关掉这个 fork 的 Actions"。只给建议加一键执行,执行前必须确认。
70
+
71
+ ## 命名
72
+
73
+ **选定:`dsh-mishu`**(2026-10-20 查过:npm 404 未占用、GitHub 无同名仓库、插件市场无同名或近似名)。
74
+
75
+ - 跟我们已有的拼音命名一致(dsh-banlv、dsh-niuma),中文用户一看就懂"小秘书 = 替我盯消息、提醒我该做什么"。
76
+ - 短,`dsh plugin add dsh-mishu` 好敲好记。
77
+ - 搜索靠描述和 keywords 覆盖:描述里写全 **提醒、通知、待办、消息、收件箱、秘书、GitHub、邮件、飞书、Telegram**;npm keywords 加 `notifications, inbox, triage, reminder, todo, github, email, feishu, lark, telegram`。
78
+
79
+ 其他看过的候选:
80
+ - **npm 已被占用:** dsh-inbox(市场也已有同名)、dsh-todo、dsh-radar、dsh-brief、dsh-digest、dsh-reminder、dsh-alert、dsh-butler、dsh-pulse
81
+ - **能用但不如 mishu:**
82
+ - dsh-triage:词准确,但中文用户不熟,市场里还有好几个 *-triage
83
+ - dsh-catchup:英文顺口,但中文用户不直观
84
+ - dsh-pending、dsh-unread:市场上已有多个近似名
85
+ - dsh-daiban、dsh-tixing:会跟一堆 todo 和提醒插件混淆
86
+
87
+ ## 参考实现
88
+
89
+ - 插件结构照 `/Users/wf/dsh/dsh-watch`:cordis 插件,TypeScript,peerDependencies 依赖 `@deepseek-ai/cordis`、`dsh-llm`、`dsh-tools`、`schemastery`,安装命令是 `dsh plugin --profile web add …`。
90
+ - 发布到 npm 和提交市场的流程,跟之前其他插件一样:npm 发布要你自己输 OTP,市场提交是给 awesome-dsh-plugin 提 PR,新增 `data/plugins/AIcivilization__dsh-mishu.yml`。
package/package.json CHANGED
@@ -1,6 +1,27 @@
1
1
  {
2
2
  "name": "dsh-mishu",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.0.1",
4
+ "description": "Reserved placeholder for dsh-mishu (DSH 小秘书) — pulls messages from GitHub, email, Feishu and Telegram, triages what actually needs your attention, and archives the noise. By AIcivilization.",
5
+ "keywords": [
6
+ "deepseek-harness",
7
+ "dsh",
8
+ "notifications",
9
+ "inbox",
10
+ "triage",
11
+ "reminder",
12
+ "todo",
13
+ "github",
14
+ "email",
15
+ "feishu",
16
+ "lark",
17
+ "telegram",
18
+ "secretary"
19
+ ],
20
+ "license": "MIT",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/AIcivilization/dsh-mishu.git"
24
+ },
25
+ "homepage": "https://github.com/AIcivilization/dsh-mishu#readme",
26
+ "author": "AIcivilization"
27
+ }
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.