@openclaw/feishu 2026.5.28-beta.1 → 2026.5.28-beta.3
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/api.js +13 -6
- package/dist/{channel-DLfxURF2.js → channel-BVSJh3s1.js} +4 -3
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.runtime-i-X8-ZXc.js → channel.runtime-D6J6otxd.js} +2 -2
- package/dist/{drive-Grnpj510.js → drive-6Ohn34x9.js} +14 -2
- package/dist/{monitor-w8w3-7EH.js → monitor-1WyqLgPM.js} +1 -1
- package/dist/{monitor.account-tuA8NuVQ.js → monitor.account-DXQXXSzI.js} +2 -2
- package/dist/setup-api.js +1 -1
- package/npm-shrinkwrap.json +3 -3
- package/package.json +4 -4
package/dist/api.js
CHANGED
|
@@ -2,16 +2,18 @@ import { a as parseFeishuTargetId, i as parseFeishuDirectConversationId, n as bu
|
|
|
2
2
|
import { n as getFeishuThreadBindingManager, r as testing, t as createFeishuThreadBindingManager } from "./thread-bindings-D24m3Cjy.js";
|
|
3
3
|
import { n as handleFeishuSubagentEnded, r as handleFeishuSubagentSpawning, t as handleFeishuSubagentDeliveryTarget } from "./subagent-hooks-fuyBHOVu.js";
|
|
4
4
|
import { r as listEnabledFeishuAccounts } from "./accounts-CXnY5H8g.js";
|
|
5
|
-
import { a as setFeishuNamedAccountEnabled, i as feishuSetupAdapter, n as feishuSetupWizard, r as runFeishuLogin, t as feishuPlugin } from "./channel-
|
|
5
|
+
import { a as setFeishuNamedAccountEnabled, i as feishuSetupAdapter, n as feishuSetupWizard, r as runFeishuLogin, t as feishuPlugin } from "./channel-BVSJh3s1.js";
|
|
6
6
|
import { t as getFeishuRuntime } from "./runtime-C5JxBWZp.js";
|
|
7
|
-
import { a as jsonToolResult, d as registerFeishuChatTools, f as createFeishuToolClient, m as resolveFeishuToolAccount, n as registerFeishuDriveTools, o as toolExecutionErrorResult, p as resolveAnyEnabledFeishuToolsConfig, s as unknownToolActionResult } from "./drive-
|
|
7
|
+
import { a as jsonToolResult, d as registerFeishuChatTools, f as createFeishuToolClient, m as resolveFeishuToolAccount, n as registerFeishuDriveTools, o as toolExecutionErrorResult, p as resolveAnyEnabledFeishuToolsConfig, s as unknownToolActionResult } from "./drive-6Ohn34x9.js";
|
|
8
8
|
import { normalizeLowercaseStringOrEmpty, normalizeOptionalString, readStringValue, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
9
|
+
import { optionalPositiveIntegerSchema } from "openclaw/plugin-sdk/channel-actions";
|
|
9
10
|
import { existsSync } from "node:fs";
|
|
10
11
|
import { homedir } from "node:os";
|
|
11
12
|
import { basename, isAbsolute, resolve } from "node:path";
|
|
12
13
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
13
14
|
import { extensionForMime } from "openclaw/plugin-sdk/media-mime";
|
|
14
15
|
import { Type } from "typebox";
|
|
16
|
+
import { readPositiveIntegerParam } from "openclaw/plugin-sdk/param-readers";
|
|
15
17
|
import { createClackPrompter } from "openclaw/plugin-sdk/setup-runtime";
|
|
16
18
|
//#region extensions/feishu/src/doc-schema.ts
|
|
17
19
|
const tableCreationProperties = {
|
|
@@ -1948,6 +1950,12 @@ async function listRecords(client, appToken, tableId, pageSize, pageToken) {
|
|
|
1948
1950
|
total: res.data?.total
|
|
1949
1951
|
};
|
|
1950
1952
|
}
|
|
1953
|
+
function readBitableListRecordsPageSize(params) {
|
|
1954
|
+
return readPositiveIntegerParam(params, "page_size", {
|
|
1955
|
+
max: 500,
|
|
1956
|
+
message: "page_size must be a positive integer between 1 and 500"
|
|
1957
|
+
});
|
|
1958
|
+
}
|
|
1951
1959
|
async function getRecord(client, appToken, tableId, recordId) {
|
|
1952
1960
|
const res = await client.bitable.appTableRecord.get({ path: {
|
|
1953
1961
|
app_token: appToken,
|
|
@@ -2162,11 +2170,10 @@ const ListFieldsSchema = Type.Object({
|
|
|
2162
2170
|
const ListRecordsSchema = Type.Object({
|
|
2163
2171
|
app_token: Type.String({ description: "Bitable app token (use feishu_bitable_get_meta to get from URL)" }),
|
|
2164
2172
|
table_id: Type.String({ description: "Table ID (from URL: ?table=YYY)" }),
|
|
2165
|
-
page_size:
|
|
2173
|
+
page_size: optionalPositiveIntegerSchema({
|
|
2166
2174
|
description: "Number of records per page (1-500, default 100)",
|
|
2167
|
-
minimum: 1,
|
|
2168
2175
|
maximum: 500
|
|
2169
|
-
})
|
|
2176
|
+
}),
|
|
2170
2177
|
page_token: Type.Optional(Type.String({ description: "Pagination token from previous response" }))
|
|
2171
2178
|
});
|
|
2172
2179
|
const GetRecordSchema = Type.Object({
|
|
@@ -2249,7 +2256,7 @@ function registerFeishuBitableTools(api) {
|
|
|
2249
2256
|
description: "List records (rows) from a Bitable table with pagination support",
|
|
2250
2257
|
parameters: ListRecordsSchema,
|
|
2251
2258
|
async execute({ params, defaultAccountId }) {
|
|
2252
|
-
return listRecords(getClient(params, defaultAccountId), params.app_token, params.table_id, params
|
|
2259
|
+
return listRecords(getClient(params, defaultAccountId), params.app_token, params.table_id, readBitableListRecordsPageSize(params), params.page_token);
|
|
2253
2260
|
}
|
|
2254
2261
|
});
|
|
2255
2262
|
registerBitableTool({
|
|
@@ -1720,9 +1720,10 @@ const meta = {
|
|
|
1720
1720
|
docsLabel: "feishu",
|
|
1721
1721
|
blurb: "飞书/Lark enterprise messaging.",
|
|
1722
1722
|
aliases: ["lark"],
|
|
1723
|
-
order: 70
|
|
1723
|
+
order: 70,
|
|
1724
|
+
preferSessionLookupForAnnounceTarget: true
|
|
1724
1725
|
};
|
|
1725
|
-
const loadFeishuChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-
|
|
1726
|
+
const loadFeishuChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-D6J6otxd.js"), "feishuChannelRuntime");
|
|
1726
1727
|
function toFeishuMessageSendResult(result, kind) {
|
|
1727
1728
|
const receipt = result.receipt ?? createFeishuSendReceipt({
|
|
1728
1729
|
messageId: result.messageId,
|
|
@@ -2546,7 +2547,7 @@ const feishuPlugin = createChatChannelPlugin({
|
|
|
2546
2547
|
})
|
|
2547
2548
|
}),
|
|
2548
2549
|
gateway: { startAccount: async (ctx) => {
|
|
2549
|
-
const { monitorFeishuProvider } = await import("./monitor-
|
|
2550
|
+
const { monitorFeishuProvider } = await import("./monitor-1WyqLgPM.js");
|
|
2550
2551
|
const account = resolveFeishuRuntimeAccount({
|
|
2551
2552
|
cfg: ctx.cfg,
|
|
2552
2553
|
accountId: ctx.accountId
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as feishuPlugin } from "./channel-
|
|
1
|
+
import { t as feishuPlugin } from "./channel-BVSJh3s1.js";
|
|
2
2
|
export { feishuPlugin };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { o as resolveFeishuAccount, s as resolveFeishuRuntimeAccount, y as parseFeishuCommentTarget } from "./accounts-CXnY5H8g.js";
|
|
2
|
-
import { h as listFeishuDirectoryPeers, m as listFeishuDirectoryGroups, o as buildFeishuPresentationCardElements } from "./channel-
|
|
2
|
+
import { h as listFeishuDirectoryPeers, m as listFeishuDirectoryGroups, o as buildFeishuPresentationCardElements } from "./channel-BVSJh3s1.js";
|
|
3
3
|
import { r as createFeishuClient } from "./client-DcSzLkSX.js";
|
|
4
|
-
import { c as getChatInfo, l as getChatMembers, r as cleanupAmbientCommentTypingReaction, t as deliverCommentThreadText, u as getFeishuMemberInfo } from "./drive-
|
|
4
|
+
import { c as getChatInfo, l as getChatMembers, r as cleanupAmbientCommentTypingReaction, t as deliverCommentThreadText, u as getFeishuMemberInfo } from "./drive-6Ohn34x9.js";
|
|
5
5
|
import { chunkTextForOutbound } from "./runtime-api.js";
|
|
6
6
|
import { a as sendCardFeishu, c as sendStructuredCardFeishu, g as shouldSuppressFeishuTextForVoiceMedia, h as sendMediaFeishu, i as resolveFeishuCardTemplate, n as getMessageFeishu, o as sendMarkdownCardFeishu, s as sendMessageFeishu, t as editMessageFeishu } from "./send-CKZz15KQ.js";
|
|
7
7
|
import { t as probeFeishu } from "./probe-RvCg70BY.js";
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { d as formatFeishuApiError, f as isRecord$1, h as readString, i as listFeishuAccountIds, l as encodeQuery, o as resolveFeishuAccount, r as listEnabledFeishuAccounts, s as resolveFeishuRuntimeAccount, u as extractReplyText, y as parseFeishuCommentTarget } from "./accounts-CXnY5H8g.js";
|
|
2
2
|
import { r as createFeishuClient } from "./client-DcSzLkSX.js";
|
|
3
3
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
|
+
import { optionalPositiveIntegerSchema } from "openclaw/plugin-sdk/channel-actions";
|
|
4
5
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
5
6
|
import { Type } from "typebox";
|
|
7
|
+
import { readPositiveIntegerParam } from "openclaw/plugin-sdk/param-readers";
|
|
6
8
|
//#region extensions/feishu/src/tools-config.ts
|
|
7
9
|
/**
|
|
8
10
|
* Default tool configuration.
|
|
@@ -91,7 +93,10 @@ const FeishuChatSchema = Type.Object({
|
|
|
91
93
|
}),
|
|
92
94
|
chat_id: Type.Optional(Type.String({ description: "Chat ID (from URL or event payload)" })),
|
|
93
95
|
member_id: Type.Optional(Type.String({ description: "Member ID for member_info lookups" })),
|
|
94
|
-
page_size:
|
|
96
|
+
page_size: optionalPositiveIntegerSchema({
|
|
97
|
+
maximum: 100,
|
|
98
|
+
description: "Page size (1-100, default 50)"
|
|
99
|
+
}),
|
|
95
100
|
page_token: Type.Optional(Type.String({ description: "Pagination token" })),
|
|
96
101
|
member_id_type: Type.Optional(Type.Unsafe({
|
|
97
102
|
type: "string",
|
|
@@ -110,6 +115,12 @@ function json(data) {
|
|
|
110
115
|
details: data
|
|
111
116
|
};
|
|
112
117
|
}
|
|
118
|
+
function readChatPageSize(params) {
|
|
119
|
+
return readPositiveIntegerParam(params, "page_size", {
|
|
120
|
+
max: 100,
|
|
121
|
+
message: "page_size must be a positive integer between 1 and 100"
|
|
122
|
+
});
|
|
123
|
+
}
|
|
113
124
|
async function getChatInfo(client, chatId) {
|
|
114
125
|
const res = await client.im.chat.get({ path: { chat_id: chatId } });
|
|
115
126
|
if (res.code !== 0) throw new Error(res.msg);
|
|
@@ -206,13 +217,14 @@ function registerFeishuChatTools(api) {
|
|
|
206
217
|
description: "Feishu chat operations. Actions: members, info, member_info",
|
|
207
218
|
parameters: FeishuChatSchema,
|
|
208
219
|
async execute(_toolCallId, params) {
|
|
220
|
+
const rawParams = params;
|
|
209
221
|
const p = params;
|
|
210
222
|
try {
|
|
211
223
|
const client = getClient();
|
|
212
224
|
switch (p.action) {
|
|
213
225
|
case "members":
|
|
214
226
|
if (!p.chat_id) return json({ error: "chat_id is required for action members" });
|
|
215
|
-
return json(await getChatMembers(client, p.chat_id,
|
|
227
|
+
return json(await getChatMembers(client, p.chat_id, readChatPageSize(rawParams), p.page_token, p.member_id_type));
|
|
216
228
|
case "info":
|
|
217
229
|
if (!p.chat_id) return json({ error: "chat_id is required for action info" });
|
|
218
230
|
return json(await getChatInfo(client, p.chat_id));
|
|
@@ -3,7 +3,7 @@ import { l as fetchBotIdentityForMonitor } from "./monitor.state-B6SoAUys.js";
|
|
|
3
3
|
//#region extensions/feishu/src/monitor.ts
|
|
4
4
|
let monitorAccountRuntimePromise;
|
|
5
5
|
async function loadMonitorAccountRuntime() {
|
|
6
|
-
monitorAccountRuntimePromise ??= import("./monitor.account-
|
|
6
|
+
monitorAccountRuntimePromise ??= import("./monitor.account-DXQXXSzI.js");
|
|
7
7
|
return await monitorAccountRuntimePromise;
|
|
8
8
|
}
|
|
9
9
|
async function monitorFeishuProvider(opts = {}) {
|
|
@@ -2,11 +2,11 @@ import { t as buildFeishuConversationId } from "./conversation-id-DuL575sn.js";
|
|
|
2
2
|
import { i as resolveReceiveIdType } from "./targets-BUjQ1TcA.js";
|
|
3
3
|
import { t as createFeishuThreadBindingManager } from "./thread-bindings-D24m3Cjy.js";
|
|
4
4
|
import { _ as buildFeishuCommentTarget, f as isRecord$1, h as readString, l as encodeQuery, m as parseCommentContentElements, p as normalizeString, s as resolveFeishuRuntimeAccount, u as extractReplyText, v as normalizeCommentFileType } from "./accounts-CXnY5H8g.js";
|
|
5
|
-
import { c as normalizeFeishuAllowEntry, d as resolveFeishuGroupConversationIngressAccess, f as resolveFeishuGroupSenderActivationIngressAccess, l as resolveFeishuDmIngressAccess, p as resolveFeishuReplyPolicy, s as hasExplicitFeishuGroupConfig, u as resolveFeishuGroupConfig } from "./channel-
|
|
5
|
+
import { c as normalizeFeishuAllowEntry, d as resolveFeishuGroupConversationIngressAccess, f as resolveFeishuGroupSenderActivationIngressAccess, l as resolveFeishuDmIngressAccess, p as resolveFeishuReplyPolicy, s as hasExplicitFeishuGroupConfig, u as resolveFeishuGroupConfig } from "./channel-BVSJh3s1.js";
|
|
6
6
|
import { c as decodeFeishuCardAction, o as buildFeishuCardActionTextFallback, s as createFeishuCardInteractionEnvelope } from "./send-result-DSTSkRDM.js";
|
|
7
7
|
import { t as getFeishuRuntime } from "./runtime-C5JxBWZp.js";
|
|
8
8
|
import { a as getFeishuUserAgent, i as createFeishuWSClient, n as createEventDispatcher, r as createFeishuClient } from "./client-DcSzLkSX.js";
|
|
9
|
-
import { c as getChatInfo, i as createCommentTypingReactionLifecycle, t as deliverCommentThreadText } from "./drive-
|
|
9
|
+
import { c as getChatInfo, i as createCommentTypingReactionLifecycle, t as deliverCommentThreadText } from "./drive-6Ohn34x9.js";
|
|
10
10
|
import { createReplyPrefixContext, evaluateSupplementalContextVisibility, loadSessionStore, normalizeAgentId as normalizeAgentId$2, resolveChannelContextVisibilityMode, resolveSessionStoreEntry } from "./runtime-api.js";
|
|
11
11
|
import { _ as normalizeFeishuExternalKey, a as sendCardFeishu, c as sendStructuredCardFeishu, d as isFeishuBroadcastMention, f as isMentionForwardRequest, g as shouldSuppressFeishuTextForVoiceMedia, h as sendMediaFeishu, i as resolveFeishuCardTemplate, l as parsePostContent, m as saveMessageResourceFeishu, n as getMessageFeishu, p as isFeishuGroupChatType, r as listFeishuThreadMessages, s as sendMessageFeishu, u as extractMentionTargets } from "./send-CKZz15KQ.js";
|
|
12
12
|
import { i as waitForAbortableDelay, r as raceWithTimeoutAndAbort } from "./probe-RvCg70BY.js";
|
package/dist/setup-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as feishuSetupAdapter, n as feishuSetupWizard, t as feishuPlugin } from "./channel-
|
|
1
|
+
import { i as feishuSetupAdapter, n as feishuSetupWizard, t as feishuPlugin } from "./channel-BVSJh3s1.js";
|
|
2
2
|
export { feishuPlugin, feishuSetupAdapter, feishuSetupWizard };
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/feishu",
|
|
3
|
-
"version": "2026.5.28-beta.
|
|
3
|
+
"version": "2026.5.28-beta.3",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@openclaw/feishu",
|
|
9
|
-
"version": "2026.5.28-beta.
|
|
9
|
+
"version": "2026.5.28-beta.3",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@larksuiteoapi/node-sdk": "1.66.0",
|
|
12
12
|
"typebox": "1.1.38",
|
|
13
13
|
"zod": "4.4.3"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"openclaw": ">=2026.5.28-beta.
|
|
16
|
+
"openclaw": ">=2026.5.28-beta.3"
|
|
17
17
|
},
|
|
18
18
|
"peerDependenciesMeta": {
|
|
19
19
|
"openclaw": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/feishu",
|
|
3
|
-
"version": "2026.5.28-beta.
|
|
3
|
+
"version": "2026.5.28-beta.3",
|
|
4
4
|
"description": "OpenClaw Feishu/Lark channel plugin for chats and workplace tools (community maintained by @m1heng).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"zod": "4.4.3"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"openclaw": ">=2026.5.28-beta.
|
|
16
|
+
"openclaw": ">=2026.5.28-beta.3"
|
|
17
17
|
},
|
|
18
18
|
"peerDependenciesMeta": {
|
|
19
19
|
"openclaw": {
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"minHostVersion": ">=2026.4.25"
|
|
45
45
|
},
|
|
46
46
|
"compat": {
|
|
47
|
-
"pluginApi": ">=2026.5.28-beta.
|
|
47
|
+
"pluginApi": ">=2026.5.28-beta.3"
|
|
48
48
|
},
|
|
49
49
|
"build": {
|
|
50
|
-
"openclawVersion": "2026.5.28-beta.
|
|
50
|
+
"openclawVersion": "2026.5.28-beta.3"
|
|
51
51
|
},
|
|
52
52
|
"release": {
|
|
53
53
|
"publishToClawHub": true,
|