@amaster.ai/pi-lark 0.1.2-beta.66 → 0.1.2-beta.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/skills/lark-base/references/lark-base-dashboard-block-config.md +31 -0
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +6 -3
- package/skills/lark-base/references/lark-base-dashboard.md +17 -1
- package/skills/lark-base/references/lark-base-workflow-schema.md +2 -2
- package/skills/lark-calendar/SKILL.md +44 -16
- package/skills/lark-calendar/references/lark-calendar-list-attendees.md +33 -0
- package/skills/lark-calendar/references/lark-calendar-recurring.md +62 -66
- package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +7 -1
- package/skills/lark-doc/references/lark-doc-create-workflow.md +2 -2
- package/skills/lark-doc/references/lark-doc-script.md +1 -1
- package/skills/lark-drive/references/lark-drive-comment-location.md +1 -1
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.md +1 -1
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector.md +1 -1
- package/skills/lark-okr/SKILL.md +38 -29
- package/skills/lark-okr/references/lark-okr-comment-create.md +103 -0
- package/skills/lark-okr/references/lark-okr-comment-delete.md +59 -0
- package/skills/lark-okr/references/lark-okr-comment-detail.md +80 -0
- package/skills/lark-okr/references/lark-okr-comment-get.md +66 -0
- package/skills/lark-okr/references/lark-okr-comment-list.md +79 -0
- package/skills/lark-okr/references/lark-okr-comment-patch.md +73 -0
- package/skills/lark-okr/references/lark-okr-comment-solve-reopen.md +83 -0
- package/skills/lark-okr/references/lark-okr-entities.md +66 -2
- package/skills/lark-sheets/SKILL.md +1 -0
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +3 -3
- package/skills/lark-sheets/references/lark-sheets-legacy-command-migration.md +152 -0
- package/skills/lark-sheets/references/lark-sheets-read-data.md +2 -2
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +40 -17
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amaster.ai/pi-lark",
|
|
3
|
-
"version": "0.1.2-beta.
|
|
3
|
+
"version": "0.1.2-beta.68",
|
|
4
4
|
"description": "Pi extension for Lark/Feishu workspace — calendar, docs, drive, sheets, tasks, mail and more via lark-cli.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"vitest": "^4.0.0"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@amaster.ai/pi-shared": "0.1.2-beta.
|
|
64
|
+
"@amaster.ai/pi-shared": "0.1.2-beta.68"
|
|
65
65
|
},
|
|
66
66
|
"scripts": {
|
|
67
67
|
"fetch-skills": "node scripts/fetch-skills.mjs",
|
|
@@ -17,6 +17,7 @@ Block 的 `data_config` 字段因 `type` 不同而变化。本文档是 Dashboar
|
|
|
17
17
|
| `funnel` | 漏斗图 |
|
|
18
18
|
| `wordCloud` | 词云 |
|
|
19
19
|
| `radar` | 雷达图 |
|
|
20
|
+
| `ranking` | 排行榜 |
|
|
20
21
|
| `statistics` | 指标卡 |
|
|
21
22
|
| `text` | 文本(支持 Markdown) |
|
|
22
23
|
|
|
@@ -96,6 +97,18 @@ user / created_by / updated_by: is, isNot, isEmpty, isNotEmpty
|
|
|
96
97
|
|
|
97
98
|
如果表中行序就是业务顺序,首次创建 block 时就一次性设置 `sort:{"type":"view","order":"asc"}` 保留行序,避免创建后再二次更新排序条件。
|
|
98
99
|
|
|
100
|
+
### ranking 排行榜专属契约
|
|
101
|
+
|
|
102
|
+
排行榜只支持一个分组和一个指标,公开字段固定为 `table_name`、`series`/`count_all`、`group_by`、`filter`、`limit_size`:
|
|
103
|
+
|
|
104
|
+
- `group_by` 必填且长度严格为 1;`mode` 仅支持 `integrated` / `enumerated`。
|
|
105
|
+
- `series` 长度严格为 1,且与 `count_all:true` 二选一;`rollup` 仅支持 `SUM` / `MAX` / `MIN` / `AVERAGE`。
|
|
106
|
+
- 排序只写在 `group_by[0].sort`,`type` 只能为 `value`,`order` 为 `asc` / `desc`。创建时省略排序默认按指标值降序。
|
|
107
|
+
- `limit_size` 是 Top N,取值为 `1..500` 的整数,创建时省略默认 `10`。
|
|
108
|
+
- 不支持顶层 `sort`、公开 `ranking` 对象或头像开关。
|
|
109
|
+
|
|
110
|
+
更新 `ranking` 时,`data_config` 是顶层 patch:只传 `limit_size` 只改 Top N;只传 `group_by` 只替换唯一分组和排序;只传 `series` 或 `count_all:true` 只切换指标;只传 `filter` 只替换筛选。切换 `table_name` 时必须在同一 patch 提供新的 `group_by` 以及 `series` 或 `count_all:true`;未传 `filter` 保留原筛选,未传 `limit_size` 保留原 Top N。
|
|
111
|
+
|
|
99
112
|
示例 — 柱状图按销售额降序:
|
|
100
113
|
|
|
101
114
|
```json
|
|
@@ -225,6 +238,7 @@ user / created_by / updated_by: is, isNot, isEmpty, isNotEmpty
|
|
|
225
238
|
- 看流程转化 → 漏斗图
|
|
226
239
|
- 看多维度评分 → 雷达图
|
|
227
240
|
- 显示单个指标 → 指标卡(统计数字或记录数)
|
|
241
|
+
- 查看单维度 Top N → 排行榜
|
|
228
242
|
|
|
229
243
|
最小柱状图:
|
|
230
244
|
|
|
@@ -354,6 +368,23 @@ user / created_by / updated_by: is, isNot, isEmpty, isNotEmpty
|
|
|
354
368
|
}
|
|
355
369
|
```
|
|
356
370
|
|
|
371
|
+
排行榜(按销售额取 Top 10):
|
|
372
|
+
|
|
373
|
+
```json
|
|
374
|
+
{
|
|
375
|
+
"table_name": "订单表",
|
|
376
|
+
"series": [{ "field_name": "金额", "rollup": "SUM" }],
|
|
377
|
+
"group_by": [{ "field_name": "负责人", "mode": "integrated", "sort": {"type":"value","order":"desc"} }],
|
|
378
|
+
"limit_size": 10
|
|
379
|
+
}
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
排行榜只更新 Top N:
|
|
383
|
+
|
|
384
|
+
```json
|
|
385
|
+
{"limit_size": 20}
|
|
386
|
+
```
|
|
387
|
+
|
|
357
388
|
指标卡(统计数字):
|
|
358
389
|
|
|
359
390
|
```json
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
这个命令适合以下场景:
|
|
8
8
|
|
|
9
|
-
1. 读取柱状图 / 条形图 / 折线图 / 饼图 / 环形图 / 面积图 / 组合图 / 散点图 / 漏斗图 / 雷达图 / 词云 / 指标卡的**实际计算结果**;
|
|
9
|
+
1. 读取柱状图 / 条形图 / 折线图 / 饼图 / 环形图 / 面积图 / 组合图 / 散点图 / 漏斗图 / 雷达图 / 排行榜 / 词云 / 指标卡的**实际计算结果**;
|
|
10
10
|
2. 把图表结果交给 AI 做后续总结、趋势解释、同比/环比说明、异常点提取;
|
|
11
11
|
3. 在**不读取原始记录**的前提下,直接消费图表层已经聚合好的结果;
|
|
12
12
|
4. 验证某个图表当前展示的数据是否符合预期。
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
当前支持以下图表类型的数据计算与返回:
|
|
28
28
|
|
|
29
|
-
### 二维图表(
|
|
29
|
+
### 二维图表(11 种)
|
|
30
30
|
|
|
31
31
|
- 柱状图
|
|
32
32
|
- 条形图
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
- 散点图
|
|
39
39
|
- 漏斗图
|
|
40
40
|
- 雷达图
|
|
41
|
+
- 排行榜
|
|
41
42
|
|
|
42
43
|
### 特殊类型(2 种)
|
|
43
44
|
|
|
@@ -262,7 +263,9 @@ CLI 成功输出使用标准 `{ok, identity, data}` 信封:
|
|
|
262
263
|
|
|
263
264
|
### 一、二维图表
|
|
264
265
|
|
|
265
|
-
|
|
266
|
+
适用于:柱状图、条形图、折线图、饼图、环形图、面积图、组合图、散点图、漏斗图、雷达图、排行榜。
|
|
267
|
+
|
|
268
|
+
排行榜复用同一 `dimensions` / `measures` / `main_data` 协议,不增加专属响应字段。结果的条数和顺序由 block 配置中的 `limit_size` 与 `group_by[0].sort` 决定;消费返回时保持 `main_data` 的服务端顺序,不要再次反转或自行重排。
|
|
266
269
|
|
|
267
270
|
#### 结构特征
|
|
268
271
|
|
|
@@ -60,7 +60,7 @@ lark-cli base +table-list --base-token xxx
|
|
|
60
60
|
lark-cli base +field-list --base-token xxx --table-id <table_id>
|
|
61
61
|
|
|
62
62
|
# 第 3 步:规划应该创建哪些组件(根据用户需求确定组件类型和数量)
|
|
63
|
-
#
|
|
63
|
+
# 例如:总销售额(指标卡)、月度趋势(折线图)、负责人 Top N(排行榜)
|
|
64
64
|
|
|
65
65
|
# 第 4 步:顺序创建每个组件(必须串行执行,不能并发)
|
|
66
66
|
# 重要:创建组件前,先确定 dashboard_id、组件 name/type 和真实表字段
|
|
@@ -84,6 +84,14 @@ lark-cli base +dashboard-block-create \
|
|
|
84
84
|
|
|
85
85
|
# 继续创建其他组件...
|
|
86
86
|
|
|
87
|
+
# 排行榜组件:省略 limit_size 和 sort 时分别默认 10、value desc
|
|
88
|
+
lark-cli base +dashboard-block-create \
|
|
89
|
+
--base-token xxx \
|
|
90
|
+
--dashboard-id blk_xxx \
|
|
91
|
+
--name "负责人销售额 Top 10" \
|
|
92
|
+
--type ranking \
|
|
93
|
+
--data-config '{"table_name":"订单表","series":[{"field_name":"金额","rollup":"SUM"}],"group_by":[{"field_name":"负责人"}]}'
|
|
94
|
+
|
|
87
95
|
# 第 5 步:组件创建完成后,可按需使用 arrange 智能重排(未使用 --position 时可选)
|
|
88
96
|
# 默认布局可能不够美观,arrange 会根据组件数量和类型自动优化布局
|
|
89
97
|
# 若任一组件使用了显式 --position,跳过此步骤;除非用户明确同意放弃精确布局
|
|
@@ -152,6 +160,13 @@ lark-cli base +dashboard-block-update \
|
|
|
152
160
|
--data-config '{...}' \
|
|
153
161
|
--position '{...}' # 可选,只在需要调整布局时传
|
|
154
162
|
|
|
163
|
+
# 排行榜只修改 Top N;不会覆盖分组、指标、筛选或排序
|
|
164
|
+
lark-cli base +dashboard-block-update \
|
|
165
|
+
--base-token xxx \
|
|
166
|
+
--dashboard-id blk_xxx \
|
|
167
|
+
--block-id chtxxxxxxxx \
|
|
168
|
+
--data-config '{"limit_size":20}'
|
|
169
|
+
|
|
155
170
|
```
|
|
156
171
|
|
|
157
172
|
### 场景 4:重排仪表盘布局
|
|
@@ -225,6 +240,7 @@ lark-cli base +dashboard-block-get-data --base-token xxx --block-id chtxxxxxxxx
|
|
|
225
240
|
| 类别比较(谁高谁低) | column | 柱状图组件 |
|
|
226
241
|
| 占比分布(各部分比例) | pie | 饼图组件 |
|
|
227
242
|
| 单个关键指标 | statistics | 指标卡组件 |
|
|
243
|
+
| 单维度 Top N 排名 | ranking | 排行榜组件,单分组、单指标 |
|
|
228
244
|
| 富文本说明/标题/注释 | text | 文本组件(支持 Markdown) |
|
|
229
245
|
|
|
230
246
|
详细组件类型和 data_config 完整规则:[Dashboard Block 配置](lark-base-dashboard-block-config.md)
|
|
@@ -239,7 +239,7 @@
|
|
|
239
239
|
{
|
|
240
240
|
"table_name": "项目表",
|
|
241
241
|
"field_name": "截止日期",
|
|
242
|
-
"offset": 1,
|
|
242
|
+
"offset": -1,
|
|
243
243
|
"unit": "DAY",
|
|
244
244
|
"hour": 9,
|
|
245
245
|
"minute": 0,
|
|
@@ -252,7 +252,7 @@
|
|
|
252
252
|
| `table_name` | 是 | 数据表名 |
|
|
253
253
|
| `field_name` | 是 | 日期字段名(必须为 `datetime` / `created_at` / `formula` / `lookup` 类型) |
|
|
254
254
|
| `unit` | 是 | 偏移单位:`MINUTE` / `HOUR` / `DAY` / `WEEK` / `MONTH` |
|
|
255
|
-
| `offset` | 是 |
|
|
255
|
+
| `offset` | 是 | 提前/延后的偏移量(触发时间 = 日期字段时间 + `offset` × `unit`,因此负数=提前、正数=延后;范围由 `unit` 决定):`MINUTE` ∈ {0, 5, 15, 30, -5, -15, -30};`HOUR` ∈ [-6, -1] ∪ [1, 6];`DAY` ∈ [-7, 7];`WEEK` ∈ [-7, -1] ∪ [1, 7];`MONTH` ∈ [-7, -1] ∪ [1, 7] |
|
|
256
256
|
| `hour` | 是 | 触发小时 (0-23),默认 9 |
|
|
257
257
|
| `minute` | 是 | 触发分钟 (0-59),默认 0 |
|
|
258
258
|
| `condition_list` | 否 | 过滤条件数组,数组中每个元素为 AndCondition 结构,多个 AndCondition 之间为 OR 关系 |
|
|
@@ -35,15 +35,17 @@ lark-cli calendar +agenda --as bot
|
|
|
35
35
|
| Shortcut | 说明 |
|
|
36
36
|
|----------|------|
|
|
37
37
|
| `+agenda` | 查看日程安排(默认今天) |
|
|
38
|
-
| [`+meeting`](references/lark-calendar-meeting.md) | 通过日程事件 ID 获取关联的视频会议信息(meeting_id、meeting_note),日程开过视频会议才会有meeting_id |
|
|
38
|
+
| [`+meeting`](references/lark-calendar-meeting.md) | 通过日程事件 ID 获取关联的视频会议信息(meeting_id、meeting_note),日程开过视频会议才会有meeting_id,**注意**: 视频会议链接获取走+get命令 |
|
|
39
39
|
| [`+create`](references/lark-calendar-create.md) | 创建日程并邀请参会人(ISO 8601 时间) |
|
|
40
|
-
| [`+update`](references/lark-calendar-update.md) |
|
|
41
|
-
| `+
|
|
40
|
+
| [`+update`](references/lark-calendar-update.md) | 更新既有日程字段,或独立增量添加/移除参会人和会议室;重复性日程/例外必须传 `--apply-to`(详见 [重复性日程操作规范](references/lark-calendar-recurring.md)) |
|
|
41
|
+
| `+delete` | 删除日程;重复性日程/例外必须传 `--apply-to`(详见 [重复性日程操作规范](references/lark-calendar-recurring.md)) |
|
|
42
|
+
| `+freebusy` | 查询主日历的忙闲/RSVP状态/空闲时间段。(**如需预约/推荐时间段**走 `+suggestion`——它综合工作时间、忙碌区间和休息时间推荐。) |
|
|
42
43
|
| [`+room-find`](references/lark-calendar-room-find.md) | 针对一个或多个**明确的**时间块查找可用会议室(无明确时间时禁止直接调用,需先走 +suggestion) |
|
|
43
44
|
| [`+rsvp`](references/lark-calendar-rsvp.md) | 回复日程(接受/拒绝/待定) |
|
|
44
45
|
| [`+join-event`](references/lark-calendar-join-event.md) | 凭分享 token 加入日程(分享链接/二维码/分享卡片/RSVP 卡片) |
|
|
45
46
|
| [`+suggestion`](references/lark-calendar-suggestion.md) | 根据非明确时间或一段时间范围,推荐多个可用时间块方案 |
|
|
46
47
|
| [`+transfer`](references/lark-calendar-transfer.md) | 把日程组织者转让给另一个用户或机器人;不可逆,需 `--yes` |
|
|
48
|
+
| [`+list-attendees`](references/lark-calendar-list-attendees.md) | 列出日程的参与人和会议室(支持按 `--type` 过滤:user / resource / chat / third_party) |
|
|
47
49
|
|
|
48
50
|
### `+get` — 单日程详情
|
|
49
51
|
|
|
@@ -56,6 +58,8 @@ lark-cli calendar +get --calendar-id <calendar_id> --event-id <event_id>
|
|
|
56
58
|
|
|
57
59
|
日程描述统一使用 `description` 一个字段,按 **Markdown** 富文本处理。读取日程时 `description` 返回 Markdown 富文本(仅有纯文本描述时返回该纯文本);创建/更新日程时也通过 `--description` 传入 Markdown。
|
|
58
60
|
|
|
61
|
+
> `+get` 返回不含参会人和会议室。需要参与人视角(用户 / 会议室 / 群 / 三方邮箱)请调用 [`+list-attendees`](references/lark-calendar-list-attendees.md)。
|
|
62
|
+
|
|
59
63
|
### `+search-event` — 按关键词、时间范围和参会人搜索日程
|
|
60
64
|
|
|
61
65
|
仅返回基础字段(`event_id`/`summary`/`start`/`end` 等),需要详情请走 `+get`。
|
|
@@ -69,6 +73,13 @@ lark-cli calendar +get --calendar-id <calendar_id> --event-id <event_id>
|
|
|
69
73
|
lark-cli calendar +search-event --query "周会" --start 2026-04-20 --end 2026-04-27 --attendee-ids "ou_user1,oc_chat1,omm_room1" --page-token <page_token> --page-size 30
|
|
70
74
|
```
|
|
71
75
|
|
|
76
|
+
### `+delete` — 删除日程
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# calendar_id不传,默认primary
|
|
80
|
+
lark-cli calendar +delete --calendar-id <calendar_id> --event-id <event_id> --notify true
|
|
81
|
+
```
|
|
82
|
+
|
|
72
83
|
### `+agenda` — 查看近期日程安排
|
|
73
84
|
|
|
74
85
|
默认查询当天。结果应整理为按日期分组、按开始时间升序的易读时间线。
|
|
@@ -83,20 +94,36 @@ lark-cli calendar +agenda --start 2026-03-10 --end 2026-03-17 --calendar-id <cal
|
|
|
83
94
|
- 已取消的日程自动过滤;无日程时直接告知"日程清空"。
|
|
84
95
|
- 时间范围超过 40 天会自动拆分查询并合并结果。
|
|
85
96
|
|
|
86
|
-
### `+freebusy` —
|
|
97
|
+
### `+freebusy` — 查询主日历忙闲时段 / 事件 / 公共空闲
|
|
87
98
|
|
|
88
|
-
|
|
99
|
+
`+freebusy` 一个入口承担四种视角:几何计算类(`busy` / `free` / `common_free`)走自动合并;事件维度类(`raw_busy`)保留每条上游日程 + `rsvp_status`。
|
|
89
100
|
|
|
90
101
|
```bash
|
|
91
102
|
# start/end 时间范围(ISO 8601 / YYYY-MM-DD / Unix 秒),均可选;默认当天
|
|
92
|
-
# user-id 目标用户 open_id
|
|
93
|
-
|
|
103
|
+
# user-id 目标用户 open_id,可重复或用逗号分隔;默认当前登录用户,bot 身份必须显式传至少一个
|
|
104
|
+
# type 视角四选一(默认 busy):
|
|
105
|
+
# busy 每个 user 合并后的忙碌区间(找空档、看忙碌时段)
|
|
106
|
+
# raw_busy 每个 user 的原始日程块 + rsvp_status(数会议、看每个会的 rsvp)
|
|
107
|
+
# free 每个 user 在时间窗内的空闲区间(可带 --min-duration 过滤)
|
|
108
|
+
# common_free 所有 user 的共同空闲区间(可带 --min-duration 过滤)
|
|
109
|
+
# min-duration 仅对 free / common_free 生效;Go duration 格式,例如 30m、1h、90m
|
|
110
|
+
|
|
111
|
+
# 查询忙碌时间段(去重并合并相邻/重叠段)
|
|
112
|
+
lark-cli calendar +freebusy --start 2026-03-11 --end 2026-03-11 --user-id ou_a,ou_b --type busy
|
|
113
|
+
|
|
114
|
+
# 看别人有几个会、每个会的起止 + rsvp(不合并相邻/重叠段,带rsvp状态)
|
|
115
|
+
lark-cli calendar +freebusy --start 2026-03-11 --end 2026-03-11 --user-id ou_a,ou_b --type raw_busy
|
|
116
|
+
|
|
117
|
+
# 查询用户空闲时间段
|
|
118
|
+
lark-cli calendar +freebusy --start 2026-03-11 --end 2026-03-11 --user-id ou_a,ou_b --type free
|
|
119
|
+
|
|
120
|
+
# 多人公共空闲时间段(推荐替代手工合并)
|
|
121
|
+
lark-cli calendar +freebusy --start 2026-03-11T09:00:00+08:00 --end 2026-03-11T18:00:00+08:00 --user-id ou_a,ou_b --type common_free --min-duration 30m
|
|
94
122
|
```
|
|
95
123
|
|
|
96
124
|
用法提示:
|
|
97
|
-
-
|
|
98
|
-
-
|
|
99
|
-
- 预约/改约场景下,调用规则(参与人过多、含群组、来自 `+suggestion` 等)详见 [schedule-clear-time.md § 查询忙闲](references/lark-calendar-schedule-clear-time.md#2-查询忙闲)。
|
|
125
|
+
- **`+freebusy` 只适用于查询忙碌/空闲时间段这一事实**。如果目标是"给会议**推荐**一个合适的时间段"(单人或多人),必须优先使用 [`+suggestion`](references/lark-calendar-suggestion.md)——它会综合**工作时间段、忙碌时间段、休息时间段**来推荐,`+freebusy` 只回答"哪些区间空着",不判断该区间是否适合排会。
|
|
126
|
+
- **多人公共空闲**:只想拿"哪些区间共同没被占"→ `--type common_free [--min-duration <dur>]`;想拿"推荐的会议时间段"→ 走 `+suggestion`。
|
|
100
127
|
|
|
101
128
|
## 前置条件路由
|
|
102
129
|
|
|
@@ -120,6 +147,9 @@ lark-cli calendar +freebusy --start 2026-03-11 --end 2026-03-12 --user-id ou_xxx
|
|
|
120
147
|
- **时间块 vs 时间范围**:时间块是具体确定的连续时间段(如 `14:00~15:00`),时间范围是泛指(如"今天下午")。`+room-find` 必须基于确定时间块,不能基于模糊范围。
|
|
121
148
|
- **会议室(Room)**:"room"不是"房间",是"会议室"。会议室是日程的一种参与人(resource attendee),不能脱离日程单独预定。
|
|
122
149
|
- **日程会议 ID(Meeting ID)**:日程的历史视频会议 ID,在日程上开过视频会议才会有。
|
|
150
|
+
- **日程分享链接 vs 会议链接**:两者是不同事物,不可混用。
|
|
151
|
+
- 日程分享链接:`https://<domain>/calendar/share?token=<token>`,指向日程本身,用于分享日程详情。
|
|
152
|
+
- 会议链接:`https://<domain>/j/<number>`,指向视频会议入口;同一重复性日程序列的所有实例共用同一个会议链接。
|
|
123
153
|
|
|
124
154
|
## 术语映射
|
|
125
155
|
|
|
@@ -134,11 +164,12 @@ lark-cli calendar +freebusy --start 2026-03-11 --end 2026-03-12 --user-id ou_xxx
|
|
|
134
164
|
| 查询日历/日程或未来时间的会议 | 本 skill |
|
|
135
165
|
| 按关键词搜索日程 | 本 skill(`+search-event`) |
|
|
136
166
|
| 从日程获取关联的视频会议 ID 或用户绑定的会议纪要文档 | 本 skill(`+meeting`) |
|
|
167
|
+
| 查看日程的参会人 / 会议室(含 `--type resource` 只看会议室) | 本 skill([`+list-attendees`](references/lark-calendar-list-attendees.md)) |
|
|
137
168
|
| 把日程分享给某人 / 群 | 本 skill:先 `calendar events share_info` 取**日程分享链接**,再走 [lark-im](../lark-im/SKILL.md) 发送该链接;分享链接不是 applink,不要自己拼接或用 applink 代替 |
|
|
138
169
|
| 从日程进一步拿 AI 智能纪要 / 逐字稿 / 妙记产物 | 先 `+meeting` 取 `meeting_id`,再进入 [`lark-meeting`](../lark-meeting/SKILL.md):[`vc +detail`](../lark-meeting/references/lark-vc-detail.md) → [`note +detail`](../lark-meeting/references/lark-note-detail.md) / [`minutes +detail`](../lark-meeting/references/lark-minutes-detail.md) |
|
|
139
170
|
| 预约/改约日程、调整时间、添加/更换会议室、查会议室 | 先判断新建 vs 编辑,再进入 [schedule-meeting 工作流](references/lark-calendar-schedule-meeting.md) |
|
|
140
171
|
| 仅编辑日程字段(标题/描述)或增删参会人(不涉及时间和会议室) | 先定位 `event_id`,再读 [+update](references/lark-calendar-update.md) 执行变更 |
|
|
141
|
-
| 编辑/删除重复性日程(「改这个重复日程」「删掉后面的」「全部取消」等) | 先读 [重复性日程操作规范](references/lark-calendar-recurring.md)
|
|
172
|
+
| 编辑/删除重复性日程(「改这个重复日程」「删掉后面的」「全部取消」等) | 先读 [重复性日程操作规范](references/lark-calendar-recurring.md);`+update` / `+delete` 均通过 `--apply-to=single|all|this-and-following` 指定范围 |
|
|
142
173
|
| 转让日程组织者(「把这个日程交给 XX」「组织者改成 XX」「这个会转给我」「bot 建完还给我」) | 读 [+transfer](references/lark-calendar-transfer.md);`--as` 用**当前组织者**身份,`--to-user-id` 传接收人,用户和机器人任意互转 |
|
|
143
174
|
|
|
144
175
|
## 任务类型分流
|
|
@@ -170,9 +201,6 @@ lark-cli calendar <resource> <method> [flags]
|
|
|
170
201
|
# 查询用户主日历
|
|
171
202
|
lark-cli calendar calendars primary
|
|
172
203
|
|
|
173
|
-
# 获取日程详情及 app_link
|
|
174
|
-
lark-cli calendar events get --calendar-id <calendar_id> --event-id <event_id>
|
|
175
|
-
|
|
176
204
|
# 获取日程分享链接(分享给他人/群前必须先拿到)
|
|
177
205
|
# 返回形如 {{domain}}/calendar/share?token=<token> 的分享链接,不是 applink;直接把该链接发给对方(对方可凭链接中的 token 走 +join-event 加入)
|
|
178
206
|
lark-cli calendar events share_info --calendar-id <calendar_id> --event-id <event_id>
|
|
@@ -194,8 +222,8 @@ lark-cli calendar events delete --calendar-id <calendar_id> --event-id <event_id
|
|
|
194
222
|
## 常用其他域命令
|
|
195
223
|
|
|
196
224
|
```bash
|
|
197
|
-
#
|
|
198
|
-
lark-cli contact +search-user --
|
|
225
|
+
# 批量搜索多个用户,更多参数详见 lark-contact
|
|
226
|
+
lark-cli contact +search-user --queries "<q1>,<q2>" --as user
|
|
199
227
|
|
|
200
228
|
# 搜索群聊,更多参数详见 lark-im
|
|
201
229
|
lark-cli im +chat-search --query <query> --as user
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# calendar +list-attendees
|
|
2
|
+
|
|
3
|
+
列出单个日程的参与人(用户 / 会议室 / 群 / 三方邮箱)。只读。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 查看指定日历(默认primary)下某日程的全部类型参与人和会议室
|
|
9
|
+
lark-cli calendar +list-attendees --calendar-id <calendar_id> --event-id <event_id>
|
|
10
|
+
|
|
11
|
+
# 只看会议室
|
|
12
|
+
lark-cli calendar +list-attendees --event-id <event_id> --type resource
|
|
13
|
+
|
|
14
|
+
# 同时看用户与会议室
|
|
15
|
+
lark-cli calendar +list-attendees --event-id <event_id> --type user --type resource
|
|
16
|
+
|
|
17
|
+
# 分页续拉(由调用方基于 has_more / page_token 决定是否再调一次)
|
|
18
|
+
lark-cli calendar +list-attendees --event-id <event_id> --page-size 100 --page-token <page_token>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 参数
|
|
22
|
+
|
|
23
|
+
| 参数 | 必填 | 说明 |
|
|
24
|
+
|------|------|------|
|
|
25
|
+
| `--event-id <id>` | **是** | 目标日程 ID |
|
|
26
|
+
| `--calendar-id <id>` | 否 | 日历 ID,省略则使用主日历(`primary`) |
|
|
27
|
+
| `--type <type>` | 否 | 按 attendee 类型过滤;可重复或逗号分隔。枚举:`user` / `resource` / `chat` / `third_party`。留空返回全部类型|
|
|
28
|
+
| `--page-size <n>` | 否 | 上游分页大小;默认 `20`|
|
|
29
|
+
| `--page-token <token>` | 否 | 上游分页游标,来自上一次返回的 `page_token` |
|
|
30
|
+
|
|
31
|
+
## 提示
|
|
32
|
+
|
|
33
|
+
- `type=chat` 的群参与人**不返回 `rsvp_status`**(群本身没有群级 RSVP 状态)。需要群成员的 RSVP 请走原生 OpenAPI。
|
|
@@ -1,91 +1,87 @@
|
|
|
1
1
|
# 重复性日程操作规范
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
重复性日程/例外的编辑和删除必须显式指定操作范围。相关命令:
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- **event_id 结构**:`event_id` 的格式为 `{event_uid}_{originalTime}`。普通日程或重复性日程本体的 `originalTime` 为 `0`;例外的 `originalTime > 0`,代表该例外在原重复性序列中本来的时间位置。因此 `{event_uid}_0` 即为原重复性日程的 `event_id`。
|
|
8
|
-
- **原重复性日程**:携带 `rrule` 的日程本体,`event_id` 形如 `{event_uid}_0`。系列的所有属性(标题、时间、rrule、描述等)都挂在本体上。
|
|
9
|
-
- **例外(Exception)**:对某次实例做过「仅此次」编辑后产生的独立日程,`event_id` 形如 `{event_uid}_{originalTime}`(`originalTime > 0`)。通过 `event_uid` 部分即可关联回原重复性日程。
|
|
10
|
-
- 删除/更新原重复性日程 **不会** 级联处理例外——必须手动逐个处理。
|
|
11
|
-
|
|
12
|
-
## 前置步骤(所有范围通用)
|
|
5
|
+
- `lark-cli calendar +delete` — 删除日程;重复性日程/例外必须传 `--apply-to`。
|
|
6
|
+
- `lark-cli calendar +update` — 更新日程;重复性日程/例外必须传 `--apply-to`。
|
|
13
7
|
|
|
14
|
-
|
|
15
|
-
2. 通过 `events instance_view` 或 `+agenda` 列出实例,识别哪些是例外(`event_id` 中 `originalTime > 0` 的即为例外)。
|
|
16
|
-
3. 确认用户的操作范围。
|
|
8
|
+
> **强制规则:用户未明确操作范围时,必须先向用户确认,禁止 Agent 默认选取任何 `--apply-to`。** 用户表达含糊(如「删掉这个会」「改一下这个日程」)时也必须确认——`--apply-to=single` 只删/改一次,`--apply-to=all` 会影响整个序列及所有例外,代价截然不同。
|
|
17
9
|
|
|
18
|
-
##
|
|
10
|
+
## `--apply-to` 与日程类型的匹配矩阵
|
|
19
11
|
|
|
20
|
-
|
|
21
|
-
|------|------|------|
|
|
22
|
-
| 1 | `lark-cli calendar +update --event-id <原重复日程ID> --start ... --end ...` | 更新原重复性日程的时间 |
|
|
23
|
-
| 2 | `lark-cli calendar events delete --params '{"calendar_id":"<CAL_ID>","event_id":"<例外ID>","need_notification":false}'` (逐个) | 时间变更后例外已无意义,必须删除 |
|
|
12
|
+
先记住四种日程类型:**普通日程(Normal)**、**重复性日程本体(Master)**、**重复性日程实例(Instance)**、**重复性日程例外(Exception)**。四种类型允许的 `--apply-to` 组合如下(❌ = 传入即报错):
|
|
24
13
|
|
|
25
|
-
|
|
14
|
+
| 日程类型 | event_id 形状 | `single` | `all` | `this-and-following` |
|
|
15
|
+
|----------|--------------|:--------:|:-----:|:--------------------:|
|
|
16
|
+
| Normal(普通日程) | `{uid}_0`(无 rrule) | 隐含默认 | ❌ | ❌ |
|
|
17
|
+
| Master(重复性日程本体) | `{uid}_0`(有 rrule) | ❌ | ✅ | ❌ |
|
|
18
|
+
| Instance(重复性日程实例) | `{uid}_{ts>0}`,`is_exception=false` | ✅ | ✅ | ✅ |
|
|
19
|
+
| Exception(重复性日程例外)| `{uid}_{ts>0}`,`is_exception=true` | ✅ | ✅ | ❌(Exception 已占据该时间位,需改传另一个未被独立化的 Instance id 作为分割点) |
|
|
26
20
|
|
|
27
|
-
|
|
21
|
+
三个 `--apply-to` 的含义与影响面:
|
|
28
22
|
|
|
29
|
-
|
|
|
30
|
-
|
|
31
|
-
|
|
|
32
|
-
|
|
|
23
|
+
| 值 | 语义 | 影响面 |
|
|
24
|
+
|----|------|--------|
|
|
25
|
+
| `single` | 只操作当前这一次 | 只改/删传入的这一个 event_id 本身;例外不动其它例外,实例不动整个序列 |
|
|
26
|
+
| `all` | 操作整条重复性序列 | Master 本体 **和** 所有例外都会被处理(时间变更时例外先被删除,其它字段则会同步 PATCH 到每个例外) |
|
|
27
|
+
| `this-and-following` | 从「起始实例」起截断并新建后续序列 | 用 UNTIL 截断 Master、删除起始实例起的所有未来例外、以起始实例的时间为起点 创建 一条新序列继承 Master 的默认字段 |
|
|
33
28
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
## 删除全部
|
|
37
|
-
|
|
38
|
-
| 步骤 | 命令 | 说明 |
|
|
39
|
-
|------|------|------|
|
|
40
|
-
| 1 | `lark-cli calendar events delete --params '{"calendar_id":"<CAL_ID>","event_id":"<原重复日程ID>","need_notification":true}'` | 删除重复性日程本体 |
|
|
41
|
-
| 2 | `lark-cli calendar events delete --params '{"calendar_id":"<CAL_ID>","event_id":"<例外ID>","need_notification":false}'` (逐个) | 删除所有例外日程 |
|
|
29
|
+
## 关键概念
|
|
42
30
|
|
|
43
|
-
>
|
|
31
|
+
- **event_id 结构**:`event_id` 的格式为 `{event_uid}_{originalTime}`。`originalTime = 0` 表示 Master 或 Normal;`originalTime > 0` 表示某一次在原序列中本来的时间戳(Unix 秒)。因此 `{event_uid}_0` 即为重复性日程本体的 `event_id`。
|
|
32
|
+
- **Master(重复性日程本体)**:携带 `rrule` 的日程本体,`event_id` 形如 `{event_uid}_0`。序列的所有默认属性(标题、时间、rrule、描述、参会人等)都挂在本体上。
|
|
33
|
+
- **Normal(普通日程)**:不携带 `rrule`,`event_id` 也是 `{event_uid}_0`,但没有序列概念。只能用 `--apply-to=single`(可省略)。
|
|
34
|
+
- **Instance vs Exception —— 二者最容易混淆,务必区分**:
|
|
35
|
+
- **Instance(实例)**:由 rrule 展开出来的「虚拟」发生点,本身不落库。`event_id` 形如 `{event_uid}_{originalTime}`(`originalTime > 0`),是从 `+agenda` / `+search-event` 返回的可寻址标识。**从未被单独编辑过**——所有属性都从 Master 继承而来。在 API 层可以对 Instance id 发 GET,但对它发写操作时(操作此次),会先把它「实体化」成一条 Exception。
|
|
36
|
+
- **Exception(例外)**:某个 Instance 被显式修改(改时间、改标题、改参会人等)或被显式删除标记后落库产生的**独立日程**。`event_id` 形状与 Instance 完全一样(`{event_uid}_{originalTime}`),肉眼**无法**区分——唯一可靠的判据是 `calendar +get` 返回的 `is_exception=true`(Instance 为 false)。Exception 已经脱离 Master 的字段继承,是一份可独立编辑/删除的实体。
|
|
37
|
+
- **一句话总结**:Instance 是 rrule 展开出来的「占位符」,Exception 是「已经被独立化的实例」。判断当前 event_id 是哪种,先跑 `+get` 看 `is_exception`。
|
|
38
|
+
- 删除/更新 Master **不会** 级联处理例外——命令内部会显式扫描并处理例外。
|
|
44
39
|
|
|
45
|
-
##
|
|
40
|
+
## 前置步骤(所有范围通用)
|
|
46
41
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
1. 通过 `+agenda` 或 `+search-event` 定位到目标日程 / 实例,拿到 `event_id`。
|
|
43
|
+
2. 判断日程类型:
|
|
44
|
+
- `event_id` 后缀 `_0` 且无 `recurrence` → Normal;
|
|
45
|
+
- `event_id` 后缀 `_0` 且有 `recurrence` → Master;
|
|
46
|
+
- `event_id` 后缀 `_{数字>0}` 且 `is_exception=false` → Instance;
|
|
47
|
+
- `event_id` 后缀 `_{数字>0}` 且 `is_exception=true` → Exception。
|
|
48
|
+
- 需要精确判断时跑 `calendar +get` 看 `recurrence` 和 `is_exception` 字段。
|
|
49
|
+
3. **与用户确认 `--apply-to` 范围(未明确一律先问,禁止默认)**。
|
|
52
50
|
|
|
53
|
-
|
|
54
|
-
> 新日程应继承原日程的参会人、会议室等配置(除非用户明确要修改)。
|
|
51
|
+
## 常见命令
|
|
55
52
|
|
|
56
|
-
|
|
53
|
+
### 删除
|
|
57
54
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
| 2 | `lark-cli calendar events delete ...` (逐个) | 删除指定时间之后(含)的例外日程 |
|
|
55
|
+
```bash
|
|
56
|
+
# 删除此次(例外或instance)
|
|
57
|
+
lark-cli calendar +delete --event-id <uid_originalTime> --apply-to single
|
|
62
58
|
|
|
63
|
-
|
|
59
|
+
# 删除全部(主日程 id 或任意 例外/instance id)
|
|
60
|
+
lark-cli calendar +delete --event-id <uid_originalTime> --apply-to all
|
|
64
61
|
|
|
65
|
-
|
|
62
|
+
# 删除此次及后续(必须传具体instance id)
|
|
63
|
+
lark-cli calendar +delete --event-id <uid_originalTime> --apply-to this-and-following
|
|
64
|
+
```
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
- **删除仅此次**:定位到具体实例的 `event_id`,调用 `events delete`。
|
|
66
|
+
### 更新
|
|
69
67
|
|
|
70
|
-
|
|
68
|
+
```bash
|
|
69
|
+
# 编辑此次(单个实例 / 例外)
|
|
70
|
+
lark-cli calendar +update --event-id <uid_originalTime> --apply-to single --summary <summary>
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
| 「改这个重复日程的标题」「全部改」「每次都改」 | 编辑全部 |
|
|
75
|
-
| 「删掉这个重复日程」「取消所有」 | 删除全部 |
|
|
76
|
-
| 「从下周开始改时间」「后面的都改」 | 编辑此次及后续 |
|
|
77
|
-
| 「从下周开始不要了」「后面的都删」 | 删除此次及后续 |
|
|
78
|
-
| 「就改这一次」「只删这一次」 | 仅此次 |
|
|
79
|
-
| 「给明天的日程加个会议室」(且为重复日程) | 范围不明确,**必须询问用户** |
|
|
80
|
-
| 未明确范围 | **必须询问用户** |
|
|
72
|
+
# 编辑全部(主日程 id 或任意 例外/instance id)
|
|
73
|
+
lark-cli calendar +update --event-id <uid_originalTime> --apply-to all --summary <summary>
|
|
81
74
|
|
|
82
|
-
|
|
75
|
+
# 编辑全部:改时间
|
|
76
|
+
lark-cli calendar +update --event-id <uid_originalTime> --apply-to all --start <start> --end <end>
|
|
83
77
|
|
|
84
|
-
|
|
78
|
+
# 编辑此次及后续:截断主日程 + 删未来例外 + 创建新序列
|
|
79
|
+
lark-cli calendar +update --event-id <uid_originalTime> --apply-to this-and-following --summary <summary>
|
|
80
|
+
```
|
|
85
81
|
|
|
86
|
-
##
|
|
82
|
+
## 语义细则
|
|
87
83
|
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
84
|
+
- **`--apply-to=all` 时的字段传播**:只把用户本次显式传的 flag 应用到每个例外和主日程。例外原本自定义过的其他字段(例如自己的描述)保持不变。
|
|
85
|
+
- **`--apply-to=this-and-following` 的字段继承**:新创建的日程从原主日程继承 summary、description、rrule、start/end(用起始实例的时间)、vchat/reminders/location/visibility;用户任何显式传的 flag 优先。
|
|
86
|
+
- **`--start/--end` 变更**:`all` 场景下,例外会被删除(原始占位已无意义),主日程再 PATCH;`this-and-following` 场景下,`--start/--end` 传了会作为新序列的时间,否则用起始实例的时间。
|
|
87
|
+
- **参会人**:`this-and-following` 创建新序列时,若传了 `--add-attendee-ids`,会额外 添加attendees 到新序列;`--remove-attendee-ids` 会从新序列的参与人列表移除。
|
|
@@ -35,7 +35,12 @@ lark-cli calendar +room-find \
|
|
|
35
35
|
### 2. 查询忙闲
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
|
|
38
|
+
# 单人 / 多人查忙:--user-id 可重复或逗号分隔;服务端已合并相邻/重叠忙碌区间
|
|
39
|
+
lark-cli calendar +freebusy --start "<start>" --end "<end>" --user-id "ou_a,ou_b"
|
|
40
|
+
|
|
41
|
+
# 直接求共同空闲(推荐用于「找几个人一起有空」)
|
|
42
|
+
lark-cli calendar +freebusy --start "<start>" --end "<end>" \
|
|
43
|
+
--user-id "ou_a,ou_b,ou_c" --type common_free --min-duration 30m
|
|
39
44
|
```
|
|
40
45
|
|
|
41
46
|
规则:
|
|
@@ -43,6 +48,7 @@ lark-cli calendar +freebusy --start "<start>" --end "<end>"
|
|
|
43
48
|
- 参与人过多(超过 5 人):仅查询**当前用户**及少数核心人员忙闲即可
|
|
44
49
|
- 参与人含**群组**:无需展开群组成员查询忙闲
|
|
45
50
|
- 如果用户是从 `+suggestion` 确认了时间块后进入本分支的,**无需再调用 `+freebusy`**
|
|
51
|
+
- 找多人共同空闲:直接用 `--type common_free [--min-duration <dur>]`,让 CLI 一次算出共同空闲;不要自己再合并求交
|
|
46
52
|
|
|
47
53
|
### 3. 冲突处理
|
|
48
54
|
|
|
@@ -116,6 +116,6 @@ lark-cli docs +script --command init-draft --presentation-decision '<上方完
|
|
|
116
116
|
1. 只有最新 release candidate 完成 Draft Profile Check 和 XML 规则复查后,才读取 [`lark-doc-create.md`](lark-doc-create.md),使用同一个 `draft_path` 创建文档。
|
|
117
117
|
2. 创建结果存在 warning、局部资源失败或回查发现局部问题时,不得再次新建文档;读取 [`lark-doc-update.md`](lark-doc-update.md),对已创建文档做最小范围修复,并按 update 流程 fetch 验证。
|
|
118
118
|
|
|
119
|
-
### Step 8
|
|
119
|
+
### Step 8:交付。
|
|
120
120
|
|
|
121
|
-
|
|
121
|
+
保留 Step 4 返回的 `work_dir` 及其中的创作草稿。最终只交付用户需要的结果,并说明必要来源、未关闭缺口、异常、失败或阻塞原因,以及文档 URL 或 token。
|
|
@@ -38,7 +38,7 @@ lark-cli docs +script --command init-draft \
|
|
|
38
38
|
- 决策必须是单个 JSON 对象,包含 `audience`、`reader_task`、`genre_contract`、`adapter`、`presentation_mode` 和 `visual_plan`。`presentation_mode` 取 `formal|normal|rich`;`genre_contract`、`adapter` 使用固定短名、`"none"` 或 `null`。
|
|
39
39
|
- `visual_plan` 包含非空 `reason` 和 `blocks` 数组;每项为 `{type,min_count,purpose}`,`type` 不重复,`min_count` 为正整数。按本 Skill 创建文档时,`blocks` 只对 `whiteboard`、`img`、`html5-block` 设置最低数量,其他表达按内容需要使用但不设数量约束;三类均无需约束时写 `[]`。CLI 为外部决策兼容 `type: "list"`,检查时将 `<ul>` 与 `<ol>` 的数量相加。仅有字数要求时添加 `word_count: {min,max}`;未指定的一侧写 `null`,至少一侧为正整数,且 `min <= max`。
|
|
40
40
|
- 返回 `data.workspace`(已创建的随机工作区)、`data.draft_path`(可直接写入的 XML 路径)和英文操作提示 `data.tip`。工作区及其中的 `.presentation-decision.json` 已存在,但 XML 尚不存在;遵循提示直接使用文件创建/写入能力在 `draft_path` 写入完整 XML,首次写入前不要读取该路径。
|
|
41
|
-
- 后续始终使用 `draft_path`,不得另建 XML、复用其他任务的路径或修改工作区中的 `.presentation-decision.json
|
|
41
|
+
- 后续始终使用 `draft_path`,不得另建 XML、复用其他任务的路径或修改工作区中的 `.presentation-decision.json`;保留 `workspace` 及其中的创作草稿。
|
|
42
42
|
|
|
43
43
|
## `parse`
|
|
44
44
|
|
|
@@ -154,7 +154,7 @@ lark-cli docs +fetch --doc '<doc_token_or_url>' --detail with-ids
|
|
|
154
154
|
- 如果 `quote` 是 `C3`、`A1` 这类单元格坐标,可拆出 `spreadsheet_token` / `sheet_id` 后用 `lark-sheets` 读取该单元格确认:
|
|
155
155
|
|
|
156
156
|
```bash
|
|
157
|
-
lark-cli sheets +
|
|
157
|
+
lark-cli sheets +cells-get \
|
|
158
158
|
--spreadsheet-token '<spreadsheet_token>' \
|
|
159
159
|
--sheet-id '<sheet_id>' \
|
|
160
160
|
--range '<cell>'
|
package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.md
CHANGED
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
| 资源类型 | 验证方式 |
|
|
146
146
|
|---------------|---------------------|
|
|
147
147
|
| `docx` / `doc` | 允许时使用 `docs +fetch --api-version v2`。 |
|
|
148
|
-
| `sheet` | 使用 `sheets +
|
|
148
|
+
| `sheet` | 使用 `sheets +cells-search` 查关键词证据,或用 `sheets +cells-get` 读取有界范围。 |
|
|
149
149
|
| `bitable` | 只有必要且已加载 Base 能力时验证。 |
|
|
150
150
|
| `slides` | 除非具备幻灯片读取能力,否则使用元数据 / 预览 / 标题证据。 |
|
|
151
151
|
| `file` | 仅在支持时使用标题、元数据、预览或导出文本。 |
|
|
@@ -179,7 +179,7 @@ Risk / Structure: `R2-R3` / `S3`
|
|
|
179
179
|
| `RESOLVE_TARGET` | `drive +inspect`、`wiki +node-get`、`wiki +space-list`、仅用于查找文件夹候选的 `drive +search` | 解析目标位置 |
|
|
180
180
|
| `SEARCH_RECALL` / `RECALL_ENHANCE` | `drive +search` | 搜索召回和覆盖增强 |
|
|
181
181
|
| `RESOURCE_RESOLVE` | `drive +inspect`、`wiki +node-get`、`drive metas batch_query`、必要时 `drive permission.members auth` | 解析标准 token、owner、权限信号和移动资格 |
|
|
182
|
-
| `CONTENT_VERIFY` | `docs +fetch`、`sheets +
|
|
182
|
+
| `CONTENT_VERIFY` | `docs +fetch`、`sheets +cells-get`、`sheets +cells-search`、必要时 `drive +preview` | 验证内容证据 |
|
|
183
183
|
| `EXECUTE` | `drive +create-folder`、`wiki +node-create`、`drive +move`、`wiki +move`、`wiki +move-to-drive`、`drive +task_result` | 执行已确认写操作 |
|
|
184
184
|
| `VERIFY` | `drive files list`、`wiki +node-list`、`wiki +node-get`、`drive +inspect`、`drive +task_result` | 验证执行结果 |
|
|
185
185
|
| `RESTORE` | `drive +move`、`wiki +move`、`drive +delete`、`wiki +node-delete`、`drive +task_result` | 恢复已确认资源并清理本次新建目标 |
|