@cereworker/channels 0.3.0 → 0.6.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/dist/adapters/discord.d.ts.map +1 -1
- package/dist/adapters/discord.js +4 -22
- package/dist/adapters/discord.js.map +1 -1
- package/dist/adapters/feishu.d.ts.map +1 -1
- package/dist/adapters/feishu.js +23 -16
- package/dist/adapters/feishu.js.map +1 -1
- package/dist/adapters/matrix.d.ts.map +1 -1
- package/dist/adapters/matrix.js +9 -2
- package/dist/adapters/matrix.js.map +1 -1
- package/dist/adapters/slack.d.ts.map +1 -1
- package/dist/adapters/slack.js +17 -9
- package/dist/adapters/slack.js.map +1 -1
- package/dist/adapters/telegram.d.ts.map +1 -1
- package/dist/adapters/telegram.js +4 -21
- package/dist/adapters/telegram.js.map +1 -1
- package/dist/adapters/wechat.d.ts.map +1 -1
- package/dist/adapters/wechat.js +5 -22
- package/dist/adapters/wechat.js.map +1 -1
- package/dist/chunking.d.ts +18 -0
- package/dist/chunking.d.ts.map +1 -0
- package/dist/chunking.js +134 -0
- package/dist/chunking.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../src/adapters/discord.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../src/adapters/discord.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,aAAa,CAAC;AAGlG,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,aAAa,CAqFhF"}
|
package/dist/adapters/discord.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Client, GatewayIntentBits, Events } from 'discord.js';
|
|
2
|
+
import { chunkMarkdown, CHANNEL_LIMITS } from '../chunking.js';
|
|
2
3
|
export function createDiscordChannel(config) {
|
|
3
4
|
let client = null;
|
|
4
5
|
let connected = false;
|
|
6
|
+
const limit = CHANNEL_LIMITS.discord;
|
|
5
7
|
return {
|
|
6
8
|
id: 'discord',
|
|
7
9
|
meta: { name: 'Discord', emoji: 'D' },
|
|
@@ -40,8 +42,7 @@ export function createDiscordChannel(config) {
|
|
|
40
42
|
};
|
|
41
43
|
const response = await handler(inbound);
|
|
42
44
|
if (response) {
|
|
43
|
-
|
|
44
|
-
const chunks = chunkText(response, 2000);
|
|
45
|
+
const chunks = chunkMarkdown(response, limit);
|
|
45
46
|
for (const chunk of chunks) {
|
|
46
47
|
await message.reply(chunk);
|
|
47
48
|
}
|
|
@@ -61,7 +62,7 @@ export function createDiscordChannel(config) {
|
|
|
61
62
|
throw new Error('Discord not started');
|
|
62
63
|
const channel = await client.channels.fetch(msg.to);
|
|
63
64
|
if (channel && 'send' in channel) {
|
|
64
|
-
const chunks =
|
|
65
|
+
const chunks = chunkMarkdown(msg.text, limit);
|
|
65
66
|
for (const chunk of chunks) {
|
|
66
67
|
await channel.send(chunk);
|
|
67
68
|
}
|
|
@@ -77,23 +78,4 @@ export function createDiscordChannel(config) {
|
|
|
77
78
|
},
|
|
78
79
|
};
|
|
79
80
|
}
|
|
80
|
-
function chunkText(text, limit) {
|
|
81
|
-
if (text.length <= limit)
|
|
82
|
-
return [text];
|
|
83
|
-
const chunks = [];
|
|
84
|
-
let remaining = text;
|
|
85
|
-
while (remaining.length > 0) {
|
|
86
|
-
if (remaining.length <= limit) {
|
|
87
|
-
chunks.push(remaining);
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
// Try to break at a newline
|
|
91
|
-
let breakAt = remaining.lastIndexOf('\n', limit);
|
|
92
|
-
if (breakAt <= 0)
|
|
93
|
-
breakAt = limit;
|
|
94
|
-
chunks.push(remaining.slice(0, breakAt));
|
|
95
|
-
remaining = remaining.slice(breakAt).trimStart();
|
|
96
|
-
}
|
|
97
|
-
return chunks;
|
|
98
|
-
}
|
|
99
81
|
//# sourceMappingURL=discord.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discord.js","sourceRoot":"","sources":["../../src/adapters/discord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAkC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"discord.js","sourceRoot":"","sources":["../../src/adapters/discord.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feishu.d.ts","sourceRoot":"","sources":["../../src/adapters/feishu.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"feishu.d.ts","sourceRoot":"","sources":["../../src/adapters/feishu.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,aAAa,CAAC;AAGlG,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAqH9E"}
|
package/dist/adapters/feishu.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as lark from '@larksuiteoapi/node-sdk';
|
|
2
|
+
import { chunkMarkdown, CHANNEL_LIMITS } from '../chunking.js';
|
|
2
3
|
export function createFeishuChannel(config) {
|
|
3
4
|
let client = null;
|
|
4
5
|
let eventDispatcher = null;
|
|
@@ -52,14 +53,17 @@ export function createFeishuChannel(config) {
|
|
|
52
53
|
const response = await messageHandler(inbound);
|
|
53
54
|
if (response && client) {
|
|
54
55
|
const chatId = message.chat_id;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
const chunks = chunkMarkdown(response, CHANNEL_LIMITS.feishu);
|
|
57
|
+
for (const chunk of chunks) {
|
|
58
|
+
await client.im.message.create({
|
|
59
|
+
params: { receive_id_type: 'chat_id' },
|
|
60
|
+
data: {
|
|
61
|
+
receive_id: chatId,
|
|
62
|
+
msg_type: 'text',
|
|
63
|
+
content: JSON.stringify({ text: chunk }),
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
}
|
|
63
67
|
}
|
|
64
68
|
},
|
|
65
69
|
});
|
|
@@ -81,14 +85,17 @@ export function createFeishuChannel(config) {
|
|
|
81
85
|
async send(msg) {
|
|
82
86
|
if (!client)
|
|
83
87
|
throw new Error('Feishu not started');
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
88
|
+
const chunks = chunkMarkdown(msg.text, CHANNEL_LIMITS.feishu);
|
|
89
|
+
for (const chunk of chunks) {
|
|
90
|
+
await client.im.message.create({
|
|
91
|
+
params: { receive_id_type: 'chat_id' },
|
|
92
|
+
data: {
|
|
93
|
+
receive_id: msg.to,
|
|
94
|
+
msg_type: 'text',
|
|
95
|
+
content: JSON.stringify({ text: chunk }),
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
}
|
|
92
99
|
},
|
|
93
100
|
isAllowed(senderId) {
|
|
94
101
|
if (config.allowFrom.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feishu.js","sourceRoot":"","sources":["../../src/adapters/feishu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"feishu.js","sourceRoot":"","sources":["../../src/adapters/feishu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAU/D,MAAM,UAAU,mBAAmB,CAAC,MAA2B;IAC7D,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,IAAI,eAAe,GAAgC,IAAI,CAAC;IACxD,IAAI,QAAQ,GAAmB,IAAI,CAAC;IACpC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,cAAc,GAA0B,IAAI,CAAC;IAEjD,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;QAEpC,KAAK,CAAC,KAAK,CAAC,OAAuB;YACjC,cAAc,GAAG,OAAO,CAAC;YAEzB,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;gBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;aAChC,CAAC,CAAC;YAEH,eAAe,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC;gBACzC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;YAEH,sBAAsB;YACtB,eAAe,CAAC,QAAQ,CAAC;gBACvB,uBAAuB,EAAE,KAAK,EAAE,IAA6B,EAAE,EAAE;oBAC/D,IAAI,CAAC,cAAc;wBAAE,OAAO;oBAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAA8C,CAAC;oBACpE,IAAI,CAAC,OAAO;wBAAE,OAAO;oBAErB,MAAM,OAAO,GAAG,OAAO,CAAC,YAAsB,CAAC;oBAC/C,IAAI,OAAO,KAAK,MAAM;wBAAE,OAAO;oBAE/B,IAAI,IAAI,GAAG,EAAE,CAAC;oBACd,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAiB,CAAC,CAAC;wBACtD,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC5B,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO;oBACT,CAAC;oBAED,IAAI,CAAC,IAAI;wBAAE,OAAO;oBAElB,MAAM,MAAM,GAAG,IAAI,CAAC,MAA6C,CAAC;oBAClE,MAAM,QAAQ,GAAI,MAAM,EAAE,SAAqC,EAAE,OAAiB,IAAI,EAAE,CAAC;oBAEzF,MAAM,OAAO,GAAmB;wBAC9B,SAAS,EAAE,QAAQ;wBACnB,QAAQ;wBACR,IAAI;wBACJ,QAAQ,EAAE,OAAO,CAAC,OAA6B;wBAC/C,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;qBACrD,CAAC;oBAEF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;oBAC/C,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;wBACvB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAiB,CAAC;wBACzC,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;wBAC9D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4BAC3B,MAAM,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;gCAC7B,MAAM,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE;gCACtC,IAAI,EAAE;oCACJ,UAAU,EAAE,MAAM;oCAClB,QAAQ,EAAE,MAAM;oCAChB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;iCACzC;6BACF,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YAEH,4CAA4C;YAC5C,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;aACnC,CAAC,CAAC;YAEH,MAAO,QAA0B,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;YAC7D,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,KAAK,CAAC,IAAI;YACR,SAAS,GAAG,KAAK,CAAC;YAClB,QAAQ,GAAG,IAAI,CAAC;YAChB,eAAe,GAAG,IAAI,CAAC;YACvB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAoB;YAC7B,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;YAC9D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC7B,MAAM,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE;oBACtC,IAAI,EAAE;wBACJ,UAAU,EAAE,GAAG,CAAC,EAAE;wBAClB,QAAQ,EAAE,MAAM;wBAChB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;qBACzC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,SAAS,CAAC,QAAgB;YACxB,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/C,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAED,WAAW;YACT,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../src/adapters/matrix.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../src/adapters/matrix.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,aAAa,CAAC;AAGlG,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAqE9E"}
|
package/dist/adapters/matrix.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import sdk from 'matrix-js-sdk';
|
|
2
|
+
import { chunkMarkdown, CHANNEL_LIMITS } from '../chunking.js';
|
|
2
3
|
export function createMatrixChannel(config) {
|
|
3
4
|
let client = null;
|
|
4
5
|
let connected = false;
|
|
@@ -31,7 +32,10 @@ export function createMatrixChannel(config) {
|
|
|
31
32
|
};
|
|
32
33
|
const response = await handler(inbound);
|
|
33
34
|
if (response) {
|
|
34
|
-
|
|
35
|
+
const chunks = chunkMarkdown(response, CHANNEL_LIMITS.matrix);
|
|
36
|
+
for (const chunk of chunks) {
|
|
37
|
+
await client.sendTextMessage(room.roomId, chunk);
|
|
38
|
+
}
|
|
35
39
|
}
|
|
36
40
|
});
|
|
37
41
|
await client.startClient({ initialSyncLimit: 0 });
|
|
@@ -46,7 +50,10 @@ export function createMatrixChannel(config) {
|
|
|
46
50
|
async send(msg) {
|
|
47
51
|
if (!client)
|
|
48
52
|
throw new Error('Matrix not started');
|
|
49
|
-
|
|
53
|
+
const chunks = chunkMarkdown(msg.text, CHANNEL_LIMITS.matrix);
|
|
54
|
+
for (const chunk of chunks) {
|
|
55
|
+
await client.sendTextMessage(msg.to, chunk);
|
|
56
|
+
}
|
|
50
57
|
},
|
|
51
58
|
isAllowed(senderId) {
|
|
52
59
|
if (config.allowFrom.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../src/adapters/matrix.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../src/adapters/matrix.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../src/adapters/slack.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../src/adapters/slack.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,aAAa,CAAC;AAGlG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,aAAa,CAyE5E"}
|
package/dist/adapters/slack.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { App as SlackApp } from '@slack/bolt';
|
|
2
|
+
import { chunkMarkdown, CHANNEL_LIMITS } from '../chunking.js';
|
|
2
3
|
export function createSlackChannel(config) {
|
|
3
4
|
let app = null;
|
|
4
5
|
let connected = false;
|
|
6
|
+
const limit = CHANNEL_LIMITS.slack;
|
|
5
7
|
return {
|
|
6
8
|
id: 'slack',
|
|
7
9
|
meta: { name: 'Slack', emoji: '#' },
|
|
@@ -26,10 +28,13 @@ export function createSlackChannel(config) {
|
|
|
26
28
|
};
|
|
27
29
|
const response = await handler(inbound);
|
|
28
30
|
if (response) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
const chunks = chunkMarkdown(response, limit);
|
|
32
|
+
for (const chunk of chunks) {
|
|
33
|
+
await say({
|
|
34
|
+
text: chunk,
|
|
35
|
+
thread_ts: inbound.threadId ?? message.ts,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
33
38
|
}
|
|
34
39
|
});
|
|
35
40
|
await app.start();
|
|
@@ -44,11 +49,14 @@ export function createSlackChannel(config) {
|
|
|
44
49
|
async send(msg) {
|
|
45
50
|
if (!app)
|
|
46
51
|
throw new Error('Slack not started');
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
const chunks = chunkMarkdown(msg.text, limit);
|
|
53
|
+
for (const chunk of chunks) {
|
|
54
|
+
await app.client.chat.postMessage({
|
|
55
|
+
channel: msg.to,
|
|
56
|
+
text: chunk,
|
|
57
|
+
thread_ts: msg.threadId,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
52
60
|
},
|
|
53
61
|
isAllowed(senderId) {
|
|
54
62
|
if (config.allowFrom.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack.js","sourceRoot":"","sources":["../../src/adapters/slack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,QAAQ,EAAiC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"slack.js","sourceRoot":"","sources":["../../src/adapters/slack.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/adapters/telegram.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/adapters/telegram.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,aAAa,CAAC;AAGlG,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,aAAa,CA2ElF"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Telegraf } from 'telegraf';
|
|
2
|
+
import { chunkMarkdown, CHANNEL_LIMITS } from '../chunking.js';
|
|
2
3
|
export function createTelegramChannel(config) {
|
|
3
4
|
let bot = null;
|
|
4
5
|
let connected = false;
|
|
6
|
+
const limit = CHANNEL_LIMITS.telegram;
|
|
5
7
|
return {
|
|
6
8
|
id: 'telegram',
|
|
7
9
|
meta: { name: 'Telegram', emoji: 'T' },
|
|
@@ -23,8 +25,7 @@ export function createTelegramChannel(config) {
|
|
|
23
25
|
};
|
|
24
26
|
const response = await handler(inbound);
|
|
25
27
|
if (response) {
|
|
26
|
-
|
|
27
|
-
const chunks = chunkText(response, 4096);
|
|
28
|
+
const chunks = chunkMarkdown(response, limit);
|
|
28
29
|
for (const chunk of chunks) {
|
|
29
30
|
await ctx.reply(chunk, {
|
|
30
31
|
reply_parameters: { message_id: message.message_id },
|
|
@@ -48,7 +49,7 @@ export function createTelegramChannel(config) {
|
|
|
48
49
|
async send(msg) {
|
|
49
50
|
if (!bot)
|
|
50
51
|
throw new Error('Telegram not started');
|
|
51
|
-
const chunks =
|
|
52
|
+
const chunks = chunkMarkdown(msg.text, limit);
|
|
52
53
|
for (const chunk of chunks) {
|
|
53
54
|
await bot.telegram.sendMessage(msg.to, chunk, {
|
|
54
55
|
reply_parameters: msg.replyToId
|
|
@@ -67,22 +68,4 @@ export function createTelegramChannel(config) {
|
|
|
67
68
|
},
|
|
68
69
|
};
|
|
69
70
|
}
|
|
70
|
-
function chunkText(text, limit) {
|
|
71
|
-
if (text.length <= limit)
|
|
72
|
-
return [text];
|
|
73
|
-
const chunks = [];
|
|
74
|
-
let remaining = text;
|
|
75
|
-
while (remaining.length > 0) {
|
|
76
|
-
if (remaining.length <= limit) {
|
|
77
|
-
chunks.push(remaining);
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
let breakAt = remaining.lastIndexOf('\n', limit);
|
|
81
|
-
if (breakAt <= 0)
|
|
82
|
-
breakAt = limit;
|
|
83
|
-
chunks.push(remaining.slice(0, breakAt));
|
|
84
|
-
remaining = remaining.slice(breakAt).trimStart();
|
|
85
|
-
}
|
|
86
|
-
return chunks;
|
|
87
|
-
}
|
|
88
71
|
//# sourceMappingURL=telegram.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/adapters/telegram.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../src/adapters/telegram.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,MAAM,UAAU,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAO/D,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,IAAI,GAAG,GAAoB,IAAI,CAAC;IAChC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC;IAEtC,OAAO;QACL,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;QAEtC,KAAK,CAAC,KAAK,CAAC,OAAuB;YACjC,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEjC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;gBACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;gBAC5B,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC;oBAAE,OAAO;gBAE7C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAmB;oBAC9B,SAAS,EAAE,UAAU;oBACrB,QAAQ;oBACR,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,UAAU;oBAC9D,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS;oBACnF,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC7F,SAAS,EAAE,OAAO,CAAC,IAAI,GAAG,IAAI;iBAC/B,CAAC;gBAEF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;gBACxC,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC3B,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE;4BACrB,gBAAgB,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;yBACrD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,8CAA8C;YAC9C,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;YACnB,SAAS,GAAG,IAAI,CAAC;YAEjB,oBAAoB;YACpB,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,KAAK,CAAC,IAAI;YACR,IAAI,GAAG,EAAE,CAAC;gBACR,GAAG,CAAC,IAAI,EAAE,CAAC;gBACX,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAoB;YAC7B,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE;oBAC5C,gBAAgB,EAAE,GAAG,CAAC,SAAS;wBAC7B,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE;wBAC7C,CAAC,CAAC,SAAS;iBACd,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,SAAS,CAAC,QAAgB;YACxB,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/C,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAED,WAAW;YACT,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wechat.d.ts","sourceRoot":"","sources":["../../src/adapters/wechat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"wechat.d.ts","sourceRoot":"","sources":["../../src/adapters/wechat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,aAAa,CAAC;AAGlG,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CA+G9E"}
|
package/dist/adapters/wechat.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { WechatyBuilder } from 'wechaty';
|
|
2
|
+
import { chunkMarkdown, CHANNEL_LIMITS } from '../chunking.js';
|
|
2
3
|
export function createWeChatChannel(config) {
|
|
3
4
|
let bot = null;
|
|
4
5
|
let connected = false;
|
|
6
|
+
const limit = CHANNEL_LIMITS.wechat;
|
|
5
7
|
return {
|
|
6
8
|
id: 'wechat',
|
|
7
9
|
meta: { name: 'WeChat', emoji: 'W' },
|
|
@@ -34,8 +36,7 @@ export function createWeChatChannel(config) {
|
|
|
34
36
|
};
|
|
35
37
|
const response = await handler(inbound);
|
|
36
38
|
if (response) {
|
|
37
|
-
|
|
38
|
-
const chunks = chunkText(response, 4096);
|
|
39
|
+
const chunks = chunkMarkdown(response, limit);
|
|
39
40
|
for (const chunk of chunks) {
|
|
40
41
|
if (room) {
|
|
41
42
|
await room.say(chunk);
|
|
@@ -71,7 +72,7 @@ export function createWeChatChannel(config) {
|
|
|
71
72
|
throw new Error('WeChat not started');
|
|
72
73
|
const contact = await bot.Contact.find({ id: msg.to });
|
|
73
74
|
if (contact) {
|
|
74
|
-
const chunks =
|
|
75
|
+
const chunks = chunkMarkdown(msg.text, limit);
|
|
75
76
|
for (const chunk of chunks) {
|
|
76
77
|
await contact.say(chunk);
|
|
77
78
|
}
|
|
@@ -80,7 +81,7 @@ export function createWeChatChannel(config) {
|
|
|
80
81
|
// Try as room
|
|
81
82
|
const room = await bot.Room.find({ id: msg.to });
|
|
82
83
|
if (room) {
|
|
83
|
-
const chunks =
|
|
84
|
+
const chunks = chunkMarkdown(msg.text, limit);
|
|
84
85
|
for (const chunk of chunks) {
|
|
85
86
|
await room.say(chunk);
|
|
86
87
|
}
|
|
@@ -98,22 +99,4 @@ export function createWeChatChannel(config) {
|
|
|
98
99
|
},
|
|
99
100
|
};
|
|
100
101
|
}
|
|
101
|
-
function chunkText(text, limit) {
|
|
102
|
-
if (text.length <= limit)
|
|
103
|
-
return [text];
|
|
104
|
-
const chunks = [];
|
|
105
|
-
let remaining = text;
|
|
106
|
-
while (remaining.length > 0) {
|
|
107
|
-
if (remaining.length <= limit) {
|
|
108
|
-
chunks.push(remaining);
|
|
109
|
-
break;
|
|
110
|
-
}
|
|
111
|
-
let breakAt = remaining.lastIndexOf('\n', limit);
|
|
112
|
-
if (breakAt <= 0)
|
|
113
|
-
breakAt = limit;
|
|
114
|
-
chunks.push(remaining.slice(0, breakAt));
|
|
115
|
-
remaining = remaining.slice(breakAt).trimStart();
|
|
116
|
-
}
|
|
117
|
-
return chunks;
|
|
118
|
-
}
|
|
119
102
|
//# sourceMappingURL=wechat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wechat.js","sourceRoot":"","sources":["../../src/adapters/wechat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgD,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"wechat.js","sourceRoot":"","sources":["../../src/adapters/wechat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown-aware message chunking for channel adapters.
|
|
3
|
+
*
|
|
4
|
+
* Preserves code fences across splits, prefers paragraph boundaries,
|
|
5
|
+
* falls back to line boundaries, then hard splits.
|
|
6
|
+
*/
|
|
7
|
+
/** Default character limits per channel */
|
|
8
|
+
export declare const CHANNEL_LIMITS: Record<string, number>;
|
|
9
|
+
/**
|
|
10
|
+
* Split text into chunks that respect markdown structure.
|
|
11
|
+
*
|
|
12
|
+
* 1. Try to split on paragraph boundaries (blank lines)
|
|
13
|
+
* 2. If a paragraph is too long, split on line boundaries
|
|
14
|
+
* 3. If a line is too long, hard split at limit
|
|
15
|
+
* 4. Track open code fences and re-open them in the next chunk
|
|
16
|
+
*/
|
|
17
|
+
export declare function chunkMarkdown(text: string, limit: number): string[];
|
|
18
|
+
//# sourceMappingURL=chunking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunking.d.ts","sourceRoot":"","sources":["../src/chunking.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,2CAA2C;AAC3C,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOjD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAgDnE"}
|
package/dist/chunking.js
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown-aware message chunking for channel adapters.
|
|
3
|
+
*
|
|
4
|
+
* Preserves code fences across splits, prefers paragraph boundaries,
|
|
5
|
+
* falls back to line boundaries, then hard splits.
|
|
6
|
+
*/
|
|
7
|
+
/** Default character limits per channel */
|
|
8
|
+
export const CHANNEL_LIMITS = {
|
|
9
|
+
discord: 2000,
|
|
10
|
+
telegram: 4096,
|
|
11
|
+
slack: 4000,
|
|
12
|
+
matrix: 65536,
|
|
13
|
+
feishu: 4096,
|
|
14
|
+
wechat: 4096,
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Split text into chunks that respect markdown structure.
|
|
18
|
+
*
|
|
19
|
+
* 1. Try to split on paragraph boundaries (blank lines)
|
|
20
|
+
* 2. If a paragraph is too long, split on line boundaries
|
|
21
|
+
* 3. If a line is too long, hard split at limit
|
|
22
|
+
* 4. Track open code fences and re-open them in the next chunk
|
|
23
|
+
*/
|
|
24
|
+
export function chunkMarkdown(text, limit) {
|
|
25
|
+
if (text.length <= limit)
|
|
26
|
+
return [text];
|
|
27
|
+
const chunks = [];
|
|
28
|
+
let current = '';
|
|
29
|
+
let openFence = ''; // tracks the opening ``` line (e.g. "```ts")
|
|
30
|
+
const paragraphs = splitParagraphs(text);
|
|
31
|
+
for (const para of paragraphs) {
|
|
32
|
+
// Check if adding this paragraph (with separator) would exceed the limit
|
|
33
|
+
const separator = current ? '\n\n' : '';
|
|
34
|
+
const candidate = current + separator + para;
|
|
35
|
+
if (candidate.length <= limit) {
|
|
36
|
+
current = candidate;
|
|
37
|
+
// Track fence state
|
|
38
|
+
openFence = trackFences(para, openFence);
|
|
39
|
+
}
|
|
40
|
+
else if (!current) {
|
|
41
|
+
// Single paragraph exceeds limit — split by lines
|
|
42
|
+
const lineParts = splitByLines(para, limit, openFence);
|
|
43
|
+
for (let i = 0; i < lineParts.length; i++) {
|
|
44
|
+
if (i < lineParts.length - 1) {
|
|
45
|
+
chunks.push(lineParts[i]);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
current = lineParts[i];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
openFence = trackFences(para, openFence);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
// Flush current chunk
|
|
55
|
+
if (openFence) {
|
|
56
|
+
// Close the open fence in the current chunk
|
|
57
|
+
current += '\n```';
|
|
58
|
+
}
|
|
59
|
+
chunks.push(current);
|
|
60
|
+
// Start new chunk, re-open fence if needed
|
|
61
|
+
current = openFence ? openFence + '\n' + para : para;
|
|
62
|
+
openFence = trackFences(para, openFence);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (current) {
|
|
66
|
+
chunks.push(current);
|
|
67
|
+
}
|
|
68
|
+
return chunks.filter((c) => c.length > 0);
|
|
69
|
+
}
|
|
70
|
+
function splitParagraphs(text) {
|
|
71
|
+
return text.split(/\n{2,}/);
|
|
72
|
+
}
|
|
73
|
+
function trackFences(text, currentFence) {
|
|
74
|
+
const lines = text.split('\n');
|
|
75
|
+
let fence = currentFence;
|
|
76
|
+
for (const line of lines) {
|
|
77
|
+
const trimmed = line.trimStart();
|
|
78
|
+
if (trimmed.startsWith('```')) {
|
|
79
|
+
if (fence) {
|
|
80
|
+
// Closing fence
|
|
81
|
+
fence = '';
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
// Opening fence — capture the full line (e.g. "```typescript")
|
|
85
|
+
fence = trimmed;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return fence;
|
|
90
|
+
}
|
|
91
|
+
function splitByLines(text, limit, openFence) {
|
|
92
|
+
const lines = text.split('\n');
|
|
93
|
+
const parts = [];
|
|
94
|
+
let current = '';
|
|
95
|
+
let fence = openFence;
|
|
96
|
+
for (const line of lines) {
|
|
97
|
+
const separator = current ? '\n' : '';
|
|
98
|
+
const candidate = current + separator + line;
|
|
99
|
+
if (candidate.length <= limit) {
|
|
100
|
+
current = candidate;
|
|
101
|
+
}
|
|
102
|
+
else if (!current) {
|
|
103
|
+
// Single line exceeds limit — hard split
|
|
104
|
+
const hardParts = hardSplit(line, limit);
|
|
105
|
+
parts.push(...hardParts.slice(0, -1));
|
|
106
|
+
current = hardParts[hardParts.length - 1];
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
// Flush
|
|
110
|
+
if (fence)
|
|
111
|
+
current += '\n```';
|
|
112
|
+
parts.push(current);
|
|
113
|
+
current = fence ? fence + '\n' + line : line;
|
|
114
|
+
}
|
|
115
|
+
// Track fences
|
|
116
|
+
const trimmed = line.trimStart();
|
|
117
|
+
if (trimmed.startsWith('```')) {
|
|
118
|
+
fence = fence ? '' : trimmed;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (current)
|
|
122
|
+
parts.push(current);
|
|
123
|
+
return parts;
|
|
124
|
+
}
|
|
125
|
+
function hardSplit(text, limit) {
|
|
126
|
+
const parts = [];
|
|
127
|
+
let i = 0;
|
|
128
|
+
while (i < text.length) {
|
|
129
|
+
parts.push(text.slice(i, i + limit));
|
|
130
|
+
i += limit;
|
|
131
|
+
}
|
|
132
|
+
return parts;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=chunking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunking.js","sourceRoot":"","sources":["../src/chunking.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export type { ChannelPlugin, ChannelMeta, ChannelId, ChannelConfig, InboundMessage, OutboundMessage, MessageHandler, } from './types.js';
|
|
2
2
|
export { ChannelManager } from './manager.js';
|
|
3
3
|
export { createChannelManager } from './factory.js';
|
|
4
|
+
export { chunkMarkdown, CHANNEL_LIMITS } from './chunking.js';
|
|
4
5
|
export { createSlackChannel, type SlackChannelConfig } from './adapters/slack.js';
|
|
5
6
|
export { createDiscordChannel, type DiscordChannelConfig } from './adapters/discord.js';
|
|
6
7
|
export { createTelegramChannel, type TelegramChannelConfig } from './adapters/telegram.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { ChannelManager } from './manager.js';
|
|
2
2
|
export { createChannelManager } from './factory.js';
|
|
3
|
+
export { chunkMarkdown, CHANNEL_LIMITS } from './chunking.js';
|
|
3
4
|
export { createSlackChannel } from './adapters/slack.js';
|
|
4
5
|
export { createDiscordChannel } from './adapters/discord.js';
|
|
5
6
|
export { createTelegramChannel } from './adapters/telegram.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAA2B,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAA6B,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAA8B,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAA4B,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAA4B,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAA4B,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAA2B,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAA6B,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAA8B,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAA4B,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAA4B,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAA4B,MAAM,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cereworker/channels",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"matrix-js-sdk": "^36.0.0",
|
|
23
23
|
"@larksuiteoapi/node-sdk": "^1.39.0",
|
|
24
24
|
"wechaty": "^1.20.0",
|
|
25
|
-
"@cereworker/
|
|
26
|
-
"@cereworker/
|
|
25
|
+
"@cereworker/config": "0.6.0",
|
|
26
|
+
"@cereworker/core": "0.6.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"typescript": "^5.7.3"
|