@skillful-ai/piece-skai-adapters 0.0.1

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 (39) hide show
  1. package/README.md +325 -0
  2. package/package.json +36 -0
  3. package/skillful-ai-piece-skai-adapters-0.0.1.tgz +0 -0
  4. package/src/index.d.ts +1 -0
  5. package/src/index.js +25 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/actions/skai-to-telegram.d.ts +3 -0
  8. package/src/lib/actions/skai-to-telegram.js +192 -0
  9. package/src/lib/actions/skai-to-telegram.js.map +1 -0
  10. package/src/lib/actions/skai-to-whatsapp.d.ts +3 -0
  11. package/src/lib/actions/skai-to-whatsapp.js +179 -0
  12. package/src/lib/actions/skai-to-whatsapp.js.map +1 -0
  13. package/src/lib/actions/telegram-to-skai.d.ts +6 -0
  14. package/src/lib/actions/telegram-to-skai.js +93 -0
  15. package/src/lib/actions/telegram-to-skai.js.map +1 -0
  16. package/src/lib/actions/whatsapp-to-skai.d.ts +6 -0
  17. package/src/lib/actions/whatsapp-to-skai.js +93 -0
  18. package/src/lib/actions/whatsapp-to-skai.js.map +1 -0
  19. package/src/lib/auth/skai.auth.d.ts +3 -0
  20. package/src/lib/auth/skai.auth.js +32 -0
  21. package/src/lib/auth/skai.auth.js.map +1 -0
  22. package/src/lib/common/dropdowns.d.ts +5 -0
  23. package/src/lib/common/dropdowns.js +61 -0
  24. package/src/lib/common/dropdowns.js.map +1 -0
  25. package/src/lib/common/skai-client.d.ts +65 -0
  26. package/src/lib/common/skai-client.js +173 -0
  27. package/src/lib/common/skai-client.js.map +1 -0
  28. package/src/lib/common/types/generic-message.d.ts +44 -0
  29. package/src/lib/common/types/generic-message.js +27 -0
  30. package/src/lib/common/types/generic-message.js.map +1 -0
  31. package/src/lib/transformers/telegram.transformer.d.ts +78 -0
  32. package/src/lib/transformers/telegram.transformer.js +72 -0
  33. package/src/lib/transformers/telegram.transformer.js.map +1 -0
  34. package/src/lib/transformers/whatsapp.transformer.d.ts +73 -0
  35. package/src/lib/transformers/whatsapp.transformer.js +136 -0
  36. package/src/lib/transformers/whatsapp.transformer.js.map +1 -0
  37. package/src/lib/triggers/skai-response-webhook.d.ts +20 -0
  38. package/src/lib/triggers/skai-response-webhook.js +144 -0
  39. package/src/lib/triggers/skai-response-webhook.js.map +1 -0
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.skaiClient = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const skai_sdk_1 = require("@skillful-ai/skai-sdk");
7
+ /**
8
+ * SKAI Agents API client
9
+ * Uses server context (publicUrl + token) to get user's SKAI API key and configuration
10
+ */
11
+ exports.skaiClient = {
12
+ /**
13
+ * Get the piece user with their credentials from the server
14
+ */
15
+ getPieceUser(params) {
16
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
17
+ console.log('Fetching piece user credentials from:', `${params.serverUrl}v1/users/piece-user`);
18
+ const response = yield pieces_common_1.httpClient.sendRequest({
19
+ method: pieces_common_1.HttpMethod.GET,
20
+ url: `${params.serverUrl}v1/users/piece-user`,
21
+ authentication: {
22
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
23
+ token: params.token,
24
+ },
25
+ });
26
+ const user = response.body;
27
+ console.log('Retrieved user:', {
28
+ id: user.id,
29
+ externalId: user.externalId,
30
+ hasSkaiApiKey: !!user.skaiApiKey,
31
+ skaiApiKeyPrefix: user.skaiApiKey
32
+ ? user.skaiApiKey.substring(0, 10) + '...'
33
+ : 'none',
34
+ });
35
+ return user;
36
+ });
37
+ },
38
+ /**
39
+ * Get SKAI API URL from server configuration
40
+ */
41
+ getSkaiApiUrl(params) {
42
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
43
+ const response = yield pieces_common_1.httpClient.sendRequest({
44
+ method: pieces_common_1.HttpMethod.GET,
45
+ url: `${params.serverUrl}v1/skai-agents/config`,
46
+ authentication: {
47
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
48
+ token: params.token,
49
+ },
50
+ });
51
+ return response.body.agentsApiUrl;
52
+ });
53
+ },
54
+ /**
55
+ * Create a SKAI API client instance with proper configuration
56
+ */
57
+ createSkaiClient(params) {
58
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
59
+ const baseUrl = yield this.getSkaiApiUrl(params);
60
+ console.log('Creating SKAI client with:', {
61
+ baseUrl,
62
+ hasUserApiKey: !!params.userApiKey,
63
+ userApiKeyPrefix: params.userApiKey ? params.userApiKey.substring(0, 10) + '...' : 'none',
64
+ });
65
+ const config = {
66
+ baseUrl,
67
+ userApiKey: params.userApiKey,
68
+ };
69
+ return new skai_sdk_1.SkaiAgentsClient(skai_sdk_1.consoleLogger, config);
70
+ });
71
+ },
72
+ /**
73
+ * Process a message with a SKAI agent
74
+ * Uses HTTP call for async webhook-based processing (not available in SDK)
75
+ */
76
+ processMessage(params) {
77
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
78
+ var _a;
79
+ const { serverUrl, token, agentId, payload } = params;
80
+ // Get user credentials
81
+ const user = yield this.getPieceUser({ serverUrl, token });
82
+ if (!user.skaiApiKey) {
83
+ throw new Error('SKAI API key not configured');
84
+ }
85
+ // Get API URL using SDK client creation pattern for consistency
86
+ const baseUrl = yield this.getSkaiApiUrl({ serverUrl, token });
87
+ console.log('📤 Calling SKAI Agents API', {
88
+ baseUrl,
89
+ agentId,
90
+ platform: payload.platform,
91
+ });
92
+ try {
93
+ const url = `${baseUrl}/api/agents/${agentId}/process`;
94
+ const response = yield pieces_common_1.httpClient.sendRequest({
95
+ method: pieces_common_1.HttpMethod.POST,
96
+ url,
97
+ // authentication: {
98
+ // type: AuthenticationType.BEARER_TOKEN,
99
+ // token: token,
100
+ // },
101
+ headers: {
102
+ 'Content-Type': 'application/json',
103
+ 'Authorization': user.skaiApiKey,
104
+ 'User-Agent': 'Activepieces-SKAI-SDK/1.0',
105
+ },
106
+ body: payload,
107
+ });
108
+ if (response.status !== 200) {
109
+ throw new Error(`Failed to queue message for async processing: ${response.body}`);
110
+ }
111
+ console.log('✅ Message queued for async processing');
112
+ return response.body;
113
+ }
114
+ catch (error) {
115
+ console.error('❌ SKAI API error:', error);
116
+ if (error.response) {
117
+ const status = error.response.status;
118
+ const errorMessage = ((_a = error.response.body) === null || _a === void 0 ? void 0 : _a.message) || error.message;
119
+ throw new Error(`SKAI API error (${status}): ${errorMessage}`);
120
+ }
121
+ throw new Error(`Failed to call SKAI API: ${error.message || error}`);
122
+ }
123
+ });
124
+ },
125
+ /**
126
+ * List available agents for dropdown
127
+ * Uses SKAI SDK for consistency with other pieces
128
+ */
129
+ listAgents(params) {
130
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
131
+ var _a;
132
+ const { serverUrl, token } = params;
133
+ // Get user credentials first
134
+ const user = yield this.getPieceUser({ serverUrl, token });
135
+ if (!user.skaiApiKey) {
136
+ throw new Error('SKAI API key not configured');
137
+ }
138
+ try {
139
+ // Use SKAI SDK with proper configuration
140
+ const skaiClient = yield this.createSkaiClient({
141
+ serverUrl,
142
+ token,
143
+ userApiKey: user.skaiApiKey,
144
+ });
145
+ const agents = yield skaiClient.listAgents();
146
+ console.log(`✅ Found ${agents.length} SKAI agent(s)`);
147
+ // Map SDK agent format to our AgentInfo interface
148
+ return agents.map((agent) => {
149
+ var _a, _b;
150
+ return ({
151
+ id: agent.id,
152
+ name: agent.name,
153
+ description: agent.description,
154
+ logoUrl: agent.logoUrl,
155
+ type: agent.type,
156
+ isDraft: (_a = agent.isDraft) !== null && _a !== void 0 ? _a : false,
157
+ isMinted: (_b = agent.isMinted) !== null && _b !== void 0 ? _b : false,
158
+ });
159
+ });
160
+ }
161
+ catch (error) {
162
+ console.error('❌ Failed to list agents:', error);
163
+ if (error.response) {
164
+ const status = error.response.status;
165
+ const errorMessage = ((_a = error.response.body) === null || _a === void 0 ? void 0 : _a.message) || error.message;
166
+ throw new Error(`Failed to fetch agents (${status}): ${errorMessage}`);
167
+ }
168
+ throw new Error(`Failed to fetch agents: ${error.message || error}`);
169
+ }
170
+ });
171
+ },
172
+ };
173
+ //# sourceMappingURL=skai-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skai-client.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/custom/skai-adapters/src/lib/common/skai-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Platform-agnostic message format for SKAI Agents
3
+ * All platform-specific payloads are transformed to this structure
4
+ */
5
+ export interface GenericMessage {
6
+ external_id: string;
7
+ platform: Platform;
8
+ message: string;
9
+ reference_id?: string;
10
+ unique_handle?: string;
11
+ media_urls?: string[];
12
+ media_types?: MediaType[];
13
+ sender_name?: string;
14
+ metadata?: Record<string, any>;
15
+ timestamp?: string;
16
+ }
17
+ /**
18
+ * Supported messaging platforms
19
+ */
20
+ export declare enum Platform {
21
+ WHATSAPP = "whatsapp",
22
+ TELEGRAM = "telegram",
23
+ DISCORD = "discord",
24
+ SMS = "sms",
25
+ SLACK = "slack"
26
+ }
27
+ /**
28
+ * Supported media types across platforms
29
+ */
30
+ export declare enum MediaType {
31
+ IMAGE = "image",
32
+ VIDEO = "video",
33
+ AUDIO = "audio",
34
+ DOCUMENT = "document",
35
+ VOICE = "voice",
36
+ STICKER = "sticker"
37
+ }
38
+ /**
39
+ * SKAI Agents API response format
40
+ */
41
+ export interface SkaiAgentResponse {
42
+ chat_history_id: string;
43
+ mode: string;
44
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MediaType = exports.Platform = void 0;
4
+ /**
5
+ * Supported messaging platforms
6
+ */
7
+ var Platform;
8
+ (function (Platform) {
9
+ Platform["WHATSAPP"] = "whatsapp";
10
+ Platform["TELEGRAM"] = "telegram";
11
+ Platform["DISCORD"] = "discord";
12
+ Platform["SMS"] = "sms";
13
+ Platform["SLACK"] = "slack";
14
+ })(Platform || (exports.Platform = Platform = {}));
15
+ /**
16
+ * Supported media types across platforms
17
+ */
18
+ var MediaType;
19
+ (function (MediaType) {
20
+ MediaType["IMAGE"] = "image";
21
+ MediaType["VIDEO"] = "video";
22
+ MediaType["AUDIO"] = "audio";
23
+ MediaType["DOCUMENT"] = "document";
24
+ MediaType["VOICE"] = "voice";
25
+ MediaType["STICKER"] = "sticker";
26
+ })(MediaType || (exports.MediaType = MediaType = {}));
27
+ //# sourceMappingURL=generic-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-message.js","sourceRoot":"","sources":["../../../../../../../../../packages/pieces/custom/skai-adapters/src/lib/common/types/generic-message.ts"],"names":[],"mappings":";;;AAoBA;;GAEG;AACH,IAAY,QAMX;AAND,WAAY,QAAQ;IACnB,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,uBAAW,CAAA;IACX,2BAAe,CAAA;AAChB,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB;AAED;;GAEG;AACH,IAAY,SAOX;AAPD,WAAY,SAAS;IACpB,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,kCAAqB,CAAA;IACrB,4BAAe,CAAA;IACf,gCAAmB,CAAA;AACpB,CAAC,EAPW,SAAS,yBAAT,SAAS,QAOpB"}
@@ -0,0 +1,78 @@
1
+ import { GenericMessage } from '../common/types/generic-message';
2
+ /**
3
+ * Telegram message format (from skai-telegram trigger output)
4
+ */
5
+ export interface TelegramMessage {
6
+ chatId: number;
7
+ messageId: number;
8
+ text?: string;
9
+ from?: {
10
+ id: number;
11
+ first_name: string;
12
+ last_name?: string;
13
+ username?: string;
14
+ language_code?: string;
15
+ };
16
+ chat: {
17
+ id: number;
18
+ type: string;
19
+ title?: string;
20
+ username?: string;
21
+ };
22
+ date: number;
23
+ botUsername?: string;
24
+ botId?: number;
25
+ botName?: string;
26
+ media_urls?: string[];
27
+ media_types?: string[];
28
+ caption?: string;
29
+ photo?: Array<{
30
+ fileId: string;
31
+ fileUniqueId: string;
32
+ width: number;
33
+ height: number;
34
+ fileSize?: number;
35
+ }>;
36
+ video?: {
37
+ fileId: string;
38
+ fileUniqueId: string;
39
+ width: number;
40
+ height: number;
41
+ duration: number;
42
+ mimeType?: string;
43
+ fileSize?: number;
44
+ };
45
+ audio?: {
46
+ fileId: string;
47
+ fileUniqueId: string;
48
+ duration: number;
49
+ performer?: string;
50
+ title?: string;
51
+ mimeType?: string;
52
+ fileSize?: number;
53
+ };
54
+ document?: {
55
+ fileId: string;
56
+ fileUniqueId: string;
57
+ fileName?: string;
58
+ mimeType?: string;
59
+ fileSize?: number;
60
+ };
61
+ voice?: {
62
+ fileId: string;
63
+ fileUniqueId: string;
64
+ duration: number;
65
+ mimeType?: string;
66
+ fileSize?: number;
67
+ };
68
+ rawPayload?: any;
69
+ }
70
+ /**
71
+ * Transform Telegram message to generic format for SKAI processing
72
+ */
73
+ export declare class TelegramTransformer {
74
+ /**
75
+ * Transform Telegram message to GenericMessage
76
+ */
77
+ transform(telegramMessage: TelegramMessage): GenericMessage;
78
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TelegramTransformer = void 0;
4
+ const generic_message_1 = require("../common/types/generic-message");
5
+ /**
6
+ * Transform Telegram message to generic format for SKAI processing
7
+ */
8
+ class TelegramTransformer {
9
+ /**
10
+ * Transform Telegram message to GenericMessage
11
+ */
12
+ transform(telegramMessage) {
13
+ const genericMessage = {
14
+ external_id: telegramMessage.chatId.toString(),
15
+ reference_id: telegramMessage.messageId.toString(),
16
+ platform: generic_message_1.Platform.TELEGRAM,
17
+ message: telegramMessage.text || '',
18
+ timestamp: new Date(telegramMessage.date * 1000).toISOString(),
19
+ unique_handle: telegramMessage.botUsername,
20
+ metadata: {},
21
+ };
22
+ // Add sender information
23
+ if (telegramMessage.from) {
24
+ const fullName = [
25
+ telegramMessage.from.first_name,
26
+ telegramMessage.from.last_name,
27
+ ]
28
+ .filter(Boolean)
29
+ .join(' ');
30
+ genericMessage.sender_name = fullName || 'Unknown';
31
+ }
32
+ // Add media URLs and types if present
33
+ if (telegramMessage.media_urls && telegramMessage.media_urls.length > 0) {
34
+ genericMessage.media_urls = telegramMessage.media_urls;
35
+ // Map media types
36
+ if (telegramMessage.media_types && telegramMessage.media_types.length > 0) {
37
+ genericMessage.media_types = telegramMessage.media_types.map((type) => {
38
+ switch (type.toLowerCase()) {
39
+ case 'image':
40
+ return generic_message_1.MediaType.IMAGE;
41
+ case 'video':
42
+ return generic_message_1.MediaType.VIDEO;
43
+ case 'audio':
44
+ case 'voice':
45
+ return generic_message_1.MediaType.AUDIO;
46
+ case 'document':
47
+ return generic_message_1.MediaType.DOCUMENT;
48
+ default:
49
+ return generic_message_1.MediaType.DOCUMENT;
50
+ }
51
+ });
52
+ }
53
+ }
54
+ // Store metadata
55
+ if (genericMessage.metadata) {
56
+ genericMessage.metadata['chat'] = telegramMessage.chat;
57
+ if (telegramMessage.caption) {
58
+ genericMessage.metadata['caption'] = telegramMessage.caption;
59
+ }
60
+ // Add additional bot details to metadata
61
+ if (telegramMessage.botId) {
62
+ genericMessage.metadata['bot_id'] = telegramMessage.botId;
63
+ }
64
+ if (telegramMessage.botName) {
65
+ genericMessage.metadata['bot_name'] = telegramMessage.botName;
66
+ }
67
+ }
68
+ return genericMessage;
69
+ }
70
+ }
71
+ exports.TelegramTransformer = TelegramTransformer;
72
+ //# sourceMappingURL=telegram.transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram.transformer.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/custom/skai-adapters/src/lib/transformers/telegram.transformer.ts"],"names":[],"mappings":";;;AAAA,qEAAsF;AAuEtF;;GAEG;AACH,MAAa,mBAAmB;IAC/B;;OAEG;IACH,SAAS,CAAC,eAAgC;QACzC,MAAM,cAAc,GAAmB;YACtC,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC9C,YAAY,EAAE,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAE;YAClD,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;YAC3B,OAAO,EAAE,eAAe,CAAC,IAAI,IAAI,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YAC9D,aAAa,EAAE,eAAe,CAAC,WAAW;YAC1C,QAAQ,EAAE,EAAE;SACZ,CAAC;QAEF,yBAAyB;QACzB,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG;gBAChB,eAAe,CAAC,IAAI,CAAC,UAAU;gBAC/B,eAAe,CAAC,IAAI,CAAC,SAAS;aAC9B;iBACC,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,cAAc,CAAC,WAAW,GAAG,QAAQ,IAAI,SAAS,CAAC;QACpD,CAAC;QAED,sCAAsC;QACtC,IAAI,eAAe,CAAC,UAAU,IAAI,eAAe,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzE,cAAc,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;YAEvD,kBAAkB;YAClB,IAAI,eAAe,CAAC,WAAW,IAAI,eAAe,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3E,cAAc,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE;oBAC7E,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;wBAC5B,KAAK,OAAO;4BACX,OAAO,2BAAS,CAAC,KAAK,CAAC;wBACxB,KAAK,OAAO;4BACX,OAAO,2BAAS,CAAC,KAAK,CAAC;wBACxB,KAAK,OAAO,CAAC;wBACb,KAAK,OAAO;4BACX,OAAO,2BAAS,CAAC,KAAK,CAAC;wBACxB,KAAK,UAAU;4BACd,OAAO,2BAAS,CAAC,QAAQ,CAAC;wBAC3B;4BACC,OAAO,2BAAS,CAAC,QAAQ,CAAC;oBAC5B,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,iBAAiB;QACjB,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC7B,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC;YACvD,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC7B,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC;YAC9D,CAAC;YACD,yCAAyC;YACzC,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC3B,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC;YAC3D,CAAC;YACD,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC7B,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC;YAC/D,CAAC;QACF,CAAC;QAED,OAAO,cAAc,CAAC;IACvB,CAAC;CAED;AApED,kDAoEC"}
@@ -0,0 +1,73 @@
1
+ import { GenericMessage } from '../common/types/generic-message';
2
+ /**
3
+ * WhatsApp message structure (output from WhatsApp piece trigger)
4
+ */
5
+ export interface WhatsAppMessage {
6
+ from: string;
7
+ messageId: string;
8
+ timestamp: string;
9
+ type: string;
10
+ text?: string;
11
+ senderName?: string;
12
+ accountPhoneNumber?: string;
13
+ phoneNumberId?: string;
14
+ image?: {
15
+ id: string;
16
+ url?: string;
17
+ mimeType?: string;
18
+ sha256?: string;
19
+ caption?: string;
20
+ fileSize?: number;
21
+ };
22
+ video?: {
23
+ id: string;
24
+ url?: string;
25
+ mimeType?: string;
26
+ sha256?: string;
27
+ caption?: string;
28
+ fileSize?: number;
29
+ };
30
+ audio?: {
31
+ id: string;
32
+ url?: string;
33
+ mimeType?: string;
34
+ sha256?: string;
35
+ fileSize?: number;
36
+ };
37
+ document?: {
38
+ id: string;
39
+ url?: string;
40
+ mimeType?: string;
41
+ sha256?: string;
42
+ filename?: string;
43
+ caption?: string;
44
+ fileSize?: number;
45
+ };
46
+ voice?: {
47
+ id: string;
48
+ url?: string;
49
+ mimeType?: string;
50
+ sha256?: string;
51
+ fileSize?: number;
52
+ };
53
+ rawPayload?: any;
54
+ }
55
+ export declare class WhatsAppTransformer {
56
+ /**
57
+ * Transform WhatsApp message to GenericMessage format
58
+ */
59
+ transform(whatsappMessage: WhatsAppMessage): GenericMessage;
60
+ /**
61
+ * Extract text message from WhatsApp message
62
+ */
63
+ private extractMessage;
64
+ /**
65
+ * Extract media information from WhatsApp message
66
+ * Uses downloadable URLs fetched from WhatsApp API
67
+ */
68
+ private extractMedia;
69
+ /**
70
+ * Convert Unix timestamp to ISO 8601 format
71
+ */
72
+ private convertTimestamp;
73
+ }
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WhatsAppTransformer = void 0;
4
+ const generic_message_1 = require("../common/types/generic-message");
5
+ class WhatsAppTransformer {
6
+ /**
7
+ * Transform WhatsApp message to GenericMessage format
8
+ */
9
+ transform(whatsappMessage) {
10
+ if (!(whatsappMessage === null || whatsappMessage === void 0 ? void 0 : whatsappMessage.from) || !(whatsappMessage === null || whatsappMessage === void 0 ? void 0 : whatsappMessage.messageId)) {
11
+ throw new Error('Invalid WhatsApp message: missing required fields (from, messageId)');
12
+ }
13
+ const genericMessage = {
14
+ external_id: whatsappMessage.from,
15
+ reference_id: whatsappMessage.messageId,
16
+ platform: generic_message_1.Platform.WHATSAPP,
17
+ message: this.extractMessage(whatsappMessage),
18
+ timestamp: this.convertTimestamp(whatsappMessage.timestamp),
19
+ sender_name: whatsappMessage.senderName,
20
+ unique_handle: whatsappMessage.phoneNumberId,
21
+ metadata: Object.assign({ type: whatsappMessage.type, timestamp: whatsappMessage.timestamp }, (whatsappMessage.accountPhoneNumber && {
22
+ account_phone_number: whatsappMessage.accountPhoneNumber,
23
+ })),
24
+ };
25
+ // Handle media attachments
26
+ const media = this.extractMedia(whatsappMessage);
27
+ if (media) {
28
+ genericMessage.media_urls = media.urls;
29
+ genericMessage.media_types = media.types;
30
+ // Ensure metadata exists before adding media info
31
+ if (!genericMessage.metadata) {
32
+ genericMessage.metadata = {};
33
+ }
34
+ // Add media metadata using index signature access
35
+ if (whatsappMessage.image) {
36
+ genericMessage.metadata['image'] = whatsappMessage.image;
37
+ }
38
+ if (whatsappMessage.video) {
39
+ genericMessage.metadata['video'] = whatsappMessage.video;
40
+ }
41
+ if (whatsappMessage.audio) {
42
+ genericMessage.metadata['audio'] = whatsappMessage.audio;
43
+ }
44
+ if (whatsappMessage.document) {
45
+ genericMessage.metadata['document'] = whatsappMessage.document;
46
+ }
47
+ if (whatsappMessage.voice) {
48
+ genericMessage.metadata['voice'] = whatsappMessage.voice;
49
+ }
50
+ }
51
+ return genericMessage;
52
+ }
53
+ /**
54
+ * Extract text message from WhatsApp message
55
+ */
56
+ extractMessage(message) {
57
+ var _a, _b, _c, _d;
58
+ // Priority: explicit text field, then captions, then type description
59
+ if (message.text) {
60
+ return message.text;
61
+ }
62
+ switch (message.type) {
63
+ case 'text':
64
+ return message.text || '';
65
+ case 'image':
66
+ return ((_a = message.image) === null || _a === void 0 ? void 0 : _a.caption) || '[Image]';
67
+ case 'video':
68
+ return ((_b = message.video) === null || _b === void 0 ? void 0 : _b.caption) || '[Video]';
69
+ case 'audio':
70
+ return '[Audio Message]';
71
+ case 'document':
72
+ return ((_c = message.document) === null || _c === void 0 ? void 0 : _c.caption) || `[Document${((_d = message.document) === null || _d === void 0 ? void 0 : _d.filename) ? ': ' + message.document.filename : ''}]`;
73
+ case 'voice':
74
+ return '[Voice Message]';
75
+ default:
76
+ return `[Unsupported Message Type: ${message.type}]`;
77
+ }
78
+ }
79
+ /**
80
+ * Extract media information from WhatsApp message
81
+ * Uses downloadable URLs fetched from WhatsApp API
82
+ */
83
+ extractMedia(message) {
84
+ const media = {
85
+ urls: [],
86
+ types: [],
87
+ };
88
+ // Use downloadable URL if available, fallback to media ID
89
+ if (message.image) {
90
+ const url = message.image.url || message.image.id;
91
+ if (url) {
92
+ media.urls.push(url);
93
+ media.types.push(generic_message_1.MediaType.IMAGE);
94
+ }
95
+ }
96
+ if (message.video) {
97
+ const url = message.video.url || message.video.id;
98
+ if (url) {
99
+ media.urls.push(url);
100
+ media.types.push(generic_message_1.MediaType.VIDEO);
101
+ }
102
+ }
103
+ if (message.audio) {
104
+ const url = message.audio.url || message.audio.id;
105
+ if (url) {
106
+ media.urls.push(url);
107
+ media.types.push(generic_message_1.MediaType.AUDIO);
108
+ }
109
+ }
110
+ if (message.document) {
111
+ const url = message.document.url || message.document.id;
112
+ if (url) {
113
+ media.urls.push(url);
114
+ media.types.push(generic_message_1.MediaType.DOCUMENT);
115
+ }
116
+ }
117
+ if (message.voice) {
118
+ const url = message.voice.url || message.voice.id;
119
+ if (url) {
120
+ media.urls.push(url);
121
+ media.types.push(generic_message_1.MediaType.VOICE);
122
+ }
123
+ }
124
+ return media.urls.length > 0 ? media : null;
125
+ }
126
+ /**
127
+ * Convert Unix timestamp to ISO 8601 format
128
+ */
129
+ convertTimestamp(unixTimestamp) {
130
+ const timestampMs = parseInt(unixTimestamp) * 1000;
131
+ const date = new Date(timestampMs);
132
+ return date.toISOString();
133
+ }
134
+ }
135
+ exports.WhatsAppTransformer = WhatsAppTransformer;
136
+ //# sourceMappingURL=whatsapp.transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp.transformer.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/custom/skai-adapters/src/lib/transformers/whatsapp.transformer.ts"],"names":[],"mappings":";;;AAAA,qEAAsF;AAwDtF,MAAa,mBAAmB;IAC/B;;OAEG;IACH,SAAS,CAAC,eAAgC;QACzC,IAAI,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,CAAA,IAAI,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,CAAA,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,cAAc,GAAmB;YACtC,WAAW,EAAE,eAAe,CAAC,IAAI;YACjC,YAAY,EAAE,eAAe,CAAC,SAAS;YACvC,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;YAC3B,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;YAC7C,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC;YAC3D,WAAW,EAAE,eAAe,CAAC,UAAU;YACvC,aAAa,EAAE,eAAe,CAAC,aAAa;YAC5C,QAAQ,kBACP,IAAI,EAAE,eAAe,CAAC,IAAI,EAC1B,SAAS,EAAE,eAAe,CAAC,SAAS,IACjC,CAAC,eAAe,CAAC,kBAAkB,IAAI;gBACzC,oBAAoB,EAAE,eAAe,CAAC,kBAAkB;aACxD,CAAC,CACF;SACD,CAAC;QAEF,2BAA2B;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,KAAK,EAAE,CAAC;YACX,cAAc,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;YACvC,cAAc,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;YAEzC,kDAAkD;YAClD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC9B,cAAc,CAAC,QAAQ,GAAG,EAAE,CAAC;YAC9B,CAAC;YAED,kDAAkD;YAClD,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC3B,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC;YAC1D,CAAC;YACD,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC3B,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC;YAC1D,CAAC;YACD,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC3B,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC;YAC1D,CAAC;YACD,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;gBAC9B,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC;YAChE,CAAC;YACD,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC3B,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC;YAC1D,CAAC;QACF,CAAC;QAED,OAAO,cAAc,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAAwB;;QAC9C,sEAAsE;QACtE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,MAAM;gBACV,OAAO,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;YAC3B,KAAK,OAAO;gBACX,OAAO,CAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,OAAO,KAAI,SAAS,CAAC;YAC5C,KAAK,OAAO;gBACX,OAAO,CAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,OAAO,KAAI,SAAS,CAAC;YAC5C,KAAK,OAAO;gBACX,OAAO,iBAAiB,CAAC;YAC1B,KAAK,UAAU;gBACd,OAAO,CAAA,MAAA,OAAO,CAAC,QAAQ,0CAAE,OAAO,KAAI,YAAY,CAAA,MAAA,OAAO,CAAC,QAAQ,0CAAE,QAAQ,EAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;YACvH,KAAK,OAAO;gBACX,OAAO,iBAAiB,CAAC;YAC1B;gBACC,OAAO,8BAA8B,OAAO,CAAC,IAAI,GAAG,CAAC;QACvD,CAAC;IACF,CAAC;IAED;;;OAGG;IACK,YAAY,CACnB,OAAwB;QAExB,MAAM,KAAK,GAA2C;YACrD,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;SACT,CAAC;QAEF,0DAA0D;QAC1D,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,GAAG,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,2BAAS,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;QACF,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,GAAG,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,2BAAS,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;QACF,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,GAAG,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,2BAAS,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;QACF,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,IAAI,GAAG,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,2BAAS,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;QACF,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,GAAG,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,2BAAS,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,aAAqB;QAC7C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;CACD;AArJD,kDAqJC"}
@@ -0,0 +1,20 @@
1
+ import { TriggerStrategy } from '@activepieces/pieces-framework';
2
+ /**
3
+ * SKAI Response Webhook Payload
4
+ * This is what the backend sends when processing is complete
5
+ */
6
+ export interface SkaiWebhookPayload {
7
+ external_id: string;
8
+ platform: string;
9
+ message: string;
10
+ media_urls?: string[];
11
+ media_types?: string[];
12
+ reference_id?: string;
13
+ }
14
+ export declare const skaiResponseWebhook: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").PieceAuthProperty, {
15
+ webhookUrl: import("dist/packages/pieces/community/framework/src/lib/property/input/markdown-property").MarkDownProperty;
16
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").PieceAuthProperty, {
17
+ webhookUrl: import("dist/packages/pieces/community/framework/src/lib/property/input/markdown-property").MarkDownProperty;
18
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").PieceAuthProperty, {
19
+ webhookUrl: import("dist/packages/pieces/community/framework/src/lib/property/input/markdown-property").MarkDownProperty;
20
+ }>;