@amaster.ai/pi-lark 0.1.9 → 0.1.11

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.
Files changed (123) hide show
  1. package/README.md +1 -3
  2. package/package.json +2 -2
  3. package/skills/lark-approval/SKILL.md +2 -2
  4. package/skills/lark-approval/references/lark-approval-instances-initiated.md +5 -0
  5. package/skills/lark-approval/references/lark-approval-tasks-add-sign.md +68 -20
  6. package/skills/lark-approval/references/lark-approval-tasks-query.md +5 -0
  7. package/skills/lark-apps/SKILL.md +1 -1
  8. package/skills/lark-apps/references/lark-apps-cache.md +38 -5
  9. package/skills/lark-base/SKILL.md +131 -11
  10. package/skills/lark-base/references/lark-base-app.md +18 -0
  11. package/skills/lark-base/references/lark-base-dashboard-block-config.md +28 -1
  12. package/skills/lark-base/references/lark-base-dashboard.md +29 -11
  13. package/skills/lark-base/references/lark-base-data-query.md +2 -6
  14. package/skills/lark-base/references/lark-base-field-extension.md +170 -0
  15. package/skills/lark-base/references/lark-base-field-lookup.md +1 -1
  16. package/skills/lark-base/references/lark-base-field-schema.md +10 -1
  17. package/skills/lark-base/references/lark-base-filter-condition.md +32 -5
  18. package/skills/lark-base/references/lark-base-form-detail.md +1 -1
  19. package/skills/lark-base/references/lark-base-form-questions-create.md +36 -5
  20. package/skills/lark-base/references/lark-base-form-submit.md +2 -2
  21. package/skills/lark-base/references/lark-base-record-history-list.md +19 -2
  22. package/skills/lark-base/references/lark-base-record-query-and-analysis-sop.md +95 -205
  23. package/skills/lark-base/references/lark-base-template-center.md +199 -0
  24. package/skills/lark-calendar/SKILL.md +14 -5
  25. package/skills/lark-calendar/references/lark-calendar-join-event.md +43 -0
  26. package/skills/lark-calendar/references/lark-calendar-transfer.md +89 -0
  27. package/skills/lark-doc/references/lark-doc-fetch.md +1 -1
  28. package/skills/lark-drive/references/lark-drive-add-comment.md +2 -2
  29. package/skills/lark-drive/references/lark-drive-member-remove.md +2 -1
  30. package/skills/lark-im/SKILL.md +23 -3
  31. package/skills/lark-im/references/lark-im-message-read-status.md +96 -0
  32. package/skills/lark-im/references/lark-im-messages-edit.md +89 -0
  33. package/skills/lark-im/references/lark-im-messages-mget.md +8 -0
  34. package/skills/lark-im/references/lark-im-messages-reply.md +2 -0
  35. package/skills/lark-im/references/lark-im-messages-send.md +6 -2
  36. package/skills/lark-mail/references/lark-mail-draft-create.md +12 -12
  37. package/skills/lark-mail/references/lark-mail-forward.md +17 -17
  38. package/skills/lark-mail/references/lark-mail-reply-all.md +8 -8
  39. package/skills/lark-mail/references/lark-mail-reply.md +6 -6
  40. package/skills/lark-mail/references/lark-mail-send.md +20 -20
  41. package/skills/lark-mail/references/lark-mail-template-create.md +7 -6
  42. package/skills/lark-mail/references/lark-mail-template-update.md +7 -6
  43. package/skills/lark-markdown/SKILL.md +1 -1
  44. package/skills/lark-meeting/SKILL.md +150 -0
  45. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-apply-permission.md +2 -5
  46. package/skills/lark-meeting/references/lark-minutes-detail.md +52 -0
  47. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-download.md +4 -6
  48. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-search.md +4 -34
  49. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-speaker-replace.md +3 -4
  50. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-summary.md +3 -5
  51. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-todo.md +44 -16
  52. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-update.md +2 -3
  53. package/skills/lark-meeting/references/lark-minutes-upload.md +71 -0
  54. package/skills/lark-meeting/references/lark-note-detail.md +15 -0
  55. package/skills/lark-meeting/references/lark-note-transcript.md +19 -0
  56. package/skills/lark-meeting/references/lark-vc-agent-meeting-end.md +26 -0
  57. package/skills/lark-meeting/references/lark-vc-agent-meeting-invite.md +32 -0
  58. package/skills/{lark-vc-agent → lark-meeting}/references/lark-vc-agent-meeting-join.md +11 -56
  59. package/skills/{lark-vc-agent → lark-meeting}/references/lark-vc-agent-meeting-leave.md +2 -41
  60. package/skills/lark-meeting/references/lark-vc-detail.md +31 -0
  61. package/skills/lark-meeting/references/lark-vc-meeting-countdown.md +103 -0
  62. package/skills/{lark-vc → lark-meeting}/references/lark-vc-meeting-events.md +9 -98
  63. package/skills/{lark-vc → lark-meeting}/references/lark-vc-meeting-list-active.md +4 -29
  64. package/skills/{lark-vc → lark-meeting}/references/lark-vc-meeting-message-send.md +3 -5
  65. package/skills/lark-meeting/references/lark-vc-meeting-screenshot.md +34 -0
  66. package/skills/{lark-vc → lark-meeting}/references/lark-vc-recording.md +4 -65
  67. package/skills/{lark-vc → lark-meeting}/references/lark-vc-search.md +9 -28
  68. package/skills/lark-meeting/scenes/create-and-edit-minutes.md +147 -0
  69. package/skills/lark-meeting/scenes/live-meeting-attend.md +164 -0
  70. package/skills/lark-meeting/scenes/live-meeting-interact.md +101 -0
  71. package/skills/lark-meeting/scenes/query-meeting-and-artifacts.md +90 -0
  72. package/skills/lark-meeting/scenes/query-minutes-and-artifacts.md +70 -0
  73. package/skills/lark-meeting/scenes/query-note-and-artifacts.md +127 -0
  74. package/skills/lark-minutes/SKILL.md +5 -203
  75. package/skills/lark-note/SKILL.md +5 -88
  76. package/skills/lark-shared/SKILL.md +25 -224
  77. package/skills/lark-shared/references/lark-shared-config-init.md +12 -0
  78. package/skills/lark-shared/references/lark-shared-high-risk-approval.md +38 -0
  79. package/skills/lark-shared/references/lark-shared-identity-and-permissions.md +105 -0
  80. package/skills/lark-shared/references/lark-shared-output-contract.md +17 -0
  81. package/skills/lark-shared/references/lark-shared-update-notice.md +23 -0
  82. package/skills/lark-sheets/SKILL.md +76 -60
  83. package/skills/lark-sheets/references/lark-sheets-batch-update.md +83 -14
  84. package/skills/lark-sheets/references/lark-sheets-chart.md +296 -159
  85. package/skills/lark-sheets/references/lark-sheets-conditional-format.md +46 -9
  86. package/skills/lark-sheets/references/lark-sheets-filter.md +1 -1
  87. package/skills/lark-sheets/references/lark-sheets-formula-translation.md +78 -65
  88. package/skills/lark-sheets/references/lark-sheets-formula-verify.md +21 -17
  89. package/skills/lark-sheets/references/lark-sheets-pivot-table.md +2 -1
  90. package/skills/lark-sheets/references/lark-sheets-range-operations.md +1 -1
  91. package/skills/lark-sheets/references/lark-sheets-read-data.md +8 -5
  92. package/skills/lark-sheets/references/lark-sheets-search-replace.md +4 -4
  93. package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +2 -2
  94. package/skills/lark-sheets/references/lark-sheets-sparkline.md +1 -0
  95. package/skills/lark-sheets/references/lark-sheets-styles-put.md +3 -3
  96. package/skills/lark-sheets/references/lark-sheets-visual-standards.md +6 -4
  97. package/skills/lark-sheets/references/lark-sheets-workbook.md +3 -1
  98. package/skills/lark-sheets/references/lark-sheets-write-cells.md +50 -48
  99. package/skills/lark-sheets/scripts/lark_chart_layout_check.py +472 -0
  100. package/skills/lark-slides/SKILL.md +2 -0
  101. package/skills/lark-slides/references/cli/lark-slides-add-slide.md +6 -6
  102. package/skills/lark-slides/references/cli/lark-slides-delete-slide.md +3 -3
  103. package/skills/lark-slides/references/cli/lark-slides-replace-slide.md +11 -11
  104. package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-get.md +1 -1
  105. package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-replace.md +2 -2
  106. package/skills/lark-slides/references/workflow/slides-editing.md +11 -11
  107. package/skills/lark-slides/references/xml/slides_xml_schema_definition.xml +103 -14
  108. package/skills/lark-task/SKILL.md +1 -1
  109. package/skills/lark-vc/SKILL.md +5 -205
  110. package/skills/lark-vc-agent/SKILL.md +5 -206
  111. package/skills/lark-workflow-meeting-summary/SKILL.md +20 -13
  112. package/skills/lark-base/references/lark-base-cell-value.md +0 -165
  113. package/skills/lark-base/references/lark-base-data-analysis-pandas.md +0 -93
  114. package/skills/lark-base/references/lark-base-data-analysis-python-stdlib.md +0 -120
  115. package/skills/lark-base/references/lark-base-record-batch-create.md +0 -63
  116. package/skills/lark-base/references/lark-base-record-batch-update.md +0 -57
  117. package/skills/lark-base/references/lark-base-record-query-and-analysis-cloud-sop.md +0 -145
  118. package/skills/lark-minutes/references/lark-minutes-detail.md +0 -63
  119. package/skills/lark-minutes/references/lark-minutes-upload.md +0 -104
  120. package/skills/lark-note/references/lark-note-detail.md +0 -29
  121. package/skills/lark-note/references/lark-note-transcript.md +0 -25
  122. package/skills/lark-vc/references/lark-vc-detail.md +0 -49
  123. package/skills/lark-vc/references/vc-domain-boundaries.md +0 -203
@@ -0,0 +1,103 @@
1
+ # vc +meeting-countdown
2
+
3
+ 设置、延长、提前结束或关闭会中倒计时窗口。
4
+
5
+ 本 skill 对应 shortcut:`lark-cli vc +meeting-countdown`(调用 `POST /open-apis/vc/v1/bots/countdown`)。
6
+
7
+ ## 适用场景
8
+
9
+ - 用户要求在正在进行中的会议里设置倒计时,例如“设置 5 分钟倒计时”。
10
+ - 用户要求延长当前倒计时,例如“再延长 2 分钟”。
11
+ - 用户要求提前结束或关闭当前倒计时。
12
+ - 只用于正在进行中的会议;已结束会议不支持。
13
+
14
+ ## 身份规则
15
+
16
+ `meeting_id` 从哪种身份路径拿到,操作倒计时时就沿用哪种身份:
17
+
18
+ | meeting_id 来源 | 操作时身份 |
19
+ | --- | --- |
20
+ | `+meeting-list-active --as user` | `+meeting-countdown --as user` |
21
+ | `+meeting-list-active --as bot --user-id <user_open_id>` | `+meeting-countdown --as bot` |
22
+ | `+meeting-join --as bot` 返回的 `meeting.id` | `+meeting-countdown --as bot` |
23
+
24
+ 不要把用户身份发现的 `meeting_id` 改用应用身份操作,也不要把应用身份发现的 `meeting_id` 改用用户身份操作,除非用户明确要求切换。
25
+
26
+ ## 参数
27
+
28
+ | 参数 | 说明 |
29
+ | --- | --- |
30
+ | `--meeting-id` | 必填,长数字 `meeting_id`,不是 9 位会议号 |
31
+ | `--action` | 必填,`set`、`prolong`、`end_in_advance` 或 `close_window` |
32
+ | `--duration` | 倒计时时长,单位是分钟;`set` 和 `prolong` 必填 |
33
+ | `--need-play-audio-at-end` | 仅 `set` 可用,表示倒计时结束时播放提示音 |
34
+ | `--reminder-before-end` | 仅 `set` 可用,提醒点单位是分钟;只支持传一个值 |
35
+
36
+ `duration` 和 `reminder_before_end` 都是分钟;提醒时间必须大于 0 且小于 `duration`。
37
+
38
+ ## 设置倒计时
39
+
40
+ ```bash
41
+ lark-cli vc +meeting-countdown --as user \
42
+ --meeting-id <meeting_id> \
43
+ --action set \
44
+ --duration 5 \
45
+ --need-play-audio-at-end \
46
+ --reminder-before-end 1
47
+ ```
48
+
49
+ Dry-run 请求体示例:
50
+
51
+ ```json
52
+ {
53
+ "meeting_id": "<meeting_id>",
54
+ "action": "set",
55
+ "duration": 5,
56
+ "need_play_audio_at_end": true,
57
+ "reminder_before_end": 1
58
+ }
59
+ ```
60
+
61
+ ## 延长倒计时
62
+
63
+ ```bash
64
+ lark-cli vc +meeting-countdown --as bot \
65
+ --meeting-id <meeting_id> \
66
+ --action prolong \
67
+ --duration 2
68
+ ```
69
+
70
+ ## 提前结束或关闭倒计时
71
+
72
+ ```bash
73
+ lark-cli vc +meeting-countdown --as user --meeting-id <meeting_id> --action end_in_advance
74
+ lark-cli vc +meeting-countdown --as user --meeting-id <meeting_id> --action close_window
75
+ ```
76
+
77
+ 提前结束或关闭倒计时窗口时不要传 `--duration`、`--need-play-audio-at-end` 或 `--reminder-before-end`。
78
+
79
+ ## 9 位会议号处理
80
+
81
+ 如果用户给的是 9 位会议号并要求操作倒计时:
82
+
83
+ 1. 先按当前身份执行 `+meeting-list-active`。
84
+ 2. 在返回结果中按 `meeting_no` 匹配该 9 位会议号。
85
+ 3. 匹配到唯一会议后取长数字 `meeting_id`。
86
+ 4. 用发现该会议时的同一身份执行 `+meeting-countdown`。
87
+
88
+ 匹配失败时不要自动入会。只有用户明确要求“让应用机器人入会/旁听/代参会”时,才改用 `+meeting-join`。
89
+
90
+ ## 权限和前置条件
91
+
92
+ - 用户身份:当前用户必须正在该会议中。
93
+ - 应用身份:应用机器人必须正在该会议中。
94
+ - 需要 `vc:meeting.interaction:write` 权限;应用身份还需要应用已安装、数据范围已配置。
95
+
96
+ 应用身份权限错误时,不要引导用户反复 `auth login`。按主 skill 的“应用身份权限配置检查”处理。
97
+
98
+ ## 相关
99
+
100
+ - [lark-vc-meeting-list-active](lark-vc-meeting-list-active.md) — 发现当前进行中会议 ID
101
+ - [lark-vc-meeting-events](lark-vc-meeting-events.md) — 读取会中事件
102
+ - [lark-vc-meeting-message-send](lark-vc-meeting-message-send.md) — 发送会中文本或 reaction
103
+ - [lark-vc-agent-meeting-join](lark-vc-agent-meeting-join.md) — 应用机器人入会
@@ -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. 读取事件前必须先拿到可见的 meeting_id
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>"}' --with-participants`** |
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
- | 应用身份权限不足 | 应用权限、租户安装、权限可访问的数据范围或 VC Agent privilege 未配置完整 | 不要执行 `auth login`。请应用开发者开通 `vc:meeting.bot.join:write`;再检查应用发布/安装和权限可访问的数据范围,均正确仍失败时再排查内测灰度权限 |
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-vc` 的产物决策读取纪要正文、逐字稿或妙记。
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
- - [lark-vc-agent-meeting-join](../../lark-vc-agent/references/lark-vc-agent-meeting-join.md) — 先真实入会
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
- | 应用身份权限不足 | 应用权限、租户安装、权限可访问的数据范围或 VC Agent privilege 未配置完整 | 不要执行 `auth login`。请应用开发者开通 `vc:meeting.bot.join:write`;再检查应用发布/安装和权限可访问的数据范围,均正确仍失败时再排查内测灰度权限 |
87
-
88
- ## 参考
62
+ | 应用身份权限不足 | 应用权限、租户安装或权限可访问的数据范围未配置完整 | 不要执行 `auth login`。请应用开发者开通 `vc:meeting.bot.join:write`;再检查应用发布/安装和权限可访问的数据范围;配置正确仍失败时,保留错误码和 `log_id`,按服务端权限异常排查 |
89
63
 
90
- - [lark-vc-agent-meeting-join](../../lark-vc-agent/references/lark-vc-agent-meeting-join.md) — 让应用机器人真实入会并拿 `meeting.id`
91
- - [lark-vc-meeting-events](lark-vc-meeting-events.md) — 使用 `meeting_id` 读取会中事件
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
- - [lark-vc-meeting-list-active](lark-vc-meeting-list-active.md) — 发现当前进行中会议 ID
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` 两种模式都支持 `--as user` 和 `--as bot`。user token 只能查自己有权限的录制;bot 使用 tenant_access_token,只能查 bot 有权限的录制。
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
  | 错误现象 | 根本原因 | 解决方案 |
@@ -138,7 +80,7 @@ lark-cli minutes +download --minute-tokens <minute_token>
138
80
  | `no recording available` | 该会议无录制或录制未完成 | 确认会议已结束且开启了录制 |
139
81
  | `121005 no permission` | 无权查看该会议录制 | 确认是会议参与者或有录制权限 |
140
82
  | `124002 recording generating` | 录制文件仍在生成中 | 等待录制完成后重试 |
141
- | `missing required scope(s)` | 权限不足 | `--as user`:按提示运行 `auth login --scope`;`--as bot`:使用错误中的 `console_url` 去开发者后台开通,**禁止**对 bot 执行 `auth login`(见 [lark-shared](../../lark-shared/SKILL.md) 的权限恢复表) |
83
+ | `missing required scope(s)` | 权限不足 | `--as user`:按提示运行 `auth login --scope`;`--as bot`:使用错误中的 `console_url` 去开发者后台开通,**禁止**对 bot 执行 `auth login`(见 [lark-shared](../../lark-shared/SKILL.md) 的权限管理) |
142
84
 
143
85
  ## 提示
144
86
 
@@ -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` 只用于真实会议关键词,例如会议主题、项目名、评审名、客户名。用户只是说"我这月参加的所有视频会议"、"最近两周我组织的所有视频会议"、"总结主要议题 / 看看参会情况"时,本质是历史会议列表和后续总结,不要把"回顾"、"所有视频会议"、"总结主要议题"等动作词放进 `--query`。这类请求应先用时间范围 + `--participant-ids` / `--organizer-ids` 搜全量候选,再按结果继续取纪要或录制信息。
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` 输出,你更佳擅长解析 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)