@lih-x-x/kmr 1.0.61 → 1.0.63

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.
@@ -47,6 +47,35 @@ var UserResolver = class {
47
47
  console.error(`[user-resolver] \u52A0\u8F7D\u7FA4\u6210\u5458\u5931\u8D25:`, err.message);
48
48
  }
49
49
  }
50
+ /**
51
+ * 根据 open_id 反查姓名
52
+ */
53
+ resolveName(openId) {
54
+ for (const [name, id] of this.nameMap) {
55
+ if (id === openId) return name;
56
+ }
57
+ return void 0;
58
+ }
59
+ /**
60
+ * 根据 open_id 反查姓名,缓存中没有则调飞书接口查询
61
+ */
62
+ async resolveNameById(openId) {
63
+ const cached = this.resolveName(openId);
64
+ if (cached) return cached;
65
+ try {
66
+ const res = await this.client.contact.user.get({
67
+ path: { user_id: openId },
68
+ params: { user_id_type: "open_id" }
69
+ });
70
+ const name = res.data?.user?.name;
71
+ if (name) {
72
+ this.nameMap.set(name, openId);
73
+ return name;
74
+ }
75
+ } catch {
76
+ }
77
+ return void 0;
78
+ }
50
79
  /**
51
80
  * 获取当前所有已缓存的映射
52
81
  */
package/dist/cli.js CHANGED
@@ -6,9 +6,9 @@ async function checkUpdate() {
6
6
  try {
7
7
  const res = await fetch(`https://registry.npmjs.org/${"@lih-x-x/kmr"}/latest`, { signal: AbortSignal.timeout(3e3) });
8
8
  const data = await res.json();
9
- if (data.version && data.version !== "1.0.61") {
9
+ if (data.version && data.version !== "1.0.63") {
10
10
  console.log(`
11
- \u2B06\uFE0F \u65B0\u7248\u672C\u53EF\u7528: ${"1.0.61"} \u2192 ${data.version}`);
11
+ \u2B06\uFE0F \u65B0\u7248\u672C\u53EF\u7528: ${"1.0.63"} \u2192 ${data.version}`);
12
12
  console.log(` \u8FD0\u884C npm install -g ${"@lih-x-x/kmr"} \u66F4\u65B0
13
13
  `);
14
14
  }
@@ -56,7 +56,7 @@ KMR\uFF08Key Meetings Record\uFF09\u2014 \u4F1A\u8BAE\u6316\u6398\u673A
56
56
  kmr --help \u663E\u793A\u5E2E\u52A9
57
57
  `);
58
58
  } else if (command === "--version" || command === "-v") {
59
- console.log("1.0.61");
59
+ console.log("1.0.63");
60
60
  } else if (command === "list") {
61
61
  const { loadConfig } = await import("./config-WIQGW5OC.js");
62
62
  const { JsonStore } = await import("./jsonStore-AL73KEUG.js");
@@ -163,7 +163,7 @@ KMR\uFF08Key Meetings Record\uFF09\u2014 \u4F1A\u8BAE\u6316\u6398\u673A
163
163
  const { loadConfig } = await import("./config-WIQGW5OC.js");
164
164
  const { createLarkClient } = await import("./client-DFBBDD77.js");
165
165
  const { TaskCreator } = await import("./taskCreator-TCI3VB5D.js");
166
- const { UserResolver } = await import("./userResolver-DTWOTVP6.js");
166
+ const { UserResolver } = await import("./userResolver-F76R3ZMT.js");
167
167
  const { JsonStore } = await import("./jsonStore-AL73KEUG.js");
168
168
  const config = loadConfig();
169
169
  const client = createLarkClient(config);
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ import {
28
28
  } from "./chunk-XQVLJTP4.js";
29
29
  import {
30
30
  UserResolver
31
- } from "./chunk-2IG4NXRZ.js";
31
+ } from "./chunk-GRHQV2FL.js";
32
32
 
33
33
  // src/index.ts
34
34
  import fs3 from "fs";
@@ -634,7 +634,8 @@ var SessionManager = class {
634
634
  const sessionName = await this.ensureSession(userId);
635
635
  let fullText = text;
636
636
  if (context) {
637
- const env = context.isGroup ? "\u3010\u5F53\u524D\u73AF\u5883\uFF1A\u7FA4\u804A\u3002\u4F60\u7684\u56DE\u590D\u4F1A\u53D1\u9001\u5230\u7FA4\u91CC\uFF0C\u5982\u679C\u9700\u8981\u6307\u5B9A\u5BF9\u8C61\u5BF9\u8BDD\uFF0C\u53EF\u4EE5\u76F4\u63A5\u7528 @\u59D3\u540D \u6765\u63D0\u9192\u7FA4\u5185\u6210\u5458\u3002\u3011" : "\u3010\u5F53\u524D\u73AF\u5883\uFF1A\u79C1\u804A\u3002\u65E0\u6CD5\u76F4\u63A5 @\u4ED6\u4EBA\uFF0C\u5982\u9700\u901A\u77E5\u4ED6\u4EBA\u8BF7\u62DF\u5236\u6D88\u606F\u5185\u5BB9\u8BA9\u7528\u6237\u8F6C\u53D1\u3002\u3011";
637
+ const senderHint = context.senderName ? `\u53D1\u9001\u8005\uFF1A${context.senderName}\uFF08open_id: ${userId}\uFF09` : `\u53D1\u9001\u8005 open_id: ${userId}`;
638
+ const env = context.isGroup ? `\u3010\u5F53\u524D\u73AF\u5883\uFF1A\u7FA4\u804A\u3002${senderHint}\u3002\u4F60\u7684\u56DE\u590D\u4F1A\u53D1\u9001\u5230\u7FA4\u91CC\uFF0C\u5982\u679C\u9700\u8981\u6307\u5B9A\u5BF9\u8C61\u5BF9\u8BDD\uFF0C\u53EF\u4EE5\u76F4\u63A5\u7528 @\u59D3\u540D \u6765\u63D0\u9192\u7FA4\u5185\u6210\u5458\u3002\u3011` : `\u3010\u5F53\u524D\u73AF\u5883\uFF1A\u79C1\u804A\u3002${senderHint}\u3002\u65E0\u6CD5\u76F4\u63A5 @\u4ED6\u4EBA\uFF0C\u5982\u9700\u901A\u77E5\u4ED6\u4EBA\u8BF7\u62DF\u5236\u6D88\u606F\u5185\u5BB9\u8BA9\u7528\u6237\u8F6C\u53D1\u3002\u3011`;
638
639
  fullText = `${env}
639
640
  ${text}`;
640
641
  }
@@ -874,6 +875,8 @@ async function main() {
874
875
  const dispatcher = createEventDispatcher(botOpenId, async (messageId, text, chatId, senderId, meta) => {
875
876
  const parsed = parseMessage(text);
876
877
  console.log(`[message] \u6536\u5230\u6D88\u606F: "${text}" (chatId=${chatId}, senderId=${senderId})`);
878
+ userResolver.loadChatMembers(chatId).catch(() => {
879
+ });
877
880
  if (meta.isGroup && !meta.isMentioned && parsed.type === "document_link" /* DOCUMENT_LINK */) {
878
881
  const title = await docReader.getDocumentTitle(parsed.documentId);
879
882
  const isMeetingNote = /纪要|会议记录|meeting/i.test(title) || /from=vc_assistant/.test(text);
@@ -1059,7 +1062,8 @@ async function main() {
1059
1062
  }
1060
1063
  console.log(`[process] \u81EA\u7531\u5BF9\u8BDD, userId=${senderId}`);
1061
1064
  const reactionId = await messenger.addReaction(messageId, "OnIt");
1062
- const reply = await sessionManager.handleMessage(senderId, text, { isGroup: meta.isGroup });
1065
+ const senderName = await userResolver.resolveNameById(senderId);
1066
+ const reply = await sessionManager.handleMessage(senderId, text, { isGroup: meta.isGroup, senderName });
1063
1067
  await messenger.removeReaction(messageId, reactionId);
1064
1068
  await messenger.replyText(messageId, reply);
1065
1069
  break;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  UserResolver
3
- } from "./chunk-2IG4NXRZ.js";
3
+ } from "./chunk-GRHQV2FL.js";
4
4
  export {
5
5
  UserResolver
6
6
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lih-x-x/kmr",
3
- "version": "1.0.61",
3
+ "version": "1.0.63",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {