botmux 1.0.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.
- package/.env.example +3 -4
- package/README.en.md +44 -5
- package/README.md +44 -5
- package/dist/adapters/backend/tmux-backend.d.ts +33 -7
- package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
- package/dist/adapters/backend/tmux-backend.js +123 -13
- package/dist/adapters/backend/tmux-backend.js.map +1 -1
- package/dist/adapters/backend/types.d.ts +3 -0
- package/dist/adapters/backend/types.d.ts.map +1 -1
- package/dist/adapters/cli/aiden.d.ts.map +1 -1
- package/dist/adapters/cli/aiden.js +4 -0
- package/dist/adapters/cli/aiden.js.map +1 -1
- package/dist/adapters/cli/claude-code.d.ts.map +1 -1
- package/dist/adapters/cli/claude-code.js +5 -0
- package/dist/adapters/cli/claude-code.js.map +1 -1
- package/dist/adapters/cli/coco.d.ts.map +1 -1
- package/dist/adapters/cli/coco.js +5 -0
- package/dist/adapters/cli/coco.js.map +1 -1
- package/dist/adapters/cli/codex.d.ts.map +1 -1
- package/dist/adapters/cli/codex.js +3 -0
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +3 -0
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/cli.js +1 -4
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -2
- package/dist/config.js.map +1 -1
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +8 -7
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/session-manager.d.ts +2 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +37 -5
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +41 -0
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +28 -11
- package/dist/daemon.js.map +1 -1
- package/dist/im/lark/client.d.ts +2 -3
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +5 -16
- package/dist/im/lark/client.js.map +1 -1
- package/dist/services/project-scanner.d.ts +4 -0
- package/dist/services/project-scanner.d.ts.map +1 -1
- package/dist/services/project-scanner.js +22 -0
- package/dist/services/project-scanner.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +13 -6
- package/dist/utils/logger.js.map +1 -1
- package/dist/worker.js +30 -5
- package/dist/worker.js.map +1 -1
- package/ecosystem.config.cjs +2 -2
- package/package.json +1 -1
- package/dist/scheduler.d.ts +0 -38
- package/dist/scheduler.d.ts.map +0 -1
- package/dist/scheduler.js +0 -221
- package/dist/scheduler.js.map +0 -1
- package/dist/services/lark-client.d.ts +0 -22
- package/dist/services/lark-client.d.ts.map +0 -1
- package/dist/services/lark-client.js +0 -238
- package/dist/services/lark-client.js.map +0 -1
- package/dist/services/lark-ws.d.ts +0 -5
- package/dist/services/lark-ws.d.ts.map +0 -1
- package/dist/services/lark-ws.js +0 -79
- package/dist/services/lark-ws.js.map +0 -1
- package/dist/services/message-router.d.ts +0 -8
- package/dist/services/message-router.d.ts.map +0 -1
- package/dist/services/message-router.js +0 -73
- package/dist/services/message-router.js.map +0 -1
- package/dist/tools/close-session.d.ts +0 -22
- package/dist/tools/close-session.d.ts.map +0 -1
- package/dist/tools/close-session.js +0 -38
- package/dist/tools/close-session.js.map +0 -1
- package/dist/tools/create-session.d.ts +0 -28
- package/dist/tools/create-session.d.ts.map +0 -1
- package/dist/tools/create-session.js +0 -40
- package/dist/tools/create-session.js.map +0 -1
- package/dist/tools/wait-for-reply.d.ts +0 -17
- package/dist/tools/wait-for-reply.d.ts.map +0 -1
- package/dist/tools/wait-for-reply.js +0 -65
- package/dist/tools/wait-for-reply.js.map +0 -1
- package/dist/utils/card-builder.d.ts +0 -16
- package/dist/utils/card-builder.d.ts.map +0 -1
- package/dist/utils/card-builder.js +0 -183
- package/dist/utils/card-builder.js.map +0 -1
- package/dist/utils/message-parser.d.ts +0 -45
- package/dist/utils/message-parser.d.ts.map +0 -1
- package/dist/utils/message-parser.js +0 -132
- 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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"}
|