@openclaw-china/channels 0.1.8 → 0.1.10

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.
@@ -3,7 +3,7 @@
3
3
  "name": "Moltbot China Channels",
4
4
  "description": "统一渠道包,支持钉钉、飞书、企业微信、QQ",
5
5
  "version": "0.1.0",
6
- "channels": ["dingtalk"],
6
+ "channels": ["dingtalk", "feishu"],
7
7
  "configSchema": {
8
8
  "type": "object",
9
9
  "additionalProperties": false,
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { DEFAULT_ACCOUNT_ID as DINGTALK_DEFAULT_ACCOUNT_ID, DingtalkConfig, DingtalkSendResult, ResolvedDingtalkAccount, dingtalkPlugin, getDingtalkRuntime, sendMessageDingtalk, setDingtalkRuntime } from '@openclaw-china/dingtalk';
2
+ export { DEFAULT_ACCOUNT_ID as FEISHU_DEFAULT_ACCOUNT_ID, FeishuConfig, FeishuSendResult, ResolvedFeishuAccount, feishuPlugin, getFeishuRuntime, sendMessageFeishu, setFeishuRuntime } from '@openclaw-china/feishu';
2
3
 
3
4
  /**
4
5
  * @openclaw-china/channels
@@ -45,7 +46,7 @@ interface MoltbotPluginApi {
45
46
  /**
46
47
  * 支持的渠道列表
47
48
  */
48
- declare const SUPPORTED_CHANNELS: readonly ["dingtalk"];
49
+ declare const SUPPORTED_CHANNELS: readonly ["dingtalk", "feishu"];
49
50
  type SupportedChannel = (typeof SUPPORTED_CHANNELS)[number];
50
51
  /**
51
52
  * 根据 Moltbot 配置注册启用的渠道
package/dist/index.js CHANGED
@@ -1,14 +1,26 @@
1
1
  import dingtalkEntry from '@openclaw-china/dingtalk';
2
2
  export { DEFAULT_ACCOUNT_ID as DINGTALK_DEFAULT_ACCOUNT_ID, dingtalkPlugin, getDingtalkRuntime, sendMessageDingtalk, setDingtalkRuntime } from '@openclaw-china/dingtalk';
3
+ import feishuEntry from '@openclaw-china/feishu';
4
+ export { DEFAULT_ACCOUNT_ID as FEISHU_DEFAULT_ACCOUNT_ID, feishuPlugin, getFeishuRuntime, sendMessageFeishu, setFeishuRuntime } from '@openclaw-china/feishu';
3
5
 
4
6
  // src/index.ts
5
- var SUPPORTED_CHANNELS = ["dingtalk"];
7
+ var SUPPORTED_CHANNELS = ["dingtalk", "feishu"];
6
8
  var channelPlugins = {
7
9
  dingtalk: {
8
10
  register: (api) => {
9
11
  dingtalkEntry.register(api);
10
12
  }
13
+ },
14
+ feishu: {
15
+ register: (api) => {
16
+ feishuEntry.register(api);
17
+ }
11
18
  }
19
+ // wecom: {
20
+ // register: (api: MoltbotPluginApi) => {
21
+ // wecomEntry.register(api);
22
+ // },
23
+ // },
12
24
  };
13
25
  function registerChannelsByConfig(api, cfg) {
14
26
  const config = cfg ?? api.config;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;AA2EO,IAAM,kBAAA,GAAqB,CAAC,UAAU;AAK7C,IAAM,cAAA,GAA0F;AAAA,EAC9F,QAAA,EAAU;AAAA,IACR,QAAA,EAAU,CAAC,GAAA,KAA0B;AACnC,MAAA,aAAA,CAAc,SAAS,GAAG,CAAA;AAAA,IAC5B;AAAA;AAEJ,CAAA;AAwBO,SAAS,wBAAA,CACd,KACA,GAAA,EACM;AAEN,EAAA,MAAM,MAAA,GAAS,OAAO,GAAA,CAAI,MAAA;AAC1B,EAAA,MAAM,iBAAiB,MAAA,EAAQ,QAAA;AAE/B,EAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,IAAA;AAAA,EACF;AAEA,EAAA,KAAA,MAAW,aAAa,kBAAA,EAAoB;AAE1C,IAAA,MAAM,aAAA,GAAgB,eAAe,SAAS,CAAA;AAG9C,IAAA,IAAI,CAAC,eAAe,OAAA,EAAS;AAC3B,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,MAAA,GAAS,eAAe,SAAS,CAAA;AACvC,IAAA,MAAA,CAAO,SAAS,GAAG,CAAA;AAAA,EACrB;AACF;AAQA,IAAM,cAAA,GAAiB;AAAA,EACrB,EAAA,EAAI,UAAA;AAAA,EACJ,IAAA,EAAM,wBAAA;AAAA,EACN,WAAA,EAAa,sHAAA;AAAA,EAEb,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,QAAA;AAAA,IACN,oBAAA,EAAsB,KAAA;AAAA,IACtB,YAAY;AAAC,GACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,GAAA,EAAuB;AAC9B,IAAA,wBAAA,CAAyB,GAAG,CAAA;AAAA,EAC9B;AACF,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"index.js","sourcesContent":["/**\r\n * @openclaw-china/channels\r\n * 统一渠道包入口\r\n *\r\n * 导出所有渠道插件,提供统一注册函数\r\n *\r\n * Requirements: Unified Package Entry, Unified Distribution\r\n */\r\n\r\n// 导出 DingTalk 插件\nimport {\n dingtalkPlugin,\n DEFAULT_ACCOUNT_ID as DINGTALK_DEFAULT_ACCOUNT_ID,\n sendMessageDingtalk,\n setDingtalkRuntime,\n getDingtalkRuntime,\n} from \"@openclaw-china/dingtalk\";\nimport dingtalkEntry from \"@openclaw-china/dingtalk\";\n\nexport {\n dingtalkPlugin,\n DINGTALK_DEFAULT_ACCOUNT_ID,\n sendMessageDingtalk,\n setDingtalkRuntime,\n getDingtalkRuntime,\n};\n\r\nexport type {\r\n DingtalkConfig,\r\n ResolvedDingtalkAccount,\r\n DingtalkSendResult,\r\n} from \"@openclaw-china/dingtalk\";\r\n\r\n// TODO: 后续添加其他渠道\r\n// export { feishuPlugin } from \"@openclaw-china/feishu\";\r\n// export { wecomPlugin } from \"@openclaw-china/wecom\";\r\n// export { qqPlugin } from \"@openclaw-china/qq\";\r\n\r\n/**\r\n * 渠道配置接口\r\n */\r\nexport interface ChannelConfig {\r\n /** 是否启用该渠道 */\r\n enabled?: boolean;\r\n [key: string]: unknown;\r\n}\r\n\r\n/**\r\n * Moltbot 配置接口(符合官方约定)\r\n * 配置路径: channels.<id>.enabled\r\n */\r\nexport interface MoltbotConfig {\r\n channels?: {\r\n dingtalk?: ChannelConfig;\r\n feishu?: ChannelConfig;\r\n wecom?: ChannelConfig;\r\n qq?: ChannelConfig;\r\n [key: string]: ChannelConfig | undefined;\r\n };\r\n [key: string]: unknown;\r\n}\r\n\r\n/**\r\n * Moltbot 插件 API 接口\r\n */\r\nexport interface MoltbotPluginApi {\r\n registerChannel: (opts: { plugin: unknown }) => void;\r\n runtime?: unknown;\r\n config?: MoltbotConfig;\r\n [key: string]: unknown;\r\n}\r\n\r\n/**\r\n * 支持的渠道列表\r\n */\r\nexport const SUPPORTED_CHANNELS = [\"dingtalk\"] as const;\r\n// TODO: 后续添加 \"feishu\", \"wecom\", \"qq\"\r\n\r\nexport type SupportedChannel = (typeof SUPPORTED_CHANNELS)[number];\n\nconst channelPlugins: Record<SupportedChannel, { register: (api: MoltbotPluginApi) => void }> = {\n dingtalk: {\n register: (api: MoltbotPluginApi) => {\n dingtalkEntry.register(api);\n },\n },\n};\n\r\n/**\r\n * 根据 Moltbot 配置注册启用的渠道\r\n *\r\n * 符合 Moltbot 官方约定:从 cfg.channels.<id>.enabled 读取配置\r\n *\r\n * @param api Moltbot 插件 API\r\n * @param cfg Moltbot 配置(可选,默认从 api.config 读取)\r\n *\r\n * @example\r\n * ```ts\r\n * // moltbot.json 配置\r\n * {\r\n * \"channels\": {\r\n * \"dingtalk\": {\r\n * \"enabled\": true,\r\n * \"clientId\": \"...\",\r\n * \"clientSecret\": \"...\"\r\n * }\r\n * }\r\n * }\r\n * ```\r\n */\r\nexport function registerChannelsByConfig(\n api: MoltbotPluginApi,\n cfg?: MoltbotConfig\n): void {\n // 从 api.config 或传入的 cfg 获取配置\n const config = cfg ?? api.config;\n const channelsConfig = config?.channels;\n\n if (!channelsConfig) {\n return;\n }\n\n for (const channelId of SUPPORTED_CHANNELS) {\n // 符合官方约定:从 channels.<id>.enabled 读取\n const channelConfig = channelsConfig[channelId];\n\n // 跳过未启用的渠道\n if (!channelConfig?.enabled) {\n continue;\n }\n\n const plugin = channelPlugins[channelId];\n plugin.register(api);\n }\n}\n\r\n/**\r\n * 统一渠道插件定义\r\n *\r\n * 包含所有支持的渠道,通过配置启用\r\n * 配置路径符合 Moltbot 官方约定: channels.<id>\r\n */\r\nconst channelsPlugin = {\r\n id: \"channels\",\r\n name: \"Moltbot China Channels\",\r\n description: \"统一渠道包,支持钉钉、飞书、企业微信、QQ\",\r\n\r\n configSchema: {\r\n type: \"object\",\r\n additionalProperties: false,\r\n properties: {},\r\n },\r\n\r\n /**\r\n * 注册所有启用的渠道\r\n *\r\n * 从 api.config.channels.<id>.enabled 读取配置\r\n */\r\n register(api: MoltbotPluginApi) {\n registerChannelsByConfig(api);\n },\n};\n\r\nexport default channelsPlugin;\r\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAuGO,IAAM,kBAAA,GAAqB,CAAC,UAAA,EAAY,QAAQ;AAKvD,IAAM,cAAA,GAA0F;AAAA,EAC9F,QAAA,EAAU;AAAA,IACR,QAAA,EAAU,CAAC,GAAA,KAA0B;AACnC,MAAA,aAAA,CAAc,SAAS,GAAG,CAAA;AAAA,IAC5B;AAAA,GACF;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,QAAA,EAAU,CAAC,GAAA,KAA0B;AACnC,MAAA,WAAA,CAAY,SAAS,GAAG,CAAA;AAAA,IAC1B;AAAA;AACF;AAAA;AAAA;AAAA;AAAA;AAMF,CAAA;AAwBO,SAAS,wBAAA,CACd,KACA,GAAA,EACM;AAEN,EAAA,MAAM,MAAA,GAAS,OAAO,GAAA,CAAI,MAAA;AAC1B,EAAA,MAAM,iBAAiB,MAAA,EAAQ,QAAA;AAE/B,EAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,IAAA;AAAA,EACF;AAEA,EAAA,KAAA,MAAW,aAAa,kBAAA,EAAoB;AAE1C,IAAA,MAAM,aAAA,GAAgB,eAAe,SAAS,CAAA;AAG9C,IAAA,IAAI,CAAC,eAAe,OAAA,EAAS;AAC3B,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,MAAA,GAAS,eAAe,SAAS,CAAA;AACvC,IAAA,MAAA,CAAO,SAAS,GAAG,CAAA;AAAA,EACrB;AACF;AAQA,IAAM,cAAA,GAAiB;AAAA,EACrB,EAAA,EAAI,UAAA;AAAA,EACJ,IAAA,EAAM,wBAAA;AAAA,EACN,WAAA,EAAa,sHAAA;AAAA,EAEb,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,QAAA;AAAA,IACN,oBAAA,EAAsB,KAAA;AAAA,IACtB,YAAY;AAAC,GACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,GAAA,EAAuB;AAC9B,IAAA,wBAAA,CAAyB,GAAG,CAAA;AAAA,EAC9B;AACF,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"index.js","sourcesContent":["/**\r\n * @openclaw-china/channels\r\n * 统一渠道包入口\r\n *\r\n * 导出所有渠道插件,提供统一注册函数\r\n *\r\n * Requirements: Unified Package Entry, Unified Distribution\r\n */\r\n\r\n// 导出 DingTalk 插件\nimport {\n dingtalkPlugin,\n DEFAULT_ACCOUNT_ID as DINGTALK_DEFAULT_ACCOUNT_ID,\n sendMessageDingtalk,\n setDingtalkRuntime,\n getDingtalkRuntime,\n} from \"@openclaw-china/dingtalk\";\nimport dingtalkEntry from \"@openclaw-china/dingtalk\";\nimport {\n feishuPlugin,\n DEFAULT_ACCOUNT_ID as FEISHU_DEFAULT_ACCOUNT_ID,\n sendMessageFeishu,\n setFeishuRuntime,\n getFeishuRuntime,\n} from \"@openclaw-china/feishu\";\nimport feishuEntry from \"@openclaw-china/feishu\";\n// import {\n// wecomPlugin,\n// DEFAULT_ACCOUNT_ID as WECOM_DEFAULT_ACCOUNT_ID,\n// setWecomRuntime,\n// getWecomRuntime,\n// } from \"@openclaw-china/wecom\";\n// import wecomEntry from \"@openclaw-china/wecom\";\n\nexport {\n dingtalkPlugin,\n DINGTALK_DEFAULT_ACCOUNT_ID,\n sendMessageDingtalk,\n setDingtalkRuntime,\n getDingtalkRuntime,\n feishuPlugin,\n FEISHU_DEFAULT_ACCOUNT_ID,\n sendMessageFeishu,\n setFeishuRuntime,\n getFeishuRuntime,\n // wecomPlugin,\n // WECOM_DEFAULT_ACCOUNT_ID,\n // setWecomRuntime,\n // getWecomRuntime,\n};\n\nexport type {\n DingtalkConfig,\n ResolvedDingtalkAccount,\n DingtalkSendResult,\n} from \"@openclaw-china/dingtalk\";\nexport type {\n FeishuConfig,\n ResolvedFeishuAccount,\n FeishuSendResult,\n} from \"@openclaw-china/feishu\";\n// export type { WecomConfig, ResolvedWecomAccount, WecomInboundMessage } from \"@openclaw-china/wecom\";\n\r\n// TODO: 后续添加其他渠道\n// export { qqPlugin } from \"@openclaw-china/qq\";\n\r\n/**\r\n * 渠道配置接口\r\n */\r\nexport interface ChannelConfig {\r\n /** 是否启用该渠道 */\r\n enabled?: boolean;\r\n [key: string]: unknown;\r\n}\r\n\r\n/**\r\n * Moltbot 配置接口(符合官方约定)\r\n * 配置路径: channels.<id>.enabled\r\n */\r\nexport interface MoltbotConfig {\r\n channels?: {\r\n dingtalk?: ChannelConfig;\r\n feishu?: ChannelConfig;\r\n wecom?: ChannelConfig;\r\n qq?: ChannelConfig;\r\n [key: string]: ChannelConfig | undefined;\r\n };\r\n [key: string]: unknown;\r\n}\r\n\r\n/**\r\n * Moltbot 插件 API 接口\r\n */\r\nexport interface MoltbotPluginApi {\r\n registerChannel: (opts: { plugin: unknown }) => void;\r\n runtime?: unknown;\r\n config?: MoltbotConfig;\r\n [key: string]: unknown;\r\n}\r\n\r\n/**\r\n * 支持的渠道列表\r\n */\r\nexport const SUPPORTED_CHANNELS = [\"dingtalk\", \"feishu\"] as const;\n// TODO: 后续添加 \"wecom\", \"qq\"\n\r\nexport type SupportedChannel = (typeof SUPPORTED_CHANNELS)[number];\n\nconst channelPlugins: Record<SupportedChannel, { register: (api: MoltbotPluginApi) => void }> = {\n dingtalk: {\n register: (api: MoltbotPluginApi) => {\n dingtalkEntry.register(api);\n },\n },\n feishu: {\n register: (api: MoltbotPluginApi) => {\n feishuEntry.register(api);\n },\n },\n // wecom: {\n // register: (api: MoltbotPluginApi) => {\n // wecomEntry.register(api);\n // },\n // },\n};\n\r\n/**\r\n * 根据 Moltbot 配置注册启用的渠道\r\n *\r\n * 符合 Moltbot 官方约定:从 cfg.channels.<id>.enabled 读取配置\r\n *\r\n * @param api Moltbot 插件 API\r\n * @param cfg Moltbot 配置(可选,默认从 api.config 读取)\r\n *\r\n * @example\r\n * ```ts\r\n * // moltbot.json 配置\r\n * {\r\n * \"channels\": {\r\n * \"dingtalk\": {\r\n * \"enabled\": true,\r\n * \"clientId\": \"...\",\r\n * \"clientSecret\": \"...\"\r\n * }\r\n * }\r\n * }\r\n * ```\r\n */\r\nexport function registerChannelsByConfig(\n api: MoltbotPluginApi,\n cfg?: MoltbotConfig\n): void {\n // 从 api.config 或传入的 cfg 获取配置\n const config = cfg ?? api.config;\n const channelsConfig = config?.channels;\n\n if (!channelsConfig) {\n return;\n }\n\n for (const channelId of SUPPORTED_CHANNELS) {\n // 符合官方约定:从 channels.<id>.enabled 读取\n const channelConfig = channelsConfig[channelId];\n\n // 跳过未启用的渠道\n if (!channelConfig?.enabled) {\n continue;\n }\n\n const plugin = channelPlugins[channelId];\n plugin.register(api);\n }\n}\n\r\n/**\r\n * 统一渠道插件定义\r\n *\r\n * 包含所有支持的渠道,通过配置启用\r\n * 配置路径符合 Moltbot 官方约定: channels.<id>\r\n */\r\nconst channelsPlugin = {\r\n id: \"channels\",\r\n name: \"Moltbot China Channels\",\r\n description: \"统一渠道包,支持钉钉、飞书、企业微信、QQ\",\r\n\r\n configSchema: {\r\n type: \"object\",\r\n additionalProperties: false,\r\n properties: {},\r\n },\r\n\r\n /**\r\n * 注册所有启用的渠道\r\n *\r\n * 从 api.config.channels.<id>.enabled 读取配置\r\n */\r\n register(api: MoltbotPluginApi) {\n registerChannelsByConfig(api);\n },\n};\n\r\nexport default channelsPlugin;\r\n"]}
@@ -3,7 +3,7 @@
3
3
  "name": "Moltbot China Channels",
4
4
  "description": "统一渠道包,支持钉钉、飞书、企业微信、QQ",
5
5
  "version": "0.1.0",
6
- "channels": ["dingtalk"],
6
+ "channels": ["dingtalk", "feishu"],
7
7
  "configSchema": {
8
8
  "type": "object",
9
9
  "additionalProperties": false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw-china/channels",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "type": "module",
5
5
  "description": "Unified package for all Moltbot China channel plugins",
6
6
  "license": "MIT",
@@ -43,7 +43,8 @@
43
43
  "clean": "rimraf dist"
44
44
  },
45
45
  "dependencies": {
46
- "@openclaw-china/dingtalk": "0.1.9"
46
+ "@openclaw-china/dingtalk": "0.1.11",
47
+ "@openclaw-china/feishu": "0.1.2"
47
48
  },
48
49
  "devDependencies": {
49
50
  "@types/node": "^22.0.0",