@openclaw/feishu 2026.7.2-beta.7 → 2026.8.1-beta.2
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/dist/accounts-CCCdMen2.js +203 -0
- package/dist/api.js +52 -51
- package/dist/{channel-CScE82zY.js → channel-Dzb5jv3i.js} +53 -30
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.runtime-B21e1E0r.js → channel.runtime-CoPaHQQ6.js} +181 -142
- package/dist/{client-Dcbs6vml.js → client-Hp7uo_cl.js} +27 -16
- package/dist/contract-api.js +2 -2
- package/dist/{conversation-id-BeJL-wq7.js → conversation-id-VYgGQ-GX.js} +11 -15
- package/dist/doctor-contract-api.js +1 -1
- package/dist/doctor-contract-bEQXIXyP.js +158 -0
- package/dist/{drive-hSi_Utp0.js → drive-B0JkoiRj.js} +318 -41
- package/dist/{media-CEUraFOR.js → media-BjSy8fiy.js} +298 -182
- package/dist/{monitor-DngbaA6a.js → monitor-CeHCfROt.js} +3 -3
- package/dist/{monitor.account-BnTWCw55.js → monitor.account-DwdqexLU.js} +237 -158
- package/dist/{monitor.startup-CqH2tiJq.js → monitor.startup-BGErejNH.js} +1 -1
- package/dist/{probe-p3POS2RN.js → probe-DVpy58s0.js} +2 -2
- package/dist/security-audit-D6Fz2h6p.js +23 -0
- package/dist/{send-result-B9_BpUPx.js → send-result-DEAycmOk.js} +18 -9
- package/dist/session-binding-contract-api.js +1 -1
- package/dist/{session-conversation-BksWrfzm.js → session-conversation-DFCIvQK-.js} +1 -1
- package/dist/session-key-api.js +1 -1
- package/dist/setup-api.js +1 -1
- package/dist/{subagent-hooks-Cx1cX7rW.js → subagent-hooks-B867acTt.js} +2 -2
- package/dist/subagent-hooks-api.js +1 -1
- package/dist/{thread-bindings-N3wkgkIN.js → thread-bindings-Itvfmx6_.js} +6 -3
- package/openclaw.plugin.json +143 -1
- package/package.json +4 -4
- package/skills/feishu-doc/SKILL.md +20 -195
- package/skills/feishu-doc/references/block-types.md +9 -14
- package/skills/feishu-drive/SKILL.md +16 -102
- package/skills/feishu-perm/SKILL.md +10 -110
- package/skills/feishu-wiki/SKILL.md +13 -109
- package/dist/accounts-u9X5Wsan.js +0 -469
- package/dist/doctor-contract-BiD9tyIv.js +0 -102
- package/dist/security-audit-D7WK_BHh.js +0 -11
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Feishu Block Types Reference
|
|
2
2
|
|
|
3
|
-
Complete reference for Feishu document block types. Use with `
|
|
3
|
+
Complete reference for Feishu document block types. Use the single `feishu_doc` tool with its `list_blocks`, `update_block`, and `delete_block` actions.
|
|
4
4
|
|
|
5
5
|
## Block Type Table
|
|
6
6
|
|
|
@@ -59,10 +59,11 @@ Complete reference for Feishu document block types. Use with `feishu_doc_list_bl
|
|
|
59
59
|
|
|
60
60
|
### Text-based blocks (2-17, 19)
|
|
61
61
|
|
|
62
|
-
Update text content
|
|
62
|
+
Update text content with `feishu_doc`:
|
|
63
63
|
|
|
64
64
|
```json
|
|
65
65
|
{
|
|
66
|
+
"action": "update_block",
|
|
66
67
|
"doc_token": "ABC123",
|
|
67
68
|
"block_id": "block_xxx",
|
|
68
69
|
"content": "New text content"
|
|
@@ -71,13 +72,11 @@ Update text content using `feishu_doc_update_block`:
|
|
|
71
72
|
|
|
72
73
|
### Image blocks (27)
|
|
73
74
|
|
|
74
|
-
Images cannot be updated directly via `update_block`. Use `
|
|
75
|
+
Images cannot be updated directly via `update_block`. Use `upload_image` to add a replacement image, then delete the old block only after the new upload succeeds.
|
|
75
76
|
|
|
76
77
|
### Table blocks (31)
|
|
77
78
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
Tables can only be read (via `list_blocks`) and individual cells (type 32) can be updated, but new tables cannot be inserted programmatically via markdown.
|
|
79
|
+
Markdown tables are not converted by `write`, `append`, or `insert`. Create tables with `create_table` or `create_table_with_values`; use the table row, column, cell, and merge actions exposed by the current schema for later edits.
|
|
81
80
|
|
|
82
81
|
### Container blocks (24, 25, 35)
|
|
83
82
|
|
|
@@ -87,17 +86,13 @@ Grid and QuoteContainer are layout containers. Edit their child blocks instead.
|
|
|
87
86
|
|
|
88
87
|
### Replace specific paragraph
|
|
89
88
|
|
|
90
|
-
1. `
|
|
91
|
-
2. `
|
|
89
|
+
1. Call `feishu_doc` with `action: "list_blocks"` to find the block ID.
|
|
90
|
+
2. Call `feishu_doc` with `action: "update_block"` to replace its text.
|
|
92
91
|
|
|
93
92
|
### Insert content at specific location
|
|
94
93
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
1. Read existing content
|
|
98
|
-
2. Delete affected blocks
|
|
99
|
-
3. Rewrite with new content in desired order
|
|
94
|
+
Call `feishu_doc` with `action: "insert"`, the target `doc_token`, Markdown `content`, and the preceding block's ID as `after_block_id`.
|
|
100
95
|
|
|
101
96
|
### Delete multiple blocks
|
|
102
97
|
|
|
103
|
-
|
|
98
|
+
Call `delete_block` for exact block IDs. Delete child blocks before parent containers and confirm broad deletions first.
|
|
@@ -1,114 +1,28 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: feishu-drive
|
|
3
3
|
description: |
|
|
4
|
-
Feishu cloud
|
|
4
|
+
Feishu cloud-storage and comment workflows. Activate when the user mentions cloud space, folders, Drive files, or document comments.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# Feishu Drive
|
|
7
|
+
# Feishu Drive
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Use the single `feishu_drive` tool and its current action schema.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
From `https://example.feishu.cn/drive/folder/ABC123`, use `ABC123` as `folder_token`.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
## Files and folders
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
- Start from a folder shared with the bot. Bot credentials normally have no usable personal root folder.
|
|
16
|
+
- For paginated folder listings, keep the same `folder_token` and pass the returned `page_token` until no continuation token remains.
|
|
17
|
+
- Use `info` with the exact file token and type returned by Drive or wiki discovery.
|
|
18
|
+
- Resolve the exact source and destination before moving or deleting. Confirm destructive deletes when the user's intent or target is unclear.
|
|
19
|
+
- Create subfolders inside a shared folder; creating at the account root normally fails for bots.
|
|
16
20
|
|
|
17
|
-
|
|
21
|
+
## Comments
|
|
18
22
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
- Use `list_comments`, then `list_comment_replies` with the exact `comment_id` to inspect a discussion.
|
|
24
|
+
- Use `add_comment` for a document-level comment. Include `block_id` only when the user wants a comment on one known Docx block.
|
|
25
|
+
- Use `reply_comment` for an existing comment thread.
|
|
26
|
+
- Preserve the file type and pagination fields returned by the tool. The schema is authoritative for which file types each comment action accepts.
|
|
22
27
|
|
|
23
|
-
|
|
24
|
-
use a folder that has been shared with the bot instead.
|
|
25
|
-
|
|
26
|
-
```json
|
|
27
|
-
{ "action": "list", "folder_token": "fldcnXXX", "page_size": 100 }
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Returns one page of files with token, name, type, url, timestamps, and `next_page_token` when
|
|
31
|
-
another page is available. To continue, pass the returned token with the same folder token:
|
|
32
|
-
|
|
33
|
-
```json
|
|
34
|
-
{
|
|
35
|
-
"action": "list",
|
|
36
|
-
"folder_token": "fldcnXXX",
|
|
37
|
-
"page_size": 100,
|
|
38
|
-
"page_token": "next-page-token"
|
|
39
|
-
}
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
`page_size` must be between 1 and 200. Pagination requires a concrete shared `folder_token`;
|
|
43
|
-
root-list cursors are not forwarded.
|
|
44
|
-
|
|
45
|
-
### Get File Info
|
|
46
|
-
|
|
47
|
-
```json
|
|
48
|
-
{ "action": "info", "file_token": "ABC123", "type": "docx" }
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Looks up file metadata directly by token and type, regardless of which shared folder contains it.
|
|
52
|
-
Shortcuts are the exception: Feishu's metadata API does not support the `shortcut` type, so shortcut
|
|
53
|
-
info retains the root-directory lookup behavior.
|
|
54
|
-
|
|
55
|
-
`type`: `doc`, `docx`, `sheet`, `bitable`, `folder`, `file`, `mindnote`, `shortcut`
|
|
56
|
-
|
|
57
|
-
### Create Folder
|
|
58
|
-
|
|
59
|
-
```json
|
|
60
|
-
{ "action": "create_folder", "name": "New Folder" }
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
In parent folder:
|
|
64
|
-
|
|
65
|
-
```json
|
|
66
|
-
{ "action": "create_folder", "name": "New Folder", "folder_token": "fldcnXXX" }
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Move File
|
|
70
|
-
|
|
71
|
-
```json
|
|
72
|
-
{ "action": "move", "file_token": "ABC123", "type": "docx", "folder_token": "fldcnXXX" }
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### Delete File
|
|
76
|
-
|
|
77
|
-
```json
|
|
78
|
-
{ "action": "delete", "file_token": "ABC123", "type": "docx" }
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## File Types
|
|
82
|
-
|
|
83
|
-
| Type | Description |
|
|
84
|
-
| ---------- | ----------------------- |
|
|
85
|
-
| `doc` | Old format document |
|
|
86
|
-
| `docx` | New format document |
|
|
87
|
-
| `sheet` | Spreadsheet |
|
|
88
|
-
| `bitable` | Multi-dimensional table |
|
|
89
|
-
| `folder` | Folder |
|
|
90
|
-
| `file` | Uploaded file |
|
|
91
|
-
| `mindnote` | Mind map |
|
|
92
|
-
| `shortcut` | Shortcut |
|
|
93
|
-
|
|
94
|
-
## Configuration
|
|
95
|
-
|
|
96
|
-
```yaml
|
|
97
|
-
channels:
|
|
98
|
-
feishu:
|
|
99
|
-
tools:
|
|
100
|
-
drive: true # default: true
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
## Permissions
|
|
104
|
-
|
|
105
|
-
- `drive:drive` - Full access (create, move, delete)
|
|
106
|
-
- `drive:drive:readonly` - Read only (list and root-level info fallback)
|
|
107
|
-
- `drive:drive.metadata:readonly` - Direct `info` lookup outside the root (not needed with `drive:drive`)
|
|
108
|
-
|
|
109
|
-
## Known Limitations
|
|
110
|
-
|
|
111
|
-
- **Bots have no root folder**: Feishu bots use `tenant_access_token` and don't have their own "My Space". The root folder concept only exists for user accounts. This means:
|
|
112
|
-
- `create_folder` without `folder_token` will fail (400 error)
|
|
113
|
-
- Bot can only access files/folders that have been **shared with it**
|
|
114
|
-
- **Workaround**: User must first create a folder manually and share it with the bot, then bot can create subfolders inside it
|
|
28
|
+
Only expose or forward file and comment contents needed for the user's request; shared Drive data may be private.
|
|
@@ -1,119 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: feishu-perm
|
|
3
3
|
description: |
|
|
4
|
-
Feishu
|
|
4
|
+
Feishu collaborator and permission workflows. Activate when the user explicitly asks to inspect or change sharing, permissions, or collaborators.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# Feishu
|
|
7
|
+
# Feishu permissions
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Use the single `feishu_perm` tool and its current action schema. This tool is disabled by default because it changes access to user data; if it is unavailable, explain that `channels.feishu.tools.perm` must be enabled.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Workflow
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
1. Resolve the exact file token and type.
|
|
14
|
+
2. Use `list` to inspect current collaborators before changing access.
|
|
15
|
+
3. For `add`, resolve the collaborator's exact identifier and choose the least permission that satisfies the request.
|
|
16
|
+
4. For `remove`, confirm the exact collaborator and file when the request is ambiguous or broad.
|
|
17
|
+
5. Report the resulting permission change without exposing unrelated collaborator data.
|
|
14
18
|
|
|
15
|
-
|
|
16
|
-
{ "action": "list", "token": "ABC123", "type": "docx" }
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Returns: members with member_type, member_id, perm, name.
|
|
20
|
-
|
|
21
|
-
### Add Collaborator
|
|
22
|
-
|
|
23
|
-
```json
|
|
24
|
-
{
|
|
25
|
-
"action": "add",
|
|
26
|
-
"token": "ABC123",
|
|
27
|
-
"type": "docx",
|
|
28
|
-
"member_type": "email",
|
|
29
|
-
"member_id": "user@example.com",
|
|
30
|
-
"perm": "edit"
|
|
31
|
-
}
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Remove Collaborator
|
|
35
|
-
|
|
36
|
-
```json
|
|
37
|
-
{
|
|
38
|
-
"action": "remove",
|
|
39
|
-
"token": "ABC123",
|
|
40
|
-
"type": "docx",
|
|
41
|
-
"member_type": "email",
|
|
42
|
-
"member_id": "user@example.com"
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Token Types
|
|
47
|
-
|
|
48
|
-
| Type | Description |
|
|
49
|
-
| ---------- | ----------------------- |
|
|
50
|
-
| `doc` | Old format document |
|
|
51
|
-
| `docx` | New format document |
|
|
52
|
-
| `sheet` | Spreadsheet |
|
|
53
|
-
| `bitable` | Multi-dimensional table |
|
|
54
|
-
| `folder` | Folder |
|
|
55
|
-
| `file` | Uploaded file |
|
|
56
|
-
| `wiki` | Wiki node |
|
|
57
|
-
| `mindnote` | Mind map |
|
|
58
|
-
|
|
59
|
-
## Member Types
|
|
60
|
-
|
|
61
|
-
| Type | Description |
|
|
62
|
-
| ------------------ | ------------------ |
|
|
63
|
-
| `email` | Email address |
|
|
64
|
-
| `openid` | User open_id |
|
|
65
|
-
| `userid` | User user_id |
|
|
66
|
-
| `unionid` | User union_id |
|
|
67
|
-
| `openchat` | Group chat open_id |
|
|
68
|
-
| `opendepartmentid` | Department open_id |
|
|
69
|
-
|
|
70
|
-
## Permission Levels
|
|
71
|
-
|
|
72
|
-
| Perm | Description |
|
|
73
|
-
| ------------- | ------------------------------------ |
|
|
74
|
-
| `view` | View only |
|
|
75
|
-
| `edit` | Can edit |
|
|
76
|
-
| `full_access` | Full access (can manage permissions) |
|
|
77
|
-
|
|
78
|
-
## Examples
|
|
79
|
-
|
|
80
|
-
Share document with email:
|
|
81
|
-
|
|
82
|
-
```json
|
|
83
|
-
{
|
|
84
|
-
"action": "add",
|
|
85
|
-
"token": "doxcnXXX",
|
|
86
|
-
"type": "docx",
|
|
87
|
-
"member_type": "email",
|
|
88
|
-
"member_id": "alice@company.com",
|
|
89
|
-
"perm": "edit"
|
|
90
|
-
}
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Share folder with group:
|
|
94
|
-
|
|
95
|
-
```json
|
|
96
|
-
{
|
|
97
|
-
"action": "add",
|
|
98
|
-
"token": "fldcnXXX",
|
|
99
|
-
"type": "folder",
|
|
100
|
-
"member_type": "openchat",
|
|
101
|
-
"member_id": "oc_xxx",
|
|
102
|
-
"perm": "view"
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## Configuration
|
|
107
|
-
|
|
108
|
-
```yaml
|
|
109
|
-
channels:
|
|
110
|
-
feishu:
|
|
111
|
-
tools:
|
|
112
|
-
perm: true # default: false (disabled)
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
**Note:** This tool is disabled by default because permission management is a sensitive operation. Enable explicitly if needed.
|
|
116
|
-
|
|
117
|
-
## Permissions
|
|
118
|
-
|
|
119
|
-
Required: `drive:permission`
|
|
19
|
+
Never infer an email, user ID, department, or chat from a display name alone. Follow the current schema for supported member types, token types, and permission levels.
|
|
@@ -1,122 +1,26 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: feishu-wiki
|
|
3
3
|
description: |
|
|
4
|
-
Feishu knowledge
|
|
4
|
+
Feishu knowledge-base navigation workflows. Activate when the user mentions a knowledge base, wiki, or wiki link.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# Feishu
|
|
7
|
+
# Feishu wiki
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Use the single `feishu_wiki` tool and its current action schema.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
From `https://example.feishu.cn/wiki/ABC123def`, use `ABC123def` as `token`. Treat every `space_id` as an opaque quoted string, even when it contains only digits.
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Navigate
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
- Use `spaces` to enumerate accessible knowledge spaces and `nodes` for a space or parent node.
|
|
16
|
+
- Continue pagination with the returned `page_token` while `has_more` is true, keeping the same space and parent.
|
|
17
|
+
- Use `search` when the user provides a query but not an exact node.
|
|
18
|
+
- Use `get` to resolve a wiki token to its `node_token`, `obj_token`, and `obj_type`.
|
|
16
19
|
|
|
17
|
-
##
|
|
20
|
+
## Create and organize
|
|
18
21
|
|
|
19
|
-
|
|
22
|
+
Wiki creation supports only `docx`, `sheet`, and `bitable`; `docx` is the default. Resolve an exact space and parent before create, move, or rename operations, and confirm ambiguous or destructive reorganizations.
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
{ "action": "spaces" }
|
|
23
|
-
```
|
|
24
|
+
## Wiki content workflow
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
Continue with the returned `page_token` while `has_more` is true:
|
|
27
|
-
|
|
28
|
-
```json
|
|
29
|
-
{ "action": "spaces", "page_token": "next-page-token" }
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### List Nodes
|
|
33
|
-
|
|
34
|
-
```json
|
|
35
|
-
{ "action": "nodes", "space_id": "7xxx" }
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
With parent:
|
|
39
|
-
|
|
40
|
-
```json
|
|
41
|
-
{ "action": "nodes", "space_id": "7xxx", "parent_node_token": "wikcnXXX" }
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Returns one page of nodes plus `has_more` and `page_token`. Continue with the
|
|
45
|
-
same `space_id` and `parent_node_token`, adding the returned `page_token`, while
|
|
46
|
-
`has_more` is true. Both list actions accept optional `page_size` from 1 to 50.
|
|
47
|
-
|
|
48
|
-
### Get Node Details
|
|
49
|
-
|
|
50
|
-
```json
|
|
51
|
-
{ "action": "get", "token": "ABC123def" }
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
Returns: `node_token`, `obj_token`, `obj_type`, etc. Use `obj_token` with `feishu_doc` to read/write the document.
|
|
55
|
-
|
|
56
|
-
### Create Node
|
|
57
|
-
|
|
58
|
-
```json
|
|
59
|
-
{ "action": "create", "space_id": "7xxx", "title": "New Page" }
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
With type and parent:
|
|
63
|
-
|
|
64
|
-
```json
|
|
65
|
-
{
|
|
66
|
-
"action": "create",
|
|
67
|
-
"space_id": "7xxx",
|
|
68
|
-
"title": "Sheet",
|
|
69
|
-
"obj_type": "sheet",
|
|
70
|
-
"parent_node_token": "wikcnXXX"
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
`obj_type`: `docx` (default), `sheet`, `bitable`, `mindnote`, `file`, `doc`, `slides`
|
|
75
|
-
|
|
76
|
-
### Move Node
|
|
77
|
-
|
|
78
|
-
```json
|
|
79
|
-
{ "action": "move", "space_id": "7xxx", "node_token": "wikcnXXX" }
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
To different location:
|
|
83
|
-
|
|
84
|
-
```json
|
|
85
|
-
{
|
|
86
|
-
"action": "move",
|
|
87
|
-
"space_id": "7xxx",
|
|
88
|
-
"node_token": "wikcnXXX",
|
|
89
|
-
"target_space_id": "7yyy",
|
|
90
|
-
"target_parent_token": "wikcnYYY"
|
|
91
|
-
}
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### Rename Node
|
|
95
|
-
|
|
96
|
-
```json
|
|
97
|
-
{ "action": "rename", "space_id": "7xxx", "node_token": "wikcnXXX", "title": "New Title" }
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
## Wiki-Doc Workflow
|
|
101
|
-
|
|
102
|
-
To edit a wiki page:
|
|
103
|
-
|
|
104
|
-
1. Get node: `{ "action": "get", "token": "wiki_token" }` → returns `obj_token`
|
|
105
|
-
2. Read doc: `feishu_doc { "action": "read", "doc_token": "obj_token" }`
|
|
106
|
-
3. Write doc: `feishu_doc { "action": "write", "doc_token": "obj_token", "content": "..." }`
|
|
107
|
-
|
|
108
|
-
## Configuration
|
|
109
|
-
|
|
110
|
-
```yaml
|
|
111
|
-
channels:
|
|
112
|
-
feishu:
|
|
113
|
-
tools:
|
|
114
|
-
wiki: true # default: true
|
|
115
|
-
doc: true # required - wiki content uses feishu_doc
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
**Dependency:** This tool requires `feishu_doc` to be enabled. Wiki pages are documents - use `feishu_wiki` to navigate, then `feishu_doc` to read/edit content.
|
|
119
|
-
|
|
120
|
-
## Permissions
|
|
121
|
-
|
|
122
|
-
Required: `wiki:wiki` or `wiki:wiki:readonly`
|
|
26
|
+
Wiki navigation is independent of the document tool. When `get` returns a `docx` object, use its `obj_token` as `doc_token` with `feishu_doc` to read or edit the page. Other object types require a currently available tool that supports that type; do not treat them as documents.
|