@skillful-ai/piece-skai-adapters 0.0.8 → 0.0.9
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/package.json +1 -1
- package/skillful-ai-piece-skai-adapters-0.0.9.tgz +0 -0
- package/src/index.js +2 -0
- package/src/index.js.map +1 -1
- package/src/lib/actions/skai-to-telegram.js +46 -137
- package/src/lib/actions/skai-to-telegram.js.map +1 -1
- package/src/lib/actions/skai-to-whatsapp.js +35 -131
- package/src/lib/actions/skai-to-whatsapp.js.map +1 -1
- package/src/lib/actions/telegram-to-skai.js +0 -7
- package/src/lib/actions/telegram-to-skai.js.map +1 -1
- package/src/lib/actions/update-chat-message-reference.d.ts +4 -0
- package/src/lib/actions/update-chat-message-reference.js +75 -0
- package/src/lib/actions/update-chat-message-reference.js.map +1 -0
- package/src/lib/actions/whatsapp-to-skai.js +1 -7
- package/src/lib/actions/whatsapp-to-skai.js.map +1 -1
- package/src/lib/common/message-combiner.d.ts +34 -0
- package/src/lib/common/message-combiner.js +111 -0
- package/src/lib/common/message-combiner.js.map +1 -0
- package/src/lib/common/skai-client.js +0 -21
- package/src/lib/common/skai-client.js.map +1 -1
- package/src/lib/common/types/generic-message.d.ts +3 -1
- package/src/lib/common/types/generic-message.js.map +1 -1
- package/src/lib/transformers/telegram.transformer.d.ts +1 -0
- package/src/lib/transformers/telegram.transformer.js +3 -9
- package/src/lib/transformers/telegram.transformer.js.map +1 -1
- package/src/lib/transformers/whatsapp.transformer.d.ts +6 -5
- package/src/lib/transformers/whatsapp.transformer.js +24 -29
- package/src/lib/transformers/whatsapp.transformer.js.map +1 -1
- package/src/lib/triggers/skai-response-webhook.d.ts +3 -1
- package/src/lib/triggers/skai-response-webhook.js +9 -11
- package/src/lib/triggers/skai-response-webhook.js.map +1 -1
- package/skillful-ai-piece-skai-adapters-0.0.8.tgz +0 -0
package/package.json
CHANGED
|
Binary file
|
package/src/index.js
CHANGED
|
@@ -6,6 +6,7 @@ const skai_to_whatsapp_1 = require("./lib/actions/skai-to-whatsapp");
|
|
|
6
6
|
const skai_to_telegram_1 = require("./lib/actions/skai-to-telegram");
|
|
7
7
|
const whatsapp_to_skai_1 = require("./lib/actions/whatsapp-to-skai");
|
|
8
8
|
const telegram_to_skai_1 = require("./lib/actions/telegram-to-skai");
|
|
9
|
+
const update_chat_message_reference_1 = require("./lib/actions/update-chat-message-reference");
|
|
9
10
|
const skai_response_webhook_1 = require("./lib/triggers/skai-response-webhook");
|
|
10
11
|
exports.skaiAdapters = (0, pieces_framework_1.createPiece)({
|
|
11
12
|
displayName: 'SKAI Adapters',
|
|
@@ -19,6 +20,7 @@ exports.skaiAdapters = (0, pieces_framework_1.createPiece)({
|
|
|
19
20
|
skai_to_telegram_1.skaiToTelegram,
|
|
20
21
|
whatsapp_to_skai_1.whatsappToSkai,
|
|
21
22
|
telegram_to_skai_1.telegramToSkai,
|
|
23
|
+
update_chat_message_reference_1.updateChatMessageReference,
|
|
22
24
|
],
|
|
23
25
|
triggers: [skai_response_webhook_1.skaiResponseWebhook],
|
|
24
26
|
});
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/custom/skai-adapters/src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AACxE,qEAAgE;AAChE,qEAAgE;AAChE,qEAAgE;AAChE,qEAAgE;AAChE,gFAA2E;AAE9D,QAAA,YAAY,GAAG,IAAA,8BAAW,EAAC;IACvC,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,gEAAgE;IAC7E,IAAI,EAAE,4BAAS,CAAC,IAAI,EAAE;IACtB,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,oFAAoF;IAC7F,OAAO,EAAE,CAAC,aAAa,CAAC;IACxB,OAAO,EAAE;QACR,iCAAc;QACd,iCAAc;QACd,iCAAc;QACd,iCAAc;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/custom/skai-adapters/src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AACxE,qEAAgE;AAChE,qEAAgE;AAChE,qEAAgE;AAChE,qEAAgE;AAChE,+FAAyF;AACzF,gFAA2E;AAE9D,QAAA,YAAY,GAAG,IAAA,8BAAW,EAAC;IACvC,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,gEAAgE;IAC7E,IAAI,EAAE,4BAAS,CAAC,IAAI,EAAE;IACtB,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,oFAAoF;IAC7F,OAAO,EAAE,CAAC,aAAa,CAAC;IACxB,OAAO,EAAE;QACR,iCAAc;QACd,iCAAc;QACd,iCAAc;QACd,iCAAc;QACd,0DAA0B;KAC1B;IACD,QAAQ,EAAE,CAAC,2CAAmB,CAAC;CAC/B,CAAC,CAAC"}
|
|
@@ -3,52 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.skaiToTelegram = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
-
|
|
7
|
-
const MAX_TELEGRAM_MESSAGE_LENGTH = 4096;
|
|
8
|
-
/**
|
|
9
|
-
* Split a long message into chunks respecting Telegram's character limit
|
|
10
|
-
* Tries to split at natural boundaries (paragraphs, sentences, words)
|
|
11
|
-
*/
|
|
12
|
-
function splitMessage(text, maxLength = MAX_TELEGRAM_MESSAGE_LENGTH) {
|
|
13
|
-
if (text.length <= maxLength) {
|
|
14
|
-
return [text];
|
|
15
|
-
}
|
|
16
|
-
const messages = [];
|
|
17
|
-
let remainingText = text;
|
|
18
|
-
while (remainingText.length > 0) {
|
|
19
|
-
if (remainingText.length <= maxLength) {
|
|
20
|
-
messages.push(remainingText);
|
|
21
|
-
break;
|
|
22
|
-
}
|
|
23
|
-
// Try to split at paragraph boundary (\n\n)
|
|
24
|
-
let splitIndex = remainingText.lastIndexOf('\n\n', maxLength);
|
|
25
|
-
// If no paragraph boundary, try sentence boundary (. ! ?)
|
|
26
|
-
if (splitIndex === -1 || splitIndex < maxLength * 0.5) {
|
|
27
|
-
const sentenceEndings = ['. ', '! ', '? ', '.\n', '!\n', '?\n'];
|
|
28
|
-
for (const ending of sentenceEndings) {
|
|
29
|
-
const idx = remainingText.lastIndexOf(ending, maxLength);
|
|
30
|
-
if (idx > splitIndex) {
|
|
31
|
-
splitIndex = idx + ending.length;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
// If no sentence boundary, try word boundary (space)
|
|
36
|
-
if (splitIndex === -1 || splitIndex < maxLength * 0.5) {
|
|
37
|
-
splitIndex = remainingText.lastIndexOf(' ', maxLength);
|
|
38
|
-
}
|
|
39
|
-
// Last resort: hard split at maxLength
|
|
40
|
-
if (splitIndex === -1 || splitIndex < maxLength * 0.5) {
|
|
41
|
-
splitIndex = maxLength;
|
|
42
|
-
}
|
|
43
|
-
messages.push(remainingText.substring(0, splitIndex).trim());
|
|
44
|
-
remainingText = remainingText.substring(splitIndex).trim();
|
|
45
|
-
}
|
|
46
|
-
return messages;
|
|
47
|
-
}
|
|
6
|
+
const message_combiner_1 = require("../common/message-combiner");
|
|
48
7
|
exports.skaiToTelegram = (0, pieces_framework_1.createAction)({
|
|
49
8
|
name: 'skai_to_telegram',
|
|
50
9
|
displayName: 'SKAI → Telegram',
|
|
51
|
-
description: 'Transform SKAI webhook response to Telegram message format
|
|
10
|
+
description: 'Transform SKAI webhook response to Telegram message format. Combines pre-split messages with media following backend logic.',
|
|
52
11
|
props: {
|
|
53
12
|
webhookPayload: pieces_framework_1.Property.Json({
|
|
54
13
|
displayName: 'SKAI Webhook Payload',
|
|
@@ -58,7 +17,6 @@ exports.skaiToTelegram = (0, pieces_framework_1.createAction)({
|
|
|
58
17
|
},
|
|
59
18
|
run(context) {
|
|
60
19
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
var _a, _b;
|
|
62
20
|
const { webhookPayload } = context.propsValue;
|
|
63
21
|
try {
|
|
64
22
|
// Parse webhook payload
|
|
@@ -68,21 +26,35 @@ exports.skaiToTelegram = (0, pieces_framework_1.createAction)({
|
|
|
68
26
|
throw new Error(`Invalid platform: expected 'telegram', got '${payload.platform || 'undefined'}'`);
|
|
69
27
|
}
|
|
70
28
|
// Validate required fields
|
|
71
|
-
|
|
72
|
-
|
|
29
|
+
const hasReaction = payload.reaction !== undefined && payload.reaction !== null;
|
|
30
|
+
const messages = payload.messages || (payload.message ? [payload.message] : []);
|
|
31
|
+
const hasMessages = messages.length > 0 && messages.some((msg) => msg && msg.trim().length > 0);
|
|
32
|
+
const hasMedia = payload.media_urls && payload.media_urls.length > 0;
|
|
33
|
+
if (!payload.external_id || (!hasMessages && !hasMedia && !hasReaction)) {
|
|
34
|
+
throw new Error('Missing required fields: external_id and (messages or media_urls or reaction)');
|
|
73
35
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
36
|
+
// Handle reaction messages
|
|
37
|
+
if (hasReaction) {
|
|
38
|
+
// For reactions, we need the message ID to react to (reference_id)
|
|
39
|
+
if (!payload.reference_id) {
|
|
40
|
+
throw new Error('Missing required field: reference_id (message ID to react to)');
|
|
41
|
+
}
|
|
42
|
+
// Parse message ID - handle both string and number
|
|
43
|
+
const messageIdToReact = typeof payload.reference_id === 'number'
|
|
44
|
+
? payload.reference_id
|
|
45
|
+
: parseInt(payload.reference_id);
|
|
46
|
+
if (isNaN(messageIdToReact)) {
|
|
47
|
+
throw new Error(`Invalid reference_id: ${payload.reference_id} (must be a valid message ID number)`);
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
messages: [{
|
|
51
|
+
chatId: payload.external_id,
|
|
52
|
+
reaction: payload.reaction || '', // Empty string means remove reaction
|
|
53
|
+
reference_id: payload.reference_id,
|
|
54
|
+
}],
|
|
55
|
+
requiresMultipleSends: false,
|
|
56
|
+
};
|
|
82
57
|
}
|
|
83
|
-
const telegramMessages = [];
|
|
84
|
-
const hasMedia = payload.media_urls && payload.media_urls.length > 0;
|
|
85
|
-
const hasText = payload.message && payload.message.trim().length > 0;
|
|
86
58
|
// Map generic media types to Telegram-specific fields
|
|
87
59
|
const mediaTypeMapping = {
|
|
88
60
|
'image': 'photo',
|
|
@@ -93,86 +65,23 @@ exports.skaiToTelegram = (0, pieces_framework_1.createAction)({
|
|
|
93
65
|
'document': 'document',
|
|
94
66
|
'file': 'document',
|
|
95
67
|
};
|
|
96
|
-
//
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
mediaUrl: firstMediaUrl,
|
|
114
|
-
mediaType: firstMediaType,
|
|
115
|
-
reference_id: payload.reference_id,
|
|
116
|
-
partNumber: 1,
|
|
117
|
-
totalParts: messageParts.length + mediaUrls.length - 1,
|
|
118
|
-
});
|
|
119
|
-
// Remaining text parts (if any) as separate text messages
|
|
120
|
-
for (let i = 1; i < messageParts.length; i++) {
|
|
121
|
-
telegramMessages.push({
|
|
122
|
-
chatId: payload.external_id,
|
|
123
|
-
text: messageParts[i],
|
|
124
|
-
reference_id: payload.reference_id,
|
|
125
|
-
partNumber: i + 1,
|
|
126
|
-
totalParts: messageParts.length + mediaUrls.length - 1,
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
// Remaining media items as separate media-only messages
|
|
130
|
-
for (let i = 1; i < mediaUrls.length; i++) {
|
|
131
|
-
const mediaTypeRaw = mediaTypes.length > i
|
|
132
|
-
? mediaTypes[i].toLowerCase()
|
|
133
|
-
: 'photo';
|
|
134
|
-
const mediaType = mediaTypeMapping[mediaTypeRaw] || 'document';
|
|
135
|
-
console.log(`Media ${i}:`, mediaType, '-', mediaUrls[i]);
|
|
136
|
-
telegramMessages.push({
|
|
137
|
-
chatId: payload.external_id,
|
|
138
|
-
mediaUrl: mediaUrls[i],
|
|
139
|
-
mediaType: mediaType,
|
|
140
|
-
reference_id: payload.reference_id,
|
|
141
|
-
partNumber: messageParts.length + i,
|
|
142
|
-
totalParts: messageParts.length + mediaUrls.length - 1,
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
// No text, send all media as separate messages
|
|
148
|
-
for (let i = 0; i < mediaUrls.length; i++) {
|
|
149
|
-
const mediaTypeRaw = mediaTypes.length > i
|
|
150
|
-
? mediaTypes[i].toLowerCase()
|
|
151
|
-
: 'photo';
|
|
152
|
-
const mediaType = mediaTypeMapping[mediaTypeRaw] || 'document';
|
|
153
|
-
console.log(`Media ${i}:`, mediaType, '-', mediaUrls[i]);
|
|
154
|
-
telegramMessages.push({
|
|
155
|
-
chatId: payload.external_id,
|
|
156
|
-
mediaUrl: mediaUrls[i],
|
|
157
|
-
mediaType: mediaType,
|
|
158
|
-
reference_id: payload.reference_id,
|
|
159
|
-
partNumber: i + 1,
|
|
160
|
-
totalParts: mediaUrls.length,
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
// No media, just text messages
|
|
167
|
-
telegramMessages.push(...messageParts.map((part, index) => ({
|
|
168
|
-
chatId: payload.external_id,
|
|
169
|
-
text: part,
|
|
170
|
-
reference_id: payload.reference_id,
|
|
171
|
-
partNumber: index + 1,
|
|
172
|
-
totalParts: messageParts.length,
|
|
173
|
-
})));
|
|
174
|
-
}
|
|
175
|
-
console.log(`Message formatted for Telegram: ${telegramMessages.length} message(s) to send`);
|
|
68
|
+
// Filter out empty messages
|
|
69
|
+
const validMessages = messages.filter((msg) => msg && msg.trim().length > 0);
|
|
70
|
+
const mediaUrls = payload.media_urls || [];
|
|
71
|
+
const mediaTypes = payload.media_types || [];
|
|
72
|
+
const chatMessageIds = payload.chat_message_ids || [];
|
|
73
|
+
// Combine messages and media using the backend's logic
|
|
74
|
+
const telegramMessages = (0, message_combiner_1.combineMessagesAndMedia)({
|
|
75
|
+
messages: validMessages,
|
|
76
|
+
mediaUrls,
|
|
77
|
+
mediaTypes,
|
|
78
|
+
chatId: payload.external_id,
|
|
79
|
+
chatMessageIds: chatMessageIds.length > 0 ? chatMessageIds : undefined,
|
|
80
|
+
referenceId: payload.reference_id,
|
|
81
|
+
mediaTypeMapping,
|
|
82
|
+
defaultMediaType: 'photo',
|
|
83
|
+
chatIdFieldName: 'chatId',
|
|
84
|
+
});
|
|
176
85
|
// Return all message parts (array if split, single item array if not)
|
|
177
86
|
return {
|
|
178
87
|
messages: telegramMessages,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skai-to-telegram.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/custom/skai-adapters/src/lib/actions/skai-to-telegram.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;
|
|
1
|
+
{"version":3,"file":"skai-to-telegram.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/custom/skai-adapters/src/lib/actions/skai-to-telegram.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,iEAAqE;AAExD,QAAA,cAAc,GAAG,IAAA,+BAAY,EAAC;IAC1C,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,6HAA6H;IAE1I,KAAK,EAAE;QACN,cAAc,EAAE,2BAAQ,CAAC,IAAI,CAAC;YAC7B,WAAW,EAAE,sBAAsB;YACnC,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,IAAI;SACd,CAAC;KACF;IAEK,GAAG,CAAC,OAAO;;YAChB,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAE9C,IAAI,CAAC;gBACJ,wBAAwB;gBACxB,MAAM,OAAO,GAAG,cAAqB,CAAC;gBAEtC,oBAAoB;gBACpB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAC1D,MAAM,IAAI,KAAK,CACd,+CAA+C,OAAO,CAAC,QAAQ,IAAI,WAAW,GAAG,CACjF,CAAC;gBACH,CAAC;gBAED,2BAA2B;gBAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC;gBAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACxG,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBAErE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;oBACzE,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;gBAClG,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,WAAW,EAAE,CAAC;oBACjB,mEAAmE;oBACnE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;wBAC3B,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;oBAClF,CAAC;oBAED,mDAAmD;oBACnD,MAAM,gBAAgB,GAAG,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;wBAChE,CAAC,CAAC,OAAO,CAAC,YAAY;wBACtB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBAElC,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,YAAY,sCAAsC,CAAC,CAAC;oBACtG,CAAC;oBAED,OAAO;wBACN,QAAQ,EAAE,CAAC;gCACV,MAAM,EAAE,OAAO,CAAC,WAAW;gCAC3B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,qCAAqC;gCACvE,YAAY,EAAE,OAAO,CAAC,YAAY;6BAClC,CAAC;wBACF,qBAAqB,EAAE,KAAK;qBAC5B,CAAC;gBACH,CAAC;gBAED,sDAAsD;gBACtD,MAAM,gBAAgB,GAA8B;oBACnD,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,UAAU;oBACtB,MAAM,EAAE,UAAU;iBAClB,CAAC;gBAEF,4BAA4B;gBAC5B,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrF,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;gBAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;gBAC7C,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC;gBAEtD,uDAAuD;gBACvD,MAAM,gBAAgB,GAAG,IAAA,0CAAuB,EAAC;oBAChD,QAAQ,EAAE,aAAa;oBACvB,SAAS;oBACT,UAAU;oBACV,MAAM,EAAE,OAAO,CAAC,WAAW;oBAC3B,cAAc,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;oBACtE,WAAW,EAAE,OAAO,CAAC,YAAY;oBACjC,gBAAgB;oBAChB,gBAAgB,EAAE,OAAO;oBACzB,eAAe,EAAE,QAAQ;iBACzB,CAAC,CAAC;gBAEH,sEAAsE;gBACtE,OAAO;oBACN,QAAQ,EAAE,gBAAgB;oBAC1B,qBAAqB,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC;iBAClD,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;gBAElD,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,sDAAsD;iBAC9E,CAAC;YACH,CAAC;QACF,CAAC;KAAA;CACD,CAAC,CAAC"}
|
|
@@ -3,52 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.skaiToWhatsApp = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
-
|
|
7
|
-
const MAX_WHATSAPP_MESSAGE_LENGTH = 4096;
|
|
8
|
-
/**
|
|
9
|
-
* Split a long message into chunks respecting WhatsApp's character limit
|
|
10
|
-
* Tries to split at natural boundaries (paragraphs, sentences, words)
|
|
11
|
-
*/
|
|
12
|
-
function splitMessage(text, maxLength = MAX_WHATSAPP_MESSAGE_LENGTH) {
|
|
13
|
-
if (text.length <= maxLength) {
|
|
14
|
-
return [text];
|
|
15
|
-
}
|
|
16
|
-
const messages = [];
|
|
17
|
-
let remainingText = text;
|
|
18
|
-
while (remainingText.length > 0) {
|
|
19
|
-
if (remainingText.length <= maxLength) {
|
|
20
|
-
messages.push(remainingText);
|
|
21
|
-
break;
|
|
22
|
-
}
|
|
23
|
-
// Try to split at paragraph boundary (\n\n)
|
|
24
|
-
let splitIndex = remainingText.lastIndexOf('\n\n', maxLength);
|
|
25
|
-
// If no paragraph boundary, try sentence boundary (. ! ?)
|
|
26
|
-
if (splitIndex === -1 || splitIndex < maxLength * 0.5) {
|
|
27
|
-
const sentenceEndings = ['. ', '! ', '? ', '.\n', '!\n', '?\n'];
|
|
28
|
-
for (const ending of sentenceEndings) {
|
|
29
|
-
const idx = remainingText.lastIndexOf(ending, maxLength);
|
|
30
|
-
if (idx > splitIndex) {
|
|
31
|
-
splitIndex = idx + ending.length;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
// If no sentence boundary, try word boundary (space)
|
|
36
|
-
if (splitIndex === -1 || splitIndex < maxLength * 0.5) {
|
|
37
|
-
splitIndex = remainingText.lastIndexOf(' ', maxLength);
|
|
38
|
-
}
|
|
39
|
-
// Last resort: hard split at maxLength
|
|
40
|
-
if (splitIndex === -1 || splitIndex < maxLength * 0.5) {
|
|
41
|
-
splitIndex = maxLength;
|
|
42
|
-
}
|
|
43
|
-
messages.push(remainingText.substring(0, splitIndex).trim());
|
|
44
|
-
remainingText = remainingText.substring(splitIndex).trim();
|
|
45
|
-
}
|
|
46
|
-
return messages;
|
|
47
|
-
}
|
|
6
|
+
const message_combiner_1 = require("../common/message-combiner");
|
|
48
7
|
exports.skaiToWhatsApp = (0, pieces_framework_1.createAction)({
|
|
49
8
|
name: 'skai_to_whatsapp',
|
|
50
9
|
displayName: 'SKAI → WhatsApp',
|
|
51
|
-
description: 'Transform SKAI webhook response to WhatsApp message format
|
|
10
|
+
description: 'Transform SKAI webhook response to WhatsApp message format. Combines pre-split messages with media following backend logic.',
|
|
52
11
|
props: {
|
|
53
12
|
webhookPayload: pieces_framework_1.Property.Json({
|
|
54
13
|
displayName: 'SKAI Webhook Payload',
|
|
@@ -58,7 +17,6 @@ exports.skaiToWhatsApp = (0, pieces_framework_1.createAction)({
|
|
|
58
17
|
},
|
|
59
18
|
run(context) {
|
|
60
19
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
var _a, _b;
|
|
62
20
|
const { webhookPayload } = context.propsValue;
|
|
63
21
|
try {
|
|
64
22
|
// Parse webhook payload
|
|
@@ -68,98 +26,44 @@ exports.skaiToWhatsApp = (0, pieces_framework_1.createAction)({
|
|
|
68
26
|
throw new Error(`Invalid platform: expected 'whatsapp', got '${payload.platform || 'undefined'}'`);
|
|
69
27
|
}
|
|
70
28
|
// Validate required fields
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
console.log('Transforming SKAI response to WhatsApp format');
|
|
75
|
-
console.log('External ID:', payload.external_id);
|
|
76
|
-
console.log('Message preview:', ((_a = payload.message) === null || _a === void 0 ? void 0 : _a.substring(0, 50)) + '...');
|
|
77
|
-
console.log('Message length:', ((_b = payload.message) === null || _b === void 0 ? void 0 : _b.length) || 0);
|
|
78
|
-
// Split message if it exceeds WhatsApp's limit
|
|
79
|
-
const messageParts = splitMessage(payload.message);
|
|
80
|
-
if (messageParts.length > 1) {
|
|
81
|
-
console.log(`Message exceeds ${MAX_WHATSAPP_MESSAGE_LENGTH} chars, split into ${messageParts.length} parts`);
|
|
82
|
-
}
|
|
83
|
-
const whatsappMessages = [];
|
|
29
|
+
const hasReaction = payload.reaction !== undefined && payload.reaction !== null;
|
|
30
|
+
const messages = payload.messages || (payload.message ? [payload.message] : []);
|
|
31
|
+
const hasMessages = messages.length > 0 && messages.some((msg) => msg && msg.trim().length > 0);
|
|
84
32
|
const hasMedia = payload.media_urls && payload.media_urls.length > 0;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
const firstMediaUrl = mediaUrls[0];
|
|
94
|
-
const firstMediaType = mediaTypes.length > 0
|
|
95
|
-
? mediaTypes[0].toLowerCase()
|
|
96
|
-
: 'image';
|
|
97
|
-
console.log('First message: text + media 0 (', firstMediaType, '-', firstMediaUrl, ')');
|
|
98
|
-
// First message: text + first media
|
|
99
|
-
whatsappMessages.push({
|
|
100
|
-
to: payload.external_id,
|
|
101
|
-
text: messageParts[0],
|
|
102
|
-
mediaUrl: firstMediaUrl,
|
|
103
|
-
mediaType: firstMediaType,
|
|
104
|
-
reference_id: payload.reference_id,
|
|
105
|
-
partNumber: 1,
|
|
106
|
-
totalParts: messageParts.length + mediaUrls.length - 1,
|
|
107
|
-
});
|
|
108
|
-
// Remaining text parts (if any) as separate text messages
|
|
109
|
-
for (let i = 1; i < messageParts.length; i++) {
|
|
110
|
-
whatsappMessages.push({
|
|
111
|
-
to: payload.external_id,
|
|
112
|
-
text: messageParts[i],
|
|
113
|
-
reference_id: payload.reference_id,
|
|
114
|
-
partNumber: i + 1,
|
|
115
|
-
totalParts: messageParts.length + mediaUrls.length - 1,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
// Remaining media items as separate media-only messages
|
|
119
|
-
for (let i = 1; i < mediaUrls.length; i++) {
|
|
120
|
-
const mediaType = mediaTypes.length > i
|
|
121
|
-
? mediaTypes[i].toLowerCase()
|
|
122
|
-
: 'image';
|
|
123
|
-
console.log(`Media ${i}:`, mediaType, '-', mediaUrls[i]);
|
|
124
|
-
whatsappMessages.push({
|
|
125
|
-
to: payload.external_id,
|
|
126
|
-
mediaUrl: mediaUrls[i],
|
|
127
|
-
mediaType: mediaType,
|
|
128
|
-
reference_id: payload.reference_id,
|
|
129
|
-
partNumber: messageParts.length + i,
|
|
130
|
-
totalParts: messageParts.length + mediaUrls.length - 1,
|
|
131
|
-
});
|
|
132
|
-
}
|
|
33
|
+
if (!payload.external_id || (!hasMessages && !hasMedia && !hasReaction)) {
|
|
34
|
+
throw new Error('Missing required fields: external_id and (messages or media_urls or reaction)');
|
|
35
|
+
}
|
|
36
|
+
// Handle reaction messages
|
|
37
|
+
if (hasReaction) {
|
|
38
|
+
// For reactions, we need the message ID to react to (reference_id)
|
|
39
|
+
if (!payload.reference_id) {
|
|
40
|
+
throw new Error('Missing required field: reference_id (message ID to react to)');
|
|
133
41
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
for (let i = 0; i < mediaUrls.length; i++) {
|
|
137
|
-
const mediaType = mediaTypes.length > i
|
|
138
|
-
? mediaTypes[i].toLowerCase()
|
|
139
|
-
: 'image';
|
|
140
|
-
console.log(`Media ${i}:`, mediaType, '-', mediaUrls[i]);
|
|
141
|
-
whatsappMessages.push({
|
|
42
|
+
return {
|
|
43
|
+
messages: [{
|
|
142
44
|
to: payload.external_id,
|
|
143
|
-
|
|
144
|
-
mediaType: mediaType,
|
|
45
|
+
reaction: payload.reaction || '', // Empty string means remove reaction
|
|
145
46
|
reference_id: payload.reference_id,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
// No media, just text messages
|
|
154
|
-
whatsappMessages.push(...messageParts.map((part, index) => ({
|
|
155
|
-
to: payload.external_id,
|
|
156
|
-
text: part,
|
|
157
|
-
reference_id: payload.reference_id,
|
|
158
|
-
partNumber: index + 1,
|
|
159
|
-
totalParts: messageParts.length,
|
|
160
|
-
})));
|
|
47
|
+
}],
|
|
48
|
+
requiresMultipleSends: false,
|
|
49
|
+
};
|
|
161
50
|
}
|
|
162
|
-
|
|
51
|
+
// Filter out empty messages
|
|
52
|
+
const validMessages = messages.filter((msg) => msg && msg.trim().length > 0);
|
|
53
|
+
const mediaUrls = payload.media_urls || [];
|
|
54
|
+
const mediaTypes = payload.media_types || [];
|
|
55
|
+
const chatMessageIds = payload.chat_message_ids || [];
|
|
56
|
+
// Combine messages and media using the backend's logic
|
|
57
|
+
const whatsappMessages = (0, message_combiner_1.combineMessagesAndMedia)({
|
|
58
|
+
messages: validMessages,
|
|
59
|
+
mediaUrls,
|
|
60
|
+
mediaTypes,
|
|
61
|
+
chatId: payload.external_id,
|
|
62
|
+
chatMessageIds: chatMessageIds.length > 0 ? chatMessageIds : undefined,
|
|
63
|
+
referenceId: payload.reference_id,
|
|
64
|
+
defaultMediaType: 'image',
|
|
65
|
+
chatIdFieldName: 'to',
|
|
66
|
+
});
|
|
163
67
|
// Return all message parts (array if split, single item array if not)
|
|
164
68
|
return {
|
|
165
69
|
messages: whatsappMessages,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skai-to-whatsapp.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/custom/skai-adapters/src/lib/actions/skai-to-whatsapp.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;
|
|
1
|
+
{"version":3,"file":"skai-to-whatsapp.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/custom/skai-adapters/src/lib/actions/skai-to-whatsapp.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,6 @@ exports.telegramToSkai = (0, pieces_framework_1.createAction)({
|
|
|
33
33
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
34
34
|
const { telegramMessage, agent, webhookUrl, chatBufferWindowSeconds } = context.propsValue;
|
|
35
35
|
try {
|
|
36
|
-
console.log('📨 Processing Telegram → SKAI');
|
|
37
36
|
// Validate chat buffer window seconds
|
|
38
37
|
const bufferSeconds = chatBufferWindowSeconds !== null && chatBufferWindowSeconds !== void 0 ? chatBufferWindowSeconds : 0;
|
|
39
38
|
if (bufferSeconds < 0 || bufferSeconds > 60) {
|
|
@@ -42,11 +41,6 @@ exports.telegramToSkai = (0, pieces_framework_1.createAction)({
|
|
|
42
41
|
// Transform Telegram message to GenericMessage format
|
|
43
42
|
const transformer = new telegram_transformer_1.TelegramTransformer();
|
|
44
43
|
const genericMessage = transformer.transform(telegramMessage);
|
|
45
|
-
console.log('✅ Message transformed', {
|
|
46
|
-
from: genericMessage.external_id,
|
|
47
|
-
platform: genericMessage.platform,
|
|
48
|
-
preview: genericMessage.message.substring(0, 50) + '...',
|
|
49
|
-
});
|
|
50
44
|
// Prepare request body
|
|
51
45
|
const requestBody = {
|
|
52
46
|
external_id: genericMessage.external_id,
|
|
@@ -68,7 +62,6 @@ exports.telegramToSkai = (0, pieces_framework_1.createAction)({
|
|
|
68
62
|
agentId: agent || null,
|
|
69
63
|
payload: requestBody,
|
|
70
64
|
});
|
|
71
|
-
console.log('✅ SKAI agent processed message successfully');
|
|
72
65
|
// Build response
|
|
73
66
|
const response = {
|
|
74
67
|
success: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-to-skai.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/custom/skai-adapters/src/lib/actions/telegram-to-skai.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+EAA2E;AAC3E,uDAAmD;AACnD,mDAAoD;AAEvC,QAAA,cAAc,GAAG,IAAA,+BAAY,EAAC;IAC1C,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,0EAA0E;IAEvF,KAAK,EAAE;QACN,eAAe,EAAE,2BAAQ,CAAC,IAAI,CAAC;YAC9B,WAAW,EAAE,kBAAkB;YAC/B,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,IAAI;SACd,CAAC;QACF,KAAK,EAAE,yBAAa;QACpB,UAAU,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC9B,WAAW,EAAE,sBAAsB;YACnC,WAAW,EACV,8EAA8E;YAC/E,QAAQ,EAAE,IAAI;SACd,CAAC;QACF,uBAAuB,EAAE,2BAAQ,CAAC,MAAM,CAAC;YACxC,WAAW,EAAE,8BAA8B;YAC3C,WAAW,EAAE,+DAA+D;YAC5E,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,CAAC;SACf,CAAC;KACF;IAEK,GAAG,CAAC,OAAO;;YAChB,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAE3F,IAAI,CAAC;gBACJ,
|
|
1
|
+
{"version":3,"file":"telegram-to-skai.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/custom/skai-adapters/src/lib/actions/telegram-to-skai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const updateChatMessageReference: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").PieceAuthProperty, {
|
|
2
|
+
chatMessageId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
3
|
+
externalReferenceId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
}>;
|