@notionhq/workers 0.5.0 → 0.7.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.
Files changed (182) hide show
  1. package/dist/alpha/ajv-formats.d.js +0 -0
  2. package/dist/alpha/builder.d.ts +149 -0
  3. package/dist/alpha/builder.d.ts.map +1 -0
  4. package/dist/alpha/builder.js +260 -0
  5. package/dist/alpha/builder.test.d.ts +2 -0
  6. package/dist/alpha/builder.test.d.ts.map +1 -0
  7. package/dist/alpha/cli/build.d.ts +13 -0
  8. package/dist/alpha/cli/build.d.ts.map +1 -0
  9. package/dist/alpha/cli/build.js +36 -0
  10. package/dist/alpha/cli/build.test.d.ts +2 -0
  11. package/dist/alpha/cli/build.test.d.ts.map +1 -0
  12. package/dist/alpha/cli/codegen.d.ts +10 -0
  13. package/dist/alpha/cli/codegen.d.ts.map +1 -0
  14. package/dist/alpha/cli/codegen.js +41 -0
  15. package/dist/alpha/cli/codegen.test.d.ts +2 -0
  16. package/dist/alpha/cli/codegen.test.d.ts.map +1 -0
  17. package/dist/alpha/cli/discover.d.ts +35 -0
  18. package/dist/alpha/cli/discover.d.ts.map +1 -0
  19. package/dist/alpha/cli/discover.js +39 -0
  20. package/dist/alpha/cli/discover.test.d.ts +2 -0
  21. package/dist/alpha/cli/discover.test.d.ts.map +1 -0
  22. package/dist/alpha/cli/emit-manifest.d.ts +33 -0
  23. package/dist/alpha/cli/emit-manifest.d.ts.map +1 -0
  24. package/dist/alpha/cli/emit-manifest.js +266 -0
  25. package/dist/alpha/cli/emit-manifest.test.d.ts +2 -0
  26. package/dist/alpha/cli/emit-manifest.test.d.ts.map +1 -0
  27. package/dist/alpha/cli/index.d.ts +3 -0
  28. package/dist/alpha/cli/index.d.ts.map +1 -0
  29. package/dist/alpha/cli/index.js +36 -0
  30. package/dist/alpha/context.d.ts +8 -0
  31. package/dist/alpha/context.d.ts.map +1 -0
  32. package/dist/alpha/context.js +33 -0
  33. package/dist/alpha/database.d.ts +90 -0
  34. package/dist/alpha/database.d.ts.map +1 -0
  35. package/dist/alpha/database.js +9 -0
  36. package/dist/alpha/error.d.ts +41 -0
  37. package/dist/alpha/error.d.ts.map +1 -0
  38. package/dist/alpha/error.js +25 -0
  39. package/dist/alpha/icon-names.d.ts +6 -0
  40. package/dist/alpha/icon-names.d.ts.map +1 -0
  41. package/dist/alpha/icon-names.js +0 -0
  42. package/dist/alpha/json-schema.d.ts +117 -0
  43. package/dist/alpha/json-schema.d.ts.map +1 -0
  44. package/dist/alpha/json-schema.js +0 -0
  45. package/dist/alpha/manifest.d.ts +44 -0
  46. package/dist/alpha/manifest.d.ts.map +1 -0
  47. package/dist/alpha/manifest.js +0 -0
  48. package/dist/alpha/output.d.ts +7 -0
  49. package/dist/alpha/output.d.ts.map +1 -0
  50. package/dist/alpha/output.js +8 -0
  51. package/dist/alpha/pacer.d.ts +74 -0
  52. package/dist/alpha/pacer.d.ts.map +1 -0
  53. package/dist/alpha/pacer.js +66 -0
  54. package/dist/alpha/pacer.test.d.ts +2 -0
  55. package/dist/alpha/pacer.test.d.ts.map +1 -0
  56. package/dist/alpha/schedule.d.ts +6 -0
  57. package/dist/alpha/schedule.d.ts.map +1 -0
  58. package/dist/alpha/schedule.js +43 -0
  59. package/dist/alpha/schedule.test.d.ts +2 -0
  60. package/dist/alpha/schedule.test.d.ts.map +1 -0
  61. package/dist/alpha/schema-builder.d.ts +79 -0
  62. package/dist/alpha/schema-builder.d.ts.map +1 -0
  63. package/dist/alpha/schema-builder.js +135 -0
  64. package/dist/alpha/schema.d.ts +185 -0
  65. package/dist/alpha/schema.d.ts.map +1 -0
  66. package/dist/alpha/schema.js +115 -0
  67. package/dist/alpha/sync.d.ts +233 -0
  68. package/dist/alpha/sync.d.ts.map +1 -0
  69. package/dist/alpha/sync.js +70 -0
  70. package/dist/alpha/sync.test.d.ts +2 -0
  71. package/dist/alpha/sync.test.d.ts.map +1 -0
  72. package/dist/alpha/tool.d.ts +132 -0
  73. package/dist/alpha/tool.d.ts.map +1 -0
  74. package/dist/alpha/tool.js +156 -0
  75. package/dist/alpha/tool.test.d.ts +2 -0
  76. package/dist/alpha/tool.test.d.ts.map +1 -0
  77. package/dist/alpha/triggers.d.ts +365 -0
  78. package/dist/alpha/triggers.d.ts.map +1 -0
  79. package/dist/alpha/triggers.generated.d.ts +246 -0
  80. package/dist/alpha/triggers.generated.d.ts.map +1 -0
  81. package/dist/alpha/triggers.generated.js +239 -0
  82. package/dist/alpha/triggers.js +0 -0
  83. package/dist/alpha/types.d.ts +228 -0
  84. package/dist/alpha/types.d.ts.map +1 -0
  85. package/dist/alpha/types.js +0 -0
  86. package/dist/alpha/workflow.d.ts +70 -0
  87. package/dist/alpha/workflow.d.ts.map +1 -0
  88. package/dist/alpha/workflow.js +39 -0
  89. package/dist/alpha/workflow.test.d.ts +2 -0
  90. package/dist/alpha/workflow.test.d.ts.map +1 -0
  91. package/dist/block.d.ts.map +1 -1
  92. package/dist/builder.d.ts.map +1 -1
  93. package/dist/builder.js +2 -6
  94. package/dist/capabilities/ai_connector.d.ts.map +1 -1
  95. package/dist/capabilities/automation.d.ts.map +1 -1
  96. package/dist/capabilities/context.d.ts.map +1 -1
  97. package/dist/capabilities/oauth.d.ts.map +1 -1
  98. package/dist/capabilities/output.d.ts.map +1 -1
  99. package/dist/capabilities/output.js +2 -4
  100. package/dist/capabilities/stateful-capability.d.ts.map +1 -1
  101. package/dist/capabilities/stateful-capability.js +2 -6
  102. package/dist/capabilities/sync.d.ts.map +1 -1
  103. package/dist/capabilities/sync.js +2 -8
  104. package/dist/capabilities/tool.d.ts.map +1 -1
  105. package/dist/capabilities/tool.js +6 -20
  106. package/dist/capabilities/webhook.d.ts.map +1 -1
  107. package/dist/capabilities/workflow.d.ts +2 -2
  108. package/dist/capabilities/workflow.d.ts.map +1 -1
  109. package/dist/index.d.ts +2 -2
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +1 -7
  112. package/dist/json-schema.d.ts.map +1 -1
  113. package/dist/schema-builder.d.ts.map +1 -1
  114. package/dist/schema.d.ts.map +1 -1
  115. package/dist/types.d.ts.map +1 -1
  116. package/dist/worker.d.ts.map +1 -1
  117. package/dist/worker.js +1 -4
  118. package/package.json +74 -14
  119. package/src/alpha/ajv-formats.d.ts +7 -0
  120. package/src/alpha/builder.test.ts +197 -0
  121. package/src/alpha/builder.ts +338 -0
  122. package/src/alpha/cli/build.test.ts +240 -0
  123. package/src/alpha/cli/build.ts +57 -0
  124. package/src/alpha/cli/codegen.test.ts +31 -0
  125. package/src/alpha/cli/codegen.ts +51 -0
  126. package/src/alpha/cli/discover.test.ts +43 -0
  127. package/src/alpha/cli/discover.ts +81 -0
  128. package/src/alpha/cli/emit-manifest.test.ts +45 -0
  129. package/src/alpha/cli/emit-manifest.ts +409 -0
  130. package/src/alpha/cli/index.ts +41 -0
  131. package/src/alpha/context.ts +61 -0
  132. package/src/alpha/database.ts +102 -0
  133. package/src/alpha/error.ts +49 -0
  134. package/src/alpha/icon-names.ts +890 -0
  135. package/src/alpha/json-schema.ts +180 -0
  136. package/src/alpha/manifest.ts +47 -0
  137. package/src/alpha/output.ts +8 -0
  138. package/src/alpha/pacer.test.ts +81 -0
  139. package/src/alpha/pacer.ts +181 -0
  140. package/src/alpha/schedule.test.ts +31 -0
  141. package/src/alpha/schedule.ts +53 -0
  142. package/src/alpha/schema-builder.ts +193 -0
  143. package/src/alpha/schema.ts +222 -0
  144. package/src/alpha/sync.test.ts +191 -0
  145. package/src/alpha/sync.ts +340 -0
  146. package/src/alpha/tool.test.ts +116 -0
  147. package/src/alpha/tool.ts +319 -0
  148. package/src/alpha/triggers.generated.ts +489 -0
  149. package/src/alpha/triggers.ts +500 -0
  150. package/src/alpha/types.ts +284 -0
  151. package/src/alpha/workflow.test.ts +84 -0
  152. package/src/alpha/workflow.ts +131 -0
  153. package/src/block.ts +1 -5
  154. package/src/builder.test.ts +28 -60
  155. package/src/builder.ts +3 -10
  156. package/src/capabilities/ai_connector.test.ts +9 -32
  157. package/src/capabilities/ai_connector.ts +5 -17
  158. package/src/capabilities/automation.test.ts +3 -12
  159. package/src/capabilities/automation.ts +3 -11
  160. package/src/capabilities/context.ts +3 -6
  161. package/src/capabilities/oauth.test.ts +1 -0
  162. package/src/capabilities/oauth.ts +1 -3
  163. package/src/capabilities/output.ts +1 -3
  164. package/src/capabilities/stateful-capability.test.ts +1 -0
  165. package/src/capabilities/stateful-capability.ts +2 -6
  166. package/src/capabilities/sync.test.ts +15 -45
  167. package/src/capabilities/sync.ts +10 -40
  168. package/src/capabilities/tool.test.ts +106 -146
  169. package/src/capabilities/tool.ts +17 -39
  170. package/src/capabilities/webhook.ts +3 -10
  171. package/src/capabilities/workflow.test.ts +10 -31
  172. package/src/capabilities/workflow.ts +5 -12
  173. package/src/index.ts +2 -12
  174. package/src/json-schema.test.ts +2 -4
  175. package/src/json-schema.ts +7 -6
  176. package/src/pacer.test.ts +1 -3
  177. package/src/pacer_internal.ts +1 -5
  178. package/src/schema-builder.test.ts +10 -35
  179. package/src/schema-builder.ts +5 -16
  180. package/src/schema.ts +2 -10
  181. package/src/types.ts +1 -7
  182. package/src/worker.ts +8 -34
@@ -0,0 +1,489 @@
1
+ // Generated by scripts/generate-triggers.ts — do not edit by hand.
2
+ // Regenerate with: npm run generate
3
+
4
+ import type {
5
+ CalendarEventCanceledEvent,
6
+ CalendarEventCreatedEvent,
7
+ CalendarEventUpdatedEvent,
8
+ DiscordInteractionEvent,
9
+ GoogleDriveOauthFilesChangedEvent,
10
+ MailEmailReceivedEvent,
11
+ MailEmailSentEvent,
12
+ MailLabelAppliedEvent,
13
+ NotionAgentMentionedEvent,
14
+ NotionButtonPressedEvent,
15
+ NotionCommentAddedEvent,
16
+ NotionDatabaseAgentUpdatedEvent,
17
+ NotionMeetingNoteSummaryCompletedEvent,
18
+ NotionPageCreatedEvent,
19
+ NotionPageDeletedEvent,
20
+ NotionPageUpdatedEvent,
21
+ RecurrenceEvent,
22
+ SlackAppMentionEvent,
23
+ SlackMessageEvent,
24
+ SlackReactionAddedEvent,
25
+ WebhookEvent,
26
+ } from "./triggers.js";
27
+
28
+ export type {
29
+ Actor,
30
+ ActorLike,
31
+ CalendarEventCanceledEvent,
32
+ CalendarEventCreatedEvent,
33
+ CalendarEventLike,
34
+ CalendarEventUpdatedEvent,
35
+ ChatMessageLike,
36
+ ChatThreadMessage,
37
+ DiscordChatThreadMessage,
38
+ DiscordInteractionEvent,
39
+ EmailMessageLike,
40
+ EmailThreadLike,
41
+ EmailTriggerMessage,
42
+ GoogleDriveOauthFilesChangedEvent,
43
+ LinkLike,
44
+ MailEmailReceivedEvent,
45
+ MailEmailSentEvent,
46
+ MailLabelAppliedEvent,
47
+ MessageLike,
48
+ NotionAgentMentionedEvent,
49
+ NotionButtonPressedEvent,
50
+ NotionCommentAddedEvent,
51
+ NotionDatabaseAgentUpdatedEvent,
52
+ NotionMeetingNoteSummaryCompletedEvent,
53
+ NotionPageCreatedEvent,
54
+ NotionPageDeletedEvent,
55
+ NotionPageEdit,
56
+ NotionPageUpdatedEvent,
57
+ RecurrenceEvent,
58
+ RecurrenceFrequency,
59
+ SlackAppMentionEvent,
60
+ SlackChatThreadMessage,
61
+ SlackMessageEvent,
62
+ SlackReactionAddedEvent,
63
+ ThreadLike,
64
+ ThreadMessage,
65
+ TimestampLike,
66
+ TriggerEvent,
67
+ TriggerEventBase,
68
+ TriggerEventMap,
69
+ TriggerType,
70
+ VendorActor,
71
+ VendorExtensions,
72
+ WebhookEvent,
73
+ } from "./triggers.js";
74
+
75
+ /** A message was posted in a subscribed Slack channel. */
76
+ export type SlackMessageTrigger = {
77
+ type: "slack.message";
78
+ };
79
+
80
+ /** A reaction was added to a Slack message. */
81
+ export type SlackReactionAddedTrigger = {
82
+ type: "slack.reaction.added";
83
+ };
84
+
85
+ /** The Notion app was mentioned in a Slack message. */
86
+ export type SlackAppMentionTrigger = {
87
+ type: "slack.app.mention";
88
+ };
89
+
90
+ /** A Discord interaction was received. */
91
+ export type DiscordInteractionTrigger = {
92
+ type: "discord.interaction";
93
+ };
94
+
95
+ /** An email was received. */
96
+ export type MailEmailReceivedTrigger = {
97
+ type: "mail.email.received";
98
+ };
99
+
100
+ /** An email was sent. */
101
+ export type MailEmailSentTrigger = {
102
+ type: "mail.email.sent";
103
+ };
104
+
105
+ /** A label was applied to an email. */
106
+ export type MailLabelAppliedTrigger = {
107
+ type: "mail.label.applied";
108
+ };
109
+
110
+ /** A calendar event was created. */
111
+ export type CalendarEventCreatedTrigger = {
112
+ type: "calendar.event.created";
113
+ };
114
+
115
+ /** A calendar event was updated. */
116
+ export type CalendarEventUpdatedTrigger = {
117
+ type: "calendar.event.updated";
118
+ };
119
+
120
+ /** A calendar event was canceled. */
121
+ export type CalendarEventCanceledTrigger = {
122
+ type: "calendar.event.canceled";
123
+ };
124
+
125
+ /** A page has been added to a database. */
126
+ export type NotionPageCreatedTrigger = {
127
+ type: "notion.page.created";
128
+ };
129
+
130
+ /** A page was updated. */
131
+ export type NotionPageUpdatedTrigger = {
132
+ type: "notion.page.updated";
133
+ };
134
+
135
+ /** A page was deleted. */
136
+ export type NotionPageDeletedTrigger = {
137
+ type: "notion.page.deleted";
138
+ };
139
+
140
+ /** A meeting note's AI summary finished generating. */
141
+ export type NotionMeetingNoteSummaryCompletedTrigger = {
142
+ type: "notion.meetingNote.summary.completed";
143
+ };
144
+
145
+ /** A comment was added to a page discussion. */
146
+ export type NotionCommentAddedTrigger = {
147
+ type: "notion.page.discussion.comment.added";
148
+ };
149
+
150
+ /** An agent was mentioned in page content or a person property. */
151
+ export type NotionAgentMentionedTrigger = {
152
+ type: "notion.agent.mentioned";
153
+ };
154
+
155
+ /** A button block was pressed. */
156
+ export type NotionButtonPressedTrigger = {
157
+ type: "notion.button.pressed";
158
+ };
159
+
160
+ /** A database agent's configuration was updated. */
161
+ export type NotionDatabaseAgentUpdatedTrigger = {
162
+ type: "notion.database.agent.updated";
163
+ };
164
+
165
+ /** An incoming webhook request was received. */
166
+ export type WebhookTrigger = {
167
+ type: "webhooks.webhook";
168
+ };
169
+
170
+ /** Files changed in a watched Google Drive folder or drive. */
171
+ export type GoogleDriveOauthFilesChangedTrigger = {
172
+ type: "googleDriveOauth.filesChanged";
173
+ };
174
+
175
+ /** A recurring schedule fired. */
176
+ export type RecurrenceTrigger = {
177
+ type: "recurrence";
178
+ };
179
+
180
+ /** Creators for each event that can trigger a workflow. */
181
+ export const triggers = {
182
+ /**
183
+ * Declare that a workflow can run on `slack.message` events.
184
+ *
185
+ * A message was posted in a subscribed Slack channel.
186
+ */
187
+ slackMessage(): SlackMessageTrigger {
188
+ return {
189
+ type: "slack.message",
190
+ };
191
+ },
192
+
193
+ /**
194
+ * Declare that a workflow can run on `slack.reaction.added` events.
195
+ *
196
+ * A reaction was added to a Slack message.
197
+ */
198
+ slackReactionAdded(): SlackReactionAddedTrigger {
199
+ return {
200
+ type: "slack.reaction.added",
201
+ };
202
+ },
203
+
204
+ /**
205
+ * Declare that a workflow can run on `slack.app.mention` events.
206
+ *
207
+ * The Notion app was mentioned in a Slack message.
208
+ */
209
+ slackAppMention(): SlackAppMentionTrigger {
210
+ return {
211
+ type: "slack.app.mention",
212
+ };
213
+ },
214
+
215
+ /**
216
+ * Declare that a workflow can run on `discord.interaction` events.
217
+ *
218
+ * A Discord interaction was received.
219
+ */
220
+ discordInteraction(): DiscordInteractionTrigger {
221
+ return {
222
+ type: "discord.interaction",
223
+ };
224
+ },
225
+
226
+ /**
227
+ * Declare that a workflow can run on `mail.email.received` events.
228
+ *
229
+ * An email was received.
230
+ */
231
+ mailEmailReceived(): MailEmailReceivedTrigger {
232
+ return {
233
+ type: "mail.email.received",
234
+ };
235
+ },
236
+
237
+ /**
238
+ * Declare that a workflow can run on `mail.email.sent` events.
239
+ *
240
+ * An email was sent.
241
+ */
242
+ mailEmailSent(): MailEmailSentTrigger {
243
+ return {
244
+ type: "mail.email.sent",
245
+ };
246
+ },
247
+
248
+ /**
249
+ * Declare that a workflow can run on `mail.label.applied` events.
250
+ *
251
+ * A label was applied to an email.
252
+ */
253
+ mailLabelApplied(): MailLabelAppliedTrigger {
254
+ return {
255
+ type: "mail.label.applied",
256
+ };
257
+ },
258
+
259
+ /**
260
+ * Declare that a workflow can run on `calendar.event.created` events.
261
+ *
262
+ * A calendar event was created.
263
+ */
264
+ calendarEventCreated(): CalendarEventCreatedTrigger {
265
+ return {
266
+ type: "calendar.event.created",
267
+ };
268
+ },
269
+
270
+ /**
271
+ * Declare that a workflow can run on `calendar.event.updated` events.
272
+ *
273
+ * A calendar event was updated.
274
+ */
275
+ calendarEventUpdated(): CalendarEventUpdatedTrigger {
276
+ return {
277
+ type: "calendar.event.updated",
278
+ };
279
+ },
280
+
281
+ /**
282
+ * Declare that a workflow can run on `calendar.event.canceled` events.
283
+ *
284
+ * A calendar event was canceled.
285
+ */
286
+ calendarEventCanceled(): CalendarEventCanceledTrigger {
287
+ return {
288
+ type: "calendar.event.canceled",
289
+ };
290
+ },
291
+
292
+ /**
293
+ * Declare that a workflow can run on `notion.page.created` events.
294
+ *
295
+ * A page has been added to a database.
296
+ */
297
+ notionPageCreated(): NotionPageCreatedTrigger {
298
+ return {
299
+ type: "notion.page.created",
300
+ };
301
+ },
302
+
303
+ /**
304
+ * Declare that a workflow can run on `notion.page.updated` events.
305
+ *
306
+ * A page was updated.
307
+ */
308
+ notionPageUpdated(): NotionPageUpdatedTrigger {
309
+ return {
310
+ type: "notion.page.updated",
311
+ };
312
+ },
313
+
314
+ /**
315
+ * Declare that a workflow can run on `notion.page.deleted` events.
316
+ *
317
+ * A page was deleted.
318
+ */
319
+ notionPageDeleted(): NotionPageDeletedTrigger {
320
+ return {
321
+ type: "notion.page.deleted",
322
+ };
323
+ },
324
+
325
+ /**
326
+ * Declare that a workflow can run on `notion.meetingNote.summary.completed` events.
327
+ *
328
+ * A meeting note's AI summary finished generating.
329
+ */
330
+ notionMeetingNoteSummaryCompleted(): NotionMeetingNoteSummaryCompletedTrigger {
331
+ return {
332
+ type: "notion.meetingNote.summary.completed",
333
+ };
334
+ },
335
+
336
+ /**
337
+ * Declare that a workflow can run on `notion.page.discussion.comment.added` events.
338
+ *
339
+ * A comment was added to a page discussion.
340
+ */
341
+ notionCommentAdded(): NotionCommentAddedTrigger {
342
+ return {
343
+ type: "notion.page.discussion.comment.added",
344
+ };
345
+ },
346
+
347
+ /**
348
+ * Declare that a workflow can run on `notion.agent.mentioned` events.
349
+ *
350
+ * An agent was mentioned in page content or a person property.
351
+ */
352
+ notionAgentMentioned(): NotionAgentMentionedTrigger {
353
+ return {
354
+ type: "notion.agent.mentioned",
355
+ };
356
+ },
357
+
358
+ /**
359
+ * Declare that a workflow can run on `notion.button.pressed` events.
360
+ *
361
+ * A button block was pressed.
362
+ */
363
+ notionButtonPressed(): NotionButtonPressedTrigger {
364
+ return {
365
+ type: "notion.button.pressed",
366
+ };
367
+ },
368
+
369
+ /**
370
+ * Declare that a workflow can run on `notion.database.agent.updated` events.
371
+ *
372
+ * A database agent's configuration was updated.
373
+ */
374
+ notionDatabaseAgentUpdated(): NotionDatabaseAgentUpdatedTrigger {
375
+ return {
376
+ type: "notion.database.agent.updated",
377
+ };
378
+ },
379
+
380
+ /**
381
+ * Declare that a workflow can run on `webhooks.webhook` events.
382
+ *
383
+ * An incoming webhook request was received.
384
+ */
385
+ webhook(): WebhookTrigger {
386
+ return {
387
+ type: "webhooks.webhook",
388
+ };
389
+ },
390
+
391
+ /**
392
+ * Declare that a workflow can run on `googleDriveOauth.filesChanged` events.
393
+ *
394
+ * Files changed in a watched Google Drive folder or drive.
395
+ */
396
+ googleDriveOauthFilesChanged(): GoogleDriveOauthFilesChangedTrigger {
397
+ return {
398
+ type: "googleDriveOauth.filesChanged",
399
+ };
400
+ },
401
+
402
+ /**
403
+ * Declare that a workflow can run on `recurrence` events.
404
+ *
405
+ * A recurring schedule fired.
406
+ */
407
+ recurrence(): RecurrenceTrigger {
408
+ return {
409
+ type: "recurrence",
410
+ };
411
+ },
412
+ } as const;
413
+
414
+ /** Event that can trigger a workflow. */
415
+ export type WorkflowTrigger =
416
+ | SlackMessageTrigger
417
+ | SlackReactionAddedTrigger
418
+ | SlackAppMentionTrigger
419
+ | DiscordInteractionTrigger
420
+ | MailEmailReceivedTrigger
421
+ | MailEmailSentTrigger
422
+ | MailLabelAppliedTrigger
423
+ | CalendarEventCreatedTrigger
424
+ | CalendarEventUpdatedTrigger
425
+ | CalendarEventCanceledTrigger
426
+ | NotionPageCreatedTrigger
427
+ | NotionPageUpdatedTrigger
428
+ | NotionPageDeletedTrigger
429
+ | NotionMeetingNoteSummaryCompletedTrigger
430
+ | NotionCommentAddedTrigger
431
+ | NotionAgentMentionedTrigger
432
+ | NotionButtonPressedTrigger
433
+ | NotionDatabaseAgentUpdatedTrigger
434
+ | WebhookTrigger
435
+ | GoogleDriveOauthFilesChangedTrigger
436
+ | RecurrenceTrigger;
437
+
438
+ /** All workflow trigger type strings. */
439
+ export const WORKFLOW_TRIGGER_TYPES = [
440
+ "slack.message",
441
+ "slack.reaction.added",
442
+ "slack.app.mention",
443
+ "discord.interaction",
444
+ "mail.email.received",
445
+ "mail.email.sent",
446
+ "mail.label.applied",
447
+ "calendar.event.created",
448
+ "calendar.event.updated",
449
+ "calendar.event.canceled",
450
+ "notion.page.created",
451
+ "notion.page.updated",
452
+ "notion.page.deleted",
453
+ "notion.meetingNote.summary.completed",
454
+ "notion.page.discussion.comment.added",
455
+ "notion.agent.mentioned",
456
+ "notion.button.pressed",
457
+ "notion.database.agent.updated",
458
+ "webhooks.webhook",
459
+ "googleDriveOauth.filesChanged",
460
+ "recurrence",
461
+ ] as const;
462
+
463
+ /** A workflow trigger type string. */
464
+ export type WorkflowTriggerType = (typeof WORKFLOW_TRIGGER_TYPES)[number];
465
+
466
+ /** Maps each supported workflow trigger to the event its handler receives. */
467
+ export type WorkflowEventMap = {
468
+ "slack.message": SlackMessageEvent;
469
+ "slack.reaction.added": SlackReactionAddedEvent;
470
+ "slack.app.mention": SlackAppMentionEvent;
471
+ "discord.interaction": DiscordInteractionEvent;
472
+ "mail.email.received": MailEmailReceivedEvent;
473
+ "mail.email.sent": MailEmailSentEvent;
474
+ "mail.label.applied": MailLabelAppliedEvent;
475
+ "calendar.event.created": CalendarEventCreatedEvent;
476
+ "calendar.event.updated": CalendarEventUpdatedEvent;
477
+ "calendar.event.canceled": CalendarEventCanceledEvent;
478
+ "notion.page.created": NotionPageCreatedEvent;
479
+ "notion.page.updated": NotionPageUpdatedEvent;
480
+ "notion.page.deleted": NotionPageDeletedEvent;
481
+ "notion.meetingNote.summary.completed": NotionMeetingNoteSummaryCompletedEvent;
482
+ "notion.page.discussion.comment.added": NotionCommentAddedEvent;
483
+ "notion.agent.mentioned": NotionAgentMentionedEvent;
484
+ "notion.button.pressed": NotionButtonPressedEvent;
485
+ "notion.database.agent.updated": NotionDatabaseAgentUpdatedEvent;
486
+ "webhooks.webhook": WebhookEvent;
487
+ "googleDriveOauth.filesChanged": GoogleDriveOauthFilesChangedEvent;
488
+ recurrence: RecurrenceEvent;
489
+ };