feishu-bridge 1.0.7 → 1.0.8
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/cli/index.js +31 -64
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +31 -64
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.js +31 -64
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +31 -64
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -770,9 +770,6 @@ var FeishuWebSocketHandler = class {
|
|
|
770
770
|
this.logger = new Logger();
|
|
771
771
|
this.messageRouter = new MessageRouter(adapters);
|
|
772
772
|
}
|
|
773
|
-
/**
|
|
774
|
-
* 启动WebSocket连接
|
|
775
|
-
*/
|
|
776
773
|
async start() {
|
|
777
774
|
if (this.isRunning) {
|
|
778
775
|
this.logger.warn("WebSocket handler already running");
|
|
@@ -788,71 +785,36 @@ var FeishuWebSocketHandler = class {
|
|
|
788
785
|
loggerLevel: Lark.LoggerLevel.info
|
|
789
786
|
});
|
|
790
787
|
this.eventDispatcher = new Lark.EventDispatcher({
|
|
791
|
-
encryptKey: config.encryptKey,
|
|
792
|
-
verificationToken: config.verificationToken
|
|
788
|
+
encryptKey: config.encryptKey || "",
|
|
789
|
+
verificationToken: config.verificationToken || ""
|
|
793
790
|
});
|
|
794
791
|
this.registerEventHandlers();
|
|
795
|
-
this.
|
|
796
|
-
|
|
797
|
-
});
|
|
798
|
-
this.wsClient.on("error", (error) => {
|
|
799
|
-
this.logger.error("WebSocket error:", error);
|
|
800
|
-
});
|
|
801
|
-
this.wsClient.on("close", () => {
|
|
802
|
-
this.logger.info("WebSocket connection closed");
|
|
803
|
-
if (this.isRunning) {
|
|
804
|
-
this.logger.info("Attempting to reconnect...");
|
|
805
|
-
setTimeout(() => this.start(), 5e3);
|
|
806
|
-
}
|
|
807
|
-
});
|
|
792
|
+
this.logger.info("Starting WebSocket connection...");
|
|
793
|
+
await this.wsClient.start({ eventDispatcher: this.eventDispatcher });
|
|
808
794
|
this.isRunning = true;
|
|
809
|
-
this.logger.info("Feishu WebSocket
|
|
795
|
+
this.logger.info("\u2705 Feishu WebSocket connected successfully!");
|
|
810
796
|
} catch (error) {
|
|
811
|
-
this.logger.error("Failed to start WebSocket handler:", error);
|
|
797
|
+
this.logger.error("\u274C Failed to start WebSocket handler:", error);
|
|
812
798
|
throw error;
|
|
813
799
|
}
|
|
814
800
|
}
|
|
815
|
-
/**
|
|
816
|
-
* 停止WebSocket连接
|
|
817
|
-
*/
|
|
818
|
-
async stop() {
|
|
819
|
-
this.isRunning = false;
|
|
820
|
-
if (this.wsClient) {
|
|
821
|
-
this.wsClient.close();
|
|
822
|
-
this.wsClient = null;
|
|
823
|
-
}
|
|
824
|
-
this.logger.info("WebSocket handler stopped");
|
|
825
|
-
}
|
|
826
|
-
/**
|
|
827
|
-
* 注册事件处理器
|
|
828
|
-
*/
|
|
829
801
|
registerEventHandlers() {
|
|
830
802
|
if (!this.eventDispatcher) return;
|
|
831
|
-
this.eventDispatcher.
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
*/
|
|
844
|
-
async handleEvent(event) {
|
|
845
|
-
try {
|
|
846
|
-
if (this.eventDispatcher) {
|
|
847
|
-
await this.eventDispatcher.dispatch(event);
|
|
803
|
+
this.eventDispatcher.register({
|
|
804
|
+
"im.message.receive_v1": async (event) => {
|
|
805
|
+
await this.handleMessageEvent(event);
|
|
806
|
+
},
|
|
807
|
+
"im.message.message_read_v1": (event) => {
|
|
808
|
+
this.logger.debug("Message read:", event);
|
|
809
|
+
},
|
|
810
|
+
"im.chat.member.bot.added_v1": (event) => {
|
|
811
|
+
this.logger.info("Bot added to chat:", event);
|
|
812
|
+
},
|
|
813
|
+
"im.chat.member.bot.deleted_v1": (event) => {
|
|
814
|
+
this.logger.info("Bot removed from chat:", event);
|
|
848
815
|
}
|
|
849
|
-
}
|
|
850
|
-
this.logger.error("Error dispatching event:", error);
|
|
851
|
-
}
|
|
816
|
+
});
|
|
852
817
|
}
|
|
853
|
-
/**
|
|
854
|
-
* 处理消息事件
|
|
855
|
-
*/
|
|
856
818
|
async handleMessageEvent(event) {
|
|
857
819
|
const { message, sender } = event;
|
|
858
820
|
if (!message || message.message_type !== "text") {
|
|
@@ -867,7 +829,7 @@ var FeishuWebSocketHandler = class {
|
|
|
867
829
|
this.logger.warn("Missing sender ID");
|
|
868
830
|
return;
|
|
869
831
|
}
|
|
870
|
-
this.logger.info(
|
|
832
|
+
this.logger.info(`\u{1F4E8} Received message from ${senderId}: ${text}`);
|
|
871
833
|
const route = await this.messageRouter.route(text);
|
|
872
834
|
if (route.type === "error") {
|
|
873
835
|
await this.client.sendMessage(message.chat_id, {
|
|
@@ -885,7 +847,7 @@ var FeishuWebSocketHandler = class {
|
|
|
885
847
|
}
|
|
886
848
|
if (route.type === "direct" && route.target) {
|
|
887
849
|
const command = this.messageRouter.extractCommand(text);
|
|
888
|
-
this.logger.info(
|
|
850
|
+
this.logger.info(`\u{1F3AF} Routing to ${route.target}: ${command}`);
|
|
889
851
|
await this.client.sendMessage(message.chat_id, {
|
|
890
852
|
msg_type: "text",
|
|
891
853
|
content: { text: `\u23F3 \u6B63\u5728\u6267\u884C: ${command}` }
|
|
@@ -902,20 +864,17 @@ var FeishuWebSocketHandler = class {
|
|
|
902
864
|
});
|
|
903
865
|
}
|
|
904
866
|
} catch (error) {
|
|
905
|
-
this.logger.error("Error processing
|
|
867
|
+
this.logger.error("Error processing event:", error);
|
|
906
868
|
try {
|
|
907
869
|
await this.client.sendMessage(message.chat_id, {
|
|
908
870
|
msg_type: "text",
|
|
909
|
-
content: { text: `\u274C \u5904\u7406\u6D88\u606F\u65F6\u51FA\u9519
|
|
871
|
+
content: { text: `\u274C \u5904\u7406\u6D88\u606F\u65F6\u51FA\u9519` }
|
|
910
872
|
});
|
|
911
873
|
} catch (sendError) {
|
|
912
874
|
this.logger.error("Failed to send error message:", sendError);
|
|
913
875
|
}
|
|
914
876
|
}
|
|
915
877
|
}
|
|
916
|
-
/**
|
|
917
|
-
* 格式化响应
|
|
918
|
-
*/
|
|
919
878
|
formatResponse(result) {
|
|
920
879
|
if (result.success) {
|
|
921
880
|
const output = typeof result.output === "string" ? result.output.substring(0, 2e3) : JSON.stringify(result.output).substring(0, 2e3);
|
|
@@ -929,6 +888,14 @@ ${output}`;
|
|
|
929
888
|
${error.substring(0, 2e3)}`;
|
|
930
889
|
}
|
|
931
890
|
}
|
|
891
|
+
async stop() {
|
|
892
|
+
this.isRunning = false;
|
|
893
|
+
if (this.wsClient) {
|
|
894
|
+
this.wsClient.close();
|
|
895
|
+
this.wsClient = null;
|
|
896
|
+
}
|
|
897
|
+
this.logger.info("WebSocket handler stopped");
|
|
898
|
+
}
|
|
932
899
|
};
|
|
933
900
|
|
|
934
901
|
// src/feishu/client.ts
|