@amaster.ai/pi-lark 0.1.2-beta.59 → 0.1.2-beta.61

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 (70) hide show
  1. package/README.md +1 -3
  2. package/package.json +2 -2
  3. package/skills/lark-apps/SKILL.md +1 -1
  4. package/skills/lark-apps/references/lark-apps-cache.md +38 -5
  5. package/skills/lark-base/SKILL.md +23 -6
  6. package/skills/lark-base/references/lark-base-app.md +18 -0
  7. package/skills/lark-base/references/lark-base-dashboard-block-config.md +28 -1
  8. package/skills/lark-base/references/lark-base-dashboard.md +29 -11
  9. package/skills/lark-base/references/lark-base-field-schema.md +10 -1
  10. package/skills/lark-base/references/lark-base-form-questions-create.md +36 -5
  11. package/skills/lark-base/references/lark-base-record-history-list.md +19 -2
  12. package/skills/lark-base/references/lark-base-template-center.md +195 -0
  13. package/skills/lark-calendar/SKILL.md +9 -6
  14. package/skills/lark-calendar/references/lark-calendar-transfer.md +89 -0
  15. package/skills/lark-doc/references/lark-doc-fetch.md +1 -1
  16. package/skills/lark-drive/references/lark-drive-add-comment.md +2 -2
  17. package/skills/lark-im/SKILL.md +8 -2
  18. package/skills/lark-im/references/lark-im-message-read-status.md +96 -0
  19. package/skills/lark-mail/references/lark-mail-draft-create.md +12 -12
  20. package/skills/lark-mail/references/lark-mail-forward.md +17 -17
  21. package/skills/lark-mail/references/lark-mail-reply-all.md +8 -8
  22. package/skills/lark-mail/references/lark-mail-reply.md +6 -6
  23. package/skills/lark-mail/references/lark-mail-send.md +20 -20
  24. package/skills/lark-mail/references/lark-mail-template-create.md +7 -6
  25. package/skills/lark-mail/references/lark-mail-template-update.md +7 -6
  26. package/skills/lark-meeting/SKILL.md +146 -0
  27. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-apply-permission.md +2 -5
  28. package/skills/lark-meeting/references/lark-minutes-detail.md +52 -0
  29. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-download.md +4 -6
  30. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-search.md +4 -34
  31. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-speaker-replace.md +3 -4
  32. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-summary.md +2 -5
  33. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-todo.md +5 -15
  34. package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-update.md +2 -3
  35. package/skills/lark-meeting/references/lark-minutes-upload.md +65 -0
  36. package/skills/lark-meeting/references/lark-note-detail.md +15 -0
  37. package/skills/lark-meeting/references/lark-note-transcript.md +19 -0
  38. package/skills/{lark-vc-agent → lark-meeting}/references/lark-vc-agent-meeting-join.md +4 -55
  39. package/skills/{lark-vc-agent → lark-meeting}/references/lark-vc-agent-meeting-leave.md +2 -41
  40. package/skills/lark-meeting/references/lark-vc-detail.md +31 -0
  41. package/skills/{lark-vc → lark-meeting}/references/lark-vc-meeting-events.md +8 -98
  42. package/skills/{lark-vc → lark-meeting}/references/lark-vc-meeting-list-active.md +4 -29
  43. package/skills/{lark-vc → lark-meeting}/references/lark-vc-meeting-message-send.md +3 -5
  44. package/skills/{lark-vc → lark-meeting}/references/lark-vc-recording.md +4 -65
  45. package/skills/{lark-vc → lark-meeting}/references/lark-vc-search.md +9 -28
  46. package/skills/lark-meeting/scenes/create-and-edit-minutes.md +125 -0
  47. package/skills/lark-meeting/scenes/live-meeting-attend.md +107 -0
  48. package/skills/lark-meeting/scenes/live-meeting-interact.md +72 -0
  49. package/skills/lark-meeting/scenes/query-meeting-and-artifacts.md +90 -0
  50. package/skills/lark-meeting/scenes/query-minutes-and-artifacts.md +70 -0
  51. package/skills/lark-meeting/scenes/query-note-and-artifacts.md +127 -0
  52. package/skills/lark-minutes/SKILL.md +5 -203
  53. package/skills/lark-note/SKILL.md +5 -88
  54. package/skills/lark-shared/SKILL.md +25 -224
  55. package/skills/lark-shared/references/lark-shared-config-init.md +12 -0
  56. package/skills/lark-shared/references/lark-shared-high-risk-approval.md +38 -0
  57. package/skills/lark-shared/references/lark-shared-identity-and-permissions.md +105 -0
  58. package/skills/lark-shared/references/lark-shared-output-contract.md +17 -0
  59. package/skills/lark-shared/references/lark-shared-update-notice.md +23 -0
  60. package/skills/lark-slides/references/xml/slides_xml_schema_definition.xml +101 -14
  61. package/skills/lark-task/SKILL.md +1 -1
  62. package/skills/lark-vc/SKILL.md +5 -205
  63. package/skills/lark-vc-agent/SKILL.md +5 -206
  64. package/skills/lark-workflow-meeting-summary/SKILL.md +20 -13
  65. package/skills/lark-minutes/references/lark-minutes-detail.md +0 -63
  66. package/skills/lark-minutes/references/lark-minutes-upload.md +0 -104
  67. package/skills/lark-note/references/lark-note-detail.md +0 -29
  68. package/skills/lark-note/references/lark-note-transcript.md +0 -25
  69. package/skills/lark-vc/references/lark-vc-detail.md +0 -49
  70. package/skills/lark-vc/references/vc-domain-boundaries.md +0 -203
@@ -19,7 +19,7 @@
19
19
 
20
20
  **方式 A(推荐)** — 创建转发草稿(不带 `--confirm-send`):
21
21
  ```bash
22
- lark-cli mail +forward --message-id <邮件ID> --to <收件人>
22
+ lark-cli mail +forward --message-id <邮件ID> --to '<收件人>'
23
23
  ```
24
24
  → 返回 `draft_id`
25
25
 
@@ -38,22 +38,22 @@ lark-cli mail user_mailbox.drafts send --params '{"user_mailbox_id":"me","draft_
38
38
 
39
39
  ```bash
40
40
  # 转发邮件(默认保存为草稿)— HTML 推荐
41
- lark-cli mail +forward --message-id <邮件ID> --to alice@example.com --body '<p>FYI,请看下面原邮件。</p>'
41
+ lark-cli mail +forward --message-id <邮件ID> --to 'alice@example.com' --body '<p>FYI,请看下面原邮件。</p>'
42
42
 
43
43
  # 转发并附加说明 + 抄送(草稿)
44
- lark-cli mail +forward --message-id <邮件ID> --to alice@example.com --cc bob@example.com --body '<b>请参考</b>'
44
+ lark-cli mail +forward --message-id <邮件ID> --to 'alice@example.com' --cc 'bob@example.com' --body '<b>请参考</b>'
45
45
 
46
46
  # 转发时插入内嵌图片(推荐:直接用相对路径,自动解析)
47
- lark-cli mail +forward --message-id <邮件ID> --to alice@example.com --body '<p>详见图示:<img src="./logo.png" /></p>'
47
+ lark-cli mail +forward --message-id <邮件ID> --to 'alice@example.com' --body '<p>详见图示:<img src="./logo.png" /></p>'
48
48
 
49
49
  # 纯文本转发(仅在内容极简时使用)
50
- lark-cli mail +forward --message-id <邮件ID> --to alice@example.com
50
+ lark-cli mail +forward --message-id <邮件ID> --to 'alice@example.com'
51
51
 
52
52
  # 确认发送(用户明确确认后才可使用)
53
- lark-cli mail +forward --message-id <邮件ID> --to alice@example.com --confirm-send
53
+ lark-cli mail +forward --message-id <邮件ID> --to 'alice@example.com' --confirm-send
54
54
 
55
55
  # Dry Run(仅打印请求,不发送)
56
- lark-cli mail +forward --message-id <邮件ID> --to alice@example.com --dry-run
56
+ lark-cli mail +forward --message-id <邮件ID> --to 'alice@example.com' --dry-run
57
57
  ```
58
58
 
59
59
  ## 参数
@@ -61,16 +61,16 @@ lark-cli mail +forward --message-id <邮件ID> --to alice@example.com --dry-run
61
61
  | 参数 | 必填 | 说明 |
62
62
  |------|------|------|
63
63
  | `--message-id <id>` | 是 | 被转发的邮件 ID |
64
- | `--to <emails>` | 是 | 收件人邮箱,多个用逗号分隔 |
64
+ | `--to '<email>'` | 是 | 收件人邮箱。多个收件人请重复传 `--to`,每次只放一个地址,参数值用单引号包住 |
65
65
  | `--body <text>` | 否 | 转发时附加的说明文字。推荐使用 HTML 获得富文本排版;也支持纯文本。根据转发正文和原邮件正文自动检测 HTML。使用 `--plain-text` 可强制纯文本模式。支持 `<img src="./local.png" />` 相对路径自动解析为内嵌图片(仅支持相对路径,不支持绝对路径)。与 `--body-file` 互斥 |
66
66
  | `--body-file <path>` | 否 | 从文件读取转发说明 HTML(相对路径,仅限 cwd 子树)。与 `--body` 互斥。文件大小上限 32 MB |
67
67
  | `--from <email>` | 否 | 发件人邮箱地址(EML From 头)。使用别名(send_as)发信时,设为别名地址并配合 `--mailbox` 指定所属邮箱。默认读取邮箱主地址 |
68
68
  | `--mailbox <email>` | 否 | 邮箱地址,指定草稿所属的邮箱(默认回退到 `--from`,再回退到 `me`)。当发件人(`--from`)与邮箱不同时使用。可通过 `accessible_mailboxes` 查询可用邮箱 |
69
- | `--cc <emails>` | 否 | 抄送邮箱,多个用逗号分隔 |
70
- | `--bcc <emails>` | 否 | 密送邮箱,多个用逗号分隔。与 `--event-*` 不兼容(见 `+send` 日程邀请约束) |
69
+ | `--cc '<email>'` | 否 | 抄送邮箱。多个抄送请重复传 `--cc`,每次只放一个地址,参数值用单引号包住 |
70
+ | `--bcc '<email>'` | 否 | 密送邮箱。多个密送请重复传 `--bcc`,每次只放一个地址,参数值用单引号包住。与 `--event-*` 不兼容(见 `+send` 日程邀请约束) |
71
71
  | `--plain-text` | 否 | 强制纯文本模式,忽略所有 HTML 自动检测。不可与 `--inline` 同时使用。纯文本模式下也会自动追加纯文本签名(HTML 签名经 `PlainTextFromHTML` 转换,内联图片丢弃) |
72
- | `--attach <paths>` | 否 | 附件文件路径,多个用逗号分隔,追加在原邮件附件之后。相对路径。当附件导致 EML 总大小超过 25 MB 时,超出部分自动上传为超大附件(HTML 邮件插入下载卡片,纯文本邮件追加下载链接),单个文件上限 3 GB |
73
- | `--inline <json>` | 否 | 高级用法:手动指定内嵌图片 CID 映射。推荐直接在 `--body` 中使用 `<img src="./path" />`(自动解析)。仅在需要精确控制 CID 命名时使用此参数。格式:`'[{"cid":"mycid","file_path":"./logo.png"}]'`,在 body 中用 `<img src="cid:mycid">` 引用。不可与 `--plain-text` 同时使用 |
72
+ | `--attach '<path>'` | 否 | 附件文件路径。多个附件请重复传 `--attach`,每次只放一个相对路径,参数值用单引号包住;按传入顺序追加在原邮件附件之后。当附件导致 EML 总大小超过 25 MB 时,超出部分自动上传为超大附件(HTML 邮件插入下载卡片,纯文本邮件追加下载链接),单个文件上限 3 GB |
73
+ | `--inline '<json>'` | 否 | 高级用法:手动指定内嵌图片 CID 映射。多个 inline 图片请重复传 `--inline`,每次只放一个 JSON object,并用单引号包住:`'{"cid":"mycid","file_path":"./logo.png"}'`。`file_path` 必须是相对路径;CID 应唯一,例如随机十六进制字符串;在 body 中用 `<img src="cid:mycid">` 引用。推荐直接在 `--body` 中使用 `<img src="./path" />`(自动解析)。不可与 `--plain-text` 同时使用 |
74
74
  | `--signature-id <id>` | 否 | 签名 ID。附加邮箱签名到转发正文与引用块之间。运行 `mail +signature` 查看可用签名。与 `--no-signature` 互斥 |
75
75
  | `--no-signature` | 否 | 跳过默认签名自动追加。与 `--signature-id` 互斥,同时使用时返回参数校验错误(退出码 2) |
76
76
  | `--priority <level>` | 否 | 邮件优先级:`high`、`normal`、`low`。省略或 `normal` 时不设置优先级 |
@@ -124,14 +124,14 @@ lark-cli mail +forward --message-id <邮件ID> --to alice@example.com --dry-run
124
124
 
125
125
  ### 场景 1:用户说"把这封邮件转发给 Bob"(只创建草稿)
126
126
  ```bash
127
- lark-cli mail +forward --message-id <邮件ID> --to bob@example.com --body '<p>FYI</p>'
127
+ lark-cli mail +forward --message-id <邮件ID> --to 'bob@example.com' --body '<p>FYI</p>'
128
128
  ```
129
129
  → 返回 `draft_id`,告诉用户转发草稿已创建。
130
130
 
131
131
  ### 场景 2:用户说"转发给 Bob 并发送"(需要发送)
132
132
  ```bash
133
133
  # 方式 A: 创建转发草稿
134
- lark-cli mail +forward --message-id <邮件ID> --to bob@example.com --body '<p>FYI,请查收。</p>'
134
+ lark-cli mail +forward --message-id <邮件ID> --to 'bob@example.com' --body '<p>FYI,请查收。</p>'
135
135
  # → 返回 draft_id
136
136
 
137
137
  # 向用户确认 "收件人 bob@example.com。如果你想先看效果,也可以先去飞书邮件里查看草稿。确认发送吗?"
@@ -140,13 +140,13 @@ lark-cli mail +forward --message-id <邮件ID> --to bob@example.com --body '<p>F
140
140
  lark-cli mail user_mailbox.drafts send --params '{"user_mailbox_id":"me","draft_id":"<draft_id>"}'
141
141
 
142
142
  # 方式 B: 用户已明确确认时,直接发送
143
- lark-cli mail +forward --message-id <邮件ID> --to bob@example.com --body '<p>FYI,请查收。</p>' --confirm-send
143
+ lark-cli mail +forward --message-id <邮件ID> --to 'bob@example.com' --body '<p>FYI,请查收。</p>' --confirm-send
144
144
  ```
145
145
 
146
146
  ### 场景 3:用户说"下午 3 点转发给 Bob"(定时发送)
147
147
  ```bash
148
148
  # Step 1: 创建转发草稿
149
- lark-cli mail +forward --message-id <邮件ID> --to bob@example.com --body '<p>FYI,请查收。</p>'
149
+ lark-cli mail +forward --message-id <邮件ID> --to 'bob@example.com' --body '<p>FYI,请查收。</p>'
150
150
  # → 返回 draft_id
151
151
 
152
152
  # Step 2: 向用户确认 "转发草稿已创建:收件人 bob@example.com,定时 <目标时间> 发送。确认吗?"
@@ -174,7 +174,7 @@ lark-cli mail +thread --thread-id <THREAD_ID> --html=false --format json
174
174
  # messages 按时间升序排列,最后一条 = messages[-1].message_id
175
175
 
176
176
  # 3. 转发该消息
177
- lark-cli mail +forward --message-id <最后一条的message_id> --to recipient@example.com --body '请过目'
177
+ lark-cli mail +forward --message-id <最后一条的message_id> --to 'recipient@example.com' --body '请过目'
178
178
  ```
179
179
 
180
180
  ## 实现说明
@@ -41,10 +41,10 @@ lark-cli mail user_mailbox.drafts send --params '{"user_mailbox_id":"me","draft_
41
41
  lark-cli mail +reply-all --message-id <邮件ID> --body '<p><b>已完成</b>,详见下方说明。</p>'
42
42
 
43
43
  # 回复全部并追加收件人/抄送(草稿)
44
- lark-cli mail +reply-all --message-id <邮件ID> --body '<p>同步更新</p>' --to lead@example.com --cc pm@example.com
44
+ lark-cli mail +reply-all --message-id <邮件ID> --body '<p>同步更新</p>' --to 'lead@example.com' --cc 'pm@example.com'
45
45
 
46
46
  # 从回复名单中排除某些地址(草稿)
47
- lark-cli mail +reply-all --message-id <邮件ID> --body '<p>见上</p>' --remove bot@example.com,noreply@example.com
47
+ lark-cli mail +reply-all --message-id <邮件ID> --body '<p>见上</p>' --remove 'bot@example.com' --remove 'noreply@example.com'
48
48
 
49
49
  # 回复全部时插入内嵌图片(推荐:直接用相对路径,自动解析)
50
50
  lark-cli mail +reply-all --message-id <邮件ID> --body '<p>详见图示:<img src="./logo.png" /></p>'
@@ -68,13 +68,13 @@ lark-cli mail +reply-all --message-id <邮件ID> --body '测试' --dry-run
68
68
  | `--body-file <path>` | 二选一 | 从文件读取回复正文 HTML(相对路径,仅限 cwd 子树)。与 `--body` 互斥。文件大小上限 32 MB |
69
69
  | `--from <email>` | 否 | 发件人邮箱地址(EML From 头)。使用别名(send_as)发信时,设为别名地址并配合 `--mailbox` 指定所属邮箱。默认读取邮箱主地址 |
70
70
  | `--mailbox <email>` | 否 | 邮箱地址,指定草稿所属的邮箱(默认回退到 `--from`,再回退到 `me`)。当发件人(`--from`)与邮箱不同时使用。可通过 `accessible_mailboxes` 查询可用邮箱 |
71
- | `--to <emails>` | 否 | 额外收件人,多个用逗号分隔(追加到自动聚合结果) |
72
- | `--cc <emails>` | 否 | 额外抄送,多个用逗号分隔 |
73
- | `--bcc <emails>` | 否 | 密送邮箱,多个用逗号分隔。与 `--event-*` 不兼容(见 `+send` 日程邀请约束) |
74
- | `--remove <emails>` | 否 | 从自动聚合结果中排除的邮箱,多个用逗号分隔 |
71
+ | `--to '<email>'` | 否 | 额外收件人。多个额外收件人请重复传 `--to`,每次只放一个地址,参数值用单引号包住;追加到自动聚合结果 |
72
+ | `--cc '<email>'` | 否 | 额外抄送。多个抄送请重复传 `--cc`,每次只放一个地址,参数值用单引号包住 |
73
+ | `--bcc '<email>'` | 否 | 密送邮箱。多个密送请重复传 `--bcc`,每次只放一个地址,参数值用单引号包住。与 `--event-*` 不兼容(见 `+send` 日程邀请约束) |
74
+ | `--remove '<email>'` | 否 | 从自动聚合结果中排除的邮箱。多个排除地址请重复传 `--remove`,每次只放一个地址,参数值用单引号包住;按传入顺序处理 |
75
75
  | `--plain-text` | 否 | 强制纯文本模式,忽略所有 HTML 自动检测。不可与 `--inline` 同时使用。纯文本模式下也会自动追加纯文本签名(HTML 签名经 `PlainTextFromHTML` 转换,内联图片丢弃) |
76
- | `--attach <paths>` | 否 | 附件文件路径,多个用逗号分隔。相对路径。当附件导致 EML 总大小超过 25 MB 时,超出部分自动上传为超大附件(HTML 邮件插入下载卡片,纯文本邮件追加下载链接),单个文件上限 3 GB |
77
- | `--inline <json>` | 否 | 高级用法:手动指定内嵌图片 CID 映射。推荐直接在 `--body` 中使用 `<img src="./path" />`(自动解析)。仅在需要精确控制 CID 命名时使用此参数。格式:`'[{"cid":"mycid","file_path":"./logo.png"}]'`,在 body 中用 `<img src="cid:mycid">` 引用。不可与 `--plain-text` 同时使用 |
76
+ | `--attach '<path>'` | 否 | 附件文件路径。多个附件请重复传 `--attach`,每次只放一个相对路径,参数值用单引号包住;按传入顺序追加。当附件导致 EML 总大小超过 25 MB 时,超出部分自动上传为超大附件(HTML 邮件插入下载卡片,纯文本邮件追加下载链接),单个文件上限 3 GB |
77
+ | `--inline '<json>'` | 否 | 高级用法:手动指定内嵌图片 CID 映射。多个 inline 图片请重复传 `--inline`,每次只放一个 JSON object,并用单引号包住:`'{"cid":"mycid","file_path":"./logo.png"}'`。`file_path` 必须是相对路径;CID 应唯一,例如随机十六进制字符串;在 body 中用 `<img src="cid:mycid">` 引用。推荐直接在 `--body` 中使用 `<img src="./path" />`(自动解析)。不可与 `--plain-text` 同时使用 |
78
78
  | `--signature-id <id>` | 否 | 签名 ID。附加邮箱签名到回复正文与引用块之间。运行 `mail +signature` 查看可用签名。与 `--no-signature` 互斥 |
79
79
  | `--no-signature` | 否 | 跳过默认签名自动追加。与 `--signature-id` 互斥,同时使用时返回参数校验错误(退出码 2) |
80
80
  | `--priority <level>` | 否 | 邮件优先级:`high`、`normal`、`low`。省略或 `normal` 时不设置优先级 |
@@ -45,7 +45,7 @@ lark-cli mail user_mailbox.drafts send --params '{"user_mailbox_id":"me","draft_
45
45
  lark-cli mail +reply --message-id <邮件ID> --body '<p><b>已收到</b>,稍后跟进。</p>'
46
46
 
47
47
  # 回复并追加收件人/抄送(保存为草稿)
48
- lark-cli mail +reply --message-id <邮件ID> --body '<p>已处理</p>' --to lead@example.com --cc colleague@example.com
48
+ lark-cli mail +reply --message-id <邮件ID> --body '<p>已处理</p>' --to 'lead@example.com' --cc 'colleague@example.com'
49
49
 
50
50
  # 回复时插入内嵌图片(推荐:直接用相对路径,自动解析)
51
51
  lark-cli mail +reply --message-id <邮件ID> --body '<p>详见图示:<img src="./logo.png" /></p>'
@@ -72,12 +72,12 @@ lark-cli mail +reply --message-id <邮件ID> --body '<p>测试</p>' --dry-run
72
72
  | `--body-file <path>` | 二选一 | 从文件读取回复正文 HTML(相对路径,仅限 cwd 子树)。与 `--body` 互斥。文件大小上限 32 MB |
73
73
  | `--from <email>` | 否 | 发件人邮箱地址(EML From 头)。使用别名(send_as)发信时,设为别名地址并配合 `--mailbox` 指定所属邮箱。默认读取邮箱主地址 |
74
74
  | `--mailbox <email>` | 否 | 邮箱地址,指定草稿所属的邮箱(默认回退到 `--from`,再回退到 `me`)。当发件人(`--from`)与邮箱不同时使用。可通过 `accessible_mailboxes` 查询可用邮箱 |
75
- | `--to <emails>` | 否 | 额外收件人,多个用逗号分隔(追加到原发件人) |
76
- | `--cc <emails>` | 否 | 抄送邮箱,多个用逗号分隔 |
77
- | `--bcc <emails>` | 否 | 密送邮箱,多个用逗号分隔。与 `--event-*` 不兼容(见 `+send` 日程邀请约束) |
75
+ | `--to '<email>'` | 否 | 额外收件人。多个额外收件人请重复传 `--to`,每次只放一个地址,参数值用单引号包住;追加到原发件人 |
76
+ | `--cc '<email>'` | 否 | 抄送邮箱。多个抄送请重复传 `--cc`,每次只放一个地址,参数值用单引号包住 |
77
+ | `--bcc '<email>'` | 否 | 密送邮箱。多个密送请重复传 `--bcc`,每次只放一个地址,参数值用单引号包住。与 `--event-*` 不兼容(见 `+send` 日程邀请约束) |
78
78
  | `--plain-text` | 否 | 强制纯文本模式,忽略所有 HTML 自动检测。不可与 `--inline` 同时使用。纯文本模式下也会自动追加纯文本签名(HTML 签名经 `PlainTextFromHTML` 转换,内联图片丢弃) |
79
- | `--attach <paths>` | 否 | 附件文件路径,多个用逗号分隔。相对路径。当附件导致 EML 总大小超过 25 MB 时,超出部分自动上传为超大附件(HTML 邮件插入下载卡片,纯文本邮件追加下载链接),单个文件上限 3 GB |
80
- | `--inline <json>` | 否 | 高级用法:手动指定内嵌图片 CID 映射。推荐直接在 `--body` 中使用 `<img src="./path" />`(自动解析)。仅在需要精确控制 CID 命名时使用此参数。格式:`'[{"cid":"mycid","file_path":"./logo.png"}]'`,在 body 中用 `<img src="cid:mycid">` 引用。不可与 `--plain-text` 同时使用 |
79
+ | `--attach '<path>'` | 否 | 附件文件路径。多个附件请重复传 `--attach`,每次只放一个相对路径,参数值用单引号包住;按传入顺序追加。当附件导致 EML 总大小超过 25 MB 时,超出部分自动上传为超大附件(HTML 邮件插入下载卡片,纯文本邮件追加下载链接),单个文件上限 3 GB |
80
+ | `--inline '<json>'` | 否 | 高级用法:手动指定内嵌图片 CID 映射。多个 inline 图片请重复传 `--inline`,每次只放一个 JSON object,并用单引号包住:`'{"cid":"mycid","file_path":"./logo.png"}'`。`file_path` 必须是相对路径;CID 应唯一,例如随机十六进制字符串;在 body 中用 `<img src="cid:mycid">` 引用。推荐直接在 `--body` 中使用 `<img src="./path" />`(自动解析)。不可与 `--plain-text` 同时使用 |
81
81
  | `--signature-id <id>` | 否 | 签名 ID。附加邮箱签名到回复正文与引用块之间。运行 `mail +signature` 查看可用签名。与 `--no-signature` 互斥 |
82
82
  | `--no-signature` | 否 | 跳过默认签名自动追加。与 `--signature-id` 互斥,同时使用时返回参数校验错误(退出码 2) |
83
83
  | `--priority <level>` | 否 | 邮件优先级:`high`、`normal`、`low`。省略或 `normal` 时不设置优先级 |
@@ -18,7 +18,7 @@
18
18
 
19
19
  **方式 A(推荐)** — 先创建草稿,再确认发送:
20
20
  ```bash
21
- lark-cli mail +send --to <收件人> --subject '<主题>' --body '<正文>'
21
+ lark-cli mail +send --to '<收件人>' --subject '<主题>' --body '<正文>'
22
22
  ```
23
23
  → 返回 `draft_id`
24
24
 
@@ -31,7 +31,7 @@ lark-cli mail user_mailbox.drafts send --params '{"user_mailbox_id":"me","draft_
31
31
 
32
32
  **方式 B(允许)** — 用户已经明确确认收件人和内容时,可直接使用 `--confirm-send` 立即发送:
33
33
  ```bash
34
- lark-cli mail +send --to <收件人> --subject '<主题>' --body '<正文>' --confirm-send
34
+ lark-cli mail +send --to '<收件人>' --subject '<主题>' --body '<正文>' --confirm-send
35
35
  ```
36
36
 
37
37
  **禁止在用户未明确同意的情况下执行发送,无论是发送草稿还是直接使用 `--confirm-send`。**
@@ -40,44 +40,44 @@ lark-cli mail +send --to <收件人> --subject '<主题>' --body '<正文>' --co
40
40
 
41
41
  ```bash
42
42
  # 保存为草稿(默认行为,不发送)— HTML 格式推荐
43
- lark-cli mail +send --to alice@example.com --subject '周报' \
43
+ lark-cli mail +send --to 'alice@example.com' --subject '周报' \
44
44
  --body '<p>本周进展:</p><ul><li>完成 A 模块</li><li>修复 3 个 bug</li></ul>'
45
45
 
46
46
  # 保存为草稿并抄送
47
- lark-cli mail +send --to alice@example.com --cc bob@example.com --subject '状态更新' --body '<b>已完成</b>'
47
+ lark-cli mail +send --to 'alice@example.com' --cc 'bob@example.com' --subject '状态更新' --body '<b>已完成</b>'
48
48
 
49
49
  # 确认发送(仅在用户明确确认后使用)
50
- lark-cli mail +send --to alice@example.com --subject '周报' \
50
+ lark-cli mail +send --to 'alice@example.com' --subject '周报' \
51
51
  --body '<p>本周进展如下...</p>' --confirm-send
52
52
 
53
53
  # 保存带附件的草稿
54
- lark-cli mail +send --to alice@example.com --subject '请查收' --body '<p>见附件</p>' --attach ./report.pdf,./logs.zip
54
+ lark-cli mail +send --to 'alice@example.com' --subject '请查收' --body '<p>见附件</p>' --attach './report.pdf' --attach './logs.zip'
55
55
 
56
56
  # 保存带内嵌图片的草稿(推荐:直接用相对路径,自动解析)
57
- lark-cli mail +send --to alice@example.com --subject '预览图' --body '<img src="./logo.png" />'
57
+ lark-cli mail +send --to 'alice@example.com' --subject '预览图' --body '<img src="./logo.png" />'
58
58
 
59
59
  # 纯文本邮件(仅在内容极简时使用)
60
- lark-cli mail +send --to alice@example.com --subject '确认' --body '收到,谢谢'
60
+ lark-cli mail +send --to 'alice@example.com' --subject '确认' --body '收到,谢谢'
61
61
 
62
62
  # Dry Run(仅打印请求,不执行)
63
- lark-cli mail +send --to alice@example.com --subject '测试' --body '<p>test</p>' --dry-run
63
+ lark-cli mail +send --to 'alice@example.com' --subject '测试' --body '<p>test</p>' --dry-run
64
64
  ```
65
65
 
66
66
  ## 参数
67
67
 
68
68
  | 参数 | 必填 | 说明 |
69
69
  |------|------|------|
70
- | `--to <emails>` | 是 | 收件人邮箱,多个用逗号分隔 |
70
+ | `--to '<email>'` | 是 | 收件人邮箱。多个收件人请重复传 `--to`,每次只放一个地址,参数值用单引号包住 |
71
71
  | `--subject <text>` | 是 | 邮件主题 |
72
72
  | `--body <text>` | 二选一 | 邮件正文。推荐使用 HTML 获得富文本排版;也支持纯文本(自动检测)。使用 `--plain-text` 可强制纯文本模式。支持 `<img src="./local.png" />` 相对路径自动解析为内嵌图片(仅支持相对路径,不支持绝对路径)。与 `--body-file` 互斥 |
73
73
  | `--body-file <path>` | 二选一 | 从文件读取邮件正文 HTML(相对路径,仅限 cwd 子树)。与 `--body` 互斥。文件大小上限 32 MB |
74
74
  | `--from <email>` | 否 | 发件人邮箱地址(EML From 头)。使用别名(send_as)发信时,设为别名地址并配合 `--mailbox` 指定所属邮箱。默认读取邮箱主地址 |
75
75
  | `--mailbox <email>` | 否 | 邮箱地址,指定草稿所属的邮箱(默认回退到 `--from`,再回退到 `me`)。当发件人(`--from`)与邮箱不同时使用。可通过 `accessible_mailboxes` 查询可用邮箱 |
76
- | `--cc <emails>` | 否 | 抄送邮箱,多个用逗号分隔 |
77
- | `--bcc <emails>` | 否 | 密送邮箱,多个用逗号分隔 |
76
+ | `--cc '<email>'` | 否 | 抄送邮箱。多个抄送请重复传 `--cc`,每次只放一个地址,参数值用单引号包住 |
77
+ | `--bcc '<email>'` | 否 | 密送邮箱。多个密送请重复传 `--bcc`,每次只放一个地址,参数值用单引号包住 |
78
78
  | `--plain-text` | 否 | 强制纯文本模式,忽略 HTML 自动检测。不可与 `--inline` 同时使用。纯文本模式下也会自动追加纯文本签名(HTML 签名经 `PlainTextFromHTML` 转换,内联图片丢弃) |
79
- | `--attach <paths>` | 否 | 附件文件路径,多个用逗号分隔。相对路径。当附件导致 EML 总大小超过 25 MB 时,超出部分自动上传为超大附件(HTML 邮件插入下载卡片,纯文本邮件追加下载链接),单个文件上限 3 GB |
80
- | `--inline <json>` | 否 | 高级用法:手动指定内嵌图片 CID 映射。推荐直接在 `--body` 中使用 `<img src="./path" />`(自动解析)。仅在需要精确控制 CID 命名时使用此参数。格式:`'[{"cid":"mycid","file_path":"./logo.png"}]'`,在 body 中用 `<img src="cid:mycid">` 引用。不可与 `--plain-text` 同时使用 |
79
+ | `--attach '<path>'` | 否 | 附件文件路径。多个附件请重复传 `--attach`,每次只放一个相对路径,参数值用单引号包住;按传入顺序追加。当附件导致 EML 总大小超过 25 MB 时,超出部分自动上传为超大附件(HTML 邮件插入下载卡片,纯文本邮件追加下载链接),单个文件上限 3 GB |
80
+ | `--inline '<json>'` | 否 | 高级用法:手动指定内嵌图片 CID 映射。多个 inline 图片请重复传 `--inline`,每次只放一个 JSON object,并用单引号包住:`'{"cid":"mycid","file_path":"./logo.png"}'`。`file_path` 必须是相对路径;CID 应唯一,例如随机十六进制字符串;在 body 中用 `<img src="cid:mycid">` 引用。推荐直接在 `--body` 中使用 `<img src="./path" />`(自动解析)。不可与 `--plain-text` 同时使用 |
81
81
  | `--signature-id <id>` | 否 | 签名 ID。附加邮箱签名到正文末尾。运行 `mail +signature` 查看可用签名。与 `--no-signature` 互斥 |
82
82
  | `--no-signature` | 否 | 跳过默认签名自动追加。与 `--signature-id` 互斥,同时使用时返回参数校验错误(退出码 2) |
83
83
  | `--priority <level>` | 否 | 邮件优先级:`high`、`normal`、`low`。省略或 `normal` 时不设置优先级 |
@@ -141,14 +141,14 @@ lark-cli mail +send --to alice@example.com --subject '测试' --body '<p>test</p
141
141
 
142
142
  ### 场景 1:用户说"帮我写一封邮件给 Alice"(只创建草稿)
143
143
  ```bash
144
- lark-cli mail +send --to alice@example.com --subject '周报' --body '<p>本周进展如下...</p>'
144
+ lark-cli mail +send --to 'alice@example.com' --subject '周报' --body '<p>本周进展如下...</p>'
145
145
  ```
146
146
  → 返回草稿结果时,如输出中带有草稿打开链接,则一起展示给用户;如果当前输出没有链接,则静默处理。如果用户想先看效果,可去飞书邮件 UI 中打开草稿查看详情。
147
147
 
148
148
  ### 场景 2:用户说"发邮件给 Alice 说收到了"(需要发送)
149
149
  ```bash
150
150
  # 方式 A: 创建草稿
151
- lark-cli mail +send --to alice@example.com --subject '收到' --body '<p>已收到,谢谢!</p>'
151
+ lark-cli mail +send --to 'alice@example.com' --subject '收到' --body '<p>已收到,谢谢!</p>'
152
152
  # → 返回 draft_id
153
153
 
154
154
  # 向用户确认 "当前收件人 alice@example.com,主题「收到」。如果你想先看效果,也可以先去飞书邮件里打开草稿查看详情。确认发送吗?"
@@ -157,13 +157,13 @@ lark-cli mail +send --to alice@example.com --subject '收到' --body '<p>已收
157
157
  lark-cli mail user_mailbox.drafts send --params '{"user_mailbox_id":"me","draft_id":"<draft_id>"}'
158
158
 
159
159
  # 方式 B: 用户已明确确认时,直接发送
160
- lark-cli mail +send --to alice@example.com --subject '收到' --body '<p>已收到,谢谢!</p>' --confirm-send
160
+ lark-cli mail +send --to 'alice@example.com' --subject '收到' --body '<p>已收到,谢谢!</p>' --confirm-send
161
161
  ```
162
162
 
163
163
  ### 场景 3:用户说"下午 3 点给 Alice 发一封周报"(定时发送)
164
164
  ```bash
165
165
  # Step 1: 创建草稿(定时发送也走草稿流程)
166
- lark-cli mail +send --to alice@example.com --subject '周报' --body '<p>本周进展如下...</p>'
166
+ lark-cli mail +send --to 'alice@example.com' --subject '周报' --body '<p>本周进展如下...</p>'
167
167
  # → 返回 draft_id
168
168
 
169
169
  # Step 2: 向用户确认 "邮件草稿已创建:收件人 alice@example.com,主题「周报」,定时 <目标时间> 发送。确认吗?"
@@ -210,8 +210,8 @@ lark-cli mail user_mailbox.drafts cancel_scheduled_send --params '{"user_mailbox
210
210
  ## 实现说明
211
211
 
212
212
  - 使用 EML 构建器生成完整 MIME 邮件并 base64url 编码后发送。
213
- - `--attach` 作为普通附件添加。相对路径。
214
- - `--inline` 接受 JSON 数组,每项需提供 `cid`(唯一标识符,可用随机十六进制字符串)和 `file_path`(相对路径),作为 inline part 嵌入邮件。
213
+ - `--attach` 作为普通附件添加。多个附件请重复传 `--attach`,每次只放一个相对路径。
214
+ - `--inline` 手动指定 inline 图片时,多个图片请重复传 `--inline`,每次只放一个 JSON object。每项需提供 `cid`(唯一标识符,可用随机十六进制字符串)和 `file_path`(相对路径),作为 inline part 嵌入邮件。
215
215
  - **超大附件**:当附件导致 EML 总大小(headers + body + inline images + attachments,base64 编码后)超过 25 MB 时,超出的文件自动通过 `medias/upload_*` API 上传到云端。HTML 邮件插入与飞书客户端一致的下载卡片;纯文本邮件追加包含文件名、大小和下载链接的文本块。单个文件上限 3 GB,总附件数量上限 250 个。
216
216
 
217
217
  ## 相关命令
@@ -49,11 +49,12 @@ lark-cli mail +template-create --as user \
49
49
  | `--subject <text>` | 否 | 默认主题 |
50
50
  | `--template-content <html>` | 否* | 模板正文。HTML 首选;支持 `<img src="./local.png" />` 相对路径自动上传到 Drive 并改写为 `cid:` |
51
51
  | `--template-content-file <path>` | 否* | 从文件加载正文内容;与 `--template-content` 互斥 |
52
- | `--plain-text` | 否 | 标记为纯文本模式(`is_plain_text_mode=true`)。仍可带内嵌图片,但 `+send --template-id` 套用时会走 plain-text 正文拼接 |
53
- | `--to <emails>` | 否 | 默认收件人列表,逗号分隔,支持 `Name <email>` 格式 |
54
- | `--cc <emails>` | 否 | 默认抄送 |
55
- | `--bcc <emails>` | 否 | 默认密送 |
56
- | `--attach <paths>` | 否 | 非 inline 附件路径,逗号分隔。每个文件按 `--attach` 书写顺序上传到 Drive |
52
+ | `--plain-text` | 否 | 标记为纯文本模式(`is_plain_text_mode=true`)。不可与 `--inline` 同时使用;`+send --template-id` 套用时会走 plain-text 正文拼接 |
53
+ | `--to '<email>'` | 否 | 默认收件人列表。多个默认收件人请重复传 `--to`,每次只放一个地址,参数值用单引号包住。支持 `Name <email>` 格式 |
54
+ | `--cc '<email>'` | 否 | 默认抄送。多个抄送请重复传 `--cc`,每次只放一个地址,参数值用单引号包住 |
55
+ | `--bcc '<email>'` | 否 | 默认密送。多个密送请重复传 `--bcc`,每次只放一个地址,参数值用单引号包住 |
56
+ | `--attach '<path>'` | 否 | 非 inline 附件路径。多个附件请重复传 `--attach`,每次只放一个相对路径,参数值用单引号包住;每个文件按传入顺序上传到 Drive |
57
+ | `--inline '<json>'` | 否 | 手动指定 inline 图片 CID 映射。多个 inline 图片请重复传 `--inline`,每次只放一个 JSON object,并用单引号包住:`'{"cid":"mycid","file_path":"./logo.png"}'`。`file_path` 必须是相对路径;CID 应唯一,例如随机十六进制字符串;在模板正文中用 `<img src="cid:mycid">` 引用 |
57
58
  | `--mailbox <email>` | 否 | 所属邮箱,默认 `me`(当前用户主邮箱) |
58
59
  | `--dry-run` | 否 | 仅打印计划中的 API 调用链,不真实执行 |
59
60
 
@@ -82,7 +83,7 @@ lark-cli mail +template-create --as user \
82
83
  ## 顺序约束
83
84
 
84
85
  - inline 图片按正文中 `<img>` 出现顺序处理
85
- - 非 inline 按 `--attach` 书写顺序处理;重复路径不会去重
86
+ - 非 inline 按 `--attach` 展开顺序处理;重复路径不会去重
86
87
 
87
88
  ## 返回值
88
89
 
@@ -14,7 +14,7 @@
14
14
  |------|------|---------|
15
15
  | `--print-patch-template` | 打印 `--patch-file` 的 JSON 骨架 | 否(纯本地) |
16
16
  | `--inspect` | 返回当前模板完整 projection | 否(只 GET) |
17
- | `--set-*` / `--attach` | 扁平 flag 合并后 PUT | 是 |
17
+ | `--set-*` / `--attach` / `--inline` | 扁平 flag 合并后 PUT | 是 |
18
18
  | `--patch-file` | 结构化 patch + 扁平 flag 合并后 PUT | 是 |
19
19
 
20
20
  ## 命令
@@ -67,10 +67,11 @@ lark-cli mail +template-update --as user --template-id 712345 \
67
67
  | `--set-template-content <html>` | 替换正文。支持 `<img src="./local.png" />` 相对路径自动上传并改写 |
68
68
  | `--set-template-content-file <path>` | 从文件加载替换正文;与 `--set-template-content` 互斥 |
69
69
  | `--set-plain-text` | 标为纯文本模式(置 true)。**不提供不会置 false**;要把 HTML 模板翻回 false,请用 `--patch-file` 的 `{"is_plain_text_mode": false}` |
70
- | `--set-to <emails>` | 替换默认收件人列表 |
71
- | `--set-cc <emails>` | 替换默认抄送 |
72
- | `--set-bcc <emails>` | 替换默认密送 |
73
- | `--attach <paths>` | 追加非 inline 附件(按书写顺序),不替换已有附件 |
70
+ | `--set-to <emails>` | 用单次参数值替换默认收件人列表;多个地址仍在该值内用逗号分隔,传 `--set-to=""` 可清空 |
71
+ | `--set-cc <emails>` | 用单次参数值替换默认抄送;多个地址仍在该值内用逗号分隔,传 `--set-cc=""` 可清空 |
72
+ | `--set-bcc <emails>` | 用单次参数值替换默认密送;多个地址仍在该值内用逗号分隔,传 `--set-bcc=""` 可清空 |
73
+ | `--attach '<path>'` | 追加非 inline 附件,不替换已有附件。多个附件请重复传 `--attach`,每次只放一个相对路径,参数值用单引号包住;按传入顺序上传 |
74
+ | `--inline '<json>'` | 追加 inline 图片,不替换已有附件。多个 inline 图片请重复传 `--inline`,每次只放一个 JSON object,并用单引号包住:`'{"cid":"mycid","file_path":"./logo.png"}'`;`file_path` 必须是相对路径;CID 应唯一,例如随机十六进制字符串;在模板正文中用 `<img src="cid:mycid">` 引用;最终模板为纯文本模式时会被拒绝 |
74
75
 
75
76
  ### 结构化 patch
76
77
 
@@ -105,7 +106,7 @@ patch-file 字段(全部可选,未提供的字段保持当前模板原值)
105
106
 
106
107
  ## DryRun 行为
107
108
 
108
- - 默认:打印 `GET /user_mailboxes/:id/templates/:tid` + Drive 上传步骤(如有 `<img>` 或 `--attach`)+ `PUT` 步骤。
109
+ - 默认:打印 `GET /user_mailboxes/:id/templates/:tid` + Drive 上传步骤(如有 `<img>`、`--attach` 或 `--inline`)+ `PUT` 步骤。
109
110
  - `--inspect`:只打印 `GET`。
110
111
  - `--print-patch-template`:打印骨架,不走任何 API。
111
112
 
@@ -0,0 +1,146 @@
1
+ ---
2
+ name: lark-meeting
3
+ version: 1.0.0
4
+ description: "飞书视频会议:查询会议记录与会议产物(纪要/逐字稿/妙记)、妙记搜索/上传/下载/编辑、机器人参与会议;查询进行中的会议、实时会议内容(发言/聊天/共享文档)问答(会上/会里)、发送会中聊天/表情;基于 meeting_id、meeting_no、event_id、note_id、minute_token、vc-node-id 或妙记 URL 查询相关信息。预约会议、忙闲和会议室管理走 lark-calendar。"
5
+ metadata:
6
+ requires:
7
+ bins: ["lark-cli"]
8
+ cliHelp: "lark-cli vc --help;lark-cli minutes --help;lark-cli note --help"
9
+ ---
10
+
11
+ # lark-meeting
12
+
13
+ 飞书视频会议业务的统一入口,支持查询会议记录、实时会议互动、管理妙记、阅读智能纪要等操作。本技能负责领域关系、任务路由和跨命令编排。
14
+
15
+ 无需预读 [`lark-shared`](../lark-shared/SKILL.md) 或预跑 `auth status --verify`,仅遇到未认证、token / 身份或 scope 错误时读取该 Skill,修复后重试。认证、身份或 scope 管理请求则直接使用该 Skill。
16
+
17
+ ## 身份初始化与延续
18
+
19
+ 把 `source_identity` 作为跨命令工作流的状态:
20
+
21
+ 1. 上下文已有来源身份:严格沿用。用户要求切换时先说明身份连续性和权限影响,不静默切换。
22
+ 2. 没有来源身份,用户明确指定身份:使用用户指定的 `--as`。
23
+ 3. 没有来源身份且用户未指定:操作语义明确要求应用机器人时使用 `--as bot`,否则显式使用 `--as user`。
24
+
25
+ 确定 `source_identity` 后,再检查目标命令是否支持该身份:
26
+
27
+ - 支持:显式传入并继续执行。
28
+ - 不支持:说明限制并停止;不要为了让命令成功而替换身份。
29
+ - 只有用户明确同意切换身份后,才以新身份重新开始一条工作流。
30
+
31
+ ## 领域模型与概念
32
+
33
+ ```text
34
+ [会议来源]
35
+
36
+ Calendar 日程 (event_id) ──预约或关联──┐
37
+ 即时会议(无 event_id)────────────────┴──► 会议 (meeting_id)
38
+
39
+ Calendar 日程 ──meeting_note────────────► Doc(用户纪要,独立于 AI 智能纪要)
40
+
41
+ [会议产物]
42
+
43
+ 会议 (meeting_id)
44
+ ├── AI 总结 ──► Note 智能纪要 (note_id)
45
+ │ ├── 智能纪要文档 ───────────► Doc (note_doc_token)
46
+ │ ├── 逐字稿
47
+ │ │ ├── normal ──────────► Doc (verbatim_doc_token)
48
+ │ │ └── unified ──────────► note +transcript(非独立 Doc)
49
+ │ └── 共享文档 ──────────────► Doc (shared_doc_tokens)
50
+ │
51
+ └── 录制 ──► Minutes 妙记 (minute_token)
52
+ ├── AI 产物:Summary / Todo / Chapter / Keyword
53
+ ├── Transcript(文字记录)
54
+ └── 原始音视频
55
+
56
+ 本地音视频 ─────────────────────────────► Minutes 妙记 (minute_token)
57
+ ```
58
+
59
+ | 对象 | 主标识 | 概念与关系 |
60
+ |---|---|---|
61
+ | Calendar 日程 | `event_id` | 日历上的日程,包含时间、参与人、会议室和 RSVP,可预约或关联 VC 会议;不是完整的会议记录。日程上的 `meeting_note` 是用户手工绑定的 Doc,与 AI 智能纪要无关。 |
62
+ | Meeting 会议 | `meeting_id` | 实际发生的视频会议,可以来自 Calendar,也可以是没有日程的即时会议。会议主题、时间、参会人快照和会中事件属于会议数据;Note 与 Minutes 是它可能关联的会后产物。 |
63
+ | Note 智能纪要 | `note_id` | 开启 AI 总结后形成的逻辑产物集合。`note_display_type` 决定获取逐字稿中文字记录的不同方式。 |
64
+ | Minutes 妙记 | `minute_token` | 由会议录制或本地音视频上传生成,包含总结、待办、章节、关键词、文字记录和原始音视频;可以关联 VC 会议,也可以独立存在。 |
65
+ | Doc 文档 | Doc token | 内容载体,不是会议标识。`note_doc_token`、`shared_doc_tokens` 和部分 `verbatim_doc_token` 指向 Doc;Doc token 不能当作 `note_id` 或 `meeting_id`。 |
66
+
67
+ ### 核心标识
68
+
69
+ - `meeting_id`:会议 ID。长数字字符串,不是 9 位会议号。
70
+ - `meeting_no`:会议号。9 位纯数字;CLI 参数名为 `--meeting-number`。
71
+ - `minute_token`:妙记 Token。小写字母数字串,通常取自妙记 URL `/minutes/<minute_token>`。
72
+
73
+ 以上标识均按字符串原样传递,不能相互替代。
74
+
75
+ ### 领域不变量
76
+
77
+ - Note 与 Minutes 分别来自 AI 总结和录制两条独立链路。一场会议可能同时有两类产物、只有其中一类,也可能都没有;不能根据 `note_id` 推断必然存在 `minute_token`,反之亦然。
78
+ - Minutes 可以由本地音视频直接生成,因此不一定关联 `meeting_id` 或 Calendar `event_id`。
79
+ - Calendar `meeting_note`、Note `note_id`、Minutes `minute_token` 和各类 Doc token 标识不同对象,不能互换、代入其他域的命令或从一者反推另一者。
80
+
81
+ ## 快速行动
82
+
83
+ ### 查询进行中的会议内容
84
+
85
+ ```bash
86
+ # 当前用户所在会议
87
+ lark-cli vc +meeting-list-active --as user
88
+
89
+ # 应用机器人可见的目标用户会议
90
+ lark-cli vc +meeting-list-active --as bot --user-id <open_id>
91
+
92
+ # 确定唯一 meeting_id 后沿用来源身份
93
+ lark-cli vc +meeting-events --as <source_identity> --meeting-id <meeting_id> --page-all --format pretty
94
+ ```
95
+
96
+ 同时有多场会议时,需要先选择要查询的会议;只有一场会议时,直接查询该场会议的会议事件。
97
+
98
+ 应用身份只返回“目标用户正在参会、且应用机器人也在同一会议中”的会议;返回空不代表目标用户没有在开会。向用户说明结果时使用“用户身份”或“应用身份”,不要暴露 `user` / `bot` 这类内部缩写。
99
+
100
+ ## 场景手册
101
+
102
+ 当任务目标与场景匹配时,阅读对应的场景手册,按流程执行任务。
103
+
104
+ - [查询会议及其产物](scenes/query-meeting-and-artifacts.md):按主题、时间、参会人或 `meeting_id` / `meeting_no` / `event_id` 定位历史会议;查询参会人、录像和会议关联的智能纪要或妙记;基于会议记录总结或复盘。
105
+ - [查询妙记及其产物](scenes/query-minutes-and-artifacts.md):已有妙记 URL / `minute_token`,或按标题、所有者、参与者搜索妙记;读取总结、待办、章节、关键词、逐字稿,下载原始音视频,或查询关联智能纪要。
106
+ - [生成和修改妙记、管理妙记权限](scenes/create-and-edit-minutes.md):将本地音视频生成妙记、逐字稿、总结、待办或章节;修改妙记标题、总结、待办、关键词或说话人;申请妙记权限,或查看、分配妙记协作者权限。
107
+ - [查询智能纪要及关联产物](scenes/query-note-and-artifacts.md):已有 `note_id`、智能纪要 Docx URL/token,或需要查询纪要正文、逐字稿、妙记和共享文档等关联产物。
108
+ - [应用机器人参会与会中互动](scenes/live-meeting-attend.md):完整编排应用机器人的活跃会议发现、真实入会、事件拉取、文本/表情互动和明确授权后的离会。
109
+ - [会中事件与会中互动](scenes/live-meeting-interact.md):在不触发新的入会/离会操作时,使用用户身份或已在会中的应用身份查询活跃会议、查看发言/聊天/共享内容,或发送文本和表情。
110
+
111
+ ## 命令参考
112
+
113
+ | 命令 | 用途 | 参考方式 |
114
+ |---|---|---|
115
+ | `vc +search` | 搜索历史会议 | [lark-vc-search](references/lark-vc-search.md) |
116
+ | `vc +detail` | 查询会议信息及关联的 Note、Minutes 标识 | [lark-vc-detail](references/lark-vc-detail.md) |
117
+ | `vc meeting get` | 查询会议基础信息和参会人快照 | `lark-cli vc meeting get --help` |
118
+ | `vc +recording` | 从会议定位录制及妙记 | [lark-vc-recording](references/lark-vc-recording.md) |
119
+ | `vc +meeting-list-active` | 发现当前可见的进行中会议 | [lark-vc-meeting-list-active](references/lark-vc-meeting-list-active.md) |
120
+ | `vc +meeting-events` | 读取会中事件和共享内容 | [lark-vc-meeting-events](references/lark-vc-meeting-events.md) |
121
+ | `vc +meeting-message-send` | 发送会中文本消息或表情 | [lark-vc-meeting-message-send](references/lark-vc-meeting-message-send.md) |
122
+ | `vc +meeting-join` | 让应用机器人加入会议 | [lark-vc-agent-meeting-join](references/lark-vc-agent-meeting-join.md) |
123
+ | `vc +meeting-leave` | 让应用机器人离开会议 | [lark-vc-agent-meeting-leave](references/lark-vc-agent-meeting-leave.md) |
124
+ | `minutes +search` | 搜索妙记 | [lark-minutes-search](references/lark-minutes-search.md) |
125
+ | `minutes minutes get` | 查询妙记基础信息 | `lark-cli minutes minutes get --help` |
126
+ | `minutes +detail` | 读取妙记信息和指定产物 | [lark-minutes-detail](references/lark-minutes-detail.md) |
127
+ | `minutes +download` | 下载妙记原始音视频 | [lark-minutes-download](references/lark-minutes-download.md) |
128
+ | `minutes +upload` | 从云空间音视频生成妙记 | [lark-minutes-upload](references/lark-minutes-upload.md) |
129
+ | `minutes +update` | 修改妙记标题 | [lark-minutes-update](references/lark-minutes-update.md) |
130
+ | `minutes +speaker-replace` | 替换妙记逐字稿说话人 | [lark-minutes-speaker-replace](references/lark-minutes-speaker-replace.md) |
131
+ | `minutes +summary` | 替换妙记 AI 总结 | [lark-minutes-summary](references/lark-minutes-summary.md) |
132
+ | `minutes +todo` | 增删改妙记 AI 待办 | [lark-minutes-todo](references/lark-minutes-todo.md) |
133
+ | `minutes +apply-permission` | 申请妙记查看或编辑权限 | [lark-minutes-apply-permission](references/lark-minutes-apply-permission.md) |
134
+ | `drive +member-list` | 查看妙记协作者及其权限 | [lark-drive-member-list](../lark-drive/references/lark-drive-member-list.md) |
135
+ | `drive +member-add` | 给指定成员分配妙记查看或编辑权限 | [lark-drive-member-add](../lark-drive/references/lark-drive-member-add.md) |
136
+ | `minutes +word-replace` | 批量替换妙记逐字稿关键词 | `lark-cli minutes +word-replace --help` |
137
+ | `note +detail` | 查询智能纪要及关联文档标识 | [lark-note-detail](references/lark-note-detail.md) |
138
+ | `note +transcript` | 获取 unified 智能纪要逐字稿 | [lark-note-transcript](references/lark-note-transcript.md) |
139
+
140
+ ## 渐进加载规则
141
+
142
+ 按“快速行动 → 场景手册 → 命令参考”渐进加载:
143
+
144
+ 1. 用户目标符合“快速行动”的进入条件时,直接执行对应 CLI;不要预读场景手册、命令参考、`--help` 或 schema。
145
+ 2. 不符合快速行动条件,或缺少关键标识、需要消歧、涉及写操作时,读取与目标匹配的一个主场景手册;主场景明确转交到下游场景时,只继续读取被引用的场景或章节,并按其中流程执行 CLI。
146
+ 3. 仅当缺少具体参数、返回字段、特殊约束或异常处理方式时:有参考手册的命令读取对应文件;没有参考手册的命令运行表中列出的精确 `lark-cli ... --help`。场景或 reference 已给出精确命令时,不再调用 `--help`;仅在参数缺失、命令不识别或文档与运行结果冲突时调用。
@@ -88,8 +88,5 @@ lark-cli minutes +apply-permission --minute-token obcnxxxxxxxxxxxxxxxxxxxx --per
88
88
  | `missing required scope(s)` | 当前身份缺少 `minutes:permission:apply` | 见上方「missing scope 与资源 ACL」 |
89
89
  | 申请后仍无权限 | 所有者尚未同意 | 这是异步申请,需等待所有者处理;不代表命令执行失败 |
90
90
 
91
- ## 参考
92
-
93
- - [lark-minutes](../SKILL.md) — 妙记全部命令
94
- - [minutes +detail](lark-minutes-detail.md) — 妙记内容与产物查询
95
- - [lark-shared](../../lark-shared/SKILL.md) — 身份延续与权限恢复规则
91
+ ## 相关场景
92
+ - [生成和修改妙记](../scenes/create-and-edit-minutes.md)
@@ -0,0 +1,52 @@
1
+
2
+ # minutes +detail
3
+
4
+ 通过 `minute_token` 查询妙记详情,按需获取 AI 产物(总结/待办/章节/逐字稿/关键词)。只读,支持 `--as user` / `--as bot`。
5
+
6
+ `minute_token` 由某个身份取得时,本命令及后续 `note +detail`、`docs +fetch` 都必须显式沿用同一个 `--as`。
7
+
8
+ > `--summary` / `--todo` / `--chapter` / `--keyword` / `--transcript` 都是可选项;请求相应产物时必须显式传入,不传任何产物 flag 时只返回基础信息(如 `title`),AI 产物字段都不会出现。一次性获取所有产物:`--summary --todo --chapter --keyword --transcript`。
9
+
10
+ ## 命令
11
+
12
+ ```bash
13
+ # 仅基础信息
14
+ lark-cli minutes +detail --as <source_identity> --minute-tokens obcxxxxxxxxxx
15
+
16
+ # 批量(逗号分隔,最多 50 个)
17
+ lark-cli minutes +detail --as <source_identity> --minute-tokens obcxxx,obcyyy --summary --todo
18
+
19
+ # 全产物
20
+ lark-cli minutes +detail --as <source_identity> --minute-tokens obcxxx --summary --todo --chapter --keyword --transcript
21
+
22
+ # 仅逐字稿,覆盖已有文件,指定输出目录
23
+ lark-cli minutes +detail --as <source_identity> --minute-tokens obcxxx --transcript --overwrite --output-dir ./out
24
+ ```
25
+
26
+ ## 输出
27
+
28
+ `minutes` 数组每条含 `minute_token`、`title`、`note_id`、`artifacts`。`note_id` 仅在该妙记关联了会议纪要时返回,可直接传给 [`note +detail`](lark-note-detail.md) 拿纪要文档 token,无需再绕回 `vc +detail`。`artifacts` 中**只包含本次请求的产物**:
29
+
30
+ | 字段 | 类型 | 说明 |
31
+ |------|------|------|
32
+ | `artifacts.summary` | string | AI 总结。 |
33
+ | `artifacts.todos` | array | 待办事项列表。 |
34
+ | `artifacts.chapters` | array | 章节列表。 |
35
+ | `artifacts.keywords` | array | 关键词列表。 |
36
+ | `artifacts.transcript_file` | string | 逐字稿本地文件路径。 |
37
+
38
+ 逐字稿默认落地 `./minutes/{minute_token}/transcript.txt`,与 `minutes +download` 同目录便于聚合。指定 `--output-dir <dir>` 时改写到 `<dir>/artifact-{title}-{minute_token}/transcript.txt`。
39
+
40
+ ## minute_token 来源
41
+
42
+ | 来源 | 取值字段 |
43
+ |------|---------|
44
+ | 妙记 URL `https://*.feishu.cn/minutes/obcxxx` | 截路径最后一段 `obcxxx` |
45
+ | `vc +detail --meeting-ids` | `minute_token` |
46
+ | `vc +recording --meeting-ids` | `minute_token` |
47
+ | `minutes +search` | `minute_token` |
48
+
49
+ `minute_token` 不要直接传给 `note +detail`:需要关联 Note 时,先从本命令结果读取 `note_id`。跨产物流程由 [`query-minutes-and-artifacts`](../scenes/query-minutes-and-artifacts.md) 编排。
50
+
51
+ ## 相关场景
52
+ - [查询妙记及其产物](../scenes/query-minutes-and-artifacts.md)
@@ -121,17 +121,15 @@ API 限流 5 次/秒,批量下载时需注意控制频率。
121
121
  | 妙记尚未准备好 | 2091003 | 转写未完成 | 等待转写完成后重试 |
122
122
  | 资源已删除 | 2091004 | 妙记已被删除 | 确认妙记文件仍然存在 |
123
123
  | 权限不足 | 2091005 | 无阅读权限 | 检查是否有该妙记的访问权限 |
124
- | `missing required scope(s)` | — | 当前身份缺少 scope | `--as user`:运行 `auth login --scope "minutes:minutes.media:export"`;`--as bot`:使用错误中的 `console_url` 去开发者后台开通,**禁止**对 bot 执行 `auth login`(见 [lark-shared](../../lark-shared/SKILL.md) 的权限恢复表) |
124
+ | `missing required scope(s)` | — | 当前身份缺少 scope | `--as user`:运行 `auth login --scope "minutes:minutes.media:export"`;`--as bot`:使用错误中的 `console_url` 去开发者后台开通,**禁止**对 bot 执行 `auth login`(见 [lark-shared](../../lark-shared/SKILL.md) 的权限管理) |
125
125
 
126
126
  ## 提示
127
127
 
128
128
  - 音视频文件可能较大,下载无固定超时限制(由用户 Ctrl+C 控制取消)。
129
- - 默认落点 `./minutes/{minute_token}/` 与 `minutes +detail` 的逐字稿共享同一目录,方便 Agent 聚合同一会议的所有产物。
129
+ - 默认落点 `./minutes/{minute_token}/` 与 `minutes +detail` 的逐字稿共享同一目录,方便 Agent 聚合同一妙记的原始音视频和逐字稿。
130
130
  - 单 token 模式下 `--output` 若传入已存在目录(如 `--output ./existing-dir`),等价于 `--output-dir`,文件落入该目录(cp 语义)。
131
131
  - 批量模式下 `--output` 不接受已存在的文件路径(会报错),应改用 `--output-dir`。
132
132
  - 如需获取妙记的纪要内容(逐字稿、AI 总结等),请使用 [minutes +detail](lark-minutes-detail.md)。
133
133
 
134
- ## 参考
135
-
136
- - [lark-minutes](../SKILL.md) — 妙记全部命令
137
- - [lark-minutes-detail](lark-minutes-detail.md) — 妙记详情与 AI 产物查询
134
+ ## 相关场景
135
+ - [查询妙记及其产物](../scenes/query-minutes-and-artifacts.md)