@marktoflow/integrations 2.0.0-alpha.12

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 (181) hide show
  1. package/README.md +1341 -0
  2. package/dist/adapters/claude-agent-hooks.d.ts.map +1 -0
  3. package/dist/adapters/claude-agent-hooks.js +339 -0
  4. package/dist/adapters/claude-agent-hooks.js.map +1 -0
  5. package/dist/adapters/claude-agent-types.d.ts +426 -0
  6. package/dist/adapters/claude-agent-types.d.ts.map +1 -0
  7. package/dist/adapters/claude-agent-types.js +62 -0
  8. package/dist/adapters/claude-agent-types.js.map +1 -0
  9. package/dist/adapters/claude-agent-workflow.d.ts +393 -0
  10. package/dist/adapters/claude-agent-workflow.d.ts.map +1 -0
  11. package/dist/adapters/claude-agent-workflow.js +445 -0
  12. package/dist/adapters/claude-agent-workflow.js.map +1 -0
  13. package/dist/adapters/claude-agent.d.ts +189 -0
  14. package/dist/adapters/claude-agent.d.ts.map +1 -0
  15. package/dist/adapters/claude-agent.js +504 -0
  16. package/dist/adapters/claude-agent.js.map +1 -0
  17. package/dist/adapters/claude-code.d.ts +34 -0
  18. package/dist/adapters/claude-code.d.ts.map +1 -0
  19. package/dist/adapters/claude-code.js +89 -0
  20. package/dist/adapters/claude-code.js.map +1 -0
  21. package/dist/adapters/codex-types.d.ts +463 -0
  22. package/dist/adapters/codex-types.d.ts.map +1 -0
  23. package/dist/adapters/codex-types.js +53 -0
  24. package/dist/adapters/codex-types.js.map +1 -0
  25. package/dist/adapters/codex-workflow.d.ts +414 -0
  26. package/dist/adapters/codex-workflow.d.ts.map +1 -0
  27. package/dist/adapters/codex-workflow.js +470 -0
  28. package/dist/adapters/codex-workflow.js.map +1 -0
  29. package/dist/adapters/codex.d.ts +154 -0
  30. package/dist/adapters/codex.d.ts.map +1 -0
  31. package/dist/adapters/codex.js +416 -0
  32. package/dist/adapters/codex.js.map +1 -0
  33. package/dist/adapters/github-copilot-types.d.ts +1012 -0
  34. package/dist/adapters/github-copilot-types.d.ts.map +1 -0
  35. package/dist/adapters/github-copilot-types.js +80 -0
  36. package/dist/adapters/github-copilot-types.js.map +1 -0
  37. package/dist/adapters/github-copilot-workflow.d.ts +462 -0
  38. package/dist/adapters/github-copilot-workflow.d.ts.map +1 -0
  39. package/dist/adapters/github-copilot-workflow.js +473 -0
  40. package/dist/adapters/github-copilot-workflow.js.map +1 -0
  41. package/dist/adapters/github-copilot.d.ts +280 -0
  42. package/dist/adapters/github-copilot.d.ts.map +1 -0
  43. package/dist/adapters/github-copilot.js +468 -0
  44. package/dist/adapters/github-copilot.js.map +1 -0
  45. package/dist/adapters/ollama.d.ts.map +1 -0
  46. package/dist/adapters/ollama.js +9 -0
  47. package/dist/adapters/ollama.js.map +1 -0
  48. package/dist/adapters/opencode.d.ts +41 -0
  49. package/dist/adapters/opencode.d.ts.map +1 -0
  50. package/dist/adapters/opencode.js +148 -0
  51. package/dist/adapters/opencode.js.map +1 -0
  52. package/dist/index.d.ts +52 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +161 -0
  55. package/dist/index.js.map +1 -0
  56. package/dist/services/ai-browser.d.ts +112 -0
  57. package/dist/services/ai-browser.d.ts.map +1 -0
  58. package/dist/services/ai-browser.js +363 -0
  59. package/dist/services/ai-browser.js.map +1 -0
  60. package/dist/services/airtable.d.ts.map +1 -0
  61. package/dist/services/airtable.js +295 -0
  62. package/dist/services/airtable.js.map +1 -0
  63. package/dist/services/asana.d.ts +159 -0
  64. package/dist/services/asana.d.ts.map +1 -0
  65. package/dist/services/asana.js +196 -0
  66. package/dist/services/asana.js.map +1 -0
  67. package/dist/services/aws-s3.d.ts +89 -0
  68. package/dist/services/aws-s3.d.ts.map +1 -0
  69. package/dist/services/aws-s3.js +154 -0
  70. package/dist/services/aws-s3.js.map +1 -0
  71. package/dist/services/confluence.d.ts.map +1 -0
  72. package/dist/services/confluence.js +356 -0
  73. package/dist/services/confluence.js.map +1 -0
  74. package/dist/services/discord.d.ts.map +1 -0
  75. package/dist/services/discord.js +279 -0
  76. package/dist/services/discord.js.map +1 -0
  77. package/dist/services/dropbox.d.ts +134 -0
  78. package/dist/services/dropbox.d.ts.map +1 -0
  79. package/dist/services/dropbox.js +190 -0
  80. package/dist/services/dropbox.js.map +1 -0
  81. package/dist/services/github.d.ts.map +1 -0
  82. package/dist/services/github.js +13 -0
  83. package/dist/services/github.js.map +1 -0
  84. package/dist/services/gmail-trigger.d.ts.map +1 -0
  85. package/dist/services/gmail-trigger.js +172 -0
  86. package/dist/services/gmail-trigger.js.map +1 -0
  87. package/dist/services/gmail.d.ts.map +1 -0
  88. package/dist/services/gmail.js +372 -0
  89. package/dist/services/gmail.js.map +1 -0
  90. package/dist/services/google-calendar.d.ts.map +1 -0
  91. package/dist/services/google-calendar.js +357 -0
  92. package/dist/services/google-calendar.js.map +1 -0
  93. package/dist/services/google-docs.d.ts.map +1 -0
  94. package/dist/services/google-docs.js +332 -0
  95. package/dist/services/google-docs.js.map +1 -0
  96. package/dist/services/google-drive.d.ts.map +1 -0
  97. package/dist/services/google-drive.js +327 -0
  98. package/dist/services/google-drive.js.map +1 -0
  99. package/dist/services/google-sheets.d.ts.map +1 -0
  100. package/dist/services/google-sheets.js +391 -0
  101. package/dist/services/google-sheets.js.map +1 -0
  102. package/dist/services/http.d.ts.map +1 -0
  103. package/dist/services/http.js +284 -0
  104. package/dist/services/http.js.map +1 -0
  105. package/dist/services/jira.d.ts.map +1 -0
  106. package/dist/services/jira.js +35 -0
  107. package/dist/services/jira.js.map +1 -0
  108. package/dist/services/linear.d.ts.map +1 -0
  109. package/dist/services/linear.js +326 -0
  110. package/dist/services/linear.js.map +1 -0
  111. package/dist/services/mailchimp.d.ts +169 -0
  112. package/dist/services/mailchimp.d.ts.map +1 -0
  113. package/dist/services/mailchimp.js +180 -0
  114. package/dist/services/mailchimp.js.map +1 -0
  115. package/dist/services/mysql.d.ts.map +1 -0
  116. package/dist/services/mysql.js +250 -0
  117. package/dist/services/mysql.js.map +1 -0
  118. package/dist/services/notion.d.ts.map +1 -0
  119. package/dist/services/notion.js +358 -0
  120. package/dist/services/notion.js.map +1 -0
  121. package/dist/services/outlook-trigger.d.ts.map +1 -0
  122. package/dist/services/outlook-trigger.js +204 -0
  123. package/dist/services/outlook-trigger.js.map +1 -0
  124. package/dist/services/outlook.d.ts.map +1 -0
  125. package/dist/services/outlook.js +486 -0
  126. package/dist/services/outlook.js.map +1 -0
  127. package/dist/services/playwright.d.ts +678 -0
  128. package/dist/services/playwright.d.ts.map +1 -0
  129. package/dist/services/playwright.js +1141 -0
  130. package/dist/services/playwright.js.map +1 -0
  131. package/dist/services/postgres.d.ts.map +1 -0
  132. package/dist/services/postgres.js +230 -0
  133. package/dist/services/postgres.js.map +1 -0
  134. package/dist/services/sendgrid.d.ts +43 -0
  135. package/dist/services/sendgrid.d.ts.map +1 -0
  136. package/dist/services/sendgrid.js +87 -0
  137. package/dist/services/sendgrid.js.map +1 -0
  138. package/dist/services/shopify.d.ts +160 -0
  139. package/dist/services/shopify.d.ts.map +1 -0
  140. package/dist/services/shopify.js +166 -0
  141. package/dist/services/shopify.js.map +1 -0
  142. package/dist/services/slack-socket.d.ts.map +1 -0
  143. package/dist/services/slack-socket.js +48 -0
  144. package/dist/services/slack-socket.js.map +1 -0
  145. package/dist/services/slack.d.ts.map +1 -0
  146. package/dist/services/slack.js +11 -0
  147. package/dist/services/slack.js.map +1 -0
  148. package/dist/services/stripe.d.ts +275 -0
  149. package/dist/services/stripe.d.ts.map +1 -0
  150. package/dist/services/stripe.js +229 -0
  151. package/dist/services/stripe.js.map +1 -0
  152. package/dist/services/supabase.d.ts.map +1 -0
  153. package/dist/services/supabase.js +328 -0
  154. package/dist/services/supabase.js.map +1 -0
  155. package/dist/services/teams.d.ts +224 -0
  156. package/dist/services/teams.d.ts.map +1 -0
  157. package/dist/services/teams.js +229 -0
  158. package/dist/services/teams.js.map +1 -0
  159. package/dist/services/telegram.d.ts.map +1 -0
  160. package/dist/services/telegram.js +247 -0
  161. package/dist/services/telegram.js.map +1 -0
  162. package/dist/services/trello.d.ts +160 -0
  163. package/dist/services/trello.d.ts.map +1 -0
  164. package/dist/services/trello.js +194 -0
  165. package/dist/services/trello.js.map +1 -0
  166. package/dist/services/twilio.d.ts +126 -0
  167. package/dist/services/twilio.d.ts.map +1 -0
  168. package/dist/services/twilio.js +153 -0
  169. package/dist/services/twilio.js.map +1 -0
  170. package/dist/services/whatsapp.d.ts.map +1 -0
  171. package/dist/services/whatsapp.js +253 -0
  172. package/dist/services/whatsapp.js.map +1 -0
  173. package/dist/services/zendesk.d.ts +134 -0
  174. package/dist/services/zendesk.d.ts.map +1 -0
  175. package/dist/services/zendesk.js +148 -0
  176. package/dist/services/zendesk.js.map +1 -0
  177. package/dist/tools/script.d.ts +21 -0
  178. package/dist/tools/script.d.ts.map +1 -0
  179. package/dist/tools/script.js +136 -0
  180. package/dist/tools/script.js.map +1 -0
  181. package/package.json +98 -0
package/README.md ADDED
@@ -0,0 +1,1341 @@
1
+ # @marktoflow/integrations
2
+
3
+ > **Author:** Scott Glover <scottgl@gmail.com>
4
+
5
+ Standard integrations for marktoflow - connect to Slack, GitHub, Jira, Gmail, and more.
6
+
7
+ ## Overview
8
+
9
+ `@marktoflow/integrations` provides ready-to-use service integrations and AI agent adapters for the marktoflow automation framework.
10
+
11
+ ## Features
12
+
13
+ ### Service Integrations (30)
14
+
15
+ - **Slack** - Send messages, manage channels, socket mode
16
+ - **Microsoft Teams** - Channel messages, chats, meetings, collaboration
17
+ - **GitHub** - Create PRs, issues, comments, manage repos
18
+ - **Jira** - Create/update issues, transitions, search
19
+ - **Gmail** - Send emails, read inbox, manage labels, webhook triggers
20
+ - **Outlook** - Send emails, read calendar/inbox, webhook triggers
21
+ - **Google Sheets** - Spreadsheet operations, read/write data
22
+ - **Google Calendar** - Calendar events, scheduling
23
+ - **Google Drive** - File storage and management
24
+ - **Google Docs** - Document creation and editing
25
+ - **Linear** - Issue tracking and project management
26
+ - **Notion** - Database operations, page management
27
+ - **Discord** - Bot interactions, message management
28
+ - **Airtable** - Spreadsheet database operations
29
+ - **Confluence** - Wiki page management
30
+ - **Telegram** - Bot messaging and interactions
31
+ - **WhatsApp** - Business messaging API
32
+ - **Stripe** - Payment processing, subscriptions, invoicing
33
+ - **Shopify** - E-commerce store management, products, orders
34
+ - **Twilio** - SMS, voice calls, WhatsApp, phone numbers
35
+ - **SendGrid** - Transactional email delivery
36
+ - **Mailchimp** - Email marketing campaigns and automation
37
+ - **Zendesk** - Customer support tickets and users
38
+ - **Asana** - Task and project management
39
+ - **Trello** - Kanban boards and cards
40
+ - **Dropbox** - Cloud file storage and sharing
41
+ - **AWS S3** - Amazon object storage
42
+ - **Supabase** - PostgreSQL database with real-time subscriptions
43
+ - **PostgreSQL** - Direct PostgreSQL database access
44
+ - **MySQL** - Direct MySQL database access
45
+ - **HTTP** - Generic HTTP requests with auth
46
+
47
+ ### AI Agent Adapters (6)
48
+
49
+ - **Ollama** - Local LLM integration
50
+ - **Claude Agent** - Anthropic Claude Agent SDK integration
51
+ - **Claude Code** - Anthropic Claude Code CLI integration
52
+ - **OpenAI Codex** - OpenAI Codex SDK integration
53
+ - **OpenCode** - OpenCode AI integration (75+ backends)
54
+ - **GitHub Copilot** - GitHub Copilot SDK integration
55
+
56
+ ## Installation
57
+
58
+ ```bash
59
+ npm install @marktoflow/integrations
60
+ ```
61
+
62
+ This package depends on `@marktoflow/core` which will be installed automatically.
63
+
64
+ ## Quick Start
65
+
66
+ ### Using in Workflows
67
+
68
+ Integrations are designed to work seamlessly in workflow YAML definitions:
69
+
70
+ ```yaml
71
+ workflow:
72
+ id: slack-notification
73
+ name: Send Slack Notification
74
+
75
+ tools:
76
+ slack:
77
+ sdk: '@slack/web-api'
78
+ auth:
79
+ token: '${SLACK_BOT_TOKEN}'
80
+
81
+ steps:
82
+ - action: slack.chat.postMessage
83
+ inputs:
84
+ channel: '#general'
85
+ text: 'Hello from marktoflow!'
86
+ ```
87
+
88
+ ### Programmatic Usage
89
+
90
+ You can also use integrations directly in TypeScript:
91
+
92
+ ```typescript
93
+ import { SlackInitializer } from '@marktoflow/integrations';
94
+ import { SDKRegistry } from '@marktoflow/core';
95
+
96
+ // Register Slack integration
97
+ const registry = new SDKRegistry();
98
+ await registry.registerSDK(SlackInitializer);
99
+
100
+ // Load and use SDK
101
+ const slack = await registry.loadSDK('slack', {
102
+ auth: { token: process.env.SLACK_BOT_TOKEN },
103
+ });
104
+
105
+ // Execute action
106
+ const result = await registry.executeAction('slack', 'chat.postMessage', slack, {
107
+ channel: '#general',
108
+ text: 'Hello World!',
109
+ });
110
+ ```
111
+
112
+ ## Available Integrations
113
+
114
+ ### Slack
115
+
116
+ Send messages, manage channels, handle events.
117
+
118
+ **Setup**:
119
+
120
+ ```bash
121
+ # Set environment variable
122
+ export SLACK_BOT_TOKEN=xoxb-your-token
123
+ ```
124
+
125
+ **Actions**:
126
+
127
+ - `chat.postMessage` - Send a message
128
+ - `conversations.list` - List channels
129
+ - `conversations.create` - Create channel
130
+ - `users.list` - List workspace users
131
+
132
+ **Example**:
133
+
134
+ ```yaml
135
+ action: slack.chat.postMessage
136
+ inputs:
137
+ channel: '#general'
138
+ text: 'Deployment complete!'
139
+ blocks:
140
+ - type: section
141
+ text:
142
+ type: mrkdwn
143
+ text: '*Status:* ✅ Success'
144
+ ```
145
+
146
+ ### GitHub
147
+
148
+ Manage repositories, PRs, issues, and more.
149
+
150
+ **Setup**:
151
+
152
+ ```bash
153
+ export GITHUB_TOKEN=ghp_your-token
154
+ ```
155
+
156
+ **Actions**:
157
+
158
+ - `repos.get` - Get repository info
159
+ - `pulls.create` - Create pull request
160
+ - `issues.create` - Create issue
161
+ - `issues.createComment` - Comment on issue
162
+
163
+ **Example**:
164
+
165
+ ```yaml
166
+ action: github.pulls.create
167
+ inputs:
168
+ owner: marktoflow
169
+ repo: marktoflow
170
+ title: 'Add new feature'
171
+ head: feature-branch
172
+ base: main
173
+ body: 'This PR adds...'
174
+ ```
175
+
176
+ ### Jira
177
+
178
+ Issue tracking and project management.
179
+
180
+ **Setup**:
181
+
182
+ ```bash
183
+ export JIRA_HOST=your-domain.atlassian.net
184
+ export JIRA_EMAIL=your@email.com
185
+ export JIRA_API_TOKEN=your-token
186
+ ```
187
+
188
+ **Actions**:
189
+
190
+ - `issues.createIssue` - Create issue
191
+ - `issues.updateIssue` - Update issue
192
+ - `issues.searchIssues` - Search issues
193
+ - `issues.getIssue` - Get issue details
194
+
195
+ **Example**:
196
+
197
+ ```yaml
198
+ action: jira.issues.createIssue
199
+ inputs:
200
+ fields:
201
+ project:
202
+ key: PROJ
203
+ summary: 'Bug: Login fails'
204
+ description: 'Users cannot log in'
205
+ issuetype:
206
+ name: Bug
207
+ ```
208
+
209
+ ### Gmail
210
+
211
+ Email operations with webhook support.
212
+
213
+ **Setup**:
214
+
215
+ ```bash
216
+ export GMAIL_CLIENT_ID=your-client-id
217
+ export GMAIL_CLIENT_SECRET=your-secret
218
+ export GMAIL_REFRESH_TOKEN=your-refresh-token
219
+ ```
220
+
221
+ **Actions**:
222
+
223
+ - `users.messages.send` - Send email
224
+ - `users.messages.list` - List messages
225
+ - `users.labels.list` - List labels
226
+ - `users.messages.get` - Get message details
227
+
228
+ **Example**:
229
+
230
+ ```yaml
231
+ action: gmail.users.messages.send
232
+ inputs:
233
+ to: user@example.com
234
+ subject: 'Daily Report'
235
+ body: 'Here is your daily report...'
236
+ ```
237
+
238
+ ### Outlook
239
+
240
+ Microsoft 365 email and calendar.
241
+
242
+ **Setup**:
243
+
244
+ ```bash
245
+ export OUTLOOK_CLIENT_ID=your-client-id
246
+ export OUTLOOK_CLIENT_SECRET=your-secret
247
+ export OUTLOOK_TENANT_ID=your-tenant-id
248
+ export OUTLOOK_REFRESH_TOKEN=your-refresh-token
249
+ ```
250
+
251
+ **Actions**:
252
+
253
+ - `sendMail` - Send email
254
+ - `listMessages` - List inbox messages
255
+ - `listCalendarEvents` - List calendar events
256
+ - `createCalendarEvent` - Create calendar event
257
+
258
+ **Example**:
259
+
260
+ ```yaml
261
+ action: outlook.sendMail
262
+ inputs:
263
+ to: [user@example.com]
264
+ subject: 'Meeting Reminder'
265
+ body: 'Don't forget our meeting at 2pm'
266
+ ```
267
+
268
+ ### Microsoft Teams
269
+
270
+ Team collaboration and communication via Microsoft Graph API.
271
+
272
+ **Setup**:
273
+
274
+ ```bash
275
+ export TEAMS_ACCESS_TOKEN=your-access-token
276
+ # Or use client credentials:
277
+ export TEAMS_CLIENT_ID=your-client-id
278
+ export TEAMS_CLIENT_SECRET=your-secret
279
+ export TEAMS_TENANT_ID=your-tenant-id
280
+ ```
281
+
282
+ **Actions**:
283
+
284
+ - `listTeams` - List teams user is a member of
285
+ - `listChannels` - List channels in a team
286
+ - `createChannel` - Create a channel in a team
287
+ - `sendMessage` - Send message to a channel
288
+ - `listMessages` - List messages in a channel
289
+ - `replyToMessage` - Reply to a message
290
+ - `sendChatMessage` - Send message in a chat
291
+ - `createMeeting` - Create an online meeting
292
+ - `listTeamMembers` - List members of a team
293
+ - `addTeamMember` - Add member to a team
294
+
295
+ **Example**:
296
+
297
+ ```yaml
298
+ tools:
299
+ teams:
300
+ sdk: 'teams'
301
+ auth:
302
+ access_token: '${TEAMS_ACCESS_TOKEN}'
303
+
304
+ steps:
305
+ - action: teams.sendMessage
306
+ inputs:
307
+ teamId: '${TEAM_ID}'
308
+ channelId: '${CHANNEL_ID}'
309
+ content: 'Deployment complete!'
310
+ contentType: 'html'
311
+ ```
312
+
313
+ ### Stripe
314
+
315
+ Payment processing and subscription management.
316
+
317
+ **Setup**:
318
+
319
+ ```bash
320
+ export STRIPE_API_KEY=sk_test_your-key
321
+ ```
322
+
323
+ **Actions**:
324
+
325
+ **Customers:**
326
+ - `createCustomer` - Create a customer
327
+ - `getCustomer` - Get customer by ID
328
+ - `updateCustomer` - Update customer
329
+ - `deleteCustomer` - Delete customer
330
+ - `listCustomers` - List customers
331
+
332
+ **Payment Intents:**
333
+ - `createPaymentIntent` - Create payment intent
334
+ - `getPaymentIntent` - Get payment intent
335
+ - `confirmPaymentIntent` - Confirm payment
336
+ - `cancelPaymentIntent` - Cancel payment
337
+
338
+ **Subscriptions:**
339
+ - `createSubscription` - Create subscription
340
+ - `getSubscription` - Get subscription
341
+ - `updateSubscription` - Update subscription
342
+ - `cancelSubscription` - Cancel subscription
343
+ - `listSubscriptions` - List subscriptions
344
+
345
+ **Invoices:**
346
+ - `createInvoice` - Create invoice
347
+ - `getInvoice` - Get invoice
348
+ - `finalizeInvoice` - Finalize invoice
349
+ - `payInvoice` - Pay invoice
350
+ - `sendInvoice` - Send invoice
351
+
352
+ **Example**:
353
+
354
+ ```yaml
355
+ tools:
356
+ stripe:
357
+ sdk: 'stripe'
358
+ auth:
359
+ api_key: '${STRIPE_API_KEY}'
360
+
361
+ steps:
362
+ - action: stripe.createCustomer
363
+ inputs:
364
+ email: 'customer@example.com'
365
+ name: 'John Doe'
366
+ metadata:
367
+ source: 'workflow'
368
+ output_variable: customer
369
+
370
+ - action: stripe.createPaymentIntent
371
+ inputs:
372
+ amount: 2000
373
+ currency: 'usd'
374
+ customer: '{{ customer.id }}'
375
+ description: 'Service subscription'
376
+ output_variable: payment
377
+ ```
378
+
379
+ ### Linear
380
+
381
+ Modern issue tracking.
382
+
383
+ **Setup**:
384
+
385
+ ```bash
386
+ export LINEAR_API_KEY=your-api-key
387
+ ```
388
+
389
+ **Actions**:
390
+
391
+ - `createIssue` - Create issue
392
+ - `updateIssue` - Update issue
393
+ - `listIssues` - List issues
394
+
395
+ ### Notion
396
+
397
+ Database and page management.
398
+
399
+ **Setup**:
400
+
401
+ ```bash
402
+ export NOTION_TOKEN=secret_your-token
403
+ ```
404
+
405
+ **Actions**:
406
+
407
+ - `databases.query` - Query database
408
+ - `pages.create` - Create page
409
+ - `blocks.children.append` - Add content blocks
410
+
411
+ ### Discord
412
+
413
+ Bot interactions and messaging.
414
+
415
+ **Setup**:
416
+
417
+ ```bash
418
+ export DISCORD_BOT_TOKEN=your-bot-token
419
+ ```
420
+
421
+ **Actions**:
422
+
423
+ - `sendMessage` - Send message to channel
424
+ - `editMessage` - Edit message
425
+ - `deleteMessage` - Delete message
426
+
427
+ ### Airtable
428
+
429
+ Spreadsheet database operations.
430
+
431
+ **Setup**:
432
+
433
+ ```bash
434
+ export AIRTABLE_API_KEY=your-api-key
435
+ ```
436
+
437
+ **Actions**:
438
+
439
+ - `select` - Query records
440
+ - `create` - Create records
441
+ - `update` - Update records
442
+ - `delete` - Delete records
443
+
444
+ ### Confluence
445
+
446
+ Wiki page management.
447
+
448
+ **Setup**:
449
+
450
+ ```bash
451
+ export CONFLUENCE_HOST=your-domain.atlassian.net
452
+ export CONFLUENCE_EMAIL=your@email.com
453
+ export CONFLUENCE_API_TOKEN=your-token
454
+ ```
455
+
456
+ **Actions**:
457
+
458
+ - `getPage` - Get page content
459
+ - `createPage` - Create page
460
+ - `updatePage` - Update page
461
+ - `deletePage` - Delete page
462
+
463
+ ### Google Sheets
464
+
465
+ Spreadsheet operations for Google Sheets.
466
+
467
+ **Setup**:
468
+
469
+ ```bash
470
+ export GOOGLE_SHEETS_CLIENT_ID=your-client-id
471
+ export GOOGLE_SHEETS_CLIENT_SECRET=your-secret
472
+ export GOOGLE_SHEETS_REFRESH_TOKEN=your-refresh-token
473
+ ```
474
+
475
+ **Actions**:
476
+
477
+ - `getSpreadsheet` - Get spreadsheet metadata
478
+ - `getValues` - Read cell values
479
+ - `updateValues` - Update cell values
480
+ - `appendValues` - Append rows to sheet
481
+
482
+ **Example**:
483
+
484
+ ```yaml
485
+ action: google-sheets.updateValues
486
+ inputs:
487
+ spreadsheetId: '1BxiMVs0XRA5...'
488
+ range: 'Sheet1!A1:B2'
489
+ values:
490
+ - [Name, Email]
491
+ - [John Doe, john@example.com]
492
+ ```
493
+
494
+ ### Google Calendar
495
+
496
+ Calendar event management.
497
+
498
+ **Setup**:
499
+
500
+ ```bash
501
+ export GOOGLE_CALENDAR_CLIENT_ID=your-client-id
502
+ export GOOGLE_CALENDAR_CLIENT_SECRET=your-secret
503
+ export GOOGLE_CALENDAR_REFRESH_TOKEN=your-refresh-token
504
+ ```
505
+
506
+ **Actions**:
507
+
508
+ - `listEvents` - List calendar events
509
+ - `createEvent` - Create calendar event
510
+ - `updateEvent` - Update event
511
+ - `deleteEvent` - Delete event
512
+
513
+ **Example**:
514
+
515
+ ```yaml
516
+ action: google-calendar.createEvent
517
+ inputs:
518
+ calendarId: primary
519
+ summary: 'Team Meeting'
520
+ start:
521
+ dateTime: '2024-01-25T14:00:00-07:00'
522
+ end:
523
+ dateTime: '2024-01-25T15:00:00-07:00'
524
+ ```
525
+
526
+ ### Google Drive
527
+
528
+ File storage and management.
529
+
530
+ **Setup**:
531
+
532
+ ```bash
533
+ export GOOGLE_DRIVE_CLIENT_ID=your-client-id
534
+ export GOOGLE_DRIVE_CLIENT_SECRET=your-secret
535
+ export GOOGLE_DRIVE_REFRESH_TOKEN=your-refresh-token
536
+ ```
537
+
538
+ **Actions**:
539
+
540
+ - `listFiles` - List files in Drive
541
+ - `getFile` - Get file metadata
542
+ - `uploadFile` - Upload file
543
+ - `downloadFile` - Download file
544
+ - `deleteFile` - Delete file
545
+
546
+ ### Google Docs
547
+
548
+ Document creation and editing.
549
+
550
+ **Setup**:
551
+
552
+ ```bash
553
+ export GOOGLE_DOCS_CLIENT_ID=your-client-id
554
+ export GOOGLE_DOCS_CLIENT_SECRET=your-secret
555
+ export GOOGLE_DOCS_REFRESH_TOKEN=your-refresh-token
556
+ ```
557
+
558
+ **Actions**:
559
+
560
+ - `getDocument` - Get document content
561
+ - `createDocument` - Create new document
562
+ - `updateDocument` - Batch update document
563
+ - `appendText` - Append text to document
564
+
565
+ ### Telegram
566
+
567
+ Telegram bot messaging.
568
+
569
+ **Setup**:
570
+
571
+ ```bash
572
+ export TELEGRAM_BOT_TOKEN=your-bot-token
573
+ ```
574
+
575
+ **Actions**:
576
+
577
+ - `sendMessage` - Send message to chat
578
+ - `sendPhoto` - Send photo
579
+ - `sendDocument` - Send document
580
+ - `getUpdates` - Get bot updates
581
+
582
+ **Example**:
583
+
584
+ ```yaml
585
+ action: telegram.sendMessage
586
+ inputs:
587
+ chatId: '123456789'
588
+ text: 'Hello from marktoflow!'
589
+ ```
590
+
591
+ ### WhatsApp
592
+
593
+ WhatsApp Business API messaging.
594
+
595
+ **Setup**:
596
+
597
+ ```bash
598
+ export WHATSAPP_PHONE_NUMBER_ID=your-phone-id
599
+ export WHATSAPP_ACCESS_TOKEN=your-access-token
600
+ ```
601
+
602
+ **Actions**:
603
+
604
+ - `sendMessage` - Send text message
605
+ - `sendTemplate` - Send message template
606
+ - `sendMedia` - Send media (image, video, document)
607
+
608
+ **Example**:
609
+
610
+ ```yaml
611
+ action: whatsapp.sendMessage
612
+ inputs:
613
+ to: '+1234567890'
614
+ text: 'Hello from marktoflow!'
615
+ ```
616
+
617
+ ### Supabase
618
+
619
+ PostgreSQL database with real-time capabilities.
620
+
621
+ **Setup**:
622
+
623
+ ```bash
624
+ export SUPABASE_URL=https://your-project.supabase.co
625
+ export SUPABASE_KEY=your-anon-key
626
+ ```
627
+
628
+ **Actions**:
629
+
630
+ - `select` - Query records
631
+ - `insert` - Insert records
632
+ - `update` - Update records
633
+ - `delete` - Delete records
634
+ - `rpc` - Call stored procedure
635
+
636
+ **Example**:
637
+
638
+ ```yaml
639
+ action: supabase.select
640
+ inputs:
641
+ table: users
642
+ filters:
643
+ email: 'eq.user@example.com'
644
+ ```
645
+
646
+ ### PostgreSQL
647
+
648
+ Direct PostgreSQL database access.
649
+
650
+ **Setup**:
651
+
652
+ ```bash
653
+ export POSTGRES_HOST=localhost
654
+ export POSTGRES_PORT=5432
655
+ export POSTGRES_USER=postgres
656
+ export POSTGRES_PASSWORD=your-password
657
+ export POSTGRES_DATABASE=mydb
658
+ ```
659
+
660
+ **Actions**:
661
+
662
+ - `query` - Execute SQL query
663
+ - `insert` - Insert records
664
+ - `update` - Update records
665
+ - `delete` - Delete records
666
+
667
+ ### MySQL
668
+
669
+ Direct MySQL database access.
670
+
671
+ **Setup**:
672
+
673
+ ```bash
674
+ export MYSQL_HOST=localhost
675
+ export MYSQL_PORT=3306
676
+ export MYSQL_USER=root
677
+ export MYSQL_PASSWORD=your-password
678
+ export MYSQL_DATABASE=mydb
679
+ ```
680
+
681
+ **Actions**:
682
+
683
+ - `query` - Execute SQL query
684
+ - `insert` - Insert records
685
+ - `update` - Update records
686
+ - `delete` - Delete records
687
+
688
+ ### HTTP
689
+
690
+ Generic HTTP requests with authentication.
691
+
692
+ **Actions**:
693
+
694
+ - `request` - Make HTTP request
695
+
696
+ **Example**:
697
+
698
+ ```yaml
699
+ action: http.request
700
+ inputs:
701
+ method: POST
702
+ url: https://api.example.com/endpoint
703
+ headers:
704
+ Authorization: 'Bearer ${API_TOKEN}'
705
+ body:
706
+ key: value
707
+ ```
708
+
709
+ ### Twilio
710
+
711
+ SMS, voice calls, WhatsApp messaging, and phone number management.
712
+
713
+ **Setup**:
714
+
715
+ ```bash
716
+ export TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
717
+ export TWILIO_AUTH_TOKEN=your-auth-token
718
+ ```
719
+
720
+ **Actions**:
721
+
722
+ - `sendSMS` - Send SMS message
723
+ - `makeCall` - Make phone call
724
+ - `sendWhatsApp` - Send WhatsApp message
725
+ - `listMessages` - List sent/received messages
726
+ - `sendVerification` - Send verification code
727
+
728
+ **Example**:
729
+
730
+ ```yaml
731
+ action: twilio.sendSMS
732
+ inputs:
733
+ to: '+1234567890'
734
+ from: '+0987654321'
735
+ body: 'Your verification code is 123456'
736
+ ```
737
+
738
+ ### SendGrid
739
+
740
+ Transactional email delivery service.
741
+
742
+ **Setup**:
743
+
744
+ ```bash
745
+ export SENDGRID_API_KEY=SG.your-api-key
746
+ ```
747
+
748
+ **Actions**:
749
+
750
+ - `sendEmail` - Send single email
751
+ - `sendMultiple` - Send multiple emails
752
+
753
+ **Example**:
754
+
755
+ ```yaml
756
+ action: sendgrid.sendEmail
757
+ inputs:
758
+ to: 'user@example.com'
759
+ from: 'noreply@yourapp.com'
760
+ subject: 'Welcome!'
761
+ html: '<h1>Welcome to our service!</h1>'
762
+ ```
763
+
764
+ ### Shopify
765
+
766
+ E-commerce platform for online stores.
767
+
768
+ **Setup**:
769
+
770
+ ```bash
771
+ export SHOPIFY_SHOP=your-store.myshopify.com
772
+ export SHOPIFY_ACCESS_TOKEN=shpat_your-token
773
+ ```
774
+
775
+ **Actions**:
776
+
777
+ - `getProducts` - List products
778
+ - `createProduct` - Create product
779
+ - `createOrder` - Create order
780
+ - `createCustomer` - Create customer
781
+ - `updateInventoryLevel` - Update inventory
782
+
783
+ **Example**:
784
+
785
+ ```yaml
786
+ action: shopify.createProduct
787
+ inputs:
788
+ title: 'New Product'
789
+ body_html: '<p>Product description</p>'
790
+ vendor: 'Your Brand'
791
+ variants:
792
+ - price: '29.99'
793
+ sku: 'PROD-001'
794
+ ```
795
+
796
+ ### Zendesk
797
+
798
+ Customer support ticketing platform.
799
+
800
+ **Setup**:
801
+
802
+ ```bash
803
+ export ZENDESK_SUBDOMAIN=your-company
804
+ export ZENDESK_EMAIL=support@yourcompany.com
805
+ export ZENDESK_TOKEN=your-api-token
806
+ ```
807
+
808
+ **Actions**:
809
+
810
+ - `createTicket` - Create support ticket
811
+ - `updateTicket` - Update ticket
812
+ - `addComment` - Add comment to ticket
813
+ - `createUser` - Create user
814
+ - `search` - Search tickets/users
815
+
816
+ **Example**:
817
+
818
+ ```yaml
819
+ action: zendesk.createTicket
820
+ inputs:
821
+ subject: 'Login Issue'
822
+ comment:
823
+ body: 'User cannot log in to account'
824
+ priority: 'high'
825
+ ```
826
+
827
+ ### Mailchimp
828
+
829
+ Email marketing automation platform.
830
+
831
+ **Setup**:
832
+
833
+ ```bash
834
+ export MAILCHIMP_API_KEY=your-api-key
835
+ export MAILCHIMP_SERVER=us1
836
+ ```
837
+
838
+ **Actions**:
839
+
840
+ - `getLists` - Get mailing lists
841
+ - `addMember` - Add member to list
842
+ - `createCampaign` - Create email campaign
843
+ - `sendCampaign` - Send campaign
844
+ - `addMemberTags` - Add tags to member
845
+
846
+ **Example**:
847
+
848
+ ```yaml
849
+ action: mailchimp.addMember
850
+ inputs:
851
+ email_address: 'user@example.com'
852
+ status: 'subscribed'
853
+ merge_fields:
854
+ FNAME: 'John'
855
+ LNAME: 'Doe'
856
+ ```
857
+
858
+ ### Asana
859
+
860
+ Task and project management platform.
861
+
862
+ **Setup**:
863
+
864
+ ```bash
865
+ export ASANA_ACCESS_TOKEN=your-personal-access-token
866
+ ```
867
+
868
+ **Actions**:
869
+
870
+ - `createTask` - Create task
871
+ - `updateTask` - Update task
872
+ - `getTasksInProject` - Get project tasks
873
+ - `createProject` - Create project
874
+ - `addComment` - Add comment to task
875
+
876
+ **Example**:
877
+
878
+ ```yaml
879
+ action: asana.createTask
880
+ inputs:
881
+ name: 'Implement new feature'
882
+ notes: 'Add user authentication'
883
+ projects: ['project-gid-123']
884
+ due_on: '2026-02-01'
885
+ ```
886
+
887
+ ### Trello
888
+
889
+ Visual project management with boards and cards.
890
+
891
+ **Setup**:
892
+
893
+ ```bash
894
+ export TRELLO_API_KEY=your-api-key
895
+ export TRELLO_TOKEN=your-token
896
+ ```
897
+
898
+ **Actions**:
899
+
900
+ - `createCard` - Create card
901
+ - `updateCard` - Update card
902
+ - `createList` - Create list
903
+ - `addCommentToCard` - Add comment
904
+ - `addChecklistToCard` - Add checklist
905
+
906
+ **Example**:
907
+
908
+ ```yaml
909
+ action: trello.createCard
910
+ inputs:
911
+ name: 'New Task'
912
+ desc: 'Task description'
913
+ idList: 'list-id-123'
914
+ due: '2026-02-01'
915
+ ```
916
+
917
+ ### Dropbox
918
+
919
+ Cloud file storage and collaboration.
920
+
921
+ **Setup**:
922
+
923
+ ```bash
924
+ export DROPBOX_ACCESS_TOKEN=your-access-token
925
+ ```
926
+
927
+ **Actions**:
928
+
929
+ - `uploadFile` - Upload file
930
+ - `downloadFile` - Download file
931
+ - `listFolder` - List folder contents
932
+ - `createFolder` - Create folder
933
+ - `createSharedLink` - Create shared link
934
+
935
+ **Example**:
936
+
937
+ ```yaml
938
+ action: dropbox.uploadFile
939
+ inputs:
940
+ path: '/documents/report.pdf'
941
+ contents: '${file_contents}'
942
+ mode: 'overwrite'
943
+ ```
944
+
945
+ ### AWS S3
946
+
947
+ Amazon Simple Storage Service for object storage.
948
+
949
+ **Setup**:
950
+
951
+ ```bash
952
+ export AWS_REGION=us-east-1
953
+ export AWS_ACCESS_KEY_ID=your-access-key
954
+ export AWS_SECRET_ACCESS_KEY=your-secret-key
955
+ ```
956
+
957
+ **Actions**:
958
+
959
+ - `uploadObject` - Upload object
960
+ - `getObject` - Get object
961
+ - `listObjects` - List bucket objects
962
+ - `deleteObject` - Delete object
963
+ - `createBucket` - Create bucket
964
+
965
+ **Example**:
966
+
967
+ ```yaml
968
+ action: aws-s3.uploadObject
969
+ inputs:
970
+ bucket: 'my-bucket'
971
+ key: 'uploads/file.txt'
972
+ body: 'File contents'
973
+ contentType: 'text/plain'
974
+ ```
975
+
976
+ ## AI Agent Adapters
977
+
978
+ ### Ollama
979
+
980
+ Run local LLMs via Ollama.
981
+
982
+ **Setup**:
983
+
984
+ ```bash
985
+ export OLLAMA_BASE_URL=http://localhost:11434
986
+ ```
987
+
988
+ **Example**:
989
+
990
+ ```yaml
991
+ tools:
992
+ ollama:
993
+ adapter: ollama
994
+
995
+ steps:
996
+ - action: ollama.generate
997
+ inputs:
998
+ model: llama2
999
+ prompt: 'Explain quantum computing'
1000
+ ```
1001
+
1002
+ ### Claude Agent
1003
+
1004
+ Anthropic Claude Agent SDK integration with agentic workflows.
1005
+
1006
+ **Setup**:
1007
+
1008
+ ```bash
1009
+ export ANTHROPIC_API_KEY=sk-ant-your-key
1010
+ ```
1011
+
1012
+ **Features**:
1013
+
1014
+ - Multi-turn conversations with memory
1015
+ - Tool calling and custom tools
1016
+ - Streaming responses
1017
+ - Extended thinking mode
1018
+
1019
+ **Example**:
1020
+
1021
+ ```yaml
1022
+ tools:
1023
+ claude:
1024
+ adapter: claude-agent
1025
+ config:
1026
+ model: claude-3-5-sonnet-20241022
1027
+
1028
+ steps:
1029
+ - action: claude.send
1030
+ inputs:
1031
+ prompt: 'Analyze this codebase'
1032
+ tools:
1033
+ - name: read_file
1034
+ description: Read file contents
1035
+ output_variable: analysis
1036
+ ```
1037
+
1038
+ ### Claude Code
1039
+
1040
+ Anthropic Claude Code CLI integration.
1041
+
1042
+ **Setup**:
1043
+
1044
+ ```bash
1045
+ # Install Claude Code CLI
1046
+ # Follow: https://github.com/anthropics/claude-code
1047
+
1048
+ export ANTHROPIC_API_KEY=sk-ant-your-key
1049
+ ```
1050
+
1051
+ **Features**:
1052
+
1053
+ - File-based context awareness
1054
+ - Native MCP server integration
1055
+ - Extended reasoning capabilities
1056
+
1057
+ ### OpenAI Codex
1058
+
1059
+ OpenAI Codex SDK integration with workflow execution capabilities.
1060
+
1061
+ **Setup**:
1062
+
1063
+ ```bash
1064
+ # Authenticate via Codex CLI
1065
+ # Follow OpenAI Codex documentation for setup
1066
+ ```
1067
+
1068
+ **Features**:
1069
+
1070
+ - Code generation and analysis
1071
+ - Function calling support
1072
+ - Streaming responses
1073
+ - Sandboxed execution environment
1074
+
1075
+ **Example**:
1076
+
1077
+ ```yaml
1078
+ tools:
1079
+ codex:
1080
+ adapter: openai-codex
1081
+ config:
1082
+ model: codex-latest
1083
+
1084
+ steps:
1085
+ - action: codex.complete
1086
+ inputs:
1087
+ prompt: 'Write a function to sort an array'
1088
+ output_variable: code
1089
+ ```
1090
+
1091
+ ### OpenCode
1092
+
1093
+ OpenCode AI integration supporting 75+ backends.
1094
+
1095
+ **Setup**:
1096
+
1097
+ ```bash
1098
+ # Configure OpenCode
1099
+ opencode /connect
1100
+ ```
1101
+
1102
+ **Features**:
1103
+
1104
+ - GitHub Copilot backend (free with subscription)
1105
+ - Ollama for local models
1106
+ - Multiple cloud providers (GPT-4, Claude, Gemini)
1107
+ - CLI and server modes
1108
+
1109
+ **Example**:
1110
+
1111
+ ```yaml
1112
+ tools:
1113
+ opencode:
1114
+ adapter: opencode
1115
+ config:
1116
+ backend: copilot # or ollama, claude, gpt-4, etc.
1117
+
1118
+ steps:
1119
+ - action: opencode.complete
1120
+ inputs:
1121
+ prompt: 'Explain async/await in JavaScript'
1122
+ output_variable: explanation
1123
+ ```
1124
+
1125
+ ### GitHub Copilot
1126
+
1127
+ GitHub Copilot CLI integration with advanced agentic capabilities.
1128
+
1129
+ **Requirements**:
1130
+
1131
+ - GitHub Copilot subscription (Individual, Business, or Enterprise)
1132
+ - Copilot CLI installed: [Installation Guide](https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli)
1133
+
1134
+ **Installation**:
1135
+
1136
+ ```bash
1137
+ # Install Copilot CLI
1138
+ npm install -g @githubnext/github-copilot-cli
1139
+
1140
+ # Verify installation
1141
+ copilot --version
1142
+ ```
1143
+
1144
+ **Authentication**:
1145
+
1146
+ The GitHub Copilot adapter uses **OAuth authentication** managed by the Copilot CLI, not API keys. Authentication is a one-time setup:
1147
+
1148
+ ```bash
1149
+ # Authenticate with GitHub via OAuth
1150
+ copilot auth login
1151
+ ```
1152
+
1153
+ This command will:
1154
+
1155
+ 1. Open your browser to GitHub's OAuth consent page
1156
+ 2. Prompt you to authorize GitHub Copilot CLI
1157
+ 3. Save the OAuth token locally in `~/.copilot/`
1158
+
1159
+ **No API keys are required** - the adapter automatically uses the CLI's stored OAuth token. Your GitHub Copilot subscription determines your access level.
1160
+
1161
+ **Verify Authentication**:
1162
+
1163
+ ```bash
1164
+ # Test CLI connectivity
1165
+ copilot --version
1166
+ copilot ping
1167
+ ```
1168
+
1169
+ **Basic Usage**:
1170
+
1171
+ ```yaml
1172
+ tools:
1173
+ copilot:
1174
+ adapter: github-copilot
1175
+ config:
1176
+ model: gpt-4.1 # Optional, defaults to gpt-4.1
1177
+
1178
+ steps:
1179
+ - action: copilot.send
1180
+ inputs:
1181
+ prompt: 'Explain TypeScript generics'
1182
+ output_variable: explanation
1183
+ ```
1184
+
1185
+ **Streaming Responses**:
1186
+
1187
+ ```yaml
1188
+ steps:
1189
+ - action: copilot.stream
1190
+ inputs:
1191
+ prompt: 'Write a function to calculate fibonacci'
1192
+ onChunk: '${print_chunk}' # Callback for each chunk
1193
+ output_variable: code
1194
+ ```
1195
+
1196
+ **With File Attachments**:
1197
+
1198
+ ```yaml
1199
+ steps:
1200
+ - action: copilot.send
1201
+ inputs:
1202
+ prompt: 'Review this code for security issues'
1203
+ attachments:
1204
+ - type: file
1205
+ path: ./src/app.ts
1206
+ displayName: app.ts
1207
+ output_variable: review
1208
+ ```
1209
+
1210
+ **System Message Customization**:
1211
+
1212
+ ```yaml
1213
+ steps:
1214
+ - action: copilot.send
1215
+ inputs:
1216
+ prompt: 'Help me optimize this function'
1217
+ systemMessage: |
1218
+ You are a performance optimization expert.
1219
+ Focus on time and space complexity.
1220
+ output_variable: suggestions
1221
+ ```
1222
+
1223
+ **External CLI Server**:
1224
+
1225
+ For development or shared CLI instances:
1226
+
1227
+ ```bash
1228
+ # Terminal 1: Start CLI in server mode
1229
+ copilot --server --port 4321
1230
+
1231
+ # Terminal 2: Use in workflow
1232
+ ```
1233
+
1234
+ ```yaml
1235
+ tools:
1236
+ copilot:
1237
+ adapter: github-copilot
1238
+ auth:
1239
+ cli_url: localhost:4321 # Connect to external server
1240
+ ```
1241
+
1242
+ **Configuration Options**:
1243
+
1244
+ - `model`: Model to use (gpt-4.1, gpt-5, claude-sonnet-4.5, etc.)
1245
+ - `cli_path`: Custom path to CLI binary (default: 'copilot')
1246
+ - `cli_url`: External CLI server URL (mutually exclusive with cli_path)
1247
+ - `autoStart`: Auto-start CLI (default: true)
1248
+ - `logLevel`: Log verbosity (info, debug, error, warning, none, all)
1249
+
1250
+ **Troubleshooting Authentication**:
1251
+
1252
+ If you encounter authentication issues:
1253
+
1254
+ ```bash
1255
+ # Check if authenticated
1256
+ copilot ping
1257
+
1258
+ # Re-authenticate if needed
1259
+ copilot auth logout
1260
+ copilot auth login
1261
+
1262
+ # Verify subscription status at https://github.com/settings/copilot
1263
+ ```
1264
+
1265
+ **Note**: The adapter does **not** require or use API keys. All authentication is handled through the CLI's OAuth flow.
1266
+
1267
+ **Advanced Features** (See [COPILOT_SDK_ANALYSIS.md](../../docs/COPILOT_SDK_ANALYSIS.md)):
1268
+
1269
+ - Custom tool definitions
1270
+ - MCP server integration
1271
+ - Session persistence
1272
+ - Infinite sessions (automatic context compaction)
1273
+ - Multi-turn conversations
1274
+
1275
+ ## Advanced Usage
1276
+
1277
+ ### Custom Integration
1278
+
1279
+ Create your own integration:
1280
+
1281
+ ```typescript
1282
+ import type { SDKInitializer } from '@marktoflow/core';
1283
+
1284
+ export const MyServiceInitializer: SDKInitializer = {
1285
+ name: 'myservice',
1286
+ async initialize(config) {
1287
+ return new MyServiceClient(config.auth.apiKey);
1288
+ },
1289
+ actions: {
1290
+ doSomething: async (sdk, inputs) => {
1291
+ return sdk.doSomething(inputs);
1292
+ },
1293
+ },
1294
+ };
1295
+ ```
1296
+
1297
+ ### Error Handling
1298
+
1299
+ All integrations support automatic retry and error handling:
1300
+
1301
+ ```yaml
1302
+ steps:
1303
+ - action: slack.chat.postMessage
1304
+ inputs:
1305
+ channel: '#general'
1306
+ text: 'Message'
1307
+ retry:
1308
+ max_attempts: 3
1309
+ backoff: exponential
1310
+ initial_delay: 1000
1311
+ on_error: continue # or 'fail', 'retry'
1312
+ ```
1313
+
1314
+ ## OAuth Setup Guides
1315
+
1316
+ For Gmail and Outlook, use the CLI to set up OAuth:
1317
+
1318
+ ```bash
1319
+ # Gmail OAuth
1320
+ npx @marktoflow/cli@alpha connect gmail
1321
+
1322
+ # Outlook OAuth
1323
+ npx @marktoflow/cli@alpha connect outlook
1324
+ ```
1325
+
1326
+ ## Testing
1327
+
1328
+ ```bash
1329
+ npm test
1330
+ ```
1331
+
1332
+ ## Links
1333
+
1334
+ - [Main Repository](https://github.com/marktoflow/marktoflow)
1335
+ - [Documentation](https://github.com/marktoflow/marktoflow#readme)
1336
+ - [Core Package](@marktoflow/core)
1337
+ - [CLI Package](@marktoflow/cli)
1338
+
1339
+ ## License
1340
+
1341
+ Apache-2.0