@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.
Files changed (35) hide show
  1. package/dist/accounts-CCCdMen2.js +203 -0
  2. package/dist/api.js +52 -51
  3. package/dist/{channel-CScE82zY.js → channel-Dzb5jv3i.js} +53 -30
  4. package/dist/channel-plugin-api.js +1 -1
  5. package/dist/{channel.runtime-B21e1E0r.js → channel.runtime-CoPaHQQ6.js} +181 -142
  6. package/dist/{client-Dcbs6vml.js → client-Hp7uo_cl.js} +27 -16
  7. package/dist/contract-api.js +2 -2
  8. package/dist/{conversation-id-BeJL-wq7.js → conversation-id-VYgGQ-GX.js} +11 -15
  9. package/dist/doctor-contract-api.js +1 -1
  10. package/dist/doctor-contract-bEQXIXyP.js +158 -0
  11. package/dist/{drive-hSi_Utp0.js → drive-B0JkoiRj.js} +318 -41
  12. package/dist/{media-CEUraFOR.js → media-BjSy8fiy.js} +298 -182
  13. package/dist/{monitor-DngbaA6a.js → monitor-CeHCfROt.js} +3 -3
  14. package/dist/{monitor.account-BnTWCw55.js → monitor.account-DwdqexLU.js} +237 -158
  15. package/dist/{monitor.startup-CqH2tiJq.js → monitor.startup-BGErejNH.js} +1 -1
  16. package/dist/{probe-p3POS2RN.js → probe-DVpy58s0.js} +2 -2
  17. package/dist/security-audit-D6Fz2h6p.js +23 -0
  18. package/dist/{send-result-B9_BpUPx.js → send-result-DEAycmOk.js} +18 -9
  19. package/dist/session-binding-contract-api.js +1 -1
  20. package/dist/{session-conversation-BksWrfzm.js → session-conversation-DFCIvQK-.js} +1 -1
  21. package/dist/session-key-api.js +1 -1
  22. package/dist/setup-api.js +1 -1
  23. package/dist/{subagent-hooks-Cx1cX7rW.js → subagent-hooks-B867acTt.js} +2 -2
  24. package/dist/subagent-hooks-api.js +1 -1
  25. package/dist/{thread-bindings-N3wkgkIN.js → thread-bindings-Itvfmx6_.js} +6 -3
  26. package/openclaw.plugin.json +143 -1
  27. package/package.json +4 -4
  28. package/skills/feishu-doc/SKILL.md +20 -195
  29. package/skills/feishu-doc/references/block-types.md +9 -14
  30. package/skills/feishu-drive/SKILL.md +16 -102
  31. package/skills/feishu-perm/SKILL.md +10 -110
  32. package/skills/feishu-wiki/SKILL.md +13 -109
  33. package/dist/accounts-u9X5Wsan.js +0 -469
  34. package/dist/doctor-contract-BiD9tyIv.js +0 -102
  35. 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 `feishu_doc_list_blocks`, `feishu_doc_update_block`, and `feishu_doc_delete_block`.
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 using `feishu_doc_update_block`:
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 `feishu_doc_write` or `feishu_doc_append` with markdown to add new images.
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
- **Important:** Table blocks CANNOT be created via the `documentBlockChildren.create` API (error 1770029). This affects `feishu_doc_write` and `feishu_doc_append` - markdown tables will be skipped with a warning.
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. `feishu_doc_list_blocks` - find the block_id
91
- 2. `feishu_doc_update_block` - update its content
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
- Currently, the API only supports appending to document end. For insertion at specific positions, consider:
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
- Blocks must be deleted one at a time. Delete child blocks before parent containers.
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 storage file management. Activate when user mentions cloud space, folders, drive.
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 Tool
7
+ # Feishu Drive
8
8
 
9
- Single tool `feishu_drive` for cloud storage operations.
9
+ Use the single `feishu_drive` tool and its current action schema.
10
10
 
11
- ## Token Extraction
11
+ From `https://example.feishu.cn/drive/folder/ABC123`, use `ABC123` as `folder_token`.
12
12
 
13
- From URL `https://xxx.feishu.cn/drive/folder/ABC123` → `folder_token` = `ABC123`
13
+ ## Files and folders
14
14
 
15
- ## Actions
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
- ### List Folder Contents
21
+ ## Comments
18
22
 
19
- ```json
20
- { "action": "list" }
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
- Requests the account root (no `folder_token`). Bot credentials normally have no root folder, so
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 permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.
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 Permission Tool
7
+ # Feishu permissions
8
8
 
9
- Single tool `feishu_perm` for managing file/document permissions.
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
- ## Actions
11
+ ## Workflow
12
12
 
13
- ### List Collaborators
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
- ```json
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 base navigation. Activate when user mentions knowledge base, wiki, or wiki links.
4
+ Feishu knowledge-base navigation workflows. Activate when the user mentions a knowledge base, wiki, or wiki link.
5
5
  ---
6
6
 
7
- # Feishu Wiki Tool
7
+ # Feishu wiki
8
8
 
9
- Single tool `feishu_wiki` for knowledge base operations.
9
+ Use the single `feishu_wiki` tool and its current action schema.
10
10
 
11
- Wiki `space_id` values are opaque strings. Always keep them quoted in tool calls, even when they contain only digits; passing a long numeric-looking ID as a number can corrupt the suffix due to JavaScript number precision limits.
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
- ## Token Extraction
13
+ ## Navigate
14
14
 
15
- From URL `https://xxx.feishu.cn/wiki/ABC123def` `token` = `ABC123def`
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
- ## Actions
20
+ ## Create and organize
18
21
 
19
- ### List Knowledge Spaces
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
- ```json
22
- { "action": "spaces" }
23
- ```
24
+ ## Wiki content workflow
24
25
 
25
- Returns one page of accessible wiki spaces plus `has_more` and `page_token`.
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.