@marktoflow/integrations 2.0.0-alpha.3

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 (105) hide show
  1. package/dist/adapters/claude-code.d.ts +16 -0
  2. package/dist/adapters/claude-code.d.ts.map +1 -0
  3. package/dist/adapters/claude-code.js +56 -0
  4. package/dist/adapters/claude-code.js.map +1 -0
  5. package/dist/adapters/ollama.d.ts +3 -0
  6. package/dist/adapters/ollama.d.ts.map +1 -0
  7. package/dist/adapters/ollama.js +9 -0
  8. package/dist/adapters/ollama.js.map +1 -0
  9. package/dist/adapters/opencode.d.ts +21 -0
  10. package/dist/adapters/opencode.d.ts.map +1 -0
  11. package/dist/adapters/opencode.js +119 -0
  12. package/dist/adapters/opencode.js.map +1 -0
  13. package/dist/claude-code.d.ts +16 -0
  14. package/dist/claude-code.d.ts.map +1 -0
  15. package/dist/claude-code.js +56 -0
  16. package/dist/claude-code.js.map +1 -0
  17. package/dist/github.d.ts +3 -0
  18. package/dist/github.d.ts.map +1 -0
  19. package/dist/github.js +13 -0
  20. package/dist/github.js.map +1 -0
  21. package/dist/index.d.ts +21 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +67 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/jira.d.ts +3 -0
  26. package/dist/jira.d.ts.map +1 -0
  27. package/dist/jira.js +21 -0
  28. package/dist/jira.js.map +1 -0
  29. package/dist/ollama.d.ts +3 -0
  30. package/dist/ollama.d.ts.map +1 -0
  31. package/dist/ollama.js +9 -0
  32. package/dist/ollama.js.map +1 -0
  33. package/dist/opencode.d.ts +19 -0
  34. package/dist/opencode.d.ts.map +1 -0
  35. package/dist/opencode.js +104 -0
  36. package/dist/opencode.js.map +1 -0
  37. package/dist/script.d.ts +3 -0
  38. package/dist/script.d.ts.map +1 -0
  39. package/dist/script.js +21 -0
  40. package/dist/script.js.map +1 -0
  41. package/dist/services/airtable.d.ts +145 -0
  42. package/dist/services/airtable.d.ts.map +1 -0
  43. package/dist/services/airtable.js +295 -0
  44. package/dist/services/airtable.js.map +1 -0
  45. package/dist/services/confluence.d.ts +205 -0
  46. package/dist/services/confluence.d.ts.map +1 -0
  47. package/dist/services/confluence.js +356 -0
  48. package/dist/services/confluence.js.map +1 -0
  49. package/dist/services/discord.d.ts +212 -0
  50. package/dist/services/discord.d.ts.map +1 -0
  51. package/dist/services/discord.js +279 -0
  52. package/dist/services/discord.js.map +1 -0
  53. package/dist/services/github.d.ts +3 -0
  54. package/dist/services/github.d.ts.map +1 -0
  55. package/dist/services/github.js +13 -0
  56. package/dist/services/github.js.map +1 -0
  57. package/dist/services/gmail-trigger.d.ts +92 -0
  58. package/dist/services/gmail-trigger.d.ts.map +1 -0
  59. package/dist/services/gmail-trigger.js +172 -0
  60. package/dist/services/gmail-trigger.js.map +1 -0
  61. package/dist/services/gmail.d.ts +116 -0
  62. package/dist/services/gmail.d.ts.map +1 -0
  63. package/dist/services/gmail.js +333 -0
  64. package/dist/services/gmail.js.map +1 -0
  65. package/dist/services/http.d.ts +120 -0
  66. package/dist/services/http.d.ts.map +1 -0
  67. package/dist/services/http.js +284 -0
  68. package/dist/services/http.js.map +1 -0
  69. package/dist/services/jira.d.ts +3 -0
  70. package/dist/services/jira.d.ts.map +1 -0
  71. package/dist/services/jira.js +21 -0
  72. package/dist/services/jira.js.map +1 -0
  73. package/dist/services/linear.d.ts +163 -0
  74. package/dist/services/linear.d.ts.map +1 -0
  75. package/dist/services/linear.js +326 -0
  76. package/dist/services/linear.js.map +1 -0
  77. package/dist/services/notion.d.ts +206 -0
  78. package/dist/services/notion.d.ts.map +1 -0
  79. package/dist/services/notion.js +358 -0
  80. package/dist/services/notion.js.map +1 -0
  81. package/dist/services/outlook-trigger.d.ts +121 -0
  82. package/dist/services/outlook-trigger.d.ts.map +1 -0
  83. package/dist/services/outlook-trigger.js +204 -0
  84. package/dist/services/outlook-trigger.js.map +1 -0
  85. package/dist/services/outlook.d.ts +237 -0
  86. package/dist/services/outlook.d.ts.map +1 -0
  87. package/dist/services/outlook.js +475 -0
  88. package/dist/services/outlook.js.map +1 -0
  89. package/dist/services/slack-socket.d.ts +18 -0
  90. package/dist/services/slack-socket.d.ts.map +1 -0
  91. package/dist/services/slack-socket.js +46 -0
  92. package/dist/services/slack-socket.js.map +1 -0
  93. package/dist/services/slack.d.ts +3 -0
  94. package/dist/services/slack.d.ts.map +1 -0
  95. package/dist/services/slack.js +11 -0
  96. package/dist/services/slack.js.map +1 -0
  97. package/dist/slack.d.ts +3 -0
  98. package/dist/slack.d.ts.map +1 -0
  99. package/dist/slack.js +11 -0
  100. package/dist/slack.js.map +1 -0
  101. package/dist/tools/script.d.ts +3 -0
  102. package/dist/tools/script.d.ts.map +1 -0
  103. package/dist/tools/script.js +21 -0
  104. package/dist/tools/script.js.map +1 -0
  105. package/package.json +57 -0
@@ -0,0 +1,475 @@
1
+ import { Client } from '@microsoft/microsoft-graph-client';
2
+ function normalizeRecipients(recipients) {
3
+ if (!recipients)
4
+ return [];
5
+ if (typeof recipients === 'string') {
6
+ return [{ emailAddress: { address: recipients } }];
7
+ }
8
+ if (Array.isArray(recipients)) {
9
+ return recipients.map((r) => {
10
+ if (typeof r === 'string') {
11
+ return { emailAddress: { address: r } };
12
+ }
13
+ return { emailAddress: { name: r.name, address: r.address } };
14
+ });
15
+ }
16
+ return [];
17
+ }
18
+ function parseRecipient(r) {
19
+ return {
20
+ name: r.emailAddress?.name ?? '',
21
+ address: r.emailAddress?.address ?? '',
22
+ };
23
+ }
24
+ function parseMessage(msg) {
25
+ const from = msg.from;
26
+ const toRecipients = (msg.toRecipients ?? []);
27
+ const ccRecipients = (msg.ccRecipients ?? []);
28
+ const bccRecipients = (msg.bccRecipients ?? []);
29
+ const body = msg.body;
30
+ const categories = (msg.categories ?? []);
31
+ return {
32
+ id: msg.id ?? '',
33
+ conversationId: msg.conversationId ?? '',
34
+ subject: msg.subject ?? '(no subject)',
35
+ from: from?.emailAddress?.name ?? from?.emailAddress?.address ?? '',
36
+ fromAddress: from?.emailAddress?.address ?? '',
37
+ to: toRecipients.map(parseRecipient),
38
+ cc: ccRecipients.length > 0 ? ccRecipients.map(parseRecipient) : undefined,
39
+ bcc: bccRecipients.length > 0 ? bccRecipients.map(parseRecipient) : undefined,
40
+ receivedDateTime: msg.receivedDateTime ?? '',
41
+ sentDateTime: msg.sentDateTime,
42
+ bodyPreview: msg.bodyPreview ?? '',
43
+ body: body?.contentType === 'text' ? body.content : undefined,
44
+ bodyHtml: body?.contentType === 'html' ? body.content : undefined,
45
+ isRead: msg.isRead ?? false,
46
+ hasAttachments: msg.hasAttachments ?? false,
47
+ importance: (msg.importance ?? 'normal'),
48
+ categories,
49
+ webLink: msg.webLink,
50
+ };
51
+ }
52
+ function parseEvent(evt) {
53
+ const body = evt.body;
54
+ const start = evt.start;
55
+ const end = evt.end;
56
+ const location = evt.location;
57
+ const attendees = (evt.attendees ?? []);
58
+ const organizer = evt.organizer;
59
+ return {
60
+ id: evt.id ?? '',
61
+ subject: evt.subject ?? '',
62
+ body: body?.contentType === 'text' ? body.content : undefined,
63
+ bodyHtml: body?.contentType === 'html' ? body.content : undefined,
64
+ start: {
65
+ dateTime: start?.dateTime ?? '',
66
+ timeZone: start?.timeZone ?? 'UTC',
67
+ },
68
+ end: {
69
+ dateTime: end?.dateTime ?? '',
70
+ timeZone: end?.timeZone ?? 'UTC',
71
+ },
72
+ location: location?.displayName,
73
+ attendees: attendees.map((a) => ({
74
+ name: a.emailAddress?.name ?? '',
75
+ address: a.emailAddress?.address ?? '',
76
+ type: a.type ?? 'required',
77
+ })),
78
+ organizer: organizer?.emailAddress
79
+ ? {
80
+ name: organizer.emailAddress.name ?? '',
81
+ address: organizer.emailAddress.address ?? '',
82
+ }
83
+ : undefined,
84
+ isOnlineMeeting: evt.isOnlineMeeting ?? false,
85
+ onlineMeetingUrl: evt.onlineMeetingUrl,
86
+ webLink: evt.webLink,
87
+ };
88
+ }
89
+ /**
90
+ * Outlook actions for workflow integration (Email + Calendar)
91
+ */
92
+ export class OutlookActions {
93
+ client;
94
+ constructor(client) {
95
+ this.client = client;
96
+ }
97
+ /**
98
+ * Get emails from Outlook mailbox
99
+ */
100
+ async getEmails(options = {}) {
101
+ const { folder = 'inbox', filter, select = [
102
+ 'id',
103
+ 'conversationId',
104
+ 'subject',
105
+ 'from',
106
+ 'toRecipients',
107
+ 'ccRecipients',
108
+ 'receivedDateTime',
109
+ 'bodyPreview',
110
+ 'body',
111
+ 'isRead',
112
+ 'hasAttachments',
113
+ 'importance',
114
+ 'categories',
115
+ 'webLink',
116
+ ], top = 10, skip, orderBy = 'receivedDateTime desc', search, } = options;
117
+ let request = this.client.api(`/me/mailFolders/${folder}/messages`).select(select).top(top);
118
+ if (orderBy)
119
+ request = request.orderby(orderBy);
120
+ if (filter)
121
+ request = request.filter(filter);
122
+ if (skip)
123
+ request = request.skip(skip);
124
+ if (search)
125
+ request = request.search(search);
126
+ const response = (await request.get());
127
+ const emails = (response.value ?? []).map((msg) => parseMessage(msg));
128
+ return {
129
+ emails,
130
+ nextLink: response['@odata.nextLink'],
131
+ };
132
+ }
133
+ /**
134
+ * Get a specific email by ID
135
+ */
136
+ async getEmail(id) {
137
+ const msg = await this.client
138
+ .api(`/me/messages/${id}`)
139
+ .select([
140
+ 'id',
141
+ 'conversationId',
142
+ 'subject',
143
+ 'from',
144
+ 'toRecipients',
145
+ 'ccRecipients',
146
+ 'bccRecipients',
147
+ 'receivedDateTime',
148
+ 'sentDateTime',
149
+ 'bodyPreview',
150
+ 'body',
151
+ 'isRead',
152
+ 'hasAttachments',
153
+ 'importance',
154
+ 'categories',
155
+ 'webLink',
156
+ ])
157
+ .get();
158
+ return parseMessage(msg);
159
+ }
160
+ /**
161
+ * Send an email via Outlook
162
+ */
163
+ async sendEmail(options) {
164
+ const message = {
165
+ subject: options.subject,
166
+ body: {
167
+ contentType: options.bodyType ?? 'text',
168
+ content: options.body,
169
+ },
170
+ toRecipients: normalizeRecipients(options.to),
171
+ ccRecipients: normalizeRecipients(options.cc),
172
+ bccRecipients: normalizeRecipients(options.bcc),
173
+ importance: options.importance ?? 'normal',
174
+ replyTo: options.replyTo ? normalizeRecipients(options.replyTo) : undefined,
175
+ };
176
+ await this.client.api('/me/sendMail').post({
177
+ message,
178
+ saveToSentItems: options.saveToSentItems ?? true,
179
+ });
180
+ }
181
+ /**
182
+ * Create a draft email in Outlook
183
+ */
184
+ async createDraft(options) {
185
+ const draft = {
186
+ subject: options.subject,
187
+ body: options.body
188
+ ? {
189
+ contentType: options.bodyType ?? 'text',
190
+ content: options.body,
191
+ }
192
+ : undefined,
193
+ toRecipients: normalizeRecipients(options.to),
194
+ ccRecipients: normalizeRecipients(options.cc),
195
+ bccRecipients: normalizeRecipients(options.bcc),
196
+ importance: options.importance ?? 'normal',
197
+ };
198
+ const response = await this.client.api('/me/messages').post(draft);
199
+ return {
200
+ id: response.id,
201
+ conversationId: response.conversationId,
202
+ webLink: response.webLink,
203
+ };
204
+ }
205
+ /**
206
+ * Reply to an email
207
+ */
208
+ async reply(messageId, body, bodyType = 'text', replyAll = false) {
209
+ const endpoint = replyAll
210
+ ? `/me/messages/${messageId}/replyAll`
211
+ : `/me/messages/${messageId}/reply`;
212
+ await this.client.api(endpoint).post({
213
+ message: {
214
+ body: {
215
+ contentType: bodyType,
216
+ content: body,
217
+ },
218
+ },
219
+ });
220
+ }
221
+ /**
222
+ * Forward an email
223
+ */
224
+ async forward(messageId, to, comment) {
225
+ await this.client.api(`/me/messages/${messageId}/forward`).post({
226
+ toRecipients: normalizeRecipients(to),
227
+ comment,
228
+ });
229
+ }
230
+ /**
231
+ * Mark an email as read
232
+ */
233
+ async markAsRead(id) {
234
+ await this.client.api(`/me/messages/${id}`).patch({
235
+ isRead: true,
236
+ });
237
+ }
238
+ /**
239
+ * Mark an email as unread
240
+ */
241
+ async markAsUnread(id) {
242
+ await this.client.api(`/me/messages/${id}`).patch({
243
+ isRead: false,
244
+ });
245
+ }
246
+ /**
247
+ * Move an email to a folder
248
+ */
249
+ async moveToFolder(messageId, destinationFolderId) {
250
+ await this.client.api(`/me/messages/${messageId}/move`).post({
251
+ destinationId: destinationFolderId,
252
+ });
253
+ }
254
+ /**
255
+ * Delete an email (move to deleted items)
256
+ */
257
+ async delete(id) {
258
+ await this.client.api(`/me/messages/${id}`).delete();
259
+ }
260
+ /**
261
+ * List mail folders
262
+ */
263
+ async listFolders() {
264
+ const response = await this.client
265
+ .api('/me/mailFolders')
266
+ .select(['id', 'displayName', 'totalItemCount'])
267
+ .get();
268
+ return (response.value ?? []).map((f) => ({
269
+ id: f.id ?? '',
270
+ displayName: f.displayName ?? '',
271
+ totalItemCount: f.totalItemCount ?? 0,
272
+ }));
273
+ }
274
+ // Calendar methods
275
+ /**
276
+ * Get calendar events
277
+ */
278
+ async getEvents(options = {}) {
279
+ const { startDateTime, endDateTime, top = 10, skip, filter, orderBy = 'start/dateTime', } = options;
280
+ let request = this.client
281
+ .api('/me/events')
282
+ .select([
283
+ 'id',
284
+ 'subject',
285
+ 'body',
286
+ 'start',
287
+ 'end',
288
+ 'location',
289
+ 'attendees',
290
+ 'organizer',
291
+ 'isOnlineMeeting',
292
+ 'onlineMeetingUrl',
293
+ 'webLink',
294
+ ])
295
+ .top(top)
296
+ .orderby(orderBy);
297
+ if (filter)
298
+ request = request.filter(filter);
299
+ if (skip)
300
+ request = request.skip(skip);
301
+ // Use calendarView for date range queries
302
+ if (startDateTime && endDateTime) {
303
+ request = this.client
304
+ .api('/me/calendarView')
305
+ .query({
306
+ startDateTime,
307
+ endDateTime,
308
+ })
309
+ .select([
310
+ 'id',
311
+ 'subject',
312
+ 'body',
313
+ 'start',
314
+ 'end',
315
+ 'location',
316
+ 'attendees',
317
+ 'organizer',
318
+ 'isOnlineMeeting',
319
+ 'onlineMeetingUrl',
320
+ 'webLink',
321
+ ])
322
+ .top(top)
323
+ .orderby(orderBy);
324
+ }
325
+ const response = await request.get();
326
+ return (response.value ?? []).map((evt) => parseEvent(evt));
327
+ }
328
+ /**
329
+ * Get a specific calendar event by ID
330
+ */
331
+ async getEvent(id) {
332
+ const evt = await this.client
333
+ .api(`/me/events/${id}`)
334
+ .select([
335
+ 'id',
336
+ 'subject',
337
+ 'body',
338
+ 'start',
339
+ 'end',
340
+ 'location',
341
+ 'attendees',
342
+ 'organizer',
343
+ 'isOnlineMeeting',
344
+ 'onlineMeetingUrl',
345
+ 'webLink',
346
+ ])
347
+ .get();
348
+ return parseEvent(evt);
349
+ }
350
+ /**
351
+ * Create a calendar event
352
+ */
353
+ async createEvent(options) {
354
+ const attendees = options.attendees?.map((a) => {
355
+ if (typeof a === 'string') {
356
+ return {
357
+ emailAddress: { address: a },
358
+ type: 'required',
359
+ };
360
+ }
361
+ return {
362
+ emailAddress: { name: a.name, address: a.address },
363
+ type: 'required',
364
+ };
365
+ });
366
+ const event = {
367
+ subject: options.subject,
368
+ body: options.body
369
+ ? {
370
+ contentType: options.bodyType ?? 'text',
371
+ content: options.body,
372
+ }
373
+ : undefined,
374
+ start: {
375
+ dateTime: options.start.dateTime,
376
+ timeZone: options.start.timeZone ?? 'UTC',
377
+ },
378
+ end: {
379
+ dateTime: options.end.dateTime,
380
+ timeZone: options.end.timeZone ?? 'UTC',
381
+ },
382
+ location: options.location ? { displayName: options.location } : undefined,
383
+ attendees,
384
+ isOnlineMeeting: options.isOnlineMeeting ?? false,
385
+ reminderMinutesBeforeStart: options.reminderMinutesBeforeStart ?? 15,
386
+ };
387
+ const response = await this.client.api('/me/events').post(event);
388
+ return parseEvent(response);
389
+ }
390
+ /**
391
+ * Update a calendar event
392
+ */
393
+ async updateEvent(id, updates) {
394
+ const patch = {};
395
+ if (updates.subject !== undefined)
396
+ patch.subject = updates.subject;
397
+ if (updates.body !== undefined) {
398
+ patch.body = {
399
+ contentType: updates.bodyType ?? 'text',
400
+ content: updates.body,
401
+ };
402
+ }
403
+ if (updates.start !== undefined) {
404
+ patch.start = {
405
+ dateTime: updates.start.dateTime,
406
+ timeZone: updates.start.timeZone ?? 'UTC',
407
+ };
408
+ }
409
+ if (updates.end !== undefined) {
410
+ patch.end = {
411
+ dateTime: updates.end.dateTime,
412
+ timeZone: updates.end.timeZone ?? 'UTC',
413
+ };
414
+ }
415
+ if (updates.location !== undefined) {
416
+ patch.location = { displayName: updates.location };
417
+ }
418
+ if (updates.isOnlineMeeting !== undefined) {
419
+ patch.isOnlineMeeting = updates.isOnlineMeeting;
420
+ }
421
+ const response = await this.client.api(`/me/events/${id}`).patch(patch);
422
+ return parseEvent(response);
423
+ }
424
+ /**
425
+ * Delete a calendar event
426
+ */
427
+ async deleteEvent(id) {
428
+ await this.client.api(`/me/events/${id}`).delete();
429
+ }
430
+ /**
431
+ * Accept a meeting invitation
432
+ */
433
+ async acceptEvent(id, comment, sendResponse = true) {
434
+ await this.client.api(`/me/events/${id}/accept`).post({
435
+ comment,
436
+ sendResponse,
437
+ });
438
+ }
439
+ /**
440
+ * Decline a meeting invitation
441
+ */
442
+ async declineEvent(id, comment, sendResponse = true) {
443
+ await this.client.api(`/me/events/${id}/decline`).post({
444
+ comment,
445
+ sendResponse,
446
+ });
447
+ }
448
+ /**
449
+ * Tentatively accept a meeting invitation
450
+ */
451
+ async tentativelyAcceptEvent(id, comment, sendResponse = true) {
452
+ await this.client.api(`/me/events/${id}/tentativelyAccept`).post({
453
+ comment,
454
+ sendResponse,
455
+ });
456
+ }
457
+ }
458
+ export const OutlookInitializer = {
459
+ async initialize(_module, config) {
460
+ const token = config.auth?.['token'];
461
+ if (!token) {
462
+ throw new Error('Outlook SDK requires auth.token');
463
+ }
464
+ const client = Client.init({
465
+ authProvider: (done) => {
466
+ done(null, token);
467
+ },
468
+ });
469
+ return {
470
+ client,
471
+ actions: new OutlookActions(client),
472
+ };
473
+ },
474
+ };
475
+ //# sourceMappingURL=outlook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outlook.js","sourceRoot":"","sources":["../../src/services/outlook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface SlackSocketTriggerConfig {
2
+ appToken: string;
3
+ botToken: string;
4
+ triggers: Array<{
5
+ id: string;
6
+ event: 'message' | 'app_mention';
7
+ handler: (payload: Record<string, unknown>) => Promise<void>;
8
+ }>;
9
+ }
10
+ export declare class SlackSocketTrigger {
11
+ private config;
12
+ private app?;
13
+ private handlersRegistered;
14
+ constructor(config: SlackSocketTriggerConfig);
15
+ start(): Promise<void>;
16
+ stop(): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=slack-socket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-socket.d.ts","sourceRoot":"","sources":["../../src/services/slack-socket.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,SAAS,GAAG,aAAa,CAAC;QACjC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC9D,CAAC,CAAC;CACJ;AAED,qBAAa,kBAAkB;IAIjB,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,GAAG,CAAC,CAAM;IAClB,OAAO,CAAC,kBAAkB,CAAS;gBAEf,MAAM,EAAE,wBAAwB;IAE9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAM5B"}
@@ -0,0 +1,46 @@
1
+ import { App } from '@slack/bolt';
2
+ import { TriggerType } from '@marktoflow/core';
3
+ export class SlackSocketTrigger {
4
+ config;
5
+ app;
6
+ handlersRegistered = false;
7
+ constructor(config) {
8
+ this.config = config;
9
+ }
10
+ async start() {
11
+ if (!this.app) {
12
+ this.app = new App({
13
+ token: this.config.botToken,
14
+ appToken: this.config.appToken,
15
+ socketMode: true,
16
+ });
17
+ }
18
+ if (!this.handlersRegistered) {
19
+ for (const trigger of this.config.triggers) {
20
+ if (trigger.event === 'message') {
21
+ this.app.message(async ({ message }) => {
22
+ await trigger.handler({ type: TriggerType.EVENT, event: 'message', message });
23
+ });
24
+ }
25
+ if (trigger.event === 'app_mention') {
26
+ this.app.event('app_mention', async ({ event }) => {
27
+ await trigger.handler({
28
+ type: TriggerType.EVENT,
29
+ event: 'app_mention',
30
+ payload: event,
31
+ });
32
+ });
33
+ }
34
+ }
35
+ this.handlersRegistered = true;
36
+ }
37
+ await this.app.start();
38
+ }
39
+ async stop() {
40
+ if (!this.app) {
41
+ return;
42
+ }
43
+ await this.app.stop();
44
+ }
45
+ }
46
+ //# sourceMappingURL=slack-socket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-socket.js","sourceRoot":"","sources":["../../src/services/slack-socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAY/C,MAAM,OAAO,kBAAkB;IAIT;IAHZ,GAAG,CAAO;IACV,kBAAkB,GAAG,KAAK,CAAC;IAEnC,YAAoB,MAAgC;QAAhC,WAAM,GAAN,MAAM,CAA0B;IAAG,CAAC;IAExD,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;gBACjB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC3C,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAChC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;wBACrC,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;oBAChF,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;oBACpC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;wBAChD,MAAM,OAAO,CAAC,OAAO,CAAC;4BACpB,IAAI,EAAE,WAAW,CAAC,KAAK;4BACvB,KAAK,EAAE,aAAa;4BACpB,OAAO,EAAE,KAAK;yBACf,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ import { SDKInitializer } from '@marktoflow/core';
2
+ export declare const SlackInitializer: SDKInitializer;
3
+ //# sourceMappingURL=slack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../src/services/slack.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,eAAO,MAAM,gBAAgB,EAAE,cAQ9B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { WebClient } from '@slack/web-api';
2
+ export const SlackInitializer = {
3
+ async initialize(_module, config) {
4
+ const token = config.auth?.['token'];
5
+ if (!token) {
6
+ throw new Error('Slack SDK requires auth.token');
7
+ }
8
+ return new WebClient(token);
9
+ },
10
+ };
11
+ //# sourceMappingURL=slack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../src/services/slack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C,KAAK,CAAC,UAAU,CAAC,OAAgB,EAAE,MAAkB;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAW,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { SDKInitializer } from '@marktoflow/core';
2
+ export declare const SlackInitializer: SDKInitializer;
3
+ //# sourceMappingURL=slack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,eAAO,MAAM,gBAAgB,EAAE,cAQ9B,CAAC"}
package/dist/slack.js ADDED
@@ -0,0 +1,11 @@
1
+ import { WebClient } from '@slack/web-api';
2
+ export const SlackInitializer = {
3
+ async initialize(_module, config) {
4
+ const token = config.auth?.['token'];
5
+ if (!token) {
6
+ throw new Error('Slack SDK requires auth.token');
7
+ }
8
+ return new WebClient(token);
9
+ },
10
+ };
11
+ //# sourceMappingURL=slack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C,KAAK,CAAC,UAAU,CAAC,OAAgB,EAAE,MAAkB;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAW,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { SDKInitializer } from '@marktoflow/core';
2
+ export declare const ScriptInitializer: SDKInitializer;
3
+ //# sourceMappingURL=script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../src/tools/script.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE1E,eAAO,MAAM,iBAAiB,EAAE,cAoB/B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { ScriptTool } from '@marktoflow/core';
2
+ export const ScriptInitializer = {
3
+ async initialize(_module, config) {
4
+ const scriptPath = config.options?.['path'];
5
+ if (!scriptPath) {
6
+ throw new Error('Script integration requires options.path');
7
+ }
8
+ const toolsDir = config.options?.['toolsDir'];
9
+ const tool = new ScriptTool(scriptPath, toolsDir);
10
+ // We return a proxy that maps method calls to tool.execute(method, args)
11
+ return new Proxy(tool, {
12
+ get: (target, prop) => {
13
+ if (typeof prop === 'string' && prop !== 'then') {
14
+ return (params) => target.execute(prop, params);
15
+ }
16
+ return Reflect.get(target, prop);
17
+ }
18
+ });
19
+ },
20
+ };
21
+ //# sourceMappingURL=script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../../src/tools/script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA8B,MAAM,kBAAkB,CAAC;AAE1E,MAAM,CAAC,MAAM,iBAAiB,GAAmB;IAC/C,KAAK,CAAC,UAAU,CAAC,OAAgB,EAAE,MAAkB;QACnD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAW,CAAC;QACtD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,UAAU,CAAW,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAElD,yEAAyE;QACzE,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;YACrB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBAChD,OAAO,CAAC,MAA2B,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACvE,CAAC;gBACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}