botmux 1.1.0 → 1.2.0

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.
Files changed (59) hide show
  1. package/.env.example +1 -1
  2. package/README.en.md +1 -1
  3. package/README.md +1 -1
  4. package/dist/cli.js +0 -0
  5. package/dist/config.d.ts +1 -0
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +2 -1
  8. package/dist/config.js.map +1 -1
  9. package/dist/core/command-handler.d.ts.map +1 -1
  10. package/dist/core/command-handler.js +8 -7
  11. package/dist/core/command-handler.js.map +1 -1
  12. package/dist/core/session-manager.d.ts +2 -0
  13. package/dist/core/session-manager.d.ts.map +1 -1
  14. package/dist/core/session-manager.js +16 -0
  15. package/dist/core/session-manager.js.map +1 -1
  16. package/dist/daemon.d.ts.map +1 -1
  17. package/dist/daemon.js +8 -8
  18. package/dist/daemon.js.map +1 -1
  19. package/dist/services/project-scanner.d.ts +4 -0
  20. package/dist/services/project-scanner.d.ts.map +1 -1
  21. package/dist/services/project-scanner.js +22 -0
  22. package/dist/services/project-scanner.js.map +1 -1
  23. package/package.json +1 -1
  24. package/dist/scheduler.d.ts +0 -38
  25. package/dist/scheduler.d.ts.map +0 -1
  26. package/dist/scheduler.js +0 -221
  27. package/dist/scheduler.js.map +0 -1
  28. package/dist/services/lark-client.d.ts +0 -22
  29. package/dist/services/lark-client.d.ts.map +0 -1
  30. package/dist/services/lark-client.js +0 -238
  31. package/dist/services/lark-client.js.map +0 -1
  32. package/dist/services/lark-ws.d.ts +0 -5
  33. package/dist/services/lark-ws.d.ts.map +0 -1
  34. package/dist/services/lark-ws.js +0 -79
  35. package/dist/services/lark-ws.js.map +0 -1
  36. package/dist/services/message-router.d.ts +0 -8
  37. package/dist/services/message-router.d.ts.map +0 -1
  38. package/dist/services/message-router.js +0 -73
  39. package/dist/services/message-router.js.map +0 -1
  40. package/dist/tools/close-session.d.ts +0 -22
  41. package/dist/tools/close-session.d.ts.map +0 -1
  42. package/dist/tools/close-session.js +0 -38
  43. package/dist/tools/close-session.js.map +0 -1
  44. package/dist/tools/create-session.d.ts +0 -28
  45. package/dist/tools/create-session.d.ts.map +0 -1
  46. package/dist/tools/create-session.js +0 -40
  47. package/dist/tools/create-session.js.map +0 -1
  48. package/dist/tools/wait-for-reply.d.ts +0 -17
  49. package/dist/tools/wait-for-reply.d.ts.map +0 -1
  50. package/dist/tools/wait-for-reply.js +0 -65
  51. package/dist/tools/wait-for-reply.js.map +0 -1
  52. package/dist/utils/card-builder.d.ts +0 -16
  53. package/dist/utils/card-builder.d.ts.map +0 -1
  54. package/dist/utils/card-builder.js +0 -183
  55. package/dist/utils/card-builder.js.map +0 -1
  56. package/dist/utils/message-parser.d.ts +0 -45
  57. package/dist/utils/message-parser.d.ts.map +0 -1
  58. package/dist/utils/message-parser.js +0 -132
  59. package/dist/utils/message-parser.js.map +0 -1
@@ -1,132 +0,0 @@
1
- import { logger } from './logger.js';
2
- export function extractResources(msgType, rawContent) {
3
- try {
4
- const parsed = JSON.parse(rawContent);
5
- if (msgType === 'image') {
6
- const imageKey = parsed.image_key;
7
- if (imageKey) {
8
- return [{ type: 'image', key: imageKey, name: `${imageKey}.jpg` }];
9
- }
10
- }
11
- if (msgType === 'file') {
12
- const fileKey = parsed.file_key;
13
- if (fileKey) {
14
- return [{ type: 'file', key: fileKey, name: parsed.file_name ?? fileKey }];
15
- }
16
- }
17
- if (msgType === 'post') {
18
- const resources = [];
19
- const { content: contentBlocks } = resolvePostBody(parsed);
20
- for (const block of contentBlocks) {
21
- const nodes = Array.isArray(block) ? block : [block];
22
- for (const node of nodes) {
23
- if (node.tag === 'img' && node.image_key) {
24
- resources.push({ type: 'image', key: node.image_key, name: `${node.image_key}.jpg` });
25
- }
26
- }
27
- }
28
- return resources;
29
- }
30
- }
31
- catch {
32
- // ignore parse errors
33
- }
34
- return [];
35
- }
36
- export function parseEventMessage(data) {
37
- const { sender, message } = data;
38
- // Debug: log raw message for non-text types
39
- if (message.message_type !== 'text') {
40
- logger.info(`[parser] type=${message.message_type} content=${message.content} keys=${Object.keys(message).join(',')}`);
41
- }
42
- const resources = extractResources(message.message_type, message.content);
43
- const parsed = {
44
- messageId: message.message_id,
45
- rootId: message.root_id ?? '',
46
- senderId: sender.sender_id?.open_id ?? '',
47
- senderType: sender.sender_type,
48
- msgType: message.message_type,
49
- content: extractTextContent(message.message_type, message.content, message.mentions),
50
- createTime: message.create_time,
51
- };
52
- return { parsed, resources };
53
- }
54
- export function parseApiMessage(msg) {
55
- return {
56
- messageId: msg.message_id ?? '',
57
- rootId: msg.root_id ?? msg.thread_id ?? '',
58
- senderId: msg.sender?.id ?? '',
59
- senderType: msg.sender?.sender_type ?? 'unknown',
60
- msgType: msg.msg_type ?? 'text',
61
- content: extractTextContent(msg.msg_type ?? 'text', msg.body?.content ?? ''),
62
- createTime: msg.create_time ?? '',
63
- };
64
- }
65
- /** Resolve post body from either wrapped {"zh_cn":{title,content}} or unwrapped {title,content} format */
66
- function resolvePostBody(parsed) {
67
- // Unwrapped: has content array directly
68
- if (Array.isArray(parsed.content)) {
69
- return { title: parsed.title ?? '', content: parsed.content };
70
- }
71
- // Wrapped in language key: {"zh_cn": {title, content}}
72
- for (const key of Object.keys(parsed)) {
73
- const val = parsed[key];
74
- if (val && typeof val === 'object' && Array.isArray(val.content)) {
75
- return { title: val.title ?? '', content: val.content };
76
- }
77
- }
78
- return { title: '', content: [] };
79
- }
80
- function resolveMentions(text, mentions) {
81
- if (!mentions || mentions.length === 0) {
82
- // No mention info available — strip placeholders
83
- return text.replace(/@_user_\d+/g, '').replace(/\s{2,}/g, ' ').trim();
84
- }
85
- let result = text;
86
- for (const m of mentions) {
87
- result = result.replace(m.key, `@${m.name}`);
88
- }
89
- return result.trim();
90
- }
91
- function extractTextContent(msgType, rawContent, mentions) {
92
- try {
93
- if (msgType === 'text') {
94
- const parsed = JSON.parse(rawContent);
95
- return resolveMentions(parsed.text ?? rawContent, mentions);
96
- }
97
- if (msgType === 'post') {
98
- const parsed = JSON.parse(rawContent);
99
- const { title, content } = resolvePostBody(parsed);
100
- const body = content
101
- .flat()
102
- .filter((node) => node.tag === 'text' || node.tag === 'a' || node.tag === 'at')
103
- .map((node) => {
104
- if (node.tag === 'at')
105
- return `@${node.user_name ?? 'unknown'}`;
106
- return node.text ?? node.href ?? '';
107
- })
108
- .join('');
109
- return title ? `${title}\n${body}` : body;
110
- }
111
- if (msgType === 'image') {
112
- return '[图片]';
113
- }
114
- if (msgType === 'file') {
115
- try {
116
- const p = JSON.parse(rawContent);
117
- return `[文件: ${p.file_name ?? 'unknown'}]`;
118
- }
119
- catch {
120
- return '[文件]';
121
- }
122
- }
123
- if (msgType === 'interactive') {
124
- return '[interactive card]';
125
- }
126
- return rawContent;
127
- }
128
- catch {
129
- return rawContent;
130
- }
131
- }
132
- //# sourceMappingURL=message-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-parser.js","sourceRoot":"","sources":["../../src/utils/message-parser.ts"],"names":[],"mappings":"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"}