- 新增命令: lark-delegate(跨项目委派)、lark-inbox(收件箱)、lark-me(自发送)、stop(任务收尾) - 新增工具: lark-consumer/consumer-ensure/inbox-check(飞书事件实时消费与会话隔离)、tmux-monitor(监控面板) - runcc.sh 增加 --list/--kill/--send 操作模式与多会话自增命名 - CLAUDE.md 增加强制要求(汇报格式、收尾通知、上下文压缩)
58 lines
2.2 KiB
Markdown
58 lines
2.2 KiB
Markdown
---
|
|
name: arno-util-lark-inbox
|
|
description: 读取金鹏与飞书 bot 的 P2P 私聊记录。优先展示实时事件流(lark-inbox.ndjson),回退到 API 拉取。通过环境变量 LARK_PROFILE/LARK_INBOX_CHAT_ID/LARK_INBOX_NDJSON_PATH/LARK_BOT_NAME 适配不同项目。当用户需要查看飞书收件箱、检查发给 bot 的消息时使用。触发词:收件箱、inbox、查看消息、bot对话、飞书消息。
|
|
argument-hint: '[条数 默认10]'
|
|
allowed-tools: Bash
|
|
---
|
|
|
|
# arno-util-lark-inbox
|
|
|
|
读取金鹏 ↔ bot P2P 私聊记录。**优先增量检查**(调用 `lark-inbox-check.sh --text`),有新消息则展示;有历史消息但无新消息时静默结束;ndjson 不存在时回退 API 拉取。增量检查脚本位于 `../tools/lark-inbox-check.sh`(相对 skill 目录),与 SessionStart hook 共用同一脚本、同一时间戳跟踪。
|
|
|
|
## 环境变量
|
|
|
|
| 变量 | 说明 | 示例 |
|
|
|------|------|------|
|
|
| `LARK_PROFILE` | lark-cli profile 名 | `szis` / `dit` |
|
|
| `LARK_INBOX_CHAT_ID` | P2P 会话 chat_id | `oc_xxx` |
|
|
| `LARK_INBOX_NDJSON_PATH` | 实时事件日志路径(相对项目根) | `01-输入/lark-inbox.ndjson` |
|
|
| `LARK_BOT_NAME` | bot 显示名称 | `SZIS` / `DIT` |
|
|
|
|
## 用户输入
|
|
|
|
```
|
|
$ARGUMENTS
|
|
```
|
|
|
|
## 执行流程
|
|
|
|
### 第1步:增量检查(优先)
|
|
|
|
调用 `lark-inbox-check.sh --text`,按 tmux session 隔离的时间戳做增量检查(同一 tmux 窗口内多次 CC 会话共享时间戳,避免重复展示),只返回上次检查后的新消息(最多5条)。
|
|
|
|
```bash
|
|
lark-inbox-check.sh --text
|
|
```
|
|
|
|
- **有新消息** → 展示新消息,结束。
|
|
- **无新消息** → 检查 ndjson 文件是否存在且非空:
|
|
- 存在(有历史消息但无新消息)→ **静默结束**,不输出任何内容。
|
|
- 不存在 → 进入第2步(回退 API 拉取)。
|
|
|
|
### 第2步:回退 API 拉取(ndjson 不可用时)
|
|
|
|
```bash
|
|
lark-cli --profile "${LARK_PROFILE}" im +chat-messages-list --as bot \
|
|
--chat-id "${LARK_INBOX_CHAT_ID}" \
|
|
--sort desc --page-size ${ARGUMENTS:-10} --json
|
|
```
|
|
|
|
区分 `sender_type: user`(👤 金鹏)和 `sender_type: app`(🤖 bot)。
|
|
|
|
## 示例
|
|
|
|
```
|
|
/arno-util-lark-inbox # 最近 10 条
|
|
/arno-util-lark-inbox 20 # 最近 20 条
|
|
```
|