@amaster.ai/pi-lark 0.1.2-beta.60 → 0.1.2-beta.62
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.
- package/README.md +1 -3
- package/package.json +2 -2
- package/skills/lark-approval/SKILL.md +2 -2
- package/skills/lark-approval/references/lark-approval-instances-initiated.md +5 -0
- package/skills/lark-approval/references/lark-approval-tasks-add-sign.md +68 -20
- package/skills/lark-approval/references/lark-approval-tasks-query.md +5 -0
- package/skills/lark-apps/SKILL.md +1 -1
- package/skills/lark-apps/references/lark-apps-cache.md +38 -5
- package/skills/lark-base/SKILL.md +131 -11
- package/skills/lark-base/references/lark-base-app.md +18 -0
- package/skills/lark-base/references/lark-base-dashboard-block-config.md +28 -1
- package/skills/lark-base/references/lark-base-dashboard.md +29 -11
- package/skills/lark-base/references/lark-base-data-query.md +2 -6
- package/skills/lark-base/references/lark-base-field-extension.md +170 -0
- package/skills/lark-base/references/lark-base-field-lookup.md +1 -1
- package/skills/lark-base/references/lark-base-field-schema.md +10 -1
- package/skills/lark-base/references/lark-base-filter-condition.md +32 -5
- package/skills/lark-base/references/lark-base-form-detail.md +1 -1
- package/skills/lark-base/references/lark-base-form-questions-create.md +36 -5
- package/skills/lark-base/references/lark-base-form-submit.md +2 -2
- package/skills/lark-base/references/lark-base-record-history-list.md +1 -1
- package/skills/lark-base/references/lark-base-record-query-and-analysis-sop.md +95 -205
- package/skills/lark-base/references/lark-base-template-center.md +199 -0
- package/skills/lark-calendar/SKILL.md +14 -5
- package/skills/lark-calendar/references/lark-calendar-join-event.md +43 -0
- package/skills/lark-calendar/references/lark-calendar-transfer.md +89 -0
- package/skills/lark-doc/references/lark-doc-fetch.md +1 -1
- package/skills/lark-drive/references/lark-drive-add-comment.md +2 -2
- package/skills/lark-drive/references/lark-drive-member-remove.md +2 -1
- package/skills/lark-im/SKILL.md +15 -3
- package/skills/lark-im/references/lark-im-message-read-status.md +96 -0
- package/skills/lark-mail/references/lark-mail-draft-create.md +12 -12
- package/skills/lark-mail/references/lark-mail-forward.md +17 -17
- package/skills/lark-mail/references/lark-mail-reply-all.md +8 -8
- package/skills/lark-mail/references/lark-mail-reply.md +6 -6
- package/skills/lark-mail/references/lark-mail-send.md +20 -20
- package/skills/lark-mail/references/lark-mail-template-create.md +7 -6
- package/skills/lark-mail/references/lark-mail-template-update.md +7 -6
- package/skills/lark-markdown/SKILL.md +1 -1
- package/skills/lark-meeting/SKILL.md +150 -0
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-apply-permission.md +2 -5
- package/skills/lark-meeting/references/lark-minutes-detail.md +52 -0
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-download.md +3 -5
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-search.md +4 -34
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-speaker-replace.md +3 -4
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-summary.md +3 -5
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-todo.md +44 -16
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-update.md +2 -3
- package/skills/lark-meeting/references/lark-minutes-upload.md +71 -0
- package/skills/lark-meeting/references/lark-note-detail.md +15 -0
- package/skills/lark-meeting/references/lark-note-transcript.md +19 -0
- package/skills/lark-meeting/references/lark-vc-agent-meeting-end.md +26 -0
- package/skills/lark-meeting/references/lark-vc-agent-meeting-invite.md +32 -0
- package/skills/{lark-vc-agent → lark-meeting}/references/lark-vc-agent-meeting-join.md +11 -56
- package/skills/{lark-vc-agent → lark-meeting}/references/lark-vc-agent-meeting-leave.md +2 -41
- package/skills/lark-meeting/references/lark-vc-detail.md +31 -0
- package/skills/lark-meeting/references/lark-vc-meeting-countdown.md +103 -0
- package/skills/{lark-vc → lark-meeting}/references/lark-vc-meeting-events.md +9 -98
- package/skills/{lark-vc → lark-meeting}/references/lark-vc-meeting-list-active.md +4 -29
- package/skills/{lark-vc → lark-meeting}/references/lark-vc-meeting-message-send.md +3 -5
- package/skills/lark-meeting/references/lark-vc-meeting-screenshot.md +34 -0
- package/skills/{lark-vc → lark-meeting}/references/lark-vc-recording.md +3 -64
- package/skills/{lark-vc → lark-meeting}/references/lark-vc-search.md +9 -28
- package/skills/lark-meeting/scenes/create-and-edit-minutes.md +147 -0
- package/skills/lark-meeting/scenes/live-meeting-attend.md +164 -0
- package/skills/lark-meeting/scenes/live-meeting-interact.md +101 -0
- package/skills/lark-meeting/scenes/query-meeting-and-artifacts.md +90 -0
- package/skills/lark-meeting/scenes/query-minutes-and-artifacts.md +70 -0
- package/skills/lark-meeting/scenes/query-note-and-artifacts.md +127 -0
- package/skills/lark-minutes/SKILL.md +5 -203
- package/skills/lark-note/SKILL.md +5 -88
- package/skills/lark-sheets/SKILL.md +76 -60
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +82 -13
- package/skills/lark-sheets/references/lark-sheets-chart.md +296 -159
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +5 -3
- package/skills/lark-sheets/references/lark-sheets-filter.md +1 -1
- package/skills/lark-sheets/references/lark-sheets-formula-translation.md +78 -65
- package/skills/lark-sheets/references/lark-sheets-formula-verify.md +21 -17
- package/skills/lark-sheets/references/lark-sheets-pivot-table.md +2 -1
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +1 -1
- package/skills/lark-sheets/references/lark-sheets-read-data.md +7 -4
- package/skills/lark-sheets/references/lark-sheets-search-replace.md +4 -4
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +2 -2
- package/skills/lark-sheets/references/lark-sheets-sparkline.md +1 -0
- package/skills/lark-sheets/references/lark-sheets-styles-put.md +3 -3
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +6 -4
- package/skills/lark-sheets/references/lark-sheets-workbook.md +3 -1
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +49 -47
- package/skills/lark-sheets/scripts/lark_chart_layout_check.py +472 -0
- package/skills/lark-slides/SKILL.md +2 -0
- package/skills/lark-slides/references/cli/lark-slides-add-slide.md +6 -6
- package/skills/lark-slides/references/cli/lark-slides-delete-slide.md +3 -3
- package/skills/lark-slides/references/cli/lark-slides-replace-slide.md +11 -11
- package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-get.md +1 -1
- package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-replace.md +2 -2
- package/skills/lark-slides/references/workflow/slides-editing.md +11 -11
- package/skills/lark-slides/references/xml/slides_xml_schema_definition.xml +103 -14
- package/skills/lark-task/SKILL.md +1 -1
- package/skills/lark-vc/SKILL.md +5 -205
- package/skills/lark-vc-agent/SKILL.md +5 -206
- package/skills/lark-workflow-meeting-summary/SKILL.md +10 -14
- package/skills/lark-base/references/lark-base-cell-value.md +0 -165
- package/skills/lark-base/references/lark-base-data-analysis-pandas.md +0 -93
- package/skills/lark-base/references/lark-base-data-analysis-python-stdlib.md +0 -120
- package/skills/lark-base/references/lark-base-record-batch-create.md +0 -63
- package/skills/lark-base/references/lark-base-record-batch-update.md +0 -57
- package/skills/lark-base/references/lark-base-record-query-and-analysis-cloud-sop.md +0 -145
- package/skills/lark-minutes/references/lark-minutes-detail.md +0 -63
- package/skills/lark-minutes/references/lark-minutes-upload.md +0 -104
- package/skills/lark-note/references/lark-note-detail.md +0 -29
- package/skills/lark-note/references/lark-note-transcript.md +0 -25
- package/skills/lark-vc/references/lark-vc-detail.md +0 -49
- package/skills/lark-vc/references/vc-domain-boundaries.md +0 -203
|
@@ -56,31 +56,7 @@ lark-cli vc +meeting-events --as <same_identity> --meeting-id <id> --page-token
|
|
|
56
56
|
- 应用身份路径:应用机器人必须在会中或参会过;不要拿任意 `meeting_id` 直接查。
|
|
57
57
|
- 不要在拿到 `meeting_id` 后随意切换身份。身份不一致时,常见结果是空列表、`no permission` 或 `bot is not in meeting`。
|
|
58
58
|
|
|
59
|
-
### 3.
|
|
60
|
-
|
|
61
|
-
最稳妥的调用顺序通常是:
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
# 方式 1:先入会,直接记录返回的 meeting.id
|
|
65
|
-
lark-cli vc +meeting-join --as bot --meeting-number 123456789
|
|
66
|
-
|
|
67
|
-
# 再查询事件
|
|
68
|
-
lark-cli vc +meeting-events --as bot --meeting-id <id> --page-all --format pretty
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
如果应用机器人已经在会中,也可以先通过 active meeting 找会:
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
lark-cli vc +meeting-list-active --as bot --user-id <user_open_id> --format json
|
|
75
|
-
lark-cli vc +meeting-events --as bot --meeting-id <id> --page-all --format pretty
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
如果要查询当前登录用户所在会议:
|
|
79
|
-
|
|
80
|
-
```bash
|
|
81
|
-
lark-cli vc +meeting-list-active --as user --format json
|
|
82
|
-
lark-cli vc +meeting-events --as user --meeting-id <id> --page-all --format pretty
|
|
83
|
-
```
|
|
59
|
+
### 3. 应用身份的可见性窗口
|
|
84
60
|
|
|
85
61
|
若应用机器人已离会、未入会、或会议已经无法再判断身份,后端通常会报:
|
|
86
62
|
- `bot is not in meeting, no permission`
|
|
@@ -110,8 +86,8 @@ lark-cli vc +meeting-events --as user --meeting-id <id> --page-all --format pret
|
|
|
110
86
|
|
|
111
87
|
### 5. 输出格式差异
|
|
112
88
|
|
|
113
|
-
- `--format json`:结构化契约,顶层包含 `meeting`、`identity`、`events`、`has_more`、`page_token`。`identity` 表示当前读取身份;事件 actor 统一含 `participant_type`、`role`、`label`;每条事件保留 `payload` 便于追溯细节。
|
|
114
89
|
- `--format pretty`:默认推荐格式,输出当前身份和逐条时间线,适合快速理解“发生了什么”。
|
|
90
|
+
- `--format json`:结构化契约,顶层包含 `meeting`、`identity`、`events`、`has_more`、`page_token`。`identity` 表示当前读取身份;事件 actor 统一含 `participant_type`、`role`、`label`;每条事件保留 `payload` 便于追溯细节。
|
|
115
91
|
- `--format ndjson`:输出事件行,并带 metadata 行,适合流式消费。
|
|
116
92
|
|
|
117
93
|
**选型原则**:默认先用 `--format pretty`;仅当 `pretty` 缺少完成任务所必需的结构化字段时,才改用 `--format json`。用户明确要求 JSON 或规则明确要求结构化字段时可直接用 `--format json`;需要流式消费时用 `--format ndjson`。
|
|
@@ -276,6 +252,7 @@ lark-cli drive +list-replies \
|
|
|
276
252
|
| `magic_share_started` | 开始共享内容 / 文档 |
|
|
277
253
|
| `magic_share_ended` | 结束共享 |
|
|
278
254
|
| `document_context_changed` | 评论聚焦、章节定位或元素预览上下文变化 |
|
|
255
|
+
| `countdown_changed` | 会中倒计时被设置、延长、提前结束、关闭窗口,或自然结束、临近提醒 |
|
|
279
256
|
|
|
280
257
|
### Forwarding meeting chat and reactions to IM
|
|
281
258
|
|
|
@@ -324,74 +301,16 @@ lark-cli vc +meeting-events \
|
|
|
324
301
|
| `start` / `end` | 用户给出的时间范围;如未给出则默认取全量可见事件 |
|
|
325
302
|
| `page-token` | 上一页或上一次查询结果中保存的 `page_token`;建议持久化保存,便于下次继续拉取新增事件 |
|
|
326
303
|
|
|
327
|
-
## Agent 组合场景
|
|
328
|
-
|
|
329
|
-
### 场景 1:入会后读取会中发生了什么
|
|
330
|
-
|
|
331
|
-
```bash
|
|
332
|
-
# 第 1 步:加入会议,记录返回的 meeting.id
|
|
333
|
-
JOIN=$(lark-cli vc +meeting-join --as bot --meeting-number 123456789 --format json)
|
|
334
|
-
MID=$(echo "$JOIN" | jq -r '.data.meeting.id')
|
|
335
|
-
|
|
336
|
-
# 第 2 步:用 meeting.id 读取当前可见事件
|
|
337
|
-
lark-cli vc +meeting-events --as bot --meeting-id "$MID" --page-all --format pretty
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
### 场景 1b:应用机器人已在会中,先发现 meeting_id 再读事件
|
|
341
|
-
|
|
342
|
-
```bash
|
|
343
|
-
lark-cli vc +meeting-list-active --as bot --user-id <user_open_id> --format json
|
|
344
|
-
lark-cli vc +meeting-events --as bot --meeting-id <id> --page-all --format pretty
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
### 场景 1c:当前登录用户正在会中,先发现 meeting_id 再读事件
|
|
348
|
-
|
|
349
|
-
```bash
|
|
350
|
-
lark-cli vc +meeting-list-active --as user --format json
|
|
351
|
-
lark-cli vc +meeting-events --as user --meeting-id <id> --page-all --format pretty
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
### 场景 2:过滤某段时间内的事件
|
|
355
|
-
|
|
356
|
-
```bash
|
|
357
|
-
lark-cli vc +meeting-events \
|
|
358
|
-
--as <same_identity> \
|
|
359
|
-
--meeting-id <id> \
|
|
360
|
-
--start 2026-04-17T15:00:00+08:00 \
|
|
361
|
-
--end 2026-04-17T16:00:00+08:00 \
|
|
362
|
-
--page-all \
|
|
363
|
-
--format pretty
|
|
364
|
-
```
|
|
365
|
-
|
|
366
|
-
### 场景 3:基于上一次的 `page_token` 继续查新增事件
|
|
367
|
-
|
|
368
|
-
```bash
|
|
369
|
-
# 上一次查询结束后,保留最后返回的 page_token
|
|
370
|
-
# 这次直接从该游标继续拉新增事件
|
|
371
|
-
lark-cli vc +meeting-events \
|
|
372
|
-
--as <same_identity> \
|
|
373
|
-
--meeting-id <id> \
|
|
374
|
-
--page-token <last_page_token> \
|
|
375
|
-
--page-all \
|
|
376
|
-
--format pretty
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
适用规则:
|
|
380
|
-
|
|
381
|
-
- 当用户说“继续看新事件”“看上次之后新增了什么”时,优先使用上一次保存的 `page_token`。
|
|
382
|
-
- 如果这次返回里仍有 `has_more=true`、pretty 里出现 `more available`,或又返回了新的 `page_token`,说明新增事件还没拉完,应继续分页,而不是把当前页误当成完整增量结果。
|
|
383
|
-
- 只有在用户明确要求“从头回放全部事件”时,才忽略已有 `page_token`,重新从第一页开始。
|
|
384
|
-
|
|
385
304
|
## 常见错误与排查
|
|
386
305
|
|
|
387
306
|
| 错误现象 | 根本原因 | 解决方案 |
|
|
388
307
|
|---------|---------|---------|
|
|
389
308
|
| `--meeting-id is required` | 未传入 `--meeting-id` | 传入长数字 `meeting.id` |
|
|
390
|
-
| `10005 bot is not in meeting` | 使用应用身份读取,但应用机器人从未真实入会该会议;或会议已结束但应用机器人从未在会中出现过 | 如果 `meeting_id` 来自用户身份发现,改回 `--as user`;如果确实要应用身份读取,先让应用机器人入会或确认它曾参会后再用 `--as bot`。**如果只是想看参会人快照,改用 `lark-cli vc meeting get --params '{"meeting_id":"<meeting.id>"}'
|
|
309
|
+
| `10005 bot is not in meeting` | 使用应用身份读取,但应用机器人从未真实入会该会议;或会议已结束但应用机器人从未在会中出现过 | 如果 `meeting_id` 来自用户身份发现,改回 `--as user`;如果确实要应用身份读取,先让应用机器人入会或确认它曾参会后再用 `--as bot`。**如果只是想看参会人快照,改用 `lark-cli vc meeting get --params '{"meeting_id":"<meeting.id>","with_participants":true}'`** |
|
|
391
310
|
| 用户身份无权限 / 不可见 | 当前用户不是该会议的可见参与者,或 `meeting_id` 不是从用户身份路径获得 | 不要反复执行 `auth login`。先确认 `meeting_id` 是否来自 `+meeting-list-active --as user`;如果用户明确要切到应用身份,再通过 `+meeting-list-active --as bot --user-id <user_open_id>` 获取应用身份可读的 `meeting_id`,或在用户明确同意后让应用机器人入会,再用 `+meeting-events --as bot` 读取 |
|
|
392
311
|
| `20001 meeting_status_MEETING_END` | 会议已结束且已超出后端允许的 5 分钟宽限窗口 | 本接口不再适合继续拉取事件。先用 `lark-cli vc +detail --meeting-ids <meeting.id>` 获取会议产物信息,再根据 `note_display_type` / `note_id` / `minute_token` 和用户意图选择纪要正文、逐字稿或妙记;参会人请用 `lark-cli vc meeting get --params '{"meeting_id":"<meeting.id>"}' --with-participants` |
|
|
393
312
|
| `20002 meeting not exist` | `meeting_id` 错误,或会议实例当前已不可获取(常见于把 9 位会议号当 meeting_id 传) | 确认传入的是长数字 `meeting_id`,不是 9 位会议号 |
|
|
394
|
-
| 应用身份权限不足 |
|
|
313
|
+
| 应用身份权限不足 | 应用权限、租户安装或权限可访问的数据范围未配置完整 | 不要执行 `auth login`。请应用开发者开通 `vc:meeting.bot.join:write`;再检查应用发布/安装和权限可访问的数据范围;配置正确仍失败时,保留错误码和 `log_id`,按服务端权限异常排查 |
|
|
395
314
|
| `HTTP 404` / `HTTP 500` | 服务端当前无法找到或处理该会议实例 | 换一个正在进行且 bot 可见的 meeting_id,或排查后端问题 |
|
|
396
315
|
|
|
397
316
|
## 提示
|
|
@@ -399,18 +318,10 @@ lark-cli vc +meeting-events \
|
|
|
399
318
|
- 这是**会中事件流**查询,不适合拿来搜历史会议记录;搜历史会议请用 `+search`。
|
|
400
319
|
- 如果会议已经结束,不要卡在 `+meeting-events`:
|
|
401
320
|
- 先用 `lark-cli vc +detail --meeting-ids <meeting.id>` 获取会议产物信息。
|
|
402
|
-
- 再根据 `note_display_type`、`note_id`、`minute_token` 和用户意图,按 `lark-
|
|
321
|
+
- 再根据 `note_display_type`、`note_id`、`minute_token` 和用户意图,按 `lark-meeting` 的产物决策读取纪要正文、逐字稿或妙记。
|
|
403
322
|
- 事件列表是否完整,取决于应用机器人何时入会、何时离会,以及后端当前可见的会中事件范围。对于已结束会议,通常只在**结束后 5 分钟内**、且应用机器人**曾经在会中**时还能继续拉到事件。
|
|
404
323
|
- 查询"谁参加过某会议"请用 `vc meeting get --params '{"meeting_id":"<id>","with_participants":true}'`——这是参会人**快照** API,不依赖 bot 是否参会,对已结束会议也可查;**不要** 用 `+meeting-events` 做参会人查询。
|
|
405
324
|
|
|
406
|
-
##
|
|
407
|
-
|
|
408
|
-
- [
|
|
409
|
-
- [lark-vc-meeting-list-active](lark-vc-meeting-list-active.md) — 发现当前可读事件的进行中会议 ID
|
|
410
|
-
- [lark-vc-agent-meeting-leave](../../lark-vc-agent/references/lark-vc-agent-meeting-leave.md) — 用户明确要求时离会
|
|
411
|
-
- [lark-vc-search](lark-vc-search.md) — 搜索历史会议(获取 meeting_id)
|
|
412
|
-
- [lark-vc-recording](lark-vc-recording.md) — 查询 minute_token
|
|
413
|
-
- [lark-vc-detail](lark-vc-detail.md) — 获取会议详情
|
|
414
|
-
- [lark-vc-agent](../../lark-vc-agent/SKILL.md) — Agent 参会能力
|
|
415
|
-
- [lark-vc](../SKILL.md) — 视频会议原子域(Meeting / Note 等核心概念)
|
|
416
|
-
- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
|
|
325
|
+
## 相关场景
|
|
326
|
+
- [会中事件与会中互动](../scenes/live-meeting-interact.md)
|
|
327
|
+
- [应用机器人参会与会中互动](../scenes/live-meeting-attend.md)
|
|
@@ -33,22 +33,6 @@ lark-cli vc +meeting-list-active --as bot --user-id ou_xxx --format json
|
|
|
33
33
|
|
|
34
34
|
应用身份返回空,不代表目标用户不在任何会议中,只能说明没有找到“目标用户在会中且应用机器人也在会中”的当前会。
|
|
35
35
|
|
|
36
|
-
常见流程:
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
# 方式 1:先让应用机器人入会,直接从 join 响应拿 meeting.id
|
|
40
|
-
lark-cli vc +meeting-join --as bot --meeting-number 123456789 --format json
|
|
41
|
-
lark-cli vc +meeting-events --as bot --meeting-id <id> --page-all --format pretty
|
|
42
|
-
|
|
43
|
-
# 方式 2:应用机器人已经在会中时,用应用身份发现 meeting_id
|
|
44
|
-
lark-cli vc +meeting-list-active --as bot --user-id <user_open_id> --format json
|
|
45
|
-
lark-cli vc +meeting-events --as bot --meeting-id <id> --page-all --format pretty
|
|
46
|
-
|
|
47
|
-
# 方式 3:查询当前登录用户所在会议发生了什么
|
|
48
|
-
lark-cli vc +meeting-list-active --as user --format json
|
|
49
|
-
lark-cli vc +meeting-events --as user --meeting-id <id> --page-all --format pretty
|
|
50
|
-
```
|
|
51
|
-
|
|
52
36
|
## 多会议选择
|
|
53
37
|
|
|
54
38
|
- 如果返回多个会议,不要自动挑第一个。
|
|
@@ -59,14 +43,6 @@ lark-cli vc +meeting-events --as user --meeting-id <id> --page-all --format pret
|
|
|
59
43
|
|
|
60
44
|
用户提供 9 位会议号但没有明确要求应用机器人入会时,把会议号当作 active meeting 的筛选条件,而不是写操作指令。
|
|
61
45
|
|
|
62
|
-
```bash
|
|
63
|
-
# 用户问“我当前这个会讲了什么”
|
|
64
|
-
lark-cli vc +meeting-list-active --as user --format json
|
|
65
|
-
|
|
66
|
-
# 用户问“让应用机器人所在/可见的这个会讲了什么”
|
|
67
|
-
lark-cli vc +meeting-list-active --as bot --user-id <user_open_id> --format json
|
|
68
|
-
```
|
|
69
|
-
|
|
70
46
|
匹配规则:
|
|
71
47
|
|
|
72
48
|
- 在返回会议中匹配 `meeting_no == <9位会议号>`。
|
|
@@ -83,9 +59,8 @@ lark-cli vc +meeting-list-active --as bot --user-id <user_open_id> --format json
|
|
|
83
59
|
| 用户身份无权限 / 不可见 | 当前登录用户没有可见的进行中会议,或当前身份无法读取该会议 | 不要反复执行 `auth login`。确认用户是否在会中、是否切错 profile;用户明确要查询应用机器人可见的会议时,再拿目标用户 open_id 执行 `+meeting-list-active --as bot --user-id <user_open_id>` |
|
|
84
60
|
| 应用身份返回空列表 | 没有满足“目标用户在会中且应用机器人也在会中”的当前会 | 先让应用机器人入会,或确认 `user_id` 和会议状态 |
|
|
85
61
|
| `--user-id` 格式错误 | 传入了 internal user_id 或其他非 `ou_...` 值 | 改传目标用户 open_id |
|
|
86
|
-
| 应用身份权限不足 |
|
|
87
|
-
|
|
88
|
-
## 参考
|
|
62
|
+
| 应用身份权限不足 | 应用权限、租户安装或权限可访问的数据范围未配置完整 | 不要执行 `auth login`。请应用开发者开通 `vc:meeting.bot.join:write`;再检查应用发布/安装和权限可访问的数据范围;配置正确仍失败时,保留错误码和 `log_id`,按服务端权限异常排查 |
|
|
89
63
|
|
|
90
|
-
|
|
91
|
-
- [
|
|
64
|
+
## 相关场景
|
|
65
|
+
- [会中事件与会中互动](../scenes/live-meeting-interact.md)
|
|
66
|
+
- [应用机器人参会与会中互动](../scenes/live-meeting-attend.md)
|
|
@@ -127,8 +127,6 @@ VC_CanNotSee, VC_NoSound, VC_LooksGood, VC_SoundsClear
|
|
|
127
127
|
|
|
128
128
|
应用身份权限错误时,不要引导用户反复 `auth login`。按主 skill 的“应用身份权限配置检查”处理。
|
|
129
129
|
|
|
130
|
-
##
|
|
131
|
-
|
|
132
|
-
- [
|
|
133
|
-
- [lark-vc-meeting-events](lark-vc-meeting-events.md) — 读取会中事件
|
|
134
|
-
- [lark-vc-agent-meeting-join](../../lark-vc-agent/references/lark-vc-agent-meeting-join.md) — 应用机器人入会
|
|
130
|
+
## 相关场景
|
|
131
|
+
- [会中事件与会中互动](../scenes/live-meeting-interact.md)
|
|
132
|
+
- [应用机器人参会与会中互动](../scenes/live-meeting-attend.md)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# `vc +meeting-screenshot`
|
|
2
|
+
|
|
3
|
+
获取视频会议截图,并保存为 JPEG。
|
|
4
|
+
|
|
5
|
+
## 常用用法
|
|
6
|
+
|
|
7
|
+
使用当前用户身份截图,文件写入默认目录:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
lark-cli vc +meeting-screenshot --as user --meeting-id <long_meeting_id>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
使用机器人身份截图,并指定输出路径:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
lark-cli vc +meeting-screenshot --as bot --meeting-id <long_meeting_id> --output ./meeting-screenshots/current.jpg
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 参数
|
|
20
|
+
|
|
21
|
+
| Flag | 含义与用法 |
|
|
22
|
+
| --- | --- |
|
|
23
|
+
| `--as <identity>` | 选择 `user` 或 `bot` 身份。使用发现 `meeting_id` 时的同一身份:`user` 要求当前用户在会中;`bot` 要求机器人已入会并具备会中读取权限。 |
|
|
24
|
+
| `--meeting-id <meeting_id>` | 必填。长数字会议 ID,不接受 9 位会议号;只有会议号时,先用同一身份调用 `vc +meeting-list-active` 获取。 |
|
|
25
|
+
| `--output <relative-path>` | 可选。指定 JPEG 文件名或包含子目录的相对路径;相对于执行命令时的当前工作目录。 |
|
|
26
|
+
| `--overwrite` | 可选。目标文件已存在时允许替换;不传时命令会失败并保留原文件。 |
|
|
27
|
+
|
|
28
|
+
## 文件路径与结果
|
|
29
|
+
|
|
30
|
+
- 未指定 `--output` 时,默认写入当前工作目录下的 `meeting-screenshots/<meeting_id>-<UTC timestamp>.jpg`。
|
|
31
|
+
- `--output` 可以只写文件名,也可以包含多级子目录;父目录会自动创建。
|
|
32
|
+
- 不接受绝对路径,也不接受解析后超出当前工作目录的 `..` 或符号链接路径。
|
|
33
|
+
- 成功结果包含绝对文件路径、字节数、JPEG content type、SHA-256 和服务端 `log_id`。
|
|
34
|
+
- 服务端决定截图内容并校验会议是否满足条件;调用方不能指定要截取的区域或共享内容。失败不会替换已有文件。
|
|
@@ -42,9 +42,7 @@ lark-cli vc +recording --meeting-ids 69xxxxxxxxxxxxx28 --dry-run
|
|
|
42
42
|
|
|
43
43
|
### 2. 身份支持
|
|
44
44
|
|
|
45
|
-
`--meeting-ids` 和 `--calendar-event-ids`
|
|
46
|
-
|
|
47
|
-
拿到的 `minute_token` 是在某个身份下解析出来的:下一步传给 `minutes minutes get` / `minutes +detail` / `minutes +download` 时必须显式沿用同一个 `--as`,不要省略让身份被 profile 默认值悄悄换掉(完整规则见 [lark-shared](../../lark-shared/SKILL.md) 的「身份延续」)。
|
|
45
|
+
`--meeting-ids` 和 `--calendar-event-ids` 都支持 `--as user` / `--as bot`。用户身份只能查自己有权限的录制;应用身份只能查应用有权限的录制。拿到 `minute_token` 后,传给 `minutes minutes get`、`minutes +detail` 或 `minutes +download` 时必须显式沿用同一个 `--as`。
|
|
48
46
|
|
|
49
47
|
### 3. 批量上限
|
|
50
48
|
|
|
@@ -74,62 +72,6 @@ lark-cli vc +recording --meeting-ids 69xxxxxxxxxxxxx28 --dry-run
|
|
|
74
72
|
| `meeting_id` | 使用 `lark-cli vc +search` 搜索历史会议,取结果中的 `id` 字段 |
|
|
75
73
|
| `calendar_event_id` | 使用 `lark-cli calendar +agenda` 查看日程,取结果中的 `event_id` 字段 |
|
|
76
74
|
|
|
77
|
-
## Agent 组合场景
|
|
78
|
-
|
|
79
|
-
### 场景 1:知道 meeting_id,想下载录制
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
# 第 1 步:通过 meeting_id 查询录制,拿到 minute_token
|
|
83
|
-
lark-cli vc +recording --meeting-ids xxx --as bot
|
|
84
|
-
|
|
85
|
-
# 第 2 步:使用上一步返回的 minute_token 下载妙记文件,沿用第 1 步的身份
|
|
86
|
-
lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx --as bot
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### 场景 2:知道 meeting_id,想查询妙记基础信息
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
# 第 1 步:通过 meeting_id 查询录制,拿到 minute_token
|
|
93
|
-
lark-cli vc +recording --meeting-ids xxx
|
|
94
|
-
|
|
95
|
-
# 第 2 步:使用上一步返回的 minute_token 查询妙记基础信息
|
|
96
|
-
lark-cli minutes minutes get --params '{"minute_token":"<minute_token>"}'
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### 场景 3:知道 meeting_id,想获取完整纪要(含 AI 产物)
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
# 第 1 步:通过 meeting_id 查询录制,拿到 minute_token
|
|
103
|
-
lark-cli vc +recording --meeting-ids xxx
|
|
104
|
-
|
|
105
|
-
# 第 2 步:使用上一步返回的 minute_token 获取完整纪要
|
|
106
|
-
# ⚠️ 必须显式指定要获取的产物 flag(--summary, --keyword, --todo, --chapter, --transcript)
|
|
107
|
-
lark-cli minutes +detail --minute-tokens <minute_token> --summary --todo --chapter --transcript
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### 场景 4:先搜索会议,再获取录制并下载
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
# 第 1 步:搜索历史会议,拿到 meeting_ids
|
|
114
|
-
lark-cli vc +search --query "周会" --start 2026-03-10
|
|
115
|
-
|
|
116
|
-
# 第 2 步:使用上一步返回的 meeting_ids 查询录制,拿到 minute_tokens
|
|
117
|
-
lark-cli vc +recording --meeting-ids <ids>
|
|
118
|
-
|
|
119
|
-
# 第 3 步:使用其中一个 minute_token 下载妙记文件
|
|
120
|
-
lark-cli minutes +download --minute-tokens <token>
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### 场景 5:从日历事件获取录制
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
# 第 1 步:通过日历 event_id 查询录制,拿到 minute_token
|
|
127
|
-
lark-cli vc +recording --calendar-event-ids <event_id>
|
|
128
|
-
|
|
129
|
-
# 第 2 步:使用上一步返回的 minute_token 下载妙记文件
|
|
130
|
-
lark-cli minutes +download --minute-tokens <minute_token>
|
|
131
|
-
```
|
|
132
|
-
|
|
133
75
|
## 常见错误与排查
|
|
134
76
|
|
|
135
77
|
| 错误现象 | 根本原因 | 解决方案 |
|
|
@@ -147,8 +89,5 @@ lark-cli minutes +download --minute-tokens <minute_token>
|
|
|
147
89
|
- `minute_token` 从录制 URL 尾段解析(`https://meetings.feishu.cn/minutes/{minute_token}`)。
|
|
148
90
|
- 拿到 `minute_token` 后,如果要妙记基础信息,优先传给 `minutes minutes get`;如果要下载媒体文件,传给 `minutes +download`;如果要逐字稿、总结、待办、章节,再传给 `minutes +detail --minute-tokens`。
|
|
149
91
|
|
|
150
|
-
##
|
|
151
|
-
|
|
152
|
-
- [lark-vc](../SKILL.md) — 视频会议全部命令
|
|
153
|
-
- [lark-vc-search](lark-vc-search.md) — 搜索历史会议(获取 meeting_id)
|
|
154
|
-
- [lark-minutes-detail](../../lark-minutes/references/lark-minutes-detail.md) — 获取会议纪要
|
|
92
|
+
## 相关场景
|
|
93
|
+
- [查询会议及其产物](../scenes/query-meeting-and-artifacts.md)
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
## 关键词使用边界
|
|
7
7
|
|
|
8
|
-
`--query`
|
|
8
|
+
`--query` 只用于 9 位会议号或真实会议关键词,例如会议主题、项目名、评审名、客户名。用户只是说"我这月参加的所有视频会议"、"最近两周我组织的所有视频会议"、"总结主要议题 / 看看参会情况"时,本质是历史会议列表和后续总结,不要把"回顾"、"所有视频会议"、"总结主要议题"等动作词放进 `--query`。这类请求应先用时间范围 + `--participant-ids` / `--organizer-ids` 搜全量候选,再按结果继续取纪要或录制信息。
|
|
9
9
|
|
|
10
10
|
列表阶段只负责找会议记录;总结阶段必须继续取证。若用户要求"主要议题"、"主要决策"、"参会情况",先确认搜索结果的 `meeting_id`、时间、组织者/参与者符合过滤条件,然后用 `vc +detail` 或 `minutes` 读取纪要、妙记或录制信息。没有纪要或妙记时,如实说明只能基于会议标题/参会数据汇总,不要编造议题。
|
|
11
11
|
|
|
@@ -26,6 +26,9 @@
|
|
|
26
26
|
# 关键词搜索
|
|
27
27
|
lark-cli vc +search --query "周会"
|
|
28
28
|
|
|
29
|
+
# 通过 9 位会议号查询会议 ID
|
|
30
|
+
lark-cli vc +search --query "123456789" --format json --as user
|
|
31
|
+
|
|
29
32
|
# 查询某一天开过的会(单日查询时,start 和 end 必须填写同一天)
|
|
30
33
|
lark-cli vc +search --start 2026-03-10 --end 2026-03-10
|
|
31
34
|
|
|
@@ -48,7 +51,7 @@ lark-cli vc +search --query "周会" --page-token "<PAGE_TOKEN>"
|
|
|
48
51
|
|
|
49
52
|
| 参数 | 必填 | 说明 |
|
|
50
53
|
|------|------|------|
|
|
51
|
-
| `--query <text>` | 否 |
|
|
54
|
+
| `--query <text>` | 否 | 9 位会议号或搜索关键词 |
|
|
52
55
|
| `--start <time>` | 否 | 开始时间(ISO 8601 或仅日期) |
|
|
53
56
|
| `--end <time>` | 否 | 结束时间(ISO 8601 或仅日期) |
|
|
54
57
|
| `--organizer-ids <ids>` | 否 | 组织者 open_id 列表,逗号分隔 |
|
|
@@ -80,17 +83,7 @@ lark-cli vc +search --query "周会" --page-token "<PAGE_TOKEN>"
|
|
|
80
83
|
|
|
81
84
|
当返回 `has_more=true` 时,使用响应中的 `page_token` 配合 `--page-token` 获取下一页结果。
|
|
82
85
|
|
|
83
|
-
### 5.
|
|
84
|
-
|
|
85
|
-
机器人支持同时加入多个正在进行中的会议;加入新会议前,不需要先退出已经在会中的其他会议。
|
|
86
|
-
|
|
87
|
-
这意味着:
|
|
88
|
-
|
|
89
|
-
- 不要假设 bot 一次只能在一个会议中
|
|
90
|
-
- 如果用户要求 bot 再加入另一场会,可以直接继续执行对应的入会命令
|
|
91
|
-
- 只有在用户明确要求结束某一场会中的 bot 参会时,才调用对应的离会命令
|
|
92
|
-
|
|
93
|
-
### 6. 日期型 `--end` 包含当天整天
|
|
86
|
+
### 5. 日期型 `--end` 包含当天整天
|
|
94
87
|
|
|
95
88
|
当 `--end` 传入的是仅日期格式(如 `2026-03-10`)时,CLI 会将它解释为当天 `23:59:59`,而不是当天 `00:00:00`。
|
|
96
89
|
|
|
@@ -131,20 +124,6 @@ lark-cli vc +search --query "周会" --page-size 15
|
|
|
131
124
|
lark-cli vc +search --query "周会" --page-size 15 --page-token "<PAGE_TOKEN>"
|
|
132
125
|
```
|
|
133
126
|
|
|
134
|
-
## 搜索结果中的下一步
|
|
135
|
-
|
|
136
|
-
搜索结果中的 `meeting_id` 可直接用于继续查询会议纪要或妙记:
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
# 如果要会议纪要 / 逐字稿 / AI 总结 / 待办 / 章节
|
|
140
|
-
lark-cli vc +detail --meeting-ids <MEETING_ID>
|
|
141
|
-
|
|
142
|
-
# 如果要会议对应的妙记信息 / minute_token / 妙记链接
|
|
143
|
-
lark-cli vc +recording --meeting-ids <MEETING_ID>
|
|
144
|
-
# 然后再用返回的 minute_token 调用:
|
|
145
|
-
lark-cli minutes minutes get --params '{"minute_token":"<MINUTE_TOKEN>"}'
|
|
146
|
-
```
|
|
147
|
-
|
|
148
127
|
## 常见错误与排查
|
|
149
128
|
|
|
150
129
|
| 错误现象 | 根本原因 | 解决方案 |
|
|
@@ -155,9 +134,11 @@ lark-cli minutes minutes get --params '{"minute_token":"<MINUTE_TOKEN>"}'
|
|
|
155
134
|
| 权限不足 | 未授权 `vc:meeting.search:read` | 使用 `auth login` 完成授权 |
|
|
156
135
|
|
|
157
136
|
## 提示
|
|
158
|
-
- 必须使用 `--format json`
|
|
137
|
+
- 必须使用 `--format json` 输出,便于稳定解析。
|
|
159
138
|
- 排查参数与请求结构时优先使用 `--dry-run`。
|
|
160
139
|
- 搜索的时间范围最大为 1 个月,如果需要搜索更长时间范围的会议,需要拆分为多次时间范围为一个月查询。
|
|
161
140
|
- 不要使用 `yesterday`、`today` 这类相对时间字面量;请先转换成明确日期,例如 `2026-03-10`。
|
|
162
141
|
- 用户如果明确问的是“妙记信息”而不是“纪要内容”,不要默认走 `vc +detail`;应先用 `vc +recording`。
|
|
163
142
|
|
|
143
|
+
## 相关场景
|
|
144
|
+
- [查询会议及其产物](../scenes/query-meeting-and-artifacts.md)
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# 生成和修改妙记、管理妙记权限
|
|
2
|
+
|
|
3
|
+
生成妙记和修改妙记都是写操作,必须有用户明确意图。生成成功后保存 `minute_token`;修改前确认唯一 `minute_token` 和目标内容,提供 token 不等于授权修改。除 `minutes +apply-permission` 外,本场景的 Minutes 写命令仅支持用户身份;来源身份为 bot 时停止并说明限制,只有用户明确同意后,才以 `--as user` 重新开始修改流程。`minutes +apply-permission` 支持用户或应用身份,必须沿用触发权限错误时的身份。
|
|
4
|
+
|
|
5
|
+
## 从本地音视频生成妙记
|
|
6
|
+
|
|
7
|
+
标准链路是 Drive 上传 → Minutes 创建 → 按需读取产物。不要改用 ffmpeg、Whisper 或其他本地 ASR。
|
|
8
|
+
|
|
9
|
+
### 上传音视频到 Drive
|
|
10
|
+
|
|
11
|
+
确认本地媒体路径以及用户最终需要妙记链接、逐字稿、总结、待办还是章节。源文件须符合 [`minutes +upload`](../references/lark-minutes-upload.md) 的格式要求,时长不超过 6 小时,大小不超过 6 GB。
|
|
12
|
+
|
|
13
|
+
按 [`lark-drive`](../../lark-drive/SKILL.md) 的路径和写操作规则执行 `drive +upload`,取得 `file_token`。上传参数和文件限制见 [`lark-drive-upload`](../../lark-drive/references/lark-drive-upload.md)。
|
|
14
|
+
|
|
15
|
+
### 使用 file_token 创建妙记
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
lark-cli minutes +upload --file-token <file_token> --as user
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
从返回的 `minute_url` 路径最后一段提取 `minute_token`,去掉 query 参数。创建参数、支持格式和异步语义见 [`lark-minutes-upload`](../references/lark-minutes-upload.md)。`minutes +upload` 成功仅表示异步创建请求已提交;报告返回的 `minute_url` 和可解析的 `minute_token`。未执行 `minutes +detail` 并确认就绪前,不得声称妙记产物已生成或可用。用户只要求发起创建或返回链接时,到此停止。
|
|
22
|
+
|
|
23
|
+
### 等待并读取妙记产物
|
|
24
|
+
|
|
25
|
+
上传后立即读取产物时必须加 `--wait-ready`:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
lark-cli minutes +detail --minute-tokens <minute_token> --wait-ready --transcript --as user
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
将 `--transcript` 替换或扩展为用户需要的 `--summary`、`--todo`、`--chapter` 或 `--keyword`。创建任务仍在处理中时,按返回状态和重试提示轮询;不要重复上传或重复创建妙记。
|
|
32
|
+
|
|
33
|
+
用户要求独立提炼或复盘时,读取 Transcript 并基于原始发言分析,不要复述现成 Summary。产物 flags 和等待行为见 [`lark-minutes-detail`](../references/lark-minutes-detail.md)。
|
|
34
|
+
|
|
35
|
+
### 从失败阶段恢复
|
|
36
|
+
|
|
37
|
+
- Drive 上传成功但 Minutes 创建失败:保留并报告 `file_token`,从创建妙记继续,不要重复上传。
|
|
38
|
+
- Minutes 创建成功但产物未就绪:保留 `minute_token` 并重试查询,不要重新创建妙记。
|
|
39
|
+
- 不得把 Drive 上传成功误报为妙记创建成功;明确报告失败发生在上传、创建还是产物生成阶段。
|
|
40
|
+
|
|
41
|
+
## 修改妙记标题
|
|
42
|
+
|
|
43
|
+
使用 `minutes +update --minute-token <token> ... --as user`。参数见 [`lark-minutes-update`](../references/lark-minutes-update.md)。
|
|
44
|
+
|
|
45
|
+
## 替换 AI 总结
|
|
46
|
+
|
|
47
|
+
使用 `minutes +summary --minute-token <token> ... --as user` 替换总结全文。内容格式与权限见 [`lark-minutes-summary`](../references/lark-minutes-summary.md)。
|
|
48
|
+
|
|
49
|
+
## 增删改 AI 待办
|
|
50
|
+
|
|
51
|
+
妙记 AI 待办不是飞书任务。上下文包含妙记 URL / `minute_token` 并要求修改妙记待办时,禁止改走 `lark-task`;用户同时指定了负责人(包括"负责人是我")也不改变归属。
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
lark-cli minutes +todo --minute-token <token> --operation add|update|delete ... --as user
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
- 多条新增优先使用 `--todos` 批量提交。
|
|
58
|
+
- 更新或删除前,先执行 `minutes +detail --minute-tokens <token> --todo --as user`,按内容匹配取得精确 `todo_id`;不要用列表顺序代替 ID。
|
|
59
|
+
- 待办 ID、批量结构和部分成功语义见 [`lark-minutes-todo`](../references/lark-minutes-todo.md)。
|
|
60
|
+
|
|
61
|
+
### 指定负责人
|
|
62
|
+
|
|
63
|
+
妙记待办表示负责人的既定写法是把 `@姓名` 作为纯文本写进待办内容,不存在独立的负责人字段:
|
|
64
|
+
|
|
65
|
+
- 用户直接给出姓名时不做任何查找,原文拼成 `@姓名`。
|
|
66
|
+
- 用户说"负责人是我"时,先用 `lark-cli contact +get-user --as user` 取真实姓名再拼接;取不到就不写任何 `@` 提及,不要保留字面的 `@我`。
|
|
67
|
+
- 姓名解析只影响追加的 `@` 文本,绝不能阻塞或取消待办创建;不要为处理负责人改走 `lark-task` 或做进一步通讯录搜索。
|
|
68
|
+
- 不要用"以你的身份创建即归属于你"代替真正的 `@` 文本拼接;`--as` 身份和负责人是两件不相关的事。
|
|
69
|
+
- 回复只陈述结果(妙记、待办内容、负责人、完成状态),不要解释接口字段限制,也不要建议改用 `lark-task` 来"明确负责人"。
|
|
70
|
+
|
|
71
|
+
完整规则和示例见 [`lark-minutes-todo`](../references/lark-minutes-todo.md) 的「负责人 / `@` 提及」。
|
|
72
|
+
|
|
73
|
+
## 批量替换逐字稿关键词
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
lark-cli minutes +word-replace --minute-token <token> --replace-words '[{"source_word":"<old>","target_word":"<new>"}]' --as user
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
多组替换放在同一个 JSON 数组中。具体参数运行 `lark-cli minutes +word-replace --help`。
|
|
80
|
+
|
|
81
|
+
用户给出原词和目标词后直接替换:不要为了核对写法先读取 Transcript,也不要在替换成功后回读 Transcript 验证。接口逐词返回结果,按结果回报即可。
|
|
82
|
+
|
|
83
|
+
只要有一个关键词命中就是成功:`data.message` 列出 Succeeded 和 Failed 关键词。重试时只提交 Failed 的词,不要重复提交已成功的词,否则会把新词再替换一遍。
|
|
84
|
+
|
|
85
|
+
全部关键词都没命中才是失败(`not_found`)。这是参数问题而不是权限问题;如实告知用户哪些词没命中,请用户确认精确写法、大小写和空格后再决定是否重试,不要靠读取 Transcript 自行猜词。
|
|
86
|
+
|
|
87
|
+
## 替换逐字稿说话人
|
|
88
|
+
|
|
89
|
+
1. 调用 `lark-cli api GET "/open-apis/minutes/v1/minutes/<token>/transcript/speakerlist"` 取得 `speaker_id`。
|
|
90
|
+
2. 按原说话人的显示名称精确匹配。存在同名候选时,结合 Transcript 展示候选并让用户确认,不要擅选。
|
|
91
|
+
3. 用户只提供目标姓名时,用 [`lark-contact`](../../lark-contact/SKILL.md) 解析为 `ou_` open_id。
|
|
92
|
+
4. 执行 `minutes +speaker-replace --from-speaker-id <speaker_id> --to-user-id <open_id> --as user`;不要把展示名传给 `--from-speaker-id`。
|
|
93
|
+
|
|
94
|
+
完整流程和参数见 [`lark-minutes-speaker-replace`](../references/lark-minutes-speaker-replace.md)。
|
|
95
|
+
|
|
96
|
+
## 查看妙记授权列表
|
|
97
|
+
|
|
98
|
+
用户要查看妙记已授权给哪些成员,或查询某个成员当前的查看 / 编辑权限时,使用 Drive 协作者列表;这不是读取妙记内容,也不是为当前身份申请权限。先读取 [`lark-drive`](../../lark-drive/SKILL.md) 和 [`drive +member-list`](../../lark-drive/references/lark-drive-member-list.md)。
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
lark-cli drive +member-list --token "<minute_url>" --as <source_identity> --format json
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
完整妙记 URL 可自动推断资源类型为 `minutes`;裸 `minute_token` 必须显式传 `--type minutes`。需要核对指定成员时,按 `member_id` 精确匹配返回的 `items[]`,不要按姓名或列表顺序猜测。
|
|
105
|
+
|
|
106
|
+
## 分配妙记权限
|
|
107
|
+
|
|
108
|
+
用户要求“把妙记分享给某人”“让某人可以查看 / 编辑”或“给某人授予权限”时,修改的是目标妙记的协作者权限,使用 `drive +member-add`;禁止使用 `minutes +apply-permission`,后者只为当前调用身份向妙记所有者申请权限。
|
|
109
|
+
|
|
110
|
+
先读取 [`lark-drive`](../../lark-drive/SKILL.md) 和 [`drive +member-add`](../../lark-drive/references/lark-drive-member-add.md)。目标成员只有展示名时,按 [`lark-contact`](../../lark-contact/SKILL.md) 将其唯一解析为对应 ID;存在多个候选时请用户选择,不得猜测。
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
lark-cli drive +member-add \
|
|
114
|
+
--token "<minute_url>" \
|
|
115
|
+
--member-id "<open_id>" \
|
|
116
|
+
--member-type openid \
|
|
117
|
+
--perm view \
|
|
118
|
+
--yes \
|
|
119
|
+
--as <source_identity> \
|
|
120
|
+
--format json
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
完整妙记 URL 可自动推断资源类型为 `minutes`;裸 `minute_token` 必须显式传 `--type minutes`。根据用户要求选择 `view` 或 `edit`;妙记不支持 `full_access`。只有妙记、目标成员和权限档位均已明确,且用户已明确要求执行授权时,才传 `--yes`。
|
|
124
|
+
|
|
125
|
+
写入后使用 `drive +member-list` 按 `member_id` 回读验证。只有返回的目标成员权限与用户要求一致时,才能声明分配完成;若目标成员已有不同权限,不要仅根据 `member-add` 回执声称权限已被覆盖或降级。
|
|
126
|
+
|
|
127
|
+
## 为当前身份申请妙记权限
|
|
128
|
+
|
|
129
|
+
没有查看或编辑权限时,先说明权限事实。只有用户明确要求申请权限时才执行:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
lark-cli minutes +apply-permission --minute-token <token> --perm view --as <source_identity>
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
根据用户目标选择 `view` 或 `edit`,并必须沿用触发无权错误时的身份。这只是发起申请,不代表已经获得权限。身份和权限语义见 [`lark-minutes-apply-permission`](../references/lark-minutes-apply-permission.md)。
|
|
136
|
+
|
|
137
|
+
`permission_denied` 表示对该妙记没有编辑权,不等于 OAuth scope 缺失;请所有者授权,不要误走 `auth login --scope`。
|
|
138
|
+
|
|
139
|
+
## ASR/AI 额度不足
|
|
140
|
+
|
|
141
|
+
`minutes +upload`、`+summary`、`+todo` 和 `+word-replace` 都可能返回 `quota_exceeded`,表示 ASR/AI 额度已耗尽。`+upload` 是额度不足以转写这个音视频,妙记根本没有创建;其余三个是该妙记生成时额度就已用尽、AI 产物未完整生成,写操作无法落库。
|
|
142
|
+
|
|
143
|
+
请用户去妙记详情页查看额度详细信息,不要重试:CLI 无法补充或提升额度,重试同样的请求不会成功。这不是权限问题,也不要误走 `+apply-permission` 或 `auth login --scope`。
|
|
144
|
+
|
|
145
|
+
## 确认修改结果
|
|
146
|
+
|
|
147
|
+
修改前只读取目标相关字段,修改后用 `minutes +detail` 或对应读取接口回读。命令自身已逐项返回写入结果时不再回读,例如 `minutes +word-replace` 的 Succeeded / Failed 关键词。批量或多步修改逐项报告写前值、写后结果和失败原因;部分成功时不要回滚已成功项,除非命令明确承诺原子回滚。
|