// Feishu plugin entrypoint registers its OpenClaw integration. import { defineBundledChannelEntry, loadBundledEntryExportSync, } from "openclaw/plugin-sdk/channel-entry-contract"; import type { OpenClawPluginApi } from "openclaw/plugin-sdk/channel-entry-contract"; import { registerFeishuSubagentHooks } from "./subagent-hooks-api.js"; function registerFeishuDocTools(api: OpenClawPluginApi) { const register = loadBundledEntryExportSync<(api: OpenClawPluginApi) => void>(import.meta.url, { specifier: "./api.js", exportName: "registerFeishuDocTools", }); register(api); } function registerFeishuChatTools(api: OpenClawPluginApi) { const register = loadBundledEntryExportSync<(api: OpenClawPluginApi) => void>(import.meta.url, { specifier: "./api.js", exportName: "registerFeishuChatTools", }); register(api); } function registerFeishuWikiTools(api: OpenClawPluginApi) { const register = loadBundledEntryExportSync<(api: OpenClawPluginApi) => void>(import.meta.url, { specifier: "./api.js", exportName: "registerFeishuWikiTools", }); register(api); } function registerFeishuDriveTools(api: OpenClawPluginApi) { const register = loadBundledEntryExportSync<(api: OpenClawPluginApi) => void>(import.meta.url, { specifier: "./api.js", exportName: "registerFeishuDriveTools", }); register(api); } function registerFeishuPermTools(api: OpenClawPluginApi) { const register = loadBundledEntryExportSync<(api: OpenClawPluginApi) => void>(import.meta.url, { specifier: "./api.js", exportName: "registerFeishuPermTools", }); register(api); } function registerFeishuBitableTools(api: OpenClawPluginApi) { const register = loadBundledEntryExportSync<(api: OpenClawPluginApi) => void>(import.meta.url, { specifier: "./api.js", exportName: "registerFeishuBitableTools", }); register(api); } export default defineBundledChannelEntry({ id: "feishu", name: "Feishu", description: "Feishu/Lark channel plugin", importMetaUrl: import.meta.url, plugin: { specifier: "./channel-plugin-api.js", exportName: "feishuPlugin", }, secrets: { specifier: "./secret-contract-api.js", exportName: "channelSecrets", }, runtime: { specifier: "./runtime-api.js", exportName: "setFeishuRuntime", }, registerFull(api) { registerFeishuSubagentHooks(api); registerFeishuDocTools(api); registerFeishuChatTools(api); registerFeishuWikiTools(api); registerFeishuDriveTools(api); registerFeishuPermTools(api); registerFeishuBitableTools(api); }, });