@amaster.ai/pi-lark 0.1.2-beta.42 → 0.1.2-beta.43
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 +3 -3
- package/skills/lark-apps/SKILL.md +16 -10
- package/skills/lark-apps/references/lark-apps-access-scope-set.md +1 -1
- package/skills/lark-apps/references/lark-apps-db-execute.md +185 -1
- package/skills/lark-apps/references/lark-apps-db.md +1 -1
- package/skills/lark-apps/references/lark-apps-role.md +133 -0
- package/skills/lark-base/SKILL.md +1 -1
- package/skills/lark-base/references/dashboard-block-data-config.md +28 -2
- package/skills/lark-base/references/lark-base-cell-value.md +9 -4
- package/skills/lark-base/references/lark-base-dashboard.md +11 -2
- package/skills/lark-base/references/lark-base-data-query.md +9 -7
- package/skills/lark-base/references/lark-base-field-create.md +4 -2
- package/skills/lark-base/references/lark-base-field-json.md +52 -15
- package/skills/lark-base/references/lark-base-field-update.md +4 -2
- package/skills/lark-drive/SKILL.md +4 -2
- package/skills/lark-drive/references/lark-drive-delete.md +23 -11
- package/skills/lark-drive/references/lark-drive-move.md +5 -3
- package/skills/lark-drive/references/lark-drive-task-result.md +58 -5
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +7 -2
- package/skills/lark-slides/references/xml-format-guide.md +20 -0
- package/skills/lark-wiki/SKILL.md +4 -2
- package/skills/lark-wiki/references/lark-wiki-move-to-drive.md +122 -0
- package/skills/lark-wiki/references/lark-wiki-move.md +5 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lark-wiki
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.3
|
|
4
4
|
description: "飞书知识库:管理知识空间、空间成员和文档节点。创建和查询知识空间、查看和管理空间成员、管理节点层级结构、在知识库中组织文档和快捷方式。当用户需要在知识库中查找或创建文档、浏览知识空间结构、查看或管理空间成员、移动或复制节点时使用。当用户给出 doubao.com 的 /wiki/ URL/token 时,也应直接使用本 skill,不要因为域名不是飞书而回退到 WebFetch;路由依据是 URL 路径模式和 token,而不是域名。不负责:上传文件到知识库节点下(走 lark-drive)、编辑文档/表格/Base 内容(走 lark-doc / lark-sheets / lark-base)。"
|
|
5
5
|
metadata:
|
|
6
6
|
requires:
|
|
@@ -25,6 +25,7 @@ metadata:
|
|
|
25
25
|
## 快速决策
|
|
26
26
|
|
|
27
27
|
- 用户要**整理 / 盘点 / 归类 / 重构知识库、个人文档库、文档库目录或 Wiki 节点结构**,或要生成整理方案、目标目录树、移动计划时,不要只使用 Wiki 节点 API。必须先阅读 [`../lark-drive/references/lark-drive-workflow.md`](../lark-drive/references/lark-drive-workflow.md),再按其中 `Workflow Registry` 进入 [`knowledge_organize`](../lark-drive/references/lark-drive-workflow-knowledge-organize.md) workflow;该 workflow 负责 Drive / Wiki / 个人文档库的统一入口解析、资源盘点、分类计划、写前确认和结果验证。
|
|
28
|
+
- 用户要把**已有 Wiki 节点移出知识库,放到 Drive 文件夹或“我的空间”根目录**:使用 `wiki +move-to-drive`,不要使用 `wiki +move` 或 `drive +move`。这是会改变节点归属和权限继承的写操作,执行前确认源节点与目标位置。
|
|
28
29
|
- 用户给的是知识库 URL(`.../wiki/<token>`),且后续要查成员/加成员/删成员:先调用 `lark-cli wiki spaces get_node --params '{"token":"<wiki_token>"}'` 获取 `space_id`,后续成员接口统一使用 `space_id`。
|
|
29
30
|
- 用户要**删除**知识空间(`wiki +delete-space`)但只给了名称或 URL:**不能**把名称 / URL 原样传给 `--space-id`,必须先解析出真实 `space_id`。解析方式:
|
|
30
31
|
- URL(`.../wiki/<token>`):`lark-cli wiki spaces get_node --params '{"token":"<wiki_token>"}' --format json`,读 `data.node.space_id`。
|
|
@@ -49,6 +50,7 @@ Shortcut 是对常用操作的高级封装(`lark-cli wiki +<verb> [flags]`)
|
|
|
49
50
|
| Shortcut | 说明 |
|
|
50
51
|
|----------|------|
|
|
51
52
|
| [`+move`](references/lark-wiki-move.md) | Move a wiki node, or move a Drive document into Wiki |
|
|
53
|
+
| [`+move-to-drive`](references/lark-wiki-move-to-drive.md) | Move a wiki node to a Drive folder and poll the async task |
|
|
52
54
|
| [`+node-create`](references/lark-wiki-node-create.md) | Create a wiki node with automatic space resolution |
|
|
53
55
|
| [`+delete-space`](references/lark-wiki-delete-space.md) | Delete a wiki space, polling the async delete task when needed |
|
|
54
56
|
| [`+space-list`](references/lark-wiki-space-list.md) | List all wiki spaces accessible to the caller |
|
|
@@ -76,7 +78,7 @@ Shortcut 是对常用操作的高级封装(`lark-cli wiki +<verb> [flags]`)
|
|
|
76
78
|
- `我的文档库` / `My Document Library` / `我的知识库` / `个人知识库` / `my_library` 都应视为 **Wiki personal library**,不是 Drive 根目录
|
|
77
79
|
- 处理这类目标时,先解析 `my_library` 对应的真实 `space_id`,再执行 `wiki +move`、`wiki +node-create` 或其他 Wiki 写操作
|
|
78
80
|
- 不要因为缺少显式 `space_id` 就退化成 `drive +move`
|
|
79
|
-
- 如果用户明确说的是 Drive
|
|
81
|
+
- 如果用户明确说的是 Drive 文件夹、云空间(云盘/云存储)根目录、`我的空间`,再按源对象分流:源对象是 Wiki 节点时用 `wiki +move-to-drive`,源对象已在 Drive 时用 `drive +move`
|
|
80
82
|
|
|
81
83
|
## API Resources
|
|
82
84
|
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# wiki +move-to-drive
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
|
+
|
|
5
|
+
将已有 Wiki 节点移出知识库,并放到指定 Drive 文件夹;省略目标文件夹时放到当前调用身份的“我的空间”根目录。该操作始终创建异步任务,shortcut 会自动有限轮询。
|
|
6
|
+
|
|
7
|
+
## 何时使用
|
|
8
|
+
|
|
9
|
+
| 源对象 | 目标位置 | 命令 |
|
|
10
|
+
|--------|----------|------|
|
|
11
|
+
| Wiki 节点 | Wiki 空间或 Wiki 父节点 | `wiki +move` |
|
|
12
|
+
| Drive 文档 | Wiki 空间或 Wiki 父节点 | `wiki +move` |
|
|
13
|
+
| Wiki 节点 | Drive 文件夹或“我的空间”根目录 | `wiki +move-to-drive` |
|
|
14
|
+
| Drive 文件 / 文件夹 | Drive 文件夹或根目录 | `drive +move` |
|
|
15
|
+
|
|
16
|
+
`--node-token` 必须是 Wiki 节点 token,不是底层文档的 `obj_token`。无法判断时,先执行 `wiki +node-get --node-token <URL_OR_TOKEN>`。
|
|
17
|
+
|
|
18
|
+
## 命令
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# 移到指定 Drive 文件夹
|
|
22
|
+
lark-cli wiki +move-to-drive \
|
|
23
|
+
--node-token <WIKI_NODE_TOKEN> \
|
|
24
|
+
--folder-token <TARGET_FOLDER_TOKEN> \
|
|
25
|
+
--as user
|
|
26
|
+
|
|
27
|
+
# 移到当前调用身份的“我的空间”根目录
|
|
28
|
+
lark-cli wiki +move-to-drive \
|
|
29
|
+
--node-token <WIKI_NODE_TOKEN> \
|
|
30
|
+
--as user
|
|
31
|
+
|
|
32
|
+
# 预览提交任务和轮询任务两步请求
|
|
33
|
+
lark-cli wiki +move-to-drive \
|
|
34
|
+
--node-token <WIKI_NODE_TOKEN> \
|
|
35
|
+
--folder-token <TARGET_FOLDER_TOKEN> \
|
|
36
|
+
--dry-run
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 参数
|
|
40
|
+
|
|
41
|
+
| 参数 | 必填 | 说明 |
|
|
42
|
+
|------|------|------|
|
|
43
|
+
| `--node-token` | 是 | 要移出知识库的 Wiki 节点 token |
|
|
44
|
+
| `--folder-token` | 否 | 目标 Drive 文件夹 token;省略时移动到当前调用身份的“我的空间”根目录 |
|
|
45
|
+
|
|
46
|
+
## 异步协议与续跑
|
|
47
|
+
|
|
48
|
+
shortcut 会按以下协议执行:
|
|
49
|
+
|
|
50
|
+
1. `POST /open-apis/wiki/v2/nodes/{node_token}/move_wiki_to_docs`,取得完整、不可拆分的 `task_id`。
|
|
51
|
+
2. `GET /open-apis/wiki/v2/tasks/{task_id}?task_type=move_wiki_to_docs`。
|
|
52
|
+
3. 读取 `data.task.move_wiki_to_docs_result`:`status=1` 表示处理中,`status=0` 表示成功,`status=-1` 表示失败。
|
|
53
|
+
|
|
54
|
+
任务查询必须使用 `task_type=move_wiki_to_docs`、`move_wiki_to_docs_result` 和数值状态;不要回退到其他 task type、result 字段或字符串状态。
|
|
55
|
+
|
|
56
|
+
- 最多轮询 30 次,每次间隔 2 秒。
|
|
57
|
+
- 轮询窗口内成功时返回 `ready=true`,并尽可能返回 `obj_token`、`obj_type` 和 `url`。
|
|
58
|
+
- 仍在处理中时返回 `ready=false`、`timed_out=true`、完整 `task_id` 和 `next_command`;超时不代表任务失败。
|
|
59
|
+
- 任务进入失败态时返回结构化错误。
|
|
60
|
+
- `task_id` 是服务端签名的 opaque ID,可能包含多个连字符;必须原样保存,不能自行切分。
|
|
61
|
+
- 续跑必须保持和初始移动相同的 `--profile` 与 `--as user|bot` 身份,否则可能收到权限错误;shortcut 返回的 `next_command` 会保留两者。
|
|
62
|
+
|
|
63
|
+
手动续跑命令:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
lark-cli drive +task_result \
|
|
67
|
+
--scenario wiki_move_to_drive \
|
|
68
|
+
--task-id <COMPLETE_TASK_ID> \
|
|
69
|
+
--as user
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## 典型返回
|
|
73
|
+
|
|
74
|
+
成功:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"node_token": "wikcnXXX",
|
|
79
|
+
"folder_token": "fldcnXXX",
|
|
80
|
+
"task_id": "<OPAQUE_TASK_ID>",
|
|
81
|
+
"ready": true,
|
|
82
|
+
"failed": false,
|
|
83
|
+
"status": 0,
|
|
84
|
+
"status_msg": "success",
|
|
85
|
+
"obj_token": "doxcnXXX",
|
|
86
|
+
"obj_type": "docx",
|
|
87
|
+
"url": "https://example.feishu.cn/docx/doxcnXXX"
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
轮询窗口超时:
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"node_token": "wikcnXXX",
|
|
96
|
+
"folder_token": "",
|
|
97
|
+
"task_id": "<OPAQUE_TASK_ID>",
|
|
98
|
+
"ready": false,
|
|
99
|
+
"failed": false,
|
|
100
|
+
"status": 1,
|
|
101
|
+
"status_msg": "processing",
|
|
102
|
+
"timed_out": true,
|
|
103
|
+
"next_command": "lark-cli drive +task_result --scenario wiki_move_to_drive --task-id <OPAQUE_TASK_ID> --as user"
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## 权限与影响
|
|
108
|
+
|
|
109
|
+
- CLI 写操作预检查使用 `space:document:move`,任务轮询使用 `wiki:space:read`。
|
|
110
|
+
- 调用方必须能移动源 Wiki 节点并写入目标 Drive 文件夹。
|
|
111
|
+
- 成功后源节点会从 Wiki 树中消失,目标文档改用 Drive 目标位置的权限模型;原 Wiki 层级继承权限不再保留。
|
|
112
|
+
- 省略 `--folder-token` 时,“根目录”属于当前 `--as` 身份,user 与 bot 的可见资源范围可能不同。
|
|
113
|
+
|
|
114
|
+
> [!CAUTION]
|
|
115
|
+
> 这是会改变文档归属和权限继承的**写入操作**。执行前必须确认源 Wiki 节点、目标 Drive 位置和调用身份。
|
|
116
|
+
|
|
117
|
+
## 参考
|
|
118
|
+
|
|
119
|
+
- [lark-wiki](../SKILL.md) -- 知识库全部命令
|
|
120
|
+
- [wiki +move](lark-wiki-move.md) -- Wiki 内移动与 Drive 文档迁入 Wiki
|
|
121
|
+
- [drive +task_result](../../lark-drive/references/lark-drive-task-result.md) -- 超时后的任务续跑
|
|
122
|
+
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|
|
@@ -9,18 +9,19 @@
|
|
|
9
9
|
|
|
10
10
|
当 `docs_to_wiki` 返回 `task_id` 时,shortcut 会先轮询一小段时间;如果轮询窗口内仍未完成,会返回 `next_command`,让调用方继续执行 `lark-cli drive +task_result --scenario wiki_move --task-id <TASK_ID>`。
|
|
11
11
|
|
|
12
|
-
## 与 `drive +move` 的区别
|
|
12
|
+
## 与 `wiki +move-to-drive` / `drive +move` 的区别
|
|
13
13
|
|
|
14
14
|
- `wiki +move` 的目标是 **知识空间或 Wiki 父节点**,使用 `--target-space-id` / `--target-parent-token`
|
|
15
|
+
- `wiki +move-to-drive` 把 **已有 Wiki 节点移出知识库,放入 Drive 文件夹或“我的空间”根目录**,使用 `--folder-token`
|
|
15
16
|
- `drive +move` 的目标是 **Drive 文件夹**,使用 `--folder-token`
|
|
16
|
-
- 如果源对象已经是 Wiki
|
|
17
|
+
- 如果源对象已经是 Wiki 节点:目标仍是 Wiki 时使用 `wiki +move`;目标是 Drive 文件夹或根目录时使用 `wiki +move-to-drive`
|
|
17
18
|
- 如果源对象还是 Drive 文档,但用户要“迁入知识库”“挂到某个 Wiki 页面下”,也应使用 `wiki +move`
|
|
18
19
|
- 如果用户只是想整理云空间(云盘/云存储)文件夹,把文件/文件夹挪到另一个 Drive 文件夹,应使用 `drive +move`
|
|
19
20
|
|
|
20
21
|
## 口语目标识别
|
|
21
22
|
|
|
22
23
|
- 当用户说“移动到某个知识库”“挂到某个页面下”“迁入 Wiki”时,按 **Wiki 目标** 处理,优先使用 `wiki +move`
|
|
23
|
-
- 当用户说“移动到某个文件夹”“移动到云空间(云盘/云存储)根目录”时,按 **Drive 文件夹目标**
|
|
24
|
+
- 当用户说“移动到某个文件夹”“移动到云空间(云盘/云存储)根目录”时,按 **Drive 文件夹目标** 处理;源对象是 Wiki 节点时使用 `wiki +move-to-drive`,源对象已在 Drive 时使用 `drive +move`
|
|
24
25
|
- 当用户说“移动到我的文档库”“移动到我的知识库”“放到个人知识库”时,应先按 **Wiki 个人知识库目标** 理解,而不是直接退化成 `drive +move`
|
|
25
26
|
- 遇到“我的文档库”这类表述时,可以把它理解成:先用 `my_library` 去查询用户个人知识库,再拿到真实 `space_id`
|
|
26
27
|
- 推荐做法是先执行 `lark-cli wiki spaces get --params '{"space_id":"my_library"}'`,取回真实知识库 `space_id`,再把这个 `space_id` 用到 `wiki +move`
|
|
@@ -180,4 +181,5 @@ CLI 会在执行前做本地 scope 预检查;当前 shortcut 声明的权限
|
|
|
180
181
|
|
|
181
182
|
- [lark-wiki](../SKILL.md) -- 知识库全部命令
|
|
182
183
|
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|
|
184
|
+
- [wiki +move-to-drive](lark-wiki-move-to-drive.md) -- 将 Wiki 节点移出知识库并放入 Drive
|
|
183
185
|
- [drive +task_result](../../lark-drive/references/lark-drive-task-result.md) -- docs-to-wiki 异步任务的续跑查询命令
|