--- 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 条 ```