@openclaw/feishu 2026.7.2-beta.7 → 2026.8.1-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/accounts-CCCdMen2.js +203 -0
- package/dist/api.js +61 -60
- package/dist/{channel-CScE82zY.js → channel-Ceq80_zP.js} +71 -42
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.runtime-B21e1E0r.js → channel.runtime-DnRyzGoU.js} +201 -152
- 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-BVYM_Y4k.js} +325 -44
- package/dist/{media-CEUraFOR.js → media-BDouVaaM.js} +298 -182
- package/dist/{monitor-DngbaA6a.js → monitor-CZ8cDXrq.js} +3 -3
- package/dist/{monitor.account-BnTWCw55.js → monitor.account-Dq_voVMB.js} +263 -179
- 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 +2 -2
- 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-KUi-7vUy.js} +4 -64
- package/dist/subagent-hooks-api.js +1 -1
- package/dist/{thread-bindings-N3wkgkIN.js → thread-bindings-CptM_YU6.js} +7 -9
- 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,102 +0,0 @@
|
|
|
1
|
-
import { asObjectRecord, defineChannelAliasMigration, defineKeyMoveMigration, hasLegacyAccountStreamingAliases, normalizeChannelConfigEntries } from "openclaw/plugin-sdk/runtime-doctor";
|
|
2
|
-
//#region extensions/feishu/src/doctor-contract.ts
|
|
3
|
-
const streamingAliasMigration = defineChannelAliasMigration({
|
|
4
|
-
channelId: "feishu",
|
|
5
|
-
streaming: { defaultMode: "partial" },
|
|
6
|
-
accountStreamingReplacesRoot: true
|
|
7
|
-
});
|
|
8
|
-
const LEGACY_COALESCE_FIELDS = [
|
|
9
|
-
"enabled",
|
|
10
|
-
"minDelayMs",
|
|
11
|
-
"maxDelayMs"
|
|
12
|
-
];
|
|
13
|
-
const LEGACY_HEARTBEAT_FIELDS = ["visibility", "intervalMs"];
|
|
14
|
-
const toolsBaseMigration = defineKeyMoveMigration({
|
|
15
|
-
from: ["tools", "base"],
|
|
16
|
-
to: ["tools", "bitable"],
|
|
17
|
-
match: (value) => typeof value === "boolean",
|
|
18
|
-
sourceOwn: false
|
|
19
|
-
});
|
|
20
|
-
function sanitizeLegacyHeartbeatFields(params) {
|
|
21
|
-
const heartbeat = asObjectRecord(params.entry.heartbeat);
|
|
22
|
-
if (!heartbeat || Object.keys(heartbeat).length > 0 && !LEGACY_HEARTBEAT_FIELDS.some((field) => Object.hasOwn(heartbeat, field))) return {
|
|
23
|
-
entry: params.entry,
|
|
24
|
-
changed: false
|
|
25
|
-
};
|
|
26
|
-
const next = { ...params.entry };
|
|
27
|
-
delete next.heartbeat;
|
|
28
|
-
params.changes.push(`Removed ${params.pathPrefix}.heartbeat (legacy Feishu fields were never read by runtime).`);
|
|
29
|
-
return {
|
|
30
|
-
entry: next,
|
|
31
|
-
changed: true
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
function sanitizeLegacyCoalesceFields(params) {
|
|
35
|
-
const streaming = asObjectRecord(params.entry.streaming);
|
|
36
|
-
const block = asObjectRecord(streaming?.block);
|
|
37
|
-
const coalesce = asObjectRecord(block?.coalesce);
|
|
38
|
-
if (!streaming || !block || !coalesce) return {
|
|
39
|
-
entry: params.entry,
|
|
40
|
-
changed: false
|
|
41
|
-
};
|
|
42
|
-
const removed = LEGACY_COALESCE_FIELDS.filter((field) => coalesce[field] !== void 0);
|
|
43
|
-
if (removed.length === 0) return {
|
|
44
|
-
entry: params.entry,
|
|
45
|
-
changed: false
|
|
46
|
-
};
|
|
47
|
-
const nextCoalesce = { ...coalesce };
|
|
48
|
-
for (const field of removed) delete nextCoalesce[field];
|
|
49
|
-
params.changes.push(`Removed ${params.pathPrefix}.streaming.block.coalesce.{${removed.join(",")}} (legacy Feishu-only fields; block delivery reads minChars/maxChars/idleMs).`);
|
|
50
|
-
return {
|
|
51
|
-
entry: {
|
|
52
|
-
...params.entry,
|
|
53
|
-
streaming: {
|
|
54
|
-
...streaming,
|
|
55
|
-
block: {
|
|
56
|
-
...block,
|
|
57
|
-
coalesce: nextCoalesce
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
changed: true
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
function sanitizeFeishuCoalesce(cfg, changes) {
|
|
65
|
-
return normalizeChannelConfigEntries({
|
|
66
|
-
cfg,
|
|
67
|
-
channelId: "feishu",
|
|
68
|
-
changes,
|
|
69
|
-
normalizeEntry: (params) => {
|
|
70
|
-
const tools = toolsBaseMigration.normalize(params);
|
|
71
|
-
const coalesce = sanitizeLegacyCoalesceFields({
|
|
72
|
-
...params,
|
|
73
|
-
entry: tools.entry
|
|
74
|
-
});
|
|
75
|
-
const heartbeat = sanitizeLegacyHeartbeatFields({
|
|
76
|
-
...params,
|
|
77
|
-
entry: coalesce.entry
|
|
78
|
-
});
|
|
79
|
-
return {
|
|
80
|
-
entry: heartbeat.entry,
|
|
81
|
-
changed: tools.changed || coalesce.changed || heartbeat.changed
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
}).config;
|
|
85
|
-
}
|
|
86
|
-
const legacyConfigRules = [...streamingAliasMigration.legacyConfigRules, {
|
|
87
|
-
path: ["channels", "feishu"],
|
|
88
|
-
message: "channels.feishu[.accounts.<id>].tools.base is legacy; use tools.bitable. Run \"openclaw doctor --fix\".",
|
|
89
|
-
match: (value) => {
|
|
90
|
-
const entry = asObjectRecord(value);
|
|
91
|
-
return toolsBaseMigration.hasLegacy(entry) || hasLegacyAccountStreamingAliases(entry?.accounts, toolsBaseMigration.hasLegacy);
|
|
92
|
-
}
|
|
93
|
-
}];
|
|
94
|
-
function normalizeCompatibilityConfig({ cfg }) {
|
|
95
|
-
const aliases = streamingAliasMigration.normalizeChannelConfig({ cfg });
|
|
96
|
-
return {
|
|
97
|
-
config: sanitizeFeishuCoalesce(aliases.config, aliases.changes),
|
|
98
|
-
changes: aliases.changes
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
//#endregion
|
|
102
|
-
export { normalizeCompatibilityConfig as n, legacyConfigRules as t };
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import "./security-audit-shared-BgpY7AiJ.js";
|
|
2
|
-
//#region extensions/feishu/src/message-action-contract.ts
|
|
3
|
-
const messageActionTargetAliases = {
|
|
4
|
-
read: { aliases: ["messageId"] },
|
|
5
|
-
pin: { aliases: ["messageId"] },
|
|
6
|
-
unpin: { aliases: ["messageId"] },
|
|
7
|
-
"list-pins": { aliases: ["chatId"] },
|
|
8
|
-
"channel-info": { aliases: ["chatId"] }
|
|
9
|
-
};
|
|
10
|
-
//#endregion
|
|
11
|
-
export { messageActionTargetAliases as t };
|