@amaster.ai/pi-lark 0.1.8 → 0.1.10

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 (155) hide show
  1. package/README.md +1 -3
  2. package/package.json +2 -2
  3. package/skills/lark-apps/SKILL.md +3 -1
  4. package/skills/lark-apps/references/lark-apps-cache.md +38 -5
  5. package/skills/lark-apps/references/lark-apps-db.md +130 -2
  6. package/skills/lark-apps/references/lark-apps-user-id-convert.md +63 -0
  7. package/skills/lark-base/SKILL.md +172 -167
  8. package/skills/lark-base/references/{lark-base-role-guide.md → lark-base-advanced-permission-and-role.md} +5 -5
  9. package/skills/lark-base/references/lark-base-app-block-data-config.md +122 -0
  10. package/skills/lark-base/references/lark-base-app.md +243 -0
  11. package/skills/lark-base/references/lark-base-cell-value.md +26 -19
  12. package/skills/lark-base/references/{dashboard-block-data-config.md → lark-base-dashboard-block-config.md} +65 -6
  13. package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +1 -1
  14. package/skills/lark-base/references/lark-base-dashboard.md +38 -20
  15. package/skills/lark-base/references/lark-base-data-analysis-pandas.md +93 -0
  16. package/skills/lark-base/references/lark-base-data-analysis-python-stdlib.md +120 -0
  17. package/skills/lark-base/references/lark-base-data-query.md +8 -11
  18. package/skills/lark-base/references/lark-base-field-create.md +7 -50
  19. package/skills/lark-base/references/{formula-field-guide.md → lark-base-field-formula.md} +1 -1
  20. package/skills/lark-base/references/{lookup-field-guide.md → lark-base-field-lookup.md} +1 -1
  21. package/skills/lark-base/references/{lark-base-field-json.md → lark-base-field-schema.md} +25 -101
  22. package/skills/lark-base/references/lark-base-field-update.md +13 -51
  23. package/skills/lark-base/references/lark-base-filter-condition.md +19 -31
  24. package/skills/lark-base/references/lark-base-form-questions-create.md +36 -5
  25. package/skills/lark-base/references/lark-base-record-batch-create.md +5 -1
  26. package/skills/lark-base/references/lark-base-record-batch-update.md +5 -2
  27. package/skills/lark-base/references/lark-base-record-history-list.md +19 -2
  28. package/skills/lark-base/references/lark-base-record-query-and-analysis-cloud-sop.md +145 -0
  29. package/skills/lark-base/references/lark-base-record-query-and-analysis-sop.md +233 -0
  30. package/skills/lark-base/references/{role-config.md → lark-base-role-config.md} +2 -2
  31. package/skills/lark-base/references/lark-base-template-center.md +195 -0
  32. package/skills/lark-base/references/lark-base-view-set-filter.md +1 -1
  33. package/skills/lark-base/references/lark-base-workflow-schema.md +2 -2
  34. package/skills/lark-base/references/{lark-base-workflow-guide.md → lark-base-workflow.md} +1 -1
  35. package/skills/lark-calendar/SKILL.md +11 -6
  36. package/skills/lark-calendar/references/lark-calendar-create.md +4 -3
  37. package/skills/lark-calendar/references/lark-calendar-transfer.md +89 -0
  38. package/skills/lark-doc/SKILL.md +3 -3
  39. package/skills/lark-doc/references/lark-doc-fetch.md +9 -4
  40. package/skills/lark-doc/references/lark-doc-update.md +12 -8
  41. package/skills/lark-drive/SKILL.md +5 -3
  42. package/skills/lark-drive/references/lark-drive-add-comment.md +2 -2
  43. package/skills/lark-drive/references/lark-drive-download.md +27 -1
  44. package/skills/lark-drive/references/lark-drive-export.md +1 -0
  45. package/skills/lark-drive/references/lark-drive-member-remove.md +59 -0
  46. package/skills/lark-drive/references/lark-drive-preview.md +21 -2
  47. package/skills/lark-drive/references/lark-drive-push.md +5 -1
  48. package/skills/lark-drive/references/lark-drive-search.md +2 -0
  49. package/skills/lark-im/SKILL.md +14 -3
  50. package/skills/lark-im/references/lark-im-message-read-status.md +96 -0
  51. package/skills/lark-mail/references/lark-mail-draft-create.md +12 -12
  52. package/skills/lark-mail/references/lark-mail-forward.md +17 -17
  53. package/skills/lark-mail/references/lark-mail-reply-all.md +8 -8
  54. package/skills/lark-mail/references/lark-mail-reply.md +6 -6
  55. package/skills/lark-mail/references/lark-mail-send.md +20 -20
  56. package/skills/lark-mail/references/lark-mail-template-create.md +7 -6
  57. package/skills/lark-mail/references/lark-mail-template-update.md +7 -6
  58. package/skills/lark-meeting/SKILL.md +146 -0
  59. package/skills/lark-meeting/references/lark-minutes-apply-permission.md +92 -0
  60. package/skills/lark-meeting/references/lark-minutes-detail.md +52 -0
  61. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-download.md +7 -7
  62. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-search.md +4 -34
  63. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-speaker-replace.md +3 -4
  64. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-summary.md +2 -5
  65. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-todo.md +5 -15
  66. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-update.md +2 -3
  67. package/skills/lark-meeting/references/lark-minutes-upload.md +65 -0
  68. package/skills/lark-meeting/references/lark-note-detail.md +15 -0
  69. package/skills/{lark-note → lark-meeting}/references/lark-note-transcript.md +5 -9
  70. package/skills/{lark-vc-agent → lark-meeting}/references/lark-vc-agent-meeting-join.md +4 -55
  71. package/skills/{lark-vc-agent → lark-meeting}/references/lark-vc-agent-meeting-leave.md +2 -41
  72. package/skills/lark-meeting/references/lark-vc-detail.md +31 -0
  73. package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-events.md → lark-meeting/references/lark-vc-meeting-events.md} +120 -109
  74. package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-list-active.md → lark-meeting/references/lark-vc-meeting-list-active.md} +4 -29
  75. package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-message-send.md → lark-meeting/references/lark-vc-meeting-message-send.md} +3 -5
  76. package/skills/{lark-vc → lark-meeting}/references/lark-vc-recording.md +5 -64
  77. package/skills/{lark-vc → lark-meeting}/references/lark-vc-search.md +9 -28
  78. package/skills/lark-meeting/scenes/create-and-edit-minutes.md +125 -0
  79. package/skills/lark-meeting/scenes/live-meeting-attend.md +107 -0
  80. package/skills/lark-meeting/scenes/live-meeting-interact.md +72 -0
  81. package/skills/lark-meeting/scenes/query-meeting-and-artifacts.md +90 -0
  82. package/skills/lark-meeting/scenes/query-minutes-and-artifacts.md +70 -0
  83. package/skills/lark-meeting/scenes/query-note-and-artifacts.md +127 -0
  84. package/skills/lark-minutes/SKILL.md +5 -197
  85. package/skills/lark-note/SKILL.md +5 -84
  86. package/skills/lark-shared/SKILL.md +25 -188
  87. package/skills/lark-shared/references/lark-shared-config-init.md +12 -0
  88. package/skills/lark-shared/references/lark-shared-high-risk-approval.md +38 -0
  89. package/skills/lark-shared/references/lark-shared-identity-and-permissions.md +105 -0
  90. package/skills/lark-shared/references/lark-shared-output-contract.md +17 -0
  91. package/skills/lark-shared/references/lark-shared-update-notice.md +23 -0
  92. package/skills/lark-slides/SKILL.md +56 -54
  93. package/skills/lark-slides/references/cli/lark-slides-add-slide.md +92 -0
  94. package/skills/lark-slides/references/cli/lark-slides-create.md +176 -0
  95. package/skills/lark-slides/references/cli/lark-slides-delete-slide.md +65 -0
  96. package/skills/lark-slides/references/cli/lark-slides-history.md +132 -0
  97. package/skills/lark-slides/references/cli/lark-slides-media-upload.md +103 -0
  98. package/skills/lark-slides/references/cli/lark-slides-replace-slide.md +259 -0
  99. package/skills/lark-slides/references/cli/lark-slides-screenshot.md +115 -0
  100. package/skills/lark-slides/references/{lark-slides-update-slide.md → cli/lark-slides-update-slide.md} +21 -4
  101. package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-get.md +110 -0
  102. package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-replace.md +188 -0
  103. package/skills/lark-slides/references/cli/lark-slides-xml-presentations-get.md +157 -0
  104. package/skills/lark-slides/references/iconpark-index.json +5 -41901
  105. package/skills/lark-slides/references/iconpark.md +3 -44
  106. package/skills/lark-slides/references/lark-slides-add-slide.md +3 -90
  107. package/skills/lark-slides/references/lark-slides-create.md +3 -174
  108. package/skills/lark-slides/references/lark-slides-delete-slide.md +3 -63
  109. package/skills/lark-slides/references/lark-slides-edit-workflows.md +3 -141
  110. package/skills/lark-slides/references/lark-slides-history.md +3 -130
  111. package/skills/lark-slides/references/lark-slides-media-upload.md +3 -102
  112. package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +3 -83
  113. package/skills/lark-slides/references/lark-slides-replace-slide.md +3 -256
  114. package/skills/lark-slides/references/lark-slides-screenshot.md +3 -113
  115. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +3 -108
  116. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +3 -186
  117. package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +3 -155
  118. package/skills/lark-slides/references/planning-layer.md +1 -1
  119. package/skills/lark-slides/references/slides_chart_demo.xml +5 -1415
  120. package/skills/lark-slides/references/slides_xml_schema_definition.xml +3 -3512
  121. package/skills/lark-slides/references/troubleshooting.md +3 -60
  122. package/skills/lark-slides/references/validation-checklist.md +3 -154
  123. package/skills/lark-slides/references/workflow/error-handling.md +62 -0
  124. package/skills/lark-slides/references/workflow/slides-editing.md +143 -0
  125. package/skills/lark-slides/references/workflow/template-editing.md +85 -0
  126. package/skills/lark-slides/references/workflow/validation-xml.md +156 -0
  127. package/skills/lark-slides/references/xml/iconpark-index.json +37458 -0
  128. package/skills/lark-slides/references/xml/iconpark.md +46 -0
  129. package/skills/lark-slides/references/xml/slides_chart_demo.xml +1415 -0
  130. package/skills/lark-slides/references/xml/slides_xml_schema_definition.xml +3601 -0
  131. package/skills/lark-slides/references/xml/xml-schema-quick-ref.md +497 -0
  132. package/skills/lark-slides/references/xml-schema-quick-ref.md +3 -495
  133. package/skills/lark-slides/scripts/iconpark_tool.py +1 -1
  134. package/skills/lark-slides/scripts/xml_lint.py +2989 -0
  135. package/skills/lark-slides/scripts/xml_lint_test.py +4720 -0
  136. package/skills/lark-slides/scripts/xml_text_overlap_lint.py +3 -2975
  137. package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +5 -4712
  138. package/skills/lark-task/SKILL.md +13 -1
  139. package/skills/lark-task/references/lark-task-create.md +3 -1
  140. package/skills/lark-vc/SKILL.md +5 -195
  141. package/skills/lark-vc-agent/SKILL.md +5 -191
  142. package/skills/lark-wiki/SKILL.md +3 -1
  143. package/skills/lark-wiki/references/lark-wiki-node-copy.md +5 -19
  144. package/skills/lark-wiki/references/lark-wiki-node-create.md +19 -2
  145. package/skills/lark-wiki/references/lark-wiki-node-get.md +15 -0
  146. package/skills/lark-wiki/references/lark-wiki-node-list.md +1 -1
  147. package/skills/lark-workflow-meeting-summary/SKILL.md +20 -13
  148. package/skills/lark-base/references/lark-base-data-analysis-sop.md +0 -210
  149. package/skills/lark-base/references/lark-base-data-query-guide.md +0 -69
  150. package/skills/lark-base/references/lark-base-record-upsert.md +0 -63
  151. package/skills/lark-minutes/references/lark-minutes-detail.md +0 -62
  152. package/skills/lark-minutes/references/lark-minutes-upload.md +0 -104
  153. package/skills/lark-note/references/lark-note-detail.md +0 -26
  154. package/skills/lark-vc/references/lark-vc-detail.md +0 -44
  155. package/skills/lark-vc/references/vc-domain-boundaries.md +0 -196
@@ -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)
@@ -0,0 +1,125 @@
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
+ ```bash
64
+ lark-cli minutes +word-replace --minute-token <token> --replace-words '[{"source_word":"<old>","target_word":"<new>"}]' --as user
65
+ ```
66
+
67
+ 多组替换放在同一个 JSON 数组中。具体参数运行 `lark-cli minutes +word-replace --help`。
68
+
69
+ 返回 `not_found` 表示 `source_word` 没有命中,是参数问题而不是权限问题;先读取当前 Transcript,核对精确写法和大小写后再决定是否重试。
70
+
71
+ ## 替换逐字稿说话人
72
+
73
+ 1. 调用 `lark-cli api GET "/open-apis/minutes/v1/minutes/<token>/transcript/speakerlist"` 取得 `speaker_id`。
74
+ 2. 按原说话人的显示名称精确匹配。存在同名候选时,结合 Transcript 展示候选并让用户确认,不要擅选。
75
+ 3. 用户只提供目标姓名时,用 [`lark-contact`](../../lark-contact/SKILL.md) 解析为 `ou_` open_id。
76
+ 4. 执行 `minutes +speaker-replace --from-speaker-id <speaker_id> --to-user-id <open_id> --as user`;不要把展示名传给 `--from-speaker-id`。
77
+
78
+ 完整流程和参数见 [`lark-minutes-speaker-replace`](../references/lark-minutes-speaker-replace.md)。
79
+
80
+ ## 查看妙记授权列表
81
+
82
+ 用户要查看妙记已授权给哪些成员,或查询某个成员当前的查看 / 编辑权限时,使用 Drive 协作者列表;这不是读取妙记内容,也不是为当前身份申请权限。先读取 [`lark-drive`](../../lark-drive/SKILL.md) 和 [`drive +member-list`](../../lark-drive/references/lark-drive-member-list.md)。
83
+
84
+ ```bash
85
+ lark-cli drive +member-list --token "<minute_url>" --as <source_identity> --format json
86
+ ```
87
+
88
+ 完整妙记 URL 可自动推断资源类型为 `minutes`;裸 `minute_token` 必须显式传 `--type minutes`。需要核对指定成员时,按 `member_id` 精确匹配返回的 `items[]`,不要按姓名或列表顺序猜测。
89
+
90
+ ## 分配妙记权限
91
+
92
+ 用户要求“把妙记分享给某人”“让某人可以查看 / 编辑”或“给某人授予权限”时,修改的是目标妙记的协作者权限,使用 `drive +member-add`;禁止使用 `minutes +apply-permission`,后者只为当前调用身份向妙记所有者申请权限。
93
+
94
+ 先读取 [`lark-drive`](../../lark-drive/SKILL.md) 和 [`drive +member-add`](../../lark-drive/references/lark-drive-member-add.md)。目标成员只有展示名时,按 [`lark-contact`](../../lark-contact/SKILL.md) 将其唯一解析为对应 ID;存在多个候选时请用户选择,不得猜测。
95
+
96
+ ```bash
97
+ lark-cli drive +member-add \
98
+ --token "<minute_url>" \
99
+ --member-id "<open_id>" \
100
+ --member-type openid \
101
+ --perm view \
102
+ --yes \
103
+ --as <source_identity> \
104
+ --format json
105
+ ```
106
+
107
+ 完整妙记 URL 可自动推断资源类型为 `minutes`;裸 `minute_token` 必须显式传 `--type minutes`。根据用户要求选择 `view` 或 `edit`;妙记不支持 `full_access`。只有妙记、目标成员和权限档位均已明确,且用户已明确要求执行授权时,才传 `--yes`。
108
+
109
+ 写入后使用 `drive +member-list` 按 `member_id` 回读验证。只有返回的目标成员权限与用户要求一致时,才能声明分配完成;若目标成员已有不同权限,不要仅根据 `member-add` 回执声称权限已被覆盖或降级。
110
+
111
+ ## 为当前身份申请妙记权限
112
+
113
+ 没有查看或编辑权限时,先说明权限事实。只有用户明确要求申请权限时才执行:
114
+
115
+ ```bash
116
+ lark-cli minutes +apply-permission --minute-token <token> --perm view --as <source_identity>
117
+ ```
118
+
119
+ 根据用户目标选择 `view` 或 `edit`,并必须沿用触发无权错误时的身份。这只是发起申请,不代表已经获得权限。身份和权限语义见 [`lark-minutes-apply-permission`](../references/lark-minutes-apply-permission.md)。
120
+
121
+ `permission_denied` 表示对该妙记没有编辑权,不等于 OAuth scope 缺失;请所有者授权,不要误走 `auth login --scope`。
122
+
123
+ ## 确认修改结果
124
+
125
+ 修改前只读取目标相关字段,修改后用 `minutes +detail` 或对应读取接口回读。批量或多步修改逐项报告写前值、写后结果和失败原因;部分成功时不要回滚已成功项,除非命令明确承诺原子回滚。
@@ -0,0 +1,107 @@
1
+ # 应用机器人参会与会中互动
2
+
3
+ 编排应用机器人的完整会中流程:发现已在参加的会议,或在用户明确授权后真实入会;随后拉取会中事件、发送文本或会中表情,并仅在用户明确要求时离会。
4
+
5
+ ## 选择入口
6
+
7
+ | 当前条件 | 起点 |
8
+ |---|---|
9
+ | 已有应用身份取得的 `meeting_id` | 直接拉取事件,不重复查询或入会 |
10
+ | 应用机器人可能已在会中 | 已知目标用户 `user_open_id` 时,先用 `+meeting-list-active --as bot --user-id <user_open_id>` 发现会议 |
11
+ | 用户明确要求机器人入会、旁听或代参会 | 使用 `+meeting-join --as bot` |
12
+ | 只想查当前用户所在会议 | 使用 [会中事件与会中互动](live-meeting-interact.md) 的用户身份路径,不让应用机器人入会 |
13
+
14
+ 用户只提供 9 位会议号或询问会议内容,不等于授权机器人入会。
15
+
16
+ ## 发现应用机器人已在参加的会议
17
+
18
+ 已知目标用户 `ou_` open_id 时,先查询“目标用户正在参会且应用机器人也在同一会议”的活跃会议:
19
+
20
+ ```bash
21
+ lark-cli vc +meeting-list-active --as bot --user-id <user_open_id> --format json
22
+ ```
23
+
24
+ - 返回多个会议时,展示主题、会议号和 `meeting_id` 让用户选择;不擅自取第一个。
25
+ - 返回空不代表目标用户没有在开会,只表示没有找到应用机器人也在会中的可见会议。
26
+ - 用户提供 9 位会议号时,在结果中按 `meeting_no` 匹配;匹配失败时不自动入会。
27
+ - 保存选定的长整数 `meeting_id`,后续事件、消息和离会命令都沿用 `--as bot`。
28
+
29
+ 身份可见范围、多会议选择和会议号匹配见 [`lark-vc-meeting-list-active`](../references/lark-vc-meeting-list-active.md)。
30
+
31
+ ## 加入会议
32
+
33
+ 只有用户明确要求应用机器人加入、旁听或代参会时才执行。入会需要 9 位会议号,不是长整数 `meeting_id`。
34
+
35
+ ```bash
36
+ lark-cli vc +meeting-join --as bot --meeting-number <9_digit_meeting_number>
37
+ ```
38
+
39
+ - 入会前确认目标会议号和用户意图;这是对其他参会人可见的写操作。
40
+ - 保存返回的 `meeting.id`;后续拉取事件、发送会中消息和离会都使用该 ID 与 `--as bot`。
41
+ - 应用机器人可以同时加入多场会议;加入新会议前不需要退出其他会议。
42
+ - 根据返回状态确认入会成功,不要把“请求已发起”当作已入会。
43
+
44
+ 会议密码、等候室、写操作风险和异常恢复见 [`lark-vc-agent-meeting-join`](../references/lark-vc-agent-meeting-join.md)。
45
+
46
+ ## 拉取会中事件
47
+
48
+ 使用应用身份发现或入会得到的 `meeting_id`:
49
+
50
+ ```bash
51
+ lark-cli vc +meeting-events --as bot --meeting-id <meeting_id> --page-all --format pretty
52
+ ```
53
+
54
+ - 默认使用 `--page-all` 拉取当前完整事件流,并保留返回的 `page_token` 供后续增量查询。
55
+ - 回答“现在、刚刚、最新”或总结当前会议前,重新拉取最新事件;不直接复用旧快照。
56
+ - 应用机器人必须在会中,或在会议结束后的可见宽限窗口内曾经参会;不要用任意 `meeting_id` 尝试读取。
57
+ - 会中事件不能替代已结束会议的参会人快照、纪要、逐字稿或录制。
58
+
59
+ 事件类型、分页、结束后五分钟窗口和文档上下文处理见 [`lark-vc-meeting-events`](../references/lark-vc-meeting-events.md)。
60
+
61
+ ## 发送会中文本或表情
62
+
63
+ 每次发送都是对会中参会人可见的写操作。只有用户明确要求发送,并已确认目标会议和内容时才执行。
64
+
65
+ ```bash
66
+ # 文本消息
67
+ lark-cli vc +meeting-message-send --as bot --meeting-id <meeting_id> --msg-type text --text "<message>"
68
+
69
+ # 普通会中表情
70
+ lark-cli vc +meeting-message-send --as bot --meeting-id <meeting_id> --msg-type reaction --emoji-type THUMBSUP
71
+ ```
72
+
73
+ - 始终沿用产生 `meeting_id` 的应用身份;不要切换成用户身份。
74
+ - reaction 必须使用 Reference 中大小写敏感的完整 `emoji_type` 列表;不编造 key。
75
+ - 发送失败时停止并报告;不自动重试或换身份,避免产生重复可见消息。
76
+ - 用户要发绑定群或 IM 消息时改用 `lark-im`,不使用会中消息命令。
77
+
78
+ 文本、reaction 语义、完整 emoji key 和幂等参数见 [`lark-vc-meeting-message-send`](../references/lark-vc-meeting-message-send.md)。
79
+
80
+ ## 离开会议
81
+
82
+ 只有用户明确要求机器人退出、离开或结束参会时才执行:
83
+
84
+ ```bash
85
+ lark-cli vc +meeting-leave --as bot --meeting-id <meeting_id>
86
+ ```
87
+
88
+ - 使用入会返回或应用身份活跃会议查询得到的 `meeting_id`,并确认机器人当前在该会议中。
89
+ - 不要因为任务完成而自动离会。
90
+ - 用户只要会后产物时,转入会议产物场景,不为此先执行离会。
91
+ - 根据返回状态确认离会完成。
92
+
93
+ 离会参数、可见副作用和完成判定见 [`lark-vc-agent-meeting-leave`](../references/lark-vc-agent-meeting-leave.md)。
94
+
95
+ ## 应用身份权限配置检查
96
+
97
+ 应用身份返回 `no permission`、`missing required scope(s)` 或 `missing_scopes` 时,不要执行 `auth login`。按顺序检查:
98
+
99
+ 1. 按 CLI 错误中的 `hint` 处理;返回 `console_url` 时将其原样提供给用户。
100
+ 2. 确认应用已开通对应权限,已发布并安装到当前租户。入会和应用身份会议查询需要 `vc:meeting.bot.join:write`;会中发消息需要 `vc:meeting.message:write`。
101
+ 3. 在开放平台确认“权限可访问的数据范围”已保存为“按条件筛选”,条件为“会议的归属者 包含 与应用的可用范围一致”。
102
+ 4. 上述配置均正确仍失败时,保留 CLI 返回的错误码和 `log_id`,按服务端权限异常排查;不要反复登录或改用其他身份重试。
103
+
104
+ ## 会后边界
105
+
106
+ - 已结束会议的搜索、参会人快照、智能纪要、逐字稿、妙记或录制,转入 [查询会议及其产物](query-meeting-and-artifacts.md)。
107
+ - 会后要把产物发到群或私聊,先使用会议产物场景获取结果,再转 `lark-im`。
@@ -0,0 +1,72 @@
1
+ # 读取会中事件与会中互动
2
+
3
+ 围绕一场正在进行的会议执行只读查询或用户明确授权的发送操作。真实入会/离会使用应用机器人入会场景;已结束会议和会后产物使用会议查询场景。
4
+
5
+ 如果任务包含“应用机器人入会后继续拉取事件或互动”,只读取并执行 [应用机器人参会与会中互动](live-meeting-attend.md) 的完整流程,不要在两个场景之间来回切换。
6
+
7
+ ## 发现进行中的会议
8
+
9
+ 没有 `meeting_id` 时,按用户需要的视角查询:
10
+
11
+ ```bash
12
+ # 当前登录用户正在参加的会议
13
+ lark-cli vc +meeting-list-active --as user --format json
14
+
15
+ # 目标用户正在参加、且应用机器人也在会中的会议
16
+ lark-cli vc +meeting-list-active --as bot --user-id <open_id> --format json
17
+ ```
18
+
19
+ - `--user-id` 必须是目标用户的 `ou_` open_id。
20
+ - 应用身份返回空不代表目标用户没有在开会,只代表没有找到目标用户与应用机器人同时在会中的会议。
21
+ - 返回多个会议时,展示标题、会议号和 `meeting_id` 让用户选择,不按“最近”擅选。
22
+ - 用户只给 9 位会议号时,在活跃会议结果中按 `meeting_no` 匹配;匹配失败时不要自动入会。
23
+ - `meeting_id` 从哪种身份取得,后续读取事件和发送消息就沿用哪种身份。
24
+
25
+ 身份可见范围和会议号匹配见 [`lark-vc-meeting-list-active`](../references/lark-vc-meeting-list-active.md)。
26
+
27
+ ## 读取最新会中事件
28
+
29
+ ```bash
30
+ lark-cli vc +meeting-events --as <same_identity> --meeting-id <meeting_id> --page-all --format pretty
31
+ ```
32
+
33
+ - 默认使用 `--page-all` 获取当前完整事件流,并保留返回的 `page_token` 供下次增量查询。
34
+ - 回答“现在、刚刚、最新”或当前会议总结前,重新查询事件;只有用户明确要求基于历史快照时才复用旧结果。
35
+ - 默认用 pretty 理解时间线;需要精确结构化字段、文档上下文或转发到 IM 时使用 JSON。
36
+ - 不要用会中事件代替已结束会议的参会人快照或会后复盘。
37
+
38
+ 事件类型、分页、五分钟窗口和错误码见 [`lark-vc-meeting-events`](../references/lark-vc-meeting-events.md)。
39
+
40
+ ## 读取共享内容和文档上下文
41
+
42
+ 按事件中的 `share_id`、`share_doc`、`comment_id`、`element_token` 和 `block_id` 精确关联:
43
+
44
+ - 读取评论时只查询当前 `comment_id`,不要扫描整篇文档评论。
45
+ - 多个共享文档按用户问题选择相关文档;不要用“最近一次共享”替代当前 item 的 `share_id`。
46
+ - 只有用户明确要求预览且事件提供受支持的 `element_type` 与 token 时才下载,并显式选择输出路径。
47
+ - 关联或读取失败时标记 partial,保留原始标识和 raw payload;不要自动下载或猜测文档类型兜底。
48
+
49
+ 精确事件 schema 和后续命令见 [`lark-vc-meeting-events`](../references/lark-vc-meeting-events.md) 的文档上下文部分。
50
+
51
+ ## 发送会中文本或表情
52
+
53
+ 只有用户明确要求发送并确认目标会议与内容时执行:
54
+
55
+ ```bash
56
+ lark-cli vc +meeting-message-send --as <same_identity> --meeting-id <meeting_id> --msg-type text --text <message>
57
+ ```
58
+
59
+ - 发送沿用 `meeting_id` 的来源身份;不要为了发送自动入会或先查会议详情。
60
+ - reaction 使用 Reference 中大小写敏感的完整 emoji key;不要编造 key。
61
+ - 发送失败时停止并报告,不自动换身份或重复发送,避免重复可见副作用。
62
+ - 用户要发送绑定群或 IM 消息时改用 `lark-im`,不要把会中消息命令当作群消息能力。
63
+
64
+ 文本、reaction 和权限规则见 [`lark-vc-meeting-message-send`](../references/lark-vc-meeting-message-send.md)。
65
+
66
+ ## 处理未发现会议或权限错误
67
+
68
+ - 用户身份未发现活跃会议时,可以查询当天最近结束的会议;仍无结果再询问时间、主题或会议号,不自行扩大时间范围。
69
+ - 应用身份未发现活跃会议时,只解释当前身份的空结果,不自动查询历史会议或真实入会。
70
+ - 用户身份调用活跃会议或事件查询时,普通 scope 缺失按 CLI hint 申请 `vc:meeting.meetingevent:read`;普通 scope 缺失不表示接口不支持用户身份,只有 CLI 明确说明不支持时才切到应用身份流程。
71
+ - 应用身份缺少权限时不要执行 `auth login`。按 CLI `hint` 和 `console_url` 配置 `vc:meeting.bot.join:write`,并依次检查应用发布、租户安装和“权限可访问的数据范围”;数据范围应为“按条件筛选”,条件为“会议的归属者 包含 与应用的可用范围一致”。
72
+ - scope、安装和数据范围都正确后仍失败时,保留 CLI 返回的错误码和 `log_id`,按服务端权限异常排查;不要反复登录或改用其他身份重试。
@@ -0,0 +1,90 @@
1
+ # 查询会议及其产物
2
+
3
+ 围绕目标会议执行查询:先取得唯一 `meeting_id`,再按用户目标查询参会人、智能纪要、妙记或录制。已有 `note_id` 或 `minute_token` 时从对应产物直接开始,不要绕回会议搜索。
4
+
5
+ ## 定位会议
6
+
7
+ 在决定批量命令和批次大小之前,必须先规范化全部输入标识:
8
+
9
+ - 恰好 9 位纯数字是 `meeting_no`,即使用户称其为“会议 ID”。
10
+ - `meeting_no` 必须先逐个通过 `vc +search --query` 转换为搜索结果中的 `id`。
11
+ - `vc +search` 不支持批量会议号;多个 `meeting_no` 按输入顺序逐个解析,也可使用脚本批量转换。
12
+
13
+ 优先复用已有标识,不重复搜索:
14
+
15
+ | 已有信息 | 操作 |
16
+ |---|---|
17
+ | `meeting_id` | 直接查询会议或关联产物 |
18
+ | `meeting_no` / 9 位会议号 | 用 `vc +search --query "<meeting_no>" --format json --as user` 搜索会议,从结果的 `id` 取得 `meeting_id` |
19
+ | Calendar `event_id` | 用 `calendar +meeting` 获取 `meeting_id` 和用户绑定的 `meeting_note` |
20
+ | `note_id` | 直接进入 [智能纪要场景](query-note-and-artifacts.md) |
21
+ | `minute_token` / 妙记 URL | 直接进入 [妙记场景](query-minutes-and-artifacts.md);URL 取路径最后一段并去掉 query 参数 |
22
+
23
+ 没有标识时,用 `vc +search` 搜索已经结束的会议:
24
+
25
+ ```bash
26
+ lark-cli vc +search --query <query> --start <start> --end <end> --format json
27
+ ```
28
+
29
+ - 至少提供关键词、时间范围、组织者、参与者或会议室中的一个条件;不要把“总结”“回顾”“所有会议”等动作词当作 `--query`。
30
+ - “今天有哪些会议”需要合并两部分:`vc +search` 查询今天已结束的会议, lark-calendar 查询进行中或未开始的日程。
31
+ - 只有自然语言纪要标题、没有会议 ID、时间、参会人等会议线索时,改用 Drive/Doc 搜索纪要文档,不要把纪要标题当作会议关键词。
32
+ - 根据 `has_more` 和 `page_token` 翻页。未明确要求全量时,累计结果超过 50 条后先确认是否继续;用户明确要求“全部、统计、排序”时直接获取全部结果。
33
+ - 多个候选时展示主题、时间、组织者和 `meeting_id`,让用户选择;不要擅自选择最近的一场。
34
+
35
+ 只需要找到会议时,返回唯一 `meeting_id` 后停止。
36
+
37
+ 搜索参数、日期语义和分页细节见 [`lark-vc-search`](../references/lark-vc-search.md)。
38
+
39
+ ## 选择查询身份
40
+
41
+ - `vc +search` 仅支持用户身份。`vc +detail`、`vc +recording`、`vc meeting get` 和 `note +detail` 支持用户或应用身份。
42
+ - 已有 `meeting_id`、`note_id` 或 `minute_token` 时,沿用其来源身份;后续 Minutes、Note、Doc 和 Drive 命令都显式传入同一个 `--as`。不要为查询参会人或绕过权限错误擅自切换身份。
43
+ - `note +transcript` 仅支持用户身份。应用身份查到 unified Note 时,先说明限制,只有用户明确同意后才切换身份。
44
+
45
+ ## 获取参会人
46
+
47
+ 查询“谁参加过、何时加入或离开、某人是否参会”时,读取会议的参会人快照:
48
+
49
+ ```bash
50
+ lark-cli vc meeting get --params '{"meeting_id":"<meeting_id>","with_participants":true}' --as <source_identity>
51
+ ```
52
+
53
+ 这是服务端快照,不要求应用机器人入会,会议结束后也可以查询。不要用会中事件代替完整参会人快照。
54
+
55
+ ## 获取会议产物标识
56
+
57
+ 使用 `vc +detail` 获取会议关联的 `note_id` 和 `minute_token`:
58
+
59
+ ```bash
60
+ lark-cli vc +detail --meeting-ids <meeting_id> --as <source_identity>
61
+ ```
62
+
63
+ Note 与 Minutes 来自相互独立的 AI 总结和录制链路,可能同时存在、只存在一个或都不存在:
64
+
65
+ - 用户明确指定“智能纪要”或“妙记”时,沿指定链路处理,不要改道。
66
+ - 只存在一类产物时,使用存在的那一类,不要因默认优先级而把缺失的 Note 或 Minutes 当作错误。
67
+ - 两者都存在且用户未指定时,优先使用 Note。Note 及其逐字稿会后通常直接对参会人可读;Minutes 包含原始音视频并受独立资源 ACL 控制,往往需要所有者授权或由用户明确申请权限。
68
+ - Note 和 Minutes 的总结、待办等 AI 产物可能内容重叠。按上述规则选定一条主链路;除非用户明确要求对照,不要自动拼接、合并或去重两份 AI 产物。
69
+ - 用户只要产物标识时,返回取得的 `note_id` / `minute_token` 后停止;需要产物链接时,进入对应下游场景解析,不继续读取正文。
70
+ - `meeting_note` 是 Calendar 日程上由用户绑定的 Doc,只能从 `event_id` 经 `calendar +meeting` 获取;它与 AI 智能纪要独立,不要从 `meeting_id` 或 `note_id` 推断。
71
+ - 用户询问“有哪些纪要”或“纪要链接”且上下文包含 `event_id` 时,保留 `calendar +meeting` 返回的 `meeting_note`;如存在 `note_id`,进入智能纪要场景取得 `note_doc_token`,再同时返回两者供用户区分选择。
72
+
73
+ 会议详情字段见 [`lark-vc-detail`](../references/lark-vc-detail.md)。
74
+
75
+ ## 转交智能纪要场景
76
+
77
+ 取得 `note_id` 后,进入 [基于 note_id 查询智能纪要及关联产物](query-note-and-artifacts.md),并传递 `note_id` 与取得该 ID 时使用的 `source_identity`。`note +detail`、正文与封面读取、`note_display_type` 逐字稿路由、共享文档和 Doc 元信息查询全部以该场景为准,不在本场景重复定义。
78
+
79
+ ## 转交妙记场景
80
+
81
+ 取得 `minute_token` 后,进入 [查询妙记及其产物](query-minutes-and-artifacts.md),并传递 `minute_token` 与取得该 Token 时使用的 `source_identity`。妙记基础信息、AI 产物、Transcript、媒体下载、关联 Note 和资源权限处理全部以该场景为准,不在本场景重复定义。
82
+
83
+ 如果需要从 `meeting_id` 或 Calendar `event_id` 补查录制,先按 [`vc +recording`](../references/lark-vc-recording.md) 取得 `minute_token`,再转入妙记场景。
84
+
85
+ ## 基于会议内容回答或分析
86
+
87
+ - 用户只要现成的 AI 总结、待办或章节时,直接返回选定链路的对应 AI 产物,不为此额外读取逐字稿。待办通常包含提出人或负责人,章节按话题组织,因此查看待办或会议结构时应优先使用这些结构化 AI 产物。
88
+ - 用户要求提炼、重新总结、复盘、争议分析或“谁说了什么”时,读取 Note 逐字稿或 Minutes Transcript 的原始对话并独立分析;禁止把现成 AI 总结重新排版后冒充独立结论。
89
+ - Note 和 Minutes 都有原始记录且用户未指定时,优先使用 Note 逐字稿;用户明确说“基于妙记”时使用 Minutes Transcript。
90
+ - 如果产物不存在或无权限,如实说明,并保留已经取得的 `meeting_id`、`note_id`、`minute_token` 或文档 token,方便用户继续处理。
@@ -0,0 +1,70 @@
1
+ # 查询妙记及其产物
2
+
3
+ 围绕目标妙记执行查询:先取得唯一 `minute_token`,再按用户目标查询基础信息、AI 产物、逐字稿、原始媒体或关联的智能纪要。已有会议上下文或 `meeting_id` 时,先从会议链路取得 `minute_token`,不要重复搜索妙记。
4
+
5
+ ## 定位妙记
6
+
7
+ - 已有 `minute_token` 时直接使用。
8
+ - 妙记 URL 的路径最后一段是 `minute_token`;去掉 query 参数。
9
+ - 没有 token 时,用标题/关键词、所有者、参与者或时间范围执行搜索:
10
+
11
+ ```bash
12
+ lark-cli minutes +search --query <query> --start <start> --end <end> --as user
13
+ ```
14
+
15
+ - `minutes +search` 支持用户身份和应用身份。默认使用用户身份;只有用户明确要求应用视角或上下文已经是应用身份时才使用 `--as bot`。
16
+ - `me` 只适用于用户身份;应用身份没有“当前用户”,必须传明确的 `ou_` open_id。应用身份的 token 或 scope 问题不能通过 `auth login` 修复。
17
+ - “我参与的妙记”默认是“我拥有”与“我作为参与者”两次查询的并集,具体过滤语义见 [`lark-minutes-search`](../references/lark-minutes-search.md)。
18
+ - 根据 `has_more` 和 `page_token` 翻页。用户未明确要求全量时,累计结果超过 50 条且仍有更多结果再确认是否继续;用户明确要求“全部、所有、统计、排序”时直接获取全部分页,并按结果中的 `token` 去重后再返回或统计。
19
+ - 多个候选时展示标题、时间、所有者、URL 和 token,让用户选择,不擅自挑选。
20
+
21
+ 只需要搜索结果时,返回命中项后停止。
22
+
23
+ 一旦用某个身份搜索或解析出 `minute_token`,后续妙记详情、产物读取、媒体下载、权限申请及关联 Note / Doc 查询都必须显式沿用同一个 `--as`。不要依赖 profile 默认身份,也不要为绕过资源权限切换身份。
24
+
25
+ ## 查询基础信息
26
+
27
+ 用户只要标题、时长、封面、所有者或 URL 时,使用基础信息命令:
28
+
29
+ ```bash
30
+ lark-cli minutes minutes get --params '{"minute_token":"<minute_token>"}' --as <source_identity>
31
+ ```
32
+
33
+ 基础信息已经满足目标时,不继续读取 AI 产物或逐字稿。命令参数不足时运行 `lark-cli minutes minutes get --help`。
34
+
35
+ ## 获取 AI 产物和逐字稿
36
+
37
+ 使用 `minutes +detail`,只传用户需要的产物 flag:
38
+
39
+ ```bash
40
+ lark-cli minutes +detail --minute-tokens <minute_token> --summary --todo --chapter --keyword --transcript --as <source_identity>
41
+ ```
42
+
43
+ - 可选 `--summary`、`--todo`、`--chapter`、`--keyword`、`--transcript`。
44
+ - 不传产物 flag 只返回基础信息和可能存在的顶层 `note_id`。
45
+ - 用户只要现成总结、待办或章节时,返回对应 AI 产物。
46
+ - 用户要求提炼、重新总结、分析或复盘时,只读取 Transcript 并基于原始发言独立分析;禁止照搬 `--summary`。
47
+
48
+ 产物 flags、返回字段和本地输出见 [`lark-minutes-detail`](../references/lark-minutes-detail.md)。
49
+
50
+ ## 下载原始音视频
51
+
52
+ 用户需要原始媒体文件或下载链接时,使用 `minutes +download`。同一妙记的下载产物统一归拢到 `./minutes/<minute_token>/`,除非用户指定其他安全相对路径。
53
+
54
+ 媒体类型、路径、链接有效期和权限见 [`lark-minutes-download`](../references/lark-minutes-download.md)。
55
+
56
+ ## 获取关联的智能纪要
57
+
58
+ 从 `minutes +detail` 顶层读取 `note_id`,直接执行 `note +detail`:
59
+
60
+ ```bash
61
+ lark-cli note +detail --note-id <note_id> --as <source_identity>
62
+ ```
63
+
64
+ - 不要把 `minute_token` 当作 `note_id`,也不要绕回 VC。
65
+ - 顶层没有 `note_id` 表示该妙记没有关联 Note,到此停止。
66
+ - 取得 `note_doc_token`、`verbatim_doc_token` 或 `shared_doc_tokens` 后,按智能纪要和 Doc 的规则继续。
67
+
68
+ ## 处理无权限结果
69
+
70
+ 没有查看权限时,说明需要妙记所有者授权;不要自动执行 `minutes +apply-permission`。只有用户明确要求申请查看或编辑权限时,才进入编辑妙记场景发起申请,并沿用触发无权错误时的身份。详见 [`lark-minutes-apply-permission`](../references/lark-minutes-apply-permission.md)。