integrate-sdk 0.9.30-dev.2 → 0.9.42-dev.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.
- package/dist/adapters/auto-routes.js +220 -0
- package/dist/adapters/base-handler.js +220 -0
- package/dist/adapters/index.js +407 -82
- package/dist/adapters/nextjs.js +220 -0
- package/dist/adapters/solid-start.js +407 -82
- package/dist/adapters/svelte-kit.js +407 -82
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3364 -490
- package/dist/oauth.js +220 -0
- package/dist/server.js +3434 -406
- package/dist/src/client.d.ts +58 -1
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/index.d.ts +118 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/integrations/alpaca-client.d.ts +64 -0
- package/dist/src/integrations/alpaca-client.d.ts.map +1 -0
- package/dist/src/integrations/alpaca.d.ts +22 -0
- package/dist/src/integrations/alpaca.d.ts.map +1 -0
- package/dist/src/integrations/astronomer-client.d.ts +80 -0
- package/dist/src/integrations/astronomer-client.d.ts.map +1 -0
- package/dist/src/integrations/astronomer.d.ts +14 -0
- package/dist/src/integrations/astronomer.d.ts.map +1 -0
- package/dist/src/integrations/attio-client.d.ts +17 -0
- package/dist/src/integrations/attio-client.d.ts.map +1 -0
- package/dist/src/integrations/attio.d.ts +15 -0
- package/dist/src/integrations/attio.d.ts.map +1 -0
- package/dist/src/integrations/auth0-client.d.ts +55 -0
- package/dist/src/integrations/auth0-client.d.ts.map +1 -0
- package/dist/src/integrations/auth0.d.ts +22 -0
- package/dist/src/integrations/auth0.d.ts.map +1 -0
- package/dist/src/integrations/aws-client.d.ts +26 -0
- package/dist/src/integrations/aws-client.d.ts.map +1 -0
- package/dist/src/integrations/aws.d.ts +28 -0
- package/dist/src/integrations/aws.d.ts.map +1 -0
- package/dist/src/integrations/betterstack-client.d.ts +62 -0
- package/dist/src/integrations/betterstack-client.d.ts.map +1 -0
- package/dist/src/integrations/betterstack.d.ts +14 -0
- package/dist/src/integrations/betterstack.d.ts.map +1 -0
- package/dist/src/integrations/binance-client.d.ts +54 -0
- package/dist/src/integrations/binance-client.d.ts.map +1 -0
- package/dist/src/integrations/binance.d.ts +22 -0
- package/dist/src/integrations/binance.d.ts.map +1 -0
- package/dist/src/integrations/canva-client.d.ts +70 -0
- package/dist/src/integrations/canva-client.d.ts.map +1 -0
- package/dist/src/integrations/canva.d.ts +20 -0
- package/dist/src/integrations/canva.d.ts.map +1 -0
- package/dist/src/integrations/clerk-client.d.ts +66 -0
- package/dist/src/integrations/clerk-client.d.ts.map +1 -0
- package/dist/src/integrations/clerk.d.ts +14 -0
- package/dist/src/integrations/clerk.d.ts.map +1 -0
- package/dist/src/integrations/clickup-client.d.ts +5 -0
- package/dist/src/integrations/clickup-client.d.ts.map +1 -0
- package/dist/src/integrations/clickup.d.ts +13 -0
- package/dist/src/integrations/clickup.d.ts.map +1 -0
- package/dist/src/integrations/cloudflare-client.d.ts +69 -0
- package/dist/src/integrations/cloudflare-client.d.ts.map +1 -0
- package/dist/src/integrations/cloudflare.d.ts +23 -0
- package/dist/src/integrations/cloudflare.d.ts.map +1 -0
- package/dist/src/integrations/convex-client.d.ts +21 -0
- package/dist/src/integrations/convex-client.d.ts.map +1 -0
- package/dist/src/integrations/convex.d.ts +9 -0
- package/dist/src/integrations/convex.d.ts.map +1 -0
- package/dist/src/integrations/databricks-client.d.ts +40 -0
- package/dist/src/integrations/databricks-client.d.ts.map +1 -0
- package/dist/src/integrations/databricks.d.ts +27 -0
- package/dist/src/integrations/databricks.d.ts.map +1 -0
- package/dist/src/integrations/datadog-client.d.ts +9 -0
- package/dist/src/integrations/datadog-client.d.ts.map +1 -0
- package/dist/src/integrations/datadog.d.ts +30 -0
- package/dist/src/integrations/datadog.d.ts.map +1 -0
- package/dist/src/integrations/discord-client.d.ts +44 -0
- package/dist/src/integrations/discord-client.d.ts.map +1 -0
- package/dist/src/integrations/discord.d.ts +19 -0
- package/dist/src/integrations/discord.d.ts.map +1 -0
- package/dist/src/integrations/etoro-client.d.ts +10 -0
- package/dist/src/integrations/etoro-client.d.ts.map +1 -0
- package/dist/src/integrations/etoro.d.ts +10 -0
- package/dist/src/integrations/etoro.d.ts.map +1 -0
- package/dist/src/integrations/excel.d.ts +1 -1
- package/dist/src/integrations/facebook-client.d.ts +61 -0
- package/dist/src/integrations/facebook-client.d.ts.map +1 -0
- package/dist/src/integrations/facebook.d.ts +22 -0
- package/dist/src/integrations/facebook.d.ts.map +1 -0
- package/dist/src/integrations/ga4-client.d.ts +9 -0
- package/dist/src/integrations/ga4-client.d.ts.map +1 -0
- package/dist/src/integrations/ga4.d.ts +13 -0
- package/dist/src/integrations/ga4.d.ts.map +1 -0
- package/dist/src/integrations/gcal-client.d.ts +6 -0
- package/dist/src/integrations/gcal-client.d.ts.map +1 -1
- package/dist/src/integrations/gcal.d.ts +1 -1
- package/dist/src/integrations/gcal.d.ts.map +1 -1
- package/dist/src/integrations/gchat-client.d.ts +12 -0
- package/dist/src/integrations/gchat-client.d.ts.map +1 -0
- package/dist/src/integrations/gchat.d.ts +15 -0
- package/dist/src/integrations/gchat.d.ts.map +1 -0
- package/dist/src/integrations/gcontacts-client.d.ts +14 -0
- package/dist/src/integrations/gcontacts-client.d.ts.map +1 -0
- package/dist/src/integrations/gcontacts.d.ts +22 -0
- package/dist/src/integrations/gcontacts.d.ts.map +1 -0
- package/dist/src/integrations/gdocs-client.d.ts +22 -0
- package/dist/src/integrations/gdocs-client.d.ts.map +1 -1
- package/dist/src/integrations/gdocs.d.ts +1 -1
- package/dist/src/integrations/gdocs.d.ts.map +1 -1
- package/dist/src/integrations/gdrive.d.ts +1 -1
- package/dist/src/integrations/github-client.d.ts +4 -0
- package/dist/src/integrations/github-client.d.ts.map +1 -1
- package/dist/src/integrations/github.d.ts +1 -1
- package/dist/src/integrations/github.d.ts.map +1 -1
- package/dist/src/integrations/gitlab-client.d.ts +5 -0
- package/dist/src/integrations/gitlab-client.d.ts.map +1 -0
- package/dist/src/integrations/gitlab.d.ts +20 -0
- package/dist/src/integrations/gitlab.d.ts.map +1 -0
- package/dist/src/integrations/gmail-client.d.ts +18 -0
- package/dist/src/integrations/gmail-client.d.ts.map +1 -1
- package/dist/src/integrations/gmail.d.ts +1 -1
- package/dist/src/integrations/gmail.d.ts.map +1 -1
- package/dist/src/integrations/gmeet-client.d.ts +10 -0
- package/dist/src/integrations/gmeet-client.d.ts.map +1 -0
- package/dist/src/integrations/gmeet.d.ts +19 -0
- package/dist/src/integrations/gmeet.d.ts.map +1 -0
- package/dist/src/integrations/gsheets-client.d.ts +10 -0
- package/dist/src/integrations/gsheets-client.d.ts.map +1 -1
- package/dist/src/integrations/gsheets.d.ts +1 -1
- package/dist/src/integrations/gsheets.d.ts.map +1 -1
- package/dist/src/integrations/gslides-client.d.ts +8 -0
- package/dist/src/integrations/gslides-client.d.ts.map +1 -1
- package/dist/src/integrations/gslides.d.ts +1 -1
- package/dist/src/integrations/gslides.d.ts.map +1 -1
- package/dist/src/integrations/gtasks-client.d.ts +16 -0
- package/dist/src/integrations/gtasks-client.d.ts.map +1 -0
- package/dist/src/integrations/gtasks.d.ts +22 -0
- package/dist/src/integrations/gtasks.d.ts.map +1 -0
- package/dist/src/integrations/instagram-client.d.ts +74 -0
- package/dist/src/integrations/instagram-client.d.ts.map +1 -0
- package/dist/src/integrations/instagram.d.ts +24 -0
- package/dist/src/integrations/instagram.d.ts.map +1 -0
- package/dist/src/integrations/jira-client.d.ts +146 -0
- package/dist/src/integrations/jira-client.d.ts.map +1 -0
- package/dist/src/integrations/jira.d.ts +22 -0
- package/dist/src/integrations/jira.d.ts.map +1 -0
- package/dist/src/integrations/library-metadata.d.ts.map +1 -1
- package/dist/src/integrations/linkedin-client.d.ts +6 -0
- package/dist/src/integrations/linkedin-client.d.ts.map +1 -0
- package/dist/src/integrations/linkedin.d.ts +15 -0
- package/dist/src/integrations/linkedin.d.ts.map +1 -0
- package/dist/src/integrations/mailchimp-client.d.ts +5 -0
- package/dist/src/integrations/mailchimp-client.d.ts.map +1 -0
- package/dist/src/integrations/mailchimp.d.ts +13 -0
- package/dist/src/integrations/mailchimp.d.ts.map +1 -0
- package/dist/src/integrations/monday-client.d.ts +44 -0
- package/dist/src/integrations/monday-client.d.ts.map +1 -0
- package/dist/src/integrations/monday.d.ts +19 -0
- package/dist/src/integrations/monday.d.ts.map +1 -0
- package/dist/src/integrations/neon-client.d.ts +89 -0
- package/dist/src/integrations/neon-client.d.ts.map +1 -0
- package/dist/src/integrations/neon.d.ts +13 -0
- package/dist/src/integrations/neon.d.ts.map +1 -0
- package/dist/src/integrations/onedrive-client.d.ts +16 -0
- package/dist/src/integrations/onedrive-client.d.ts.map +1 -1
- package/dist/src/integrations/onedrive.d.ts +1 -1
- package/dist/src/integrations/onedrive.d.ts.map +1 -1
- package/dist/src/integrations/outlook.d.ts +1 -1
- package/dist/src/integrations/outlook.d.ts.map +1 -1
- package/dist/src/integrations/paper-client.d.ts +24 -0
- package/dist/src/integrations/paper-client.d.ts.map +1 -0
- package/dist/src/integrations/paper.d.ts +22 -0
- package/dist/src/integrations/paper.d.ts.map +1 -0
- package/dist/src/integrations/phantom-client.d.ts +9 -0
- package/dist/src/integrations/phantom-client.d.ts.map +1 -0
- package/dist/src/integrations/phantom.d.ts +13 -0
- package/dist/src/integrations/phantom.d.ts.map +1 -0
- package/dist/src/integrations/planetscale-client.d.ts +5 -0
- package/dist/src/integrations/planetscale-client.d.ts.map +1 -0
- package/dist/src/integrations/planetscale.d.ts +14 -0
- package/dist/src/integrations/planetscale.d.ts.map +1 -0
- package/dist/src/integrations/planner-client.d.ts +17 -0
- package/dist/src/integrations/planner-client.d.ts.map +1 -0
- package/dist/src/integrations/planner.d.ts +13 -0
- package/dist/src/integrations/planner.d.ts.map +1 -0
- package/dist/src/integrations/postman-client.d.ts +34 -0
- package/dist/src/integrations/postman-client.d.ts.map +1 -0
- package/dist/src/integrations/postman.d.ts +14 -0
- package/dist/src/integrations/postman.d.ts.map +1 -0
- package/dist/src/integrations/powerpoint-client.d.ts +8 -0
- package/dist/src/integrations/powerpoint-client.d.ts.map +1 -1
- package/dist/src/integrations/powerpoint.d.ts +1 -1
- package/dist/src/integrations/powerpoint.d.ts.map +1 -1
- package/dist/src/integrations/reddit-client.d.ts +5 -0
- package/dist/src/integrations/reddit-client.d.ts.map +1 -0
- package/dist/src/integrations/reddit.d.ts +13 -0
- package/dist/src/integrations/reddit.d.ts.map +1 -0
- package/dist/src/integrations/redis-client.d.ts +67 -0
- package/dist/src/integrations/redis-client.d.ts.map +1 -0
- package/dist/src/integrations/redis.d.ts +18 -0
- package/dist/src/integrations/redis.d.ts.map +1 -0
- package/dist/src/integrations/resend-client.d.ts +5 -0
- package/dist/src/integrations/resend-client.d.ts.map +1 -0
- package/dist/src/integrations/resend.d.ts +9 -0
- package/dist/src/integrations/resend.d.ts.map +1 -0
- package/dist/src/integrations/salesforce-client.d.ts +43 -0
- package/dist/src/integrations/salesforce-client.d.ts.map +1 -0
- package/dist/src/integrations/salesforce.d.ts +25 -0
- package/dist/src/integrations/salesforce.d.ts.map +1 -0
- package/dist/src/integrations/sharepoint-client.d.ts +15 -0
- package/dist/src/integrations/sharepoint-client.d.ts.map +1 -0
- package/dist/src/integrations/sharepoint.d.ts +15 -0
- package/dist/src/integrations/sharepoint.d.ts.map +1 -0
- package/dist/src/integrations/shopify-client.d.ts +31 -0
- package/dist/src/integrations/shopify-client.d.ts.map +1 -0
- package/dist/src/integrations/shopify.d.ts +16 -0
- package/dist/src/integrations/shopify.d.ts.map +1 -0
- package/dist/src/integrations/stripe-client.d.ts +12 -0
- package/dist/src/integrations/stripe-client.d.ts.map +1 -1
- package/dist/src/integrations/stripe.d.ts +1 -1
- package/dist/src/integrations/stripe.d.ts.map +1 -1
- package/dist/src/integrations/supabase-client.d.ts +63 -0
- package/dist/src/integrations/supabase-client.d.ts.map +1 -0
- package/dist/src/integrations/supabase.d.ts +26 -0
- package/dist/src/integrations/supabase.d.ts.map +1 -0
- package/dist/src/integrations/teams-client.d.ts +16 -0
- package/dist/src/integrations/teams-client.d.ts.map +1 -0
- package/dist/src/integrations/teams.d.ts +24 -0
- package/dist/src/integrations/teams.d.ts.map +1 -0
- package/dist/src/integrations/threads-client.d.ts +16 -0
- package/dist/src/integrations/threads-client.d.ts.map +1 -0
- package/dist/src/integrations/threads.d.ts +15 -0
- package/dist/src/integrations/threads.d.ts.map +1 -0
- package/dist/src/integrations/tiktok-client.d.ts +7 -0
- package/dist/src/integrations/tiktok-client.d.ts.map +1 -0
- package/dist/src/integrations/tiktok.d.ts +15 -0
- package/dist/src/integrations/tiktok.d.ts.map +1 -0
- package/dist/src/integrations/tldraw-client.d.ts +5 -0
- package/dist/src/integrations/tldraw-client.d.ts.map +1 -0
- package/dist/src/integrations/tldraw.d.ts +9 -0
- package/dist/src/integrations/tldraw.d.ts.map +1 -0
- package/dist/src/integrations/trello-client.d.ts +16 -0
- package/dist/src/integrations/trello-client.d.ts.map +1 -0
- package/dist/src/integrations/trello.d.ts +10 -0
- package/dist/src/integrations/trello.d.ts.map +1 -0
- package/dist/src/integrations/typeform-client.d.ts +13 -0
- package/dist/src/integrations/typeform-client.d.ts.map +1 -0
- package/dist/src/integrations/typeform.d.ts +15 -0
- package/dist/src/integrations/typeform.d.ts.map +1 -0
- package/dist/src/integrations/upstash-client.d.ts +28 -0
- package/dist/src/integrations/upstash-client.d.ts.map +1 -0
- package/dist/src/integrations/upstash.d.ts +18 -0
- package/dist/src/integrations/upstash.d.ts.map +1 -0
- package/dist/src/integrations/webflow-client.d.ts +78 -0
- package/dist/src/integrations/webflow-client.d.ts.map +1 -0
- package/dist/src/integrations/webflow.d.ts +20 -0
- package/dist/src/integrations/webflow.d.ts.map +1 -0
- package/dist/src/integrations/whatsapp-client.d.ts +22 -0
- package/dist/src/integrations/whatsapp-client.d.ts.map +1 -1
- package/dist/src/integrations/whatsapp.d.ts +1 -1
- package/dist/src/integrations/whatsapp.d.ts.map +1 -1
- package/dist/src/integrations/wix-client.d.ts +27 -0
- package/dist/src/integrations/wix-client.d.ts.map +1 -0
- package/dist/src/integrations/wix.d.ts +16 -0
- package/dist/src/integrations/wix.d.ts.map +1 -0
- package/dist/src/integrations/word-client.d.ts +8 -0
- package/dist/src/integrations/word-client.d.ts.map +1 -1
- package/dist/src/integrations/word.d.ts +1 -1
- package/dist/src/integrations/word.d.ts.map +1 -1
- package/dist/src/integrations/workday-client.d.ts +18 -0
- package/dist/src/integrations/workday-client.d.ts.map +1 -0
- package/dist/src/integrations/workday.d.ts +24 -0
- package/dist/src/integrations/workday.d.ts.map +1 -0
- package/dist/src/integrations/workos-client.d.ts +75 -0
- package/dist/src/integrations/workos-client.d.ts.map +1 -0
- package/dist/src/integrations/workos.d.ts +14 -0
- package/dist/src/integrations/workos.d.ts.map +1 -0
- package/dist/src/integrations/xero-client.d.ts +14 -0
- package/dist/src/integrations/xero-client.d.ts.map +1 -0
- package/dist/src/integrations/xero.d.ts +15 -0
- package/dist/src/integrations/xero.d.ts.map +1 -0
- package/dist/src/integrations/youtube.d.ts +1 -1
- package/dist/src/integrations/youtube.d.ts.map +1 -1
- package/dist/src/integrations/zapier-client.d.ts +41 -0
- package/dist/src/integrations/zapier-client.d.ts.map +1 -0
- package/dist/src/integrations/zapier.d.ts +20 -0
- package/dist/src/integrations/zapier.d.ts.map +1 -0
- package/dist/src/integrations/zoom-client.d.ts +42 -0
- package/dist/src/integrations/zoom-client.d.ts.map +1 -0
- package/dist/src/integrations/zoom.d.ts +23 -0
- package/dist/src/integrations/zoom.d.ts.map +1 -0
- package/dist/src/server.d.ts +57 -0
- package/dist/src/server.d.ts.map +1 -1
- package/index.ts +54 -0
- package/package.json +1 -1
package/dist/server.js
CHANGED
|
@@ -96,18 +96,42 @@ var init_library_metadata = __esm(() => {
|
|
|
96
96
|
description: "Manage Airtable bases, tables, and records",
|
|
97
97
|
category: "Business"
|
|
98
98
|
},
|
|
99
|
+
aws: {
|
|
100
|
+
description: "Inspect AWS accounts and resources with SigV4 (control-plane APIs)",
|
|
101
|
+
category: "Infrastructure"
|
|
102
|
+
},
|
|
103
|
+
attio: {
|
|
104
|
+
description: "Manage Attio people, companies, tasks, and CRM records",
|
|
105
|
+
category: "Business"
|
|
106
|
+
},
|
|
99
107
|
calcom: {
|
|
100
108
|
description: "Manage Cal.com bookings and schedules",
|
|
101
109
|
category: "Business"
|
|
102
110
|
},
|
|
111
|
+
canva: {
|
|
112
|
+
description: "List and create Canva designs, manage folders, and export assets",
|
|
113
|
+
category: "Productivity"
|
|
114
|
+
},
|
|
115
|
+
cloudflare: {
|
|
116
|
+
description: "Manage Cloudflare zones, DNS, CDN cache, and Workers",
|
|
117
|
+
category: "Infrastructure"
|
|
118
|
+
},
|
|
103
119
|
cursor: {
|
|
104
120
|
description: "Manage Cursor Cloud Agents and background tasks",
|
|
105
121
|
category: "Engineering"
|
|
106
122
|
},
|
|
123
|
+
databricks: {
|
|
124
|
+
description: "Run Databricks jobs, list clusters and SQL warehouses, and inspect workspace paths",
|
|
125
|
+
category: "Engineering"
|
|
126
|
+
},
|
|
107
127
|
figma: {
|
|
108
128
|
description: "Access Figma files, comments, and components",
|
|
109
129
|
category: "Engineering"
|
|
110
130
|
},
|
|
131
|
+
facebook: {
|
|
132
|
+
description: "Manage Facebook Page posts, comments, reactions, and insights via the Graph API",
|
|
133
|
+
category: "Social Media"
|
|
134
|
+
},
|
|
111
135
|
github: {
|
|
112
136
|
description: "Manage GitHub repos, issues, and pull requests",
|
|
113
137
|
category: "Engineering"
|
|
@@ -120,10 +144,26 @@ var init_library_metadata = __esm(() => {
|
|
|
120
144
|
description: "Manage Google Calendar events and schedules",
|
|
121
145
|
category: "Productivity"
|
|
122
146
|
},
|
|
147
|
+
gtasks: {
|
|
148
|
+
description: "Manage Google Tasks lists and to-dos",
|
|
149
|
+
category: "Productivity"
|
|
150
|
+
},
|
|
151
|
+
gmeet: {
|
|
152
|
+
description: "Create Google Meet links and manage meeting events via Calendar",
|
|
153
|
+
category: "Communication"
|
|
154
|
+
},
|
|
155
|
+
gcontacts: {
|
|
156
|
+
description: "List, search, create, update, and delete Google Contacts via the People API",
|
|
157
|
+
category: "Communication"
|
|
158
|
+
},
|
|
123
159
|
hubspot: {
|
|
124
160
|
description: "Manage HubSpot contacts, deals, and tickets",
|
|
125
161
|
category: "Business"
|
|
126
162
|
},
|
|
163
|
+
instagram: {
|
|
164
|
+
description: "Instagram Graph API — media, comments, insights, stories, and publishing",
|
|
165
|
+
category: "Social Media"
|
|
166
|
+
},
|
|
127
167
|
intercom: {
|
|
128
168
|
description: "Manage Intercom contacts and conversations",
|
|
129
169
|
category: "Business"
|
|
@@ -140,6 +180,10 @@ var init_library_metadata = __esm(() => {
|
|
|
140
180
|
description: "Manage OneDrive files, folders, and sharing",
|
|
141
181
|
category: "Storage"
|
|
142
182
|
},
|
|
183
|
+
planner: {
|
|
184
|
+
description: "Manage Microsoft Planner plans, buckets, and tasks",
|
|
185
|
+
category: "Productivity"
|
|
186
|
+
},
|
|
143
187
|
outlook: {
|
|
144
188
|
description: "Manage Outlook mail, calendars, and contacts",
|
|
145
189
|
category: "Communication"
|
|
@@ -148,18 +192,38 @@ var init_library_metadata = __esm(() => {
|
|
|
148
192
|
description: "Manage Polar products, orders, and subscriptions",
|
|
149
193
|
category: "Finance"
|
|
150
194
|
},
|
|
195
|
+
phantom: {
|
|
196
|
+
description: "Build Phantom mobile browse universal links and deeplink provider documentation (Solana)",
|
|
197
|
+
category: "Other"
|
|
198
|
+
},
|
|
151
199
|
posthog: {
|
|
152
200
|
description: "Read PostHog organizations, projects, insights, and feature flags",
|
|
153
201
|
category: "Analytics"
|
|
154
202
|
},
|
|
203
|
+
postman: {
|
|
204
|
+
description: "Manage Postman workspaces, collections, and environments via the Postman API",
|
|
205
|
+
category: "Engineering"
|
|
206
|
+
},
|
|
155
207
|
ramp: {
|
|
156
208
|
description: "Manage Ramp corporate cards, bills, and spend",
|
|
157
209
|
category: "Business"
|
|
158
210
|
},
|
|
211
|
+
resend: {
|
|
212
|
+
description: "Send email and manage domains with the Resend API",
|
|
213
|
+
category: "Communication"
|
|
214
|
+
},
|
|
215
|
+
mailchimp: {
|
|
216
|
+
description: "Manage Mailchimp audiences, members, and campaigns",
|
|
217
|
+
category: "Communication"
|
|
218
|
+
},
|
|
159
219
|
railway: {
|
|
160
220
|
description: "Manage Railway workspaces, projects, services, deployments, variables, domains, and volumes",
|
|
161
221
|
category: "Infrastructure"
|
|
162
222
|
},
|
|
223
|
+
supabase: {
|
|
224
|
+
description: "Manage Supabase organizations, projects, Postgres, API keys, secrets, and branches",
|
|
225
|
+
category: "Infrastructure"
|
|
226
|
+
},
|
|
163
227
|
sentry: {
|
|
164
228
|
description: "Monitor Sentry errors, issues, releases, and projects",
|
|
165
229
|
category: "Engineering"
|
|
@@ -168,6 +232,18 @@ var init_library_metadata = __esm(() => {
|
|
|
168
232
|
description: "Manage Netlify sites, deploys, builds, and environment variables",
|
|
169
233
|
category: "Infrastructure"
|
|
170
234
|
},
|
|
235
|
+
redis: {
|
|
236
|
+
description: "Manage Redis Cloud subscriptions, databases, async tasks, and audit logs",
|
|
237
|
+
category: "Infrastructure"
|
|
238
|
+
},
|
|
239
|
+
upstash: {
|
|
240
|
+
description: "Use Upstash Redis REST, QStash messaging, and related HTTP APIs",
|
|
241
|
+
category: "Infrastructure"
|
|
242
|
+
},
|
|
243
|
+
jira: {
|
|
244
|
+
description: "Manage Jira issues, projects, sprints, and boards",
|
|
245
|
+
category: "Engineering"
|
|
246
|
+
},
|
|
171
247
|
slack: {
|
|
172
248
|
description: "Send and manage Slack messages and channels",
|
|
173
249
|
category: "Communication"
|
|
@@ -200,6 +276,10 @@ var init_library_metadata = __esm(() => {
|
|
|
200
276
|
description: "Manage Vercel projects, deployments, and domains",
|
|
201
277
|
category: "Infrastructure"
|
|
202
278
|
},
|
|
279
|
+
workos: {
|
|
280
|
+
description: "Manage WorkOS organizations, users, directory sync, and AuthKit",
|
|
281
|
+
category: "Infrastructure"
|
|
282
|
+
},
|
|
203
283
|
whatsapp: {
|
|
204
284
|
description: "Send WhatsApp messages and templates",
|
|
205
285
|
category: "Communication"
|
|
@@ -208,6 +288,14 @@ var init_library_metadata = __esm(() => {
|
|
|
208
288
|
description: "Search and access YouTube videos and channels",
|
|
209
289
|
category: "Social Media"
|
|
210
290
|
},
|
|
291
|
+
zoom: {
|
|
292
|
+
description: "Manage Zoom user profile and meetings",
|
|
293
|
+
category: "Communication"
|
|
294
|
+
},
|
|
295
|
+
reddit: {
|
|
296
|
+
description: "Browse subreddits, search posts, submit content, and vote on Reddit",
|
|
297
|
+
category: "Social Media"
|
|
298
|
+
},
|
|
211
299
|
powerpoint: {
|
|
212
300
|
description: "Manage PowerPoint presentations and sharing",
|
|
213
301
|
category: "Productivity"
|
|
@@ -224,17 +312,149 @@ var init_library_metadata = __esm(() => {
|
|
|
224
312
|
description: "Manage Dropbox files, folders, and sharing",
|
|
225
313
|
category: "Storage"
|
|
226
314
|
},
|
|
315
|
+
paper: {
|
|
316
|
+
description: "Create, update, and export Dropbox Paper documents",
|
|
317
|
+
category: "Productivity"
|
|
318
|
+
},
|
|
227
319
|
granola: {
|
|
228
320
|
description: "List and read Granola meeting notes and folders",
|
|
229
321
|
category: "Productivity"
|
|
230
322
|
},
|
|
323
|
+
alpaca: {
|
|
324
|
+
description: "Trade equities with Alpaca: account, orders, positions, and market clock",
|
|
325
|
+
category: "Finance"
|
|
326
|
+
},
|
|
327
|
+
binance: {
|
|
328
|
+
description: "Read Binance Spot prices, order books, and account data with read-only API keys",
|
|
329
|
+
category: "Finance"
|
|
330
|
+
},
|
|
231
331
|
mercury: {
|
|
232
332
|
description: "Manage Mercury bank accounts, cards, and transactions",
|
|
233
333
|
category: "Finance"
|
|
234
334
|
},
|
|
335
|
+
monday: {
|
|
336
|
+
description: "Manage Monday.com boards, items, columns, and updates",
|
|
337
|
+
category: "Productivity"
|
|
338
|
+
},
|
|
235
339
|
zendesk: {
|
|
236
340
|
description: "Manage Zendesk tickets, users, and help center content",
|
|
237
341
|
category: "Business"
|
|
342
|
+
},
|
|
343
|
+
wix: {
|
|
344
|
+
description: "Manage Wix site stores, products, and e-commerce orders via REST",
|
|
345
|
+
category: "Business"
|
|
346
|
+
},
|
|
347
|
+
astronomer: {
|
|
348
|
+
description: "Manage Apache Airflow DAGs and deployments on Astronomer",
|
|
349
|
+
category: "Engineering"
|
|
350
|
+
},
|
|
351
|
+
auth0: {
|
|
352
|
+
description: "Manage Auth0 users, applications, and tenant configuration",
|
|
353
|
+
category: "Infrastructure"
|
|
354
|
+
},
|
|
355
|
+
betterstack: {
|
|
356
|
+
description: "Monitor uptime, logs, and incident alerts with BetterStack",
|
|
357
|
+
category: "Engineering"
|
|
358
|
+
},
|
|
359
|
+
clerk: {
|
|
360
|
+
description: "Manage Clerk users, organizations, and authentication",
|
|
361
|
+
category: "Infrastructure"
|
|
362
|
+
},
|
|
363
|
+
clickup: {
|
|
364
|
+
description: "Manage ClickUp tasks, lists, spaces, and workspaces",
|
|
365
|
+
category: "Productivity"
|
|
366
|
+
},
|
|
367
|
+
convex: {
|
|
368
|
+
description: "Run Convex functions, manage tables, and query your app backend",
|
|
369
|
+
category: "Engineering"
|
|
370
|
+
},
|
|
371
|
+
datadog: {
|
|
372
|
+
description: "Monitor Datadog metrics, logs, dashboards, and alerts",
|
|
373
|
+
category: "Engineering"
|
|
374
|
+
},
|
|
375
|
+
discord: {
|
|
376
|
+
description: "Send messages and manage Discord channels and servers",
|
|
377
|
+
category: "Communication"
|
|
378
|
+
},
|
|
379
|
+
etoro: {
|
|
380
|
+
description: "Read eToro portfolio data and market instruments",
|
|
381
|
+
category: "Finance"
|
|
382
|
+
},
|
|
383
|
+
ga4: {
|
|
384
|
+
description: "Read Google Analytics 4 reports, properties, and events",
|
|
385
|
+
category: "Analytics"
|
|
386
|
+
},
|
|
387
|
+
gchat: {
|
|
388
|
+
description: "Send messages and manage Google Chat spaces and memberships",
|
|
389
|
+
category: "Communication"
|
|
390
|
+
},
|
|
391
|
+
gitlab: {
|
|
392
|
+
description: "Manage GitLab repositories, issues, and merge requests",
|
|
393
|
+
category: "Engineering"
|
|
394
|
+
},
|
|
395
|
+
linkedin: {
|
|
396
|
+
description: "Post updates and manage LinkedIn profile and company pages",
|
|
397
|
+
category: "Social Media"
|
|
398
|
+
},
|
|
399
|
+
neon: {
|
|
400
|
+
description: "Manage Neon Postgres projects, branches, and databases",
|
|
401
|
+
category: "Infrastructure"
|
|
402
|
+
},
|
|
403
|
+
planetscale: {
|
|
404
|
+
description: "Manage PlanetScale databases, branches, and schema changes",
|
|
405
|
+
category: "Infrastructure"
|
|
406
|
+
},
|
|
407
|
+
salesforce: {
|
|
408
|
+
description: "Manage Salesforce accounts, contacts, opportunities, and cases",
|
|
409
|
+
category: "Business"
|
|
410
|
+
},
|
|
411
|
+
sharepoint: {
|
|
412
|
+
description: "Manage SharePoint sites, lists, documents, and permissions",
|
|
413
|
+
category: "Productivity"
|
|
414
|
+
},
|
|
415
|
+
shopify: {
|
|
416
|
+
description: "Manage Shopify products, orders, customers, and inventory",
|
|
417
|
+
category: "Business"
|
|
418
|
+
},
|
|
419
|
+
teams: {
|
|
420
|
+
description: "Send messages and manage Microsoft Teams channels and meetings",
|
|
421
|
+
category: "Communication"
|
|
422
|
+
},
|
|
423
|
+
threads: {
|
|
424
|
+
description: "Post and manage content on Threads (Meta)",
|
|
425
|
+
category: "Social Media"
|
|
426
|
+
},
|
|
427
|
+
tiktok: {
|
|
428
|
+
description: "Manage TikTok videos, account info, and creator analytics",
|
|
429
|
+
category: "Social Media"
|
|
430
|
+
},
|
|
431
|
+
tldraw: {
|
|
432
|
+
description: "Create and manage tldraw collaborative whiteboards",
|
|
433
|
+
category: "Productivity"
|
|
434
|
+
},
|
|
435
|
+
trello: {
|
|
436
|
+
description: "Manage Trello boards, lists, and cards",
|
|
437
|
+
category: "Productivity"
|
|
438
|
+
},
|
|
439
|
+
typeform: {
|
|
440
|
+
description: "Create and manage Typeform surveys and responses",
|
|
441
|
+
category: "Business"
|
|
442
|
+
},
|
|
443
|
+
webflow: {
|
|
444
|
+
description: "Manage Webflow sites, collections, and CMS content",
|
|
445
|
+
category: "Engineering"
|
|
446
|
+
},
|
|
447
|
+
workday: {
|
|
448
|
+
description: "Read Workday HR data including workers, organizations, and pay",
|
|
449
|
+
category: "Business"
|
|
450
|
+
},
|
|
451
|
+
xero: {
|
|
452
|
+
description: "Manage Xero invoices, contacts, and accounting data",
|
|
453
|
+
category: "Finance"
|
|
454
|
+
},
|
|
455
|
+
zapier: {
|
|
456
|
+
description: "Trigger and manage Zapier automation workflows",
|
|
457
|
+
category: "Engineering"
|
|
238
458
|
}
|
|
239
459
|
};
|
|
240
460
|
});
|
|
@@ -2240,7 +2460,7 @@ async function deliverWebhook(webhook, payload, timeoutMs) {
|
|
|
2240
2460
|
signal: controller.signal
|
|
2241
2461
|
});
|
|
2242
2462
|
if (!response.ok) {
|
|
2243
|
-
|
|
2463
|
+
logger91.warn(`Webhook delivery to ${webhook.url} returned ${response.status}`);
|
|
2244
2464
|
}
|
|
2245
2465
|
} finally {
|
|
2246
2466
|
clearTimeout(timeout);
|
|
@@ -2253,14 +2473,14 @@ async function deliverWebhooks(webhooks, payload, timeoutMs) {
|
|
|
2253
2473
|
for (let i = 0;i < results.length; i++) {
|
|
2254
2474
|
const result = results[i];
|
|
2255
2475
|
if (result.status === "rejected") {
|
|
2256
|
-
|
|
2476
|
+
logger91.warn(`Webhook delivery to ${webhooks[i].url} failed:`, result.reason);
|
|
2257
2477
|
}
|
|
2258
2478
|
}
|
|
2259
2479
|
}
|
|
2260
|
-
var
|
|
2480
|
+
var logger91;
|
|
2261
2481
|
var init_webhooks = __esm(() => {
|
|
2262
2482
|
init_logger();
|
|
2263
|
-
|
|
2483
|
+
logger91 = createLogger("Webhooks", "server");
|
|
2264
2484
|
});
|
|
2265
2485
|
|
|
2266
2486
|
// src/triggers/types.ts
|
|
@@ -2280,13 +2500,13 @@ async function executeTrigger(trigger, config, context) {
|
|
|
2280
2500
|
while (stepIndex < MAX_TRIGGER_STEPS) {
|
|
2281
2501
|
const stepValidation = validateStepLimit(stepIndex, MAX_TRIGGER_STEPS);
|
|
2282
2502
|
if (!stepValidation.valid) {
|
|
2283
|
-
|
|
2503
|
+
logger92.error(`[Trigger ${trigger.id}] ${stepValidation.error}`);
|
|
2284
2504
|
break;
|
|
2285
2505
|
}
|
|
2286
2506
|
const providerToken = await config.getProviderToken(currentProvider, undefined, context);
|
|
2287
2507
|
if (!providerToken) {
|
|
2288
2508
|
const error = `No OAuth token available for provider '${currentProvider}'`;
|
|
2289
|
-
|
|
2509
|
+
logger92.error(`[Trigger ${trigger.id}] ${error}`);
|
|
2290
2510
|
steps.push({
|
|
2291
2511
|
stepIndex,
|
|
2292
2512
|
toolName: currentToolName,
|
|
@@ -2312,7 +2532,7 @@ async function executeTrigger(trigger, config, context) {
|
|
|
2312
2532
|
} catch (err) {
|
|
2313
2533
|
stepSuccess = false;
|
|
2314
2534
|
stepError = err.message || "Tool execution failed";
|
|
2315
|
-
|
|
2535
|
+
logger92.error(`[Trigger ${trigger.id}] Step ${stepIndex} failed:`, err);
|
|
2316
2536
|
}
|
|
2317
2537
|
if (stepSuccess && toolResult) {
|
|
2318
2538
|
if (toolResult.isError === true) {
|
|
@@ -2405,7 +2625,7 @@ async function executeTrigger(trigger, config, context) {
|
|
|
2405
2625
|
return { success: steps.every((s) => s.success), steps, error: stepError };
|
|
2406
2626
|
}
|
|
2407
2627
|
const limitError = `Trigger execution exceeded maximum of ${MAX_TRIGGER_STEPS} steps`;
|
|
2408
|
-
|
|
2628
|
+
logger92.error(`[Trigger ${trigger.id}] ${limitError}`);
|
|
2409
2629
|
await config.triggers.update(trigger.id, {
|
|
2410
2630
|
lastRunAt: new Date().toISOString(),
|
|
2411
2631
|
runCount: (trigger.runCount || 0) + 1,
|
|
@@ -2414,12 +2634,12 @@ async function executeTrigger(trigger, config, context) {
|
|
|
2414
2634
|
}, context);
|
|
2415
2635
|
return { success: false, steps, error: limitError };
|
|
2416
2636
|
}
|
|
2417
|
-
var
|
|
2637
|
+
var logger92;
|
|
2418
2638
|
var init_executor2 = __esm(() => {
|
|
2419
2639
|
init_logger();
|
|
2420
2640
|
init_utils();
|
|
2421
2641
|
init_webhooks();
|
|
2422
|
-
|
|
2642
|
+
logger92 = createLogger("TriggerExecutor", "server");
|
|
2423
2643
|
});
|
|
2424
2644
|
|
|
2425
2645
|
// src/protocol/jsonrpc.ts
|
|
@@ -3852,56 +4072,8 @@ class MCPClientBase {
|
|
|
3852
4072
|
}
|
|
3853
4073
|
}
|
|
3854
4074
|
const integrationIds = this.integrations.map((i) => i.id);
|
|
3855
|
-
|
|
3856
|
-
this
|
|
3857
|
-
}
|
|
3858
|
-
if (integrationIds.includes("gmail")) {
|
|
3859
|
-
this.gmail = this.createIntegrationProxy("gmail");
|
|
3860
|
-
}
|
|
3861
|
-
if (integrationIds.includes("notion")) {
|
|
3862
|
-
this.notion = this.createIntegrationProxy("notion");
|
|
3863
|
-
}
|
|
3864
|
-
if (integrationIds.includes("slack")) {
|
|
3865
|
-
this.slack = this.createIntegrationProxy("slack");
|
|
3866
|
-
}
|
|
3867
|
-
if (integrationIds.includes("linear")) {
|
|
3868
|
-
this.linear = this.createIntegrationProxy("linear");
|
|
3869
|
-
}
|
|
3870
|
-
if (integrationIds.includes("railway")) {
|
|
3871
|
-
this.railway = this.createIntegrationProxy("railway");
|
|
3872
|
-
}
|
|
3873
|
-
if (integrationIds.includes("vercel")) {
|
|
3874
|
-
this.vercel = this.createIntegrationProxy("vercel");
|
|
3875
|
-
}
|
|
3876
|
-
if (integrationIds.includes("zendesk")) {
|
|
3877
|
-
this.zendesk = this.createIntegrationProxy("zendesk");
|
|
3878
|
-
}
|
|
3879
|
-
if (integrationIds.includes("stripe")) {
|
|
3880
|
-
this.stripe = this.createIntegrationProxy("stripe");
|
|
3881
|
-
}
|
|
3882
|
-
if (integrationIds.includes("gcal")) {
|
|
3883
|
-
this.gcal = this.createIntegrationProxy("gcal");
|
|
3884
|
-
}
|
|
3885
|
-
if (integrationIds.includes("outlook")) {
|
|
3886
|
-
this.outlook = this.createIntegrationProxy("outlook");
|
|
3887
|
-
}
|
|
3888
|
-
if (integrationIds.includes("airtable")) {
|
|
3889
|
-
this.airtable = this.createIntegrationProxy("airtable");
|
|
3890
|
-
}
|
|
3891
|
-
if (integrationIds.includes("todoist")) {
|
|
3892
|
-
this.todoist = this.createIntegrationProxy("todoist");
|
|
3893
|
-
}
|
|
3894
|
-
if (integrationIds.includes("gdocs")) {
|
|
3895
|
-
this.gdocs = this.createIntegrationProxy("gdocs");
|
|
3896
|
-
}
|
|
3897
|
-
if (integrationIds.includes("gsheets")) {
|
|
3898
|
-
this.gsheets = this.createIntegrationProxy("gsheets");
|
|
3899
|
-
}
|
|
3900
|
-
if (integrationIds.includes("gslides")) {
|
|
3901
|
-
this.gslides = this.createIntegrationProxy("gslides");
|
|
3902
|
-
}
|
|
3903
|
-
if (integrationIds.includes("posthog")) {
|
|
3904
|
-
this.posthog = this.createIntegrationProxy("posthog");
|
|
4075
|
+
for (const id of integrationIds) {
|
|
4076
|
+
this[id] = this.createIntegrationProxy(id);
|
|
3905
4077
|
}
|
|
3906
4078
|
this.server = this.createServerProxy();
|
|
3907
4079
|
this.trigger = new TriggerClient({
|
|
@@ -4978,6 +5150,7 @@ var GITHUB_TOOLS = [
|
|
|
4978
5150
|
"github_create_repo",
|
|
4979
5151
|
"github_list_branches",
|
|
4980
5152
|
"github_create_branch",
|
|
5153
|
+
"github_get_authenticated_user",
|
|
4981
5154
|
"github_get_user",
|
|
4982
5155
|
"github_list_commits",
|
|
4983
5156
|
"github_get_commit",
|
|
@@ -5038,18 +5211,76 @@ function githubIntegration(config = {}) {
|
|
|
5038
5211
|
}
|
|
5039
5212
|
};
|
|
5040
5213
|
}
|
|
5214
|
+
// src/integrations/gitlab.ts
|
|
5215
|
+
init_logger();
|
|
5216
|
+
var logger9 = createLogger("GitLab");
|
|
5217
|
+
var GITLAB_TOOLS = [
|
|
5218
|
+
"gitlab_list_projects",
|
|
5219
|
+
"gitlab_list_own_projects",
|
|
5220
|
+
"gitlab_get_project",
|
|
5221
|
+
"gitlab_create_project",
|
|
5222
|
+
"gitlab_create_issue",
|
|
5223
|
+
"gitlab_list_issues",
|
|
5224
|
+
"gitlab_get_issue",
|
|
5225
|
+
"gitlab_update_issue",
|
|
5226
|
+
"gitlab_close_issue",
|
|
5227
|
+
"gitlab_create_merge_request",
|
|
5228
|
+
"gitlab_list_merge_requests",
|
|
5229
|
+
"gitlab_get_merge_request",
|
|
5230
|
+
"gitlab_accept_merge_request",
|
|
5231
|
+
"gitlab_list_branches",
|
|
5232
|
+
"gitlab_create_branch",
|
|
5233
|
+
"gitlab_list_commits",
|
|
5234
|
+
"gitlab_get_commit",
|
|
5235
|
+
"gitlab_list_issue_notes",
|
|
5236
|
+
"gitlab_create_issue_note",
|
|
5237
|
+
"gitlab_list_milestones",
|
|
5238
|
+
"gitlab_create_milestone",
|
|
5239
|
+
"gitlab_get_current_user"
|
|
5240
|
+
];
|
|
5241
|
+
function gitlabIntegration(config = {}) {
|
|
5242
|
+
const oauth = {
|
|
5243
|
+
provider: "gitlab",
|
|
5244
|
+
clientId: config.clientId ?? getEnv("GITLAB_CLIENT_ID"),
|
|
5245
|
+
clientSecret: config.clientSecret ?? getEnv("GITLAB_CLIENT_SECRET"),
|
|
5246
|
+
scopes: config.scopes ?? ["read_api", "write_api", "read_user"],
|
|
5247
|
+
optionalScopes: config.optionalScopes,
|
|
5248
|
+
redirectUri: config.redirectUri,
|
|
5249
|
+
config: {
|
|
5250
|
+
apiBaseUrl: config.apiBaseUrl ?? "https://gitlab.com/api/v4/",
|
|
5251
|
+
...config
|
|
5252
|
+
}
|
|
5253
|
+
};
|
|
5254
|
+
return {
|
|
5255
|
+
id: "gitlab",
|
|
5256
|
+
name: "GitLab",
|
|
5257
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/gitlab.png",
|
|
5258
|
+
description: "Manage GitLab projects, issues, merge requests, and CI/CD",
|
|
5259
|
+
category: "Engineering",
|
|
5260
|
+
tools: [...GITLAB_TOOLS],
|
|
5261
|
+
oauth,
|
|
5262
|
+
async onInit(_client) {
|
|
5263
|
+
logger9.debug("GitLab integration initialized");
|
|
5264
|
+
},
|
|
5265
|
+
async onAfterConnect(_client) {
|
|
5266
|
+
logger9.debug("GitLab integration connected");
|
|
5267
|
+
}
|
|
5268
|
+
};
|
|
5269
|
+
}
|
|
5041
5270
|
// src/integrations/gmail.ts
|
|
5042
5271
|
init_logger();
|
|
5043
|
-
var
|
|
5272
|
+
var logger10 = createLogger("Gmail");
|
|
5044
5273
|
var GMAIL_TOOLS = [
|
|
5045
|
-
"
|
|
5046
|
-
"
|
|
5274
|
+
"gmail_create_draft",
|
|
5275
|
+
"gmail_get_attachment",
|
|
5047
5276
|
"gmail_get_message",
|
|
5048
|
-
"gmail_search_messages",
|
|
5049
|
-
"gmail_reply_message",
|
|
5050
|
-
"gmail_list_threads",
|
|
5051
5277
|
"gmail_get_thread",
|
|
5278
|
+
"gmail_list_messages",
|
|
5279
|
+
"gmail_list_threads",
|
|
5052
5280
|
"gmail_modify_message",
|
|
5281
|
+
"gmail_reply_message",
|
|
5282
|
+
"gmail_search_messages",
|
|
5283
|
+
"gmail_send_message",
|
|
5053
5284
|
"gmail_trash_message"
|
|
5054
5285
|
];
|
|
5055
5286
|
function gmailIntegration(config = {}) {
|
|
@@ -5069,16 +5300,16 @@ function gmailIntegration(config = {}) {
|
|
|
5069
5300
|
tools: [...GMAIL_TOOLS],
|
|
5070
5301
|
oauth,
|
|
5071
5302
|
async onInit(_client) {
|
|
5072
|
-
|
|
5303
|
+
logger10.debug("Gmail integration initialized");
|
|
5073
5304
|
},
|
|
5074
5305
|
async onAfterConnect(_client) {
|
|
5075
|
-
|
|
5306
|
+
logger10.debug("Gmail integration connected");
|
|
5076
5307
|
}
|
|
5077
5308
|
};
|
|
5078
5309
|
}
|
|
5079
5310
|
// src/integrations/notion.ts
|
|
5080
5311
|
init_logger();
|
|
5081
|
-
var
|
|
5312
|
+
var logger11 = createLogger("Notion");
|
|
5082
5313
|
var NOTION_TOOLS = [
|
|
5083
5314
|
"notion_search",
|
|
5084
5315
|
"notion_get_page",
|
|
@@ -5131,16 +5362,16 @@ function notionIntegration(config = {}) {
|
|
|
5131
5362
|
tools: [...NOTION_TOOLS],
|
|
5132
5363
|
oauth,
|
|
5133
5364
|
async onInit(_client) {
|
|
5134
|
-
|
|
5365
|
+
logger11.debug("Notion integration initialized");
|
|
5135
5366
|
},
|
|
5136
5367
|
async onAfterConnect(_client) {
|
|
5137
|
-
|
|
5368
|
+
logger11.debug("Notion integration connected");
|
|
5138
5369
|
}
|
|
5139
5370
|
};
|
|
5140
5371
|
}
|
|
5141
5372
|
// src/integrations/slack.ts
|
|
5142
5373
|
init_logger();
|
|
5143
|
-
var
|
|
5374
|
+
var logger12 = createLogger("Slack");
|
|
5144
5375
|
var SLACK_TOOLS = [
|
|
5145
5376
|
"slack_send_message",
|
|
5146
5377
|
"slack_list_messages",
|
|
@@ -5205,16 +5436,57 @@ function slackIntegration(config = {}) {
|
|
|
5205
5436
|
tools: [...SLACK_TOOLS],
|
|
5206
5437
|
oauth,
|
|
5207
5438
|
async onInit(_client) {
|
|
5208
|
-
|
|
5439
|
+
logger12.debug("Slack integration initialized");
|
|
5440
|
+
},
|
|
5441
|
+
async onAfterConnect(_client) {
|
|
5442
|
+
logger12.debug("Slack integration connected");
|
|
5443
|
+
}
|
|
5444
|
+
};
|
|
5445
|
+
}
|
|
5446
|
+
// src/integrations/discord.ts
|
|
5447
|
+
init_logger();
|
|
5448
|
+
var logger13 = createLogger("Discord");
|
|
5449
|
+
var DISCORD_TOOLS = [
|
|
5450
|
+
"discord_get_current_user",
|
|
5451
|
+
"discord_list_my_guilds",
|
|
5452
|
+
"discord_get_guild",
|
|
5453
|
+
"discord_list_guild_channels",
|
|
5454
|
+
"discord_get_channel",
|
|
5455
|
+
"discord_send_message",
|
|
5456
|
+
"discord_list_messages",
|
|
5457
|
+
"discord_edit_message",
|
|
5458
|
+
"discord_delete_message"
|
|
5459
|
+
];
|
|
5460
|
+
function discordIntegration(config = {}) {
|
|
5461
|
+
const oauth = {
|
|
5462
|
+
provider: "discord",
|
|
5463
|
+
clientId: config.clientId ?? getEnv("DISCORD_CLIENT_ID"),
|
|
5464
|
+
clientSecret: config.clientSecret ?? getEnv("DISCORD_CLIENT_SECRET"),
|
|
5465
|
+
scopes: config.scopes ?? ["identify", "email", "guilds", "bot", "applications.commands"],
|
|
5466
|
+
redirectUri: config.redirectUri,
|
|
5467
|
+
config: {
|
|
5468
|
+
...config
|
|
5469
|
+
}
|
|
5470
|
+
};
|
|
5471
|
+
return {
|
|
5472
|
+
id: "discord",
|
|
5473
|
+
name: "Discord",
|
|
5474
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/discord.png",
|
|
5475
|
+
description: "Send and manage Discord messages; list guilds and channels (bot token required on server for channel APIs)",
|
|
5476
|
+
category: "Communication",
|
|
5477
|
+
tools: [...DISCORD_TOOLS],
|
|
5478
|
+
oauth,
|
|
5479
|
+
async onInit(_client) {
|
|
5480
|
+
logger13.debug("Discord integration initialized");
|
|
5209
5481
|
},
|
|
5210
5482
|
async onAfterConnect(_client) {
|
|
5211
|
-
|
|
5483
|
+
logger13.debug("Discord integration connected");
|
|
5212
5484
|
}
|
|
5213
5485
|
};
|
|
5214
5486
|
}
|
|
5215
5487
|
// src/integrations/linear.ts
|
|
5216
5488
|
init_logger();
|
|
5217
|
-
var
|
|
5489
|
+
var logger14 = createLogger("Linear");
|
|
5218
5490
|
var LINEAR_TOOLS = [
|
|
5219
5491
|
"linear_create_issue",
|
|
5220
5492
|
"linear_list_issues",
|
|
@@ -5269,16 +5541,16 @@ function linearIntegration(config = {}) {
|
|
|
5269
5541
|
tools: [...LINEAR_TOOLS],
|
|
5270
5542
|
oauth,
|
|
5271
5543
|
async onInit(_client) {
|
|
5272
|
-
|
|
5544
|
+
logger14.debug("Linear integration initialized");
|
|
5273
5545
|
},
|
|
5274
5546
|
async onAfterConnect(_client) {
|
|
5275
|
-
|
|
5547
|
+
logger14.debug("Linear integration connected");
|
|
5276
5548
|
}
|
|
5277
5549
|
};
|
|
5278
5550
|
}
|
|
5279
5551
|
// src/integrations/railway.ts
|
|
5280
5552
|
init_logger();
|
|
5281
|
-
var
|
|
5553
|
+
var logger15 = createLogger("Railway");
|
|
5282
5554
|
var RAILWAY_SCOPES = [
|
|
5283
5555
|
"openid",
|
|
5284
5556
|
"profile",
|
|
@@ -5383,16 +5655,16 @@ function railwayIntegration(config = {}) {
|
|
|
5383
5655
|
tools: [...RAILWAY_TOOLS],
|
|
5384
5656
|
oauth,
|
|
5385
5657
|
async onInit(_client) {
|
|
5386
|
-
|
|
5658
|
+
logger15.debug("Railway integration initialized");
|
|
5387
5659
|
},
|
|
5388
5660
|
async onAfterConnect(_client) {
|
|
5389
|
-
|
|
5661
|
+
logger15.debug("Railway integration connected");
|
|
5390
5662
|
}
|
|
5391
5663
|
};
|
|
5392
5664
|
}
|
|
5393
5665
|
// src/integrations/vercel.ts
|
|
5394
5666
|
init_logger();
|
|
5395
|
-
var
|
|
5667
|
+
var logger16 = createLogger("Vercel");
|
|
5396
5668
|
var VERCEL_TOOLS = [
|
|
5397
5669
|
"vercel_list_projects",
|
|
5398
5670
|
"vercel_get_project",
|
|
@@ -5435,16 +5707,16 @@ function vercelIntegration(config = {}) {
|
|
|
5435
5707
|
tools: [...VERCEL_TOOLS],
|
|
5436
5708
|
oauth,
|
|
5437
5709
|
async onInit(_client) {
|
|
5438
|
-
|
|
5710
|
+
logger16.debug("Vercel integration initialized");
|
|
5439
5711
|
},
|
|
5440
5712
|
async onAfterConnect(_client) {
|
|
5441
|
-
|
|
5713
|
+
logger16.debug("Vercel integration connected");
|
|
5442
5714
|
}
|
|
5443
5715
|
};
|
|
5444
5716
|
}
|
|
5445
5717
|
// src/integrations/zendesk.ts
|
|
5446
5718
|
init_logger();
|
|
5447
|
-
var
|
|
5719
|
+
var logger17 = createLogger("Zendesk");
|
|
5448
5720
|
var ZENDESK_TOOLS = [
|
|
5449
5721
|
"zendesk_list_tickets",
|
|
5450
5722
|
"zendesk_get_ticket",
|
|
@@ -5493,16 +5765,16 @@ function zendeskIntegration(config = {}) {
|
|
|
5493
5765
|
tools: [...ZENDESK_TOOLS],
|
|
5494
5766
|
oauth,
|
|
5495
5767
|
async onInit(_client) {
|
|
5496
|
-
|
|
5768
|
+
logger17.debug("Zendesk integration initialized");
|
|
5497
5769
|
},
|
|
5498
5770
|
async onAfterConnect(_client) {
|
|
5499
|
-
|
|
5771
|
+
logger17.debug("Zendesk integration connected");
|
|
5500
5772
|
}
|
|
5501
5773
|
};
|
|
5502
5774
|
}
|
|
5503
5775
|
// src/integrations/stripe.ts
|
|
5504
5776
|
init_logger();
|
|
5505
|
-
var
|
|
5777
|
+
var logger18 = createLogger("Stripe");
|
|
5506
5778
|
var STRIPE_TOOLS = [
|
|
5507
5779
|
"stripe_list_customers",
|
|
5508
5780
|
"stripe_get_customer",
|
|
@@ -5521,6 +5793,7 @@ var STRIPE_TOOLS = [
|
|
|
5521
5793
|
"stripe_update_subscription",
|
|
5522
5794
|
"stripe_cancel_subscription",
|
|
5523
5795
|
"stripe_list_invoices",
|
|
5796
|
+
"stripe_get_invoice",
|
|
5524
5797
|
"stripe_create_invoice",
|
|
5525
5798
|
"stripe_finalize_invoice",
|
|
5526
5799
|
"stripe_pay_invoice",
|
|
@@ -5558,28 +5831,29 @@ function stripeIntegration(config = {}) {
|
|
|
5558
5831
|
tools: [...STRIPE_TOOLS],
|
|
5559
5832
|
oauth,
|
|
5560
5833
|
async onInit(_client) {
|
|
5561
|
-
|
|
5834
|
+
logger18.debug("Stripe integration initialized");
|
|
5562
5835
|
},
|
|
5563
5836
|
async onAfterConnect(_client) {
|
|
5564
|
-
|
|
5837
|
+
logger18.debug("Stripe integration connected");
|
|
5565
5838
|
}
|
|
5566
5839
|
};
|
|
5567
5840
|
}
|
|
5568
5841
|
// src/integrations/gcal.ts
|
|
5569
5842
|
init_logger();
|
|
5570
|
-
var
|
|
5843
|
+
var logger19 = createLogger("Google Calendar");
|
|
5571
5844
|
var GCAL_TOOLS = [
|
|
5572
|
-
"
|
|
5573
|
-
"gcal_get_calendar",
|
|
5574
|
-
"gcal_list_events",
|
|
5575
|
-
"gcal_get_event",
|
|
5845
|
+
"gcal_create_calendar",
|
|
5576
5846
|
"gcal_create_event",
|
|
5577
|
-
"
|
|
5847
|
+
"gcal_delete_calendar",
|
|
5578
5848
|
"gcal_delete_event",
|
|
5849
|
+
"gcal_freebusy",
|
|
5850
|
+
"gcal_get_calendar",
|
|
5851
|
+
"gcal_get_event",
|
|
5579
5852
|
"gcal_list_attendees",
|
|
5853
|
+
"gcal_list_calendars",
|
|
5854
|
+
"gcal_list_events",
|
|
5580
5855
|
"gcal_quick_add",
|
|
5581
|
-
"
|
|
5582
|
-
"gcal_delete_calendar"
|
|
5856
|
+
"gcal_update_event"
|
|
5583
5857
|
];
|
|
5584
5858
|
function gcalIntegration(config = {}) {
|
|
5585
5859
|
const oauth = {
|
|
@@ -5600,48 +5874,33 @@ function gcalIntegration(config = {}) {
|
|
|
5600
5874
|
tools: [...GCAL_TOOLS],
|
|
5601
5875
|
oauth,
|
|
5602
5876
|
async onInit(_client) {
|
|
5603
|
-
|
|
5877
|
+
logger19.debug("Google Calendar integration initialized");
|
|
5604
5878
|
},
|
|
5605
5879
|
async onAfterConnect(_client) {
|
|
5606
|
-
|
|
5880
|
+
logger19.debug("Google Calendar integration connected");
|
|
5607
5881
|
}
|
|
5608
5882
|
};
|
|
5609
5883
|
}
|
|
5610
|
-
// src/integrations/
|
|
5884
|
+
// src/integrations/gcontacts.ts
|
|
5611
5885
|
init_logger();
|
|
5612
|
-
var
|
|
5613
|
-
var
|
|
5614
|
-
"
|
|
5615
|
-
"
|
|
5616
|
-
"
|
|
5617
|
-
"
|
|
5618
|
-
"
|
|
5619
|
-
"
|
|
5620
|
-
"
|
|
5621
|
-
"
|
|
5622
|
-
"
|
|
5623
|
-
"
|
|
5624
|
-
"outlook_create_draft",
|
|
5625
|
-
"outlook_list_mail_folders",
|
|
5626
|
-
"outlook_list_events",
|
|
5627
|
-
"outlook_get_event",
|
|
5628
|
-
"outlook_create_event",
|
|
5629
|
-
"outlook_update_event",
|
|
5630
|
-
"outlook_delete_event",
|
|
5631
|
-
"outlook_list_calendars",
|
|
5632
|
-
"outlook_accept_event",
|
|
5633
|
-
"outlook_decline_event",
|
|
5634
|
-
"outlook_tentatively_accept_event",
|
|
5635
|
-
"outlook_find_meeting_times",
|
|
5636
|
-
"outlook_get_schedule",
|
|
5637
|
-
"outlook_list_contacts",
|
|
5638
|
-
"outlook_get_contact"
|
|
5886
|
+
var logger20 = createLogger("Google Contacts");
|
|
5887
|
+
var GCONTACTS_TOOLS = [
|
|
5888
|
+
"gcontacts_batch_get_contacts",
|
|
5889
|
+
"gcontacts_copy_other_contact",
|
|
5890
|
+
"gcontacts_create_contact",
|
|
5891
|
+
"gcontacts_delete_contact",
|
|
5892
|
+
"gcontacts_get_person",
|
|
5893
|
+
"gcontacts_get_self",
|
|
5894
|
+
"gcontacts_list_connections",
|
|
5895
|
+
"gcontacts_list_other_contacts",
|
|
5896
|
+
"gcontacts_search_contacts",
|
|
5897
|
+
"gcontacts_update_contact"
|
|
5639
5898
|
];
|
|
5640
|
-
function
|
|
5899
|
+
function gcontactsIntegration(config = {}) {
|
|
5641
5900
|
const oauth = {
|
|
5642
|
-
provider: "
|
|
5643
|
-
clientId: config.clientId ?? getEnv("
|
|
5644
|
-
clientSecret: config.clientSecret ?? getEnv("
|
|
5901
|
+
provider: "gcontacts",
|
|
5902
|
+
clientId: config.clientId ?? getEnv("GCONTACTS_CLIENT_ID"),
|
|
5903
|
+
clientSecret: config.clientSecret ?? getEnv("GCONTACTS_CLIENT_SECRET"),
|
|
5645
5904
|
scopes: config.scopes,
|
|
5646
5905
|
optionalScopes: config.optionalScopes,
|
|
5647
5906
|
redirectUri: config.redirectUri,
|
|
@@ -5650,84 +5909,473 @@ function outlookIntegration(config = {}) {
|
|
|
5650
5909
|
}
|
|
5651
5910
|
};
|
|
5652
5911
|
return {
|
|
5653
|
-
id: "
|
|
5654
|
-
name: "
|
|
5655
|
-
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/
|
|
5656
|
-
|
|
5912
|
+
id: "gcontacts",
|
|
5913
|
+
name: "Google Contacts",
|
|
5914
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/gcontacts.png",
|
|
5915
|
+
description: "List, search, create, update, and delete Google Contacts via the People API",
|
|
5916
|
+
category: "Communication",
|
|
5917
|
+
tools: [...GCONTACTS_TOOLS],
|
|
5657
5918
|
oauth,
|
|
5658
5919
|
async onInit(_client) {
|
|
5659
|
-
|
|
5920
|
+
logger20.debug("Google Contacts integration initialized");
|
|
5660
5921
|
},
|
|
5661
5922
|
async onAfterConnect(_client) {
|
|
5662
|
-
|
|
5923
|
+
logger20.debug("Google Contacts integration connected");
|
|
5663
5924
|
}
|
|
5664
5925
|
};
|
|
5665
5926
|
}
|
|
5666
|
-
// src/integrations/
|
|
5927
|
+
// src/integrations/gmeet.ts
|
|
5667
5928
|
init_logger();
|
|
5668
|
-
var
|
|
5669
|
-
var
|
|
5670
|
-
"
|
|
5671
|
-
"
|
|
5672
|
-
"
|
|
5673
|
-
"
|
|
5674
|
-
"
|
|
5675
|
-
"
|
|
5676
|
-
"airtable_create_record",
|
|
5677
|
-
"airtable_update_record",
|
|
5678
|
-
"airtable_search_records",
|
|
5679
|
-
"airtable_delete_record",
|
|
5680
|
-
"airtable_create_base",
|
|
5681
|
-
"airtable_create_table",
|
|
5682
|
-
"airtable_update_table",
|
|
5683
|
-
"airtable_create_field",
|
|
5684
|
-
"airtable_update_field",
|
|
5685
|
-
"airtable_list_comments",
|
|
5686
|
-
"airtable_create_comment",
|
|
5687
|
-
"airtable_update_comment",
|
|
5688
|
-
"airtable_delete_comment",
|
|
5689
|
-
"airtable_list_webhooks",
|
|
5690
|
-
"airtable_create_webhook",
|
|
5691
|
-
"airtable_delete_webhook",
|
|
5692
|
-
"airtable_list_webhook_payloads",
|
|
5693
|
-
"airtable_refresh_webhook"
|
|
5929
|
+
var logger21 = createLogger("Google Meet");
|
|
5930
|
+
var GMEET_TOOLS = [
|
|
5931
|
+
"gmeet_add_meet_to_event",
|
|
5932
|
+
"gmeet_create_meeting",
|
|
5933
|
+
"gmeet_delete_meeting",
|
|
5934
|
+
"gmeet_get_meeting",
|
|
5935
|
+
"gmeet_list_meetings",
|
|
5936
|
+
"gmeet_update_meeting"
|
|
5694
5937
|
];
|
|
5695
|
-
function
|
|
5938
|
+
function gmeetIntegration(config = {}) {
|
|
5696
5939
|
const oauth = {
|
|
5697
|
-
provider: "
|
|
5698
|
-
clientId: config.clientId ?? getEnv("
|
|
5699
|
-
clientSecret: config.clientSecret ?? getEnv("
|
|
5940
|
+
provider: "gmeet",
|
|
5941
|
+
clientId: config.clientId ?? getEnv("GMEET_CLIENT_ID"),
|
|
5942
|
+
clientSecret: config.clientSecret ?? getEnv("GMEET_CLIENT_SECRET"),
|
|
5700
5943
|
scopes: config.scopes,
|
|
5701
5944
|
optionalScopes: config.optionalScopes,
|
|
5702
5945
|
redirectUri: config.redirectUri,
|
|
5703
|
-
config: {
|
|
5704
|
-
...config
|
|
5705
|
-
}
|
|
5946
|
+
config: { ...config }
|
|
5706
5947
|
};
|
|
5707
5948
|
return {
|
|
5708
|
-
id: "
|
|
5709
|
-
name: "
|
|
5710
|
-
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/
|
|
5711
|
-
|
|
5949
|
+
id: "gmeet",
|
|
5950
|
+
name: "Google Meet",
|
|
5951
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/google_meet.webp",
|
|
5952
|
+
description: "Create and manage Google Meet links via Calendar conference data",
|
|
5953
|
+
category: "Communication",
|
|
5954
|
+
tools: [...GMEET_TOOLS],
|
|
5712
5955
|
oauth,
|
|
5713
5956
|
async onInit(_client) {
|
|
5714
|
-
|
|
5957
|
+
logger21.debug("Google Meet integration initialized");
|
|
5715
5958
|
},
|
|
5716
5959
|
async onAfterConnect(_client) {
|
|
5717
|
-
|
|
5960
|
+
logger21.debug("Google Meet integration connected");
|
|
5718
5961
|
}
|
|
5719
5962
|
};
|
|
5720
5963
|
}
|
|
5721
|
-
// src/integrations/
|
|
5964
|
+
// src/integrations/gtasks.ts
|
|
5722
5965
|
init_logger();
|
|
5723
|
-
var
|
|
5724
|
-
var
|
|
5725
|
-
"
|
|
5726
|
-
"
|
|
5727
|
-
"
|
|
5728
|
-
"
|
|
5729
|
-
"
|
|
5730
|
-
"
|
|
5966
|
+
var logger22 = createLogger("Google Tasks");
|
|
5967
|
+
var GTASKS_TOOLS = [
|
|
5968
|
+
"gtasks_clear_completed",
|
|
5969
|
+
"gtasks_create_task",
|
|
5970
|
+
"gtasks_create_tasklist",
|
|
5971
|
+
"gtasks_delete_task",
|
|
5972
|
+
"gtasks_delete_tasklist",
|
|
5973
|
+
"gtasks_get_task",
|
|
5974
|
+
"gtasks_get_tasklist",
|
|
5975
|
+
"gtasks_list_tasklists",
|
|
5976
|
+
"gtasks_list_tasks",
|
|
5977
|
+
"gtasks_move_task",
|
|
5978
|
+
"gtasks_update_task",
|
|
5979
|
+
"gtasks_update_tasklist"
|
|
5980
|
+
];
|
|
5981
|
+
function gtasksIntegration(config = {}) {
|
|
5982
|
+
const oauth = {
|
|
5983
|
+
provider: "gtasks",
|
|
5984
|
+
clientId: config.clientId ?? getEnv("GTASKS_CLIENT_ID"),
|
|
5985
|
+
clientSecret: config.clientSecret ?? getEnv("GTASKS_CLIENT_SECRET"),
|
|
5986
|
+
scopes: config.scopes,
|
|
5987
|
+
optionalScopes: config.optionalScopes,
|
|
5988
|
+
redirectUri: config.redirectUri,
|
|
5989
|
+
config: {
|
|
5990
|
+
...config
|
|
5991
|
+
}
|
|
5992
|
+
};
|
|
5993
|
+
return {
|
|
5994
|
+
id: "gtasks",
|
|
5995
|
+
name: "Google Tasks",
|
|
5996
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/google_tasks.webp",
|
|
5997
|
+
description: "Manage Google Tasks lists and to-dos synced with your Google account",
|
|
5998
|
+
category: "Productivity",
|
|
5999
|
+
tools: [...GTASKS_TOOLS],
|
|
6000
|
+
oauth,
|
|
6001
|
+
async onInit(_client) {
|
|
6002
|
+
logger22.debug("Google Tasks integration initialized");
|
|
6003
|
+
},
|
|
6004
|
+
async onAfterConnect(_client) {
|
|
6005
|
+
logger22.debug("Google Tasks integration connected");
|
|
6006
|
+
}
|
|
6007
|
+
};
|
|
6008
|
+
}
|
|
6009
|
+
// src/integrations/outlook.ts
|
|
6010
|
+
init_logger();
|
|
6011
|
+
var logger23 = createLogger("Outlook");
|
|
6012
|
+
var OUTLOOK_TOOLS = [
|
|
6013
|
+
"outlook_accept_event",
|
|
6014
|
+
"outlook_create_draft",
|
|
6015
|
+
"outlook_create_event",
|
|
6016
|
+
"outlook_decline_event",
|
|
6017
|
+
"outlook_delete_event",
|
|
6018
|
+
"outlook_delete_message",
|
|
6019
|
+
"outlook_find_meeting_times",
|
|
6020
|
+
"outlook_forward_message",
|
|
6021
|
+
"outlook_get_contact",
|
|
6022
|
+
"outlook_get_event",
|
|
6023
|
+
"outlook_get_message",
|
|
6024
|
+
"outlook_get_schedule",
|
|
6025
|
+
"outlook_list_calendars",
|
|
6026
|
+
"outlook_list_contacts",
|
|
6027
|
+
"outlook_list_events",
|
|
6028
|
+
"outlook_list_mail_folders",
|
|
6029
|
+
"outlook_list_messages",
|
|
6030
|
+
"outlook_mark_message_read",
|
|
6031
|
+
"outlook_move_message",
|
|
6032
|
+
"outlook_reply_all_message",
|
|
6033
|
+
"outlook_reply_message",
|
|
6034
|
+
"outlook_search_messages",
|
|
6035
|
+
"outlook_send_message",
|
|
6036
|
+
"outlook_tentatively_accept_event",
|
|
6037
|
+
"outlook_update_event"
|
|
6038
|
+
];
|
|
6039
|
+
function outlookIntegration(config = {}) {
|
|
6040
|
+
const oauth = {
|
|
6041
|
+
provider: "outlook",
|
|
6042
|
+
clientId: config.clientId ?? getEnv("OUTLOOK_CLIENT_ID"),
|
|
6043
|
+
clientSecret: config.clientSecret ?? getEnv("OUTLOOK_CLIENT_SECRET"),
|
|
6044
|
+
scopes: config.scopes,
|
|
6045
|
+
optionalScopes: config.optionalScopes,
|
|
6046
|
+
redirectUri: config.redirectUri,
|
|
6047
|
+
config: {
|
|
6048
|
+
...config
|
|
6049
|
+
}
|
|
6050
|
+
};
|
|
6051
|
+
return {
|
|
6052
|
+
id: "outlook",
|
|
6053
|
+
name: "Outlook",
|
|
6054
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/outlook.png",
|
|
6055
|
+
tools: [...OUTLOOK_TOOLS],
|
|
6056
|
+
oauth,
|
|
6057
|
+
async onInit(_client) {
|
|
6058
|
+
logger23.debug("Outlook integration initialized");
|
|
6059
|
+
},
|
|
6060
|
+
async onAfterConnect(_client) {
|
|
6061
|
+
logger23.debug("Outlook integration connected");
|
|
6062
|
+
}
|
|
6063
|
+
};
|
|
6064
|
+
}
|
|
6065
|
+
// src/integrations/teams.ts
|
|
6066
|
+
init_logger();
|
|
6067
|
+
var logger24 = createLogger("Teams");
|
|
6068
|
+
var TEAMS_SCOPES = [
|
|
6069
|
+
"offline_access",
|
|
6070
|
+
"User.Read",
|
|
6071
|
+
"Team.ReadBasic.All",
|
|
6072
|
+
"Channel.ReadBasic.All",
|
|
6073
|
+
"ChannelMessage.Read.All",
|
|
6074
|
+
"ChannelMessage.Send",
|
|
6075
|
+
"Chat.Read",
|
|
6076
|
+
"Chat.ReadWrite"
|
|
6077
|
+
];
|
|
6078
|
+
var TEAMS_TOOLS = [
|
|
6079
|
+
"teams_get_channel",
|
|
6080
|
+
"teams_get_chat",
|
|
6081
|
+
"teams_get_profile",
|
|
6082
|
+
"teams_get_team",
|
|
6083
|
+
"teams_list_channel_messages",
|
|
6084
|
+
"teams_list_channels",
|
|
6085
|
+
"teams_list_chat_messages",
|
|
6086
|
+
"teams_list_chats",
|
|
6087
|
+
"teams_list_teams",
|
|
6088
|
+
"teams_reply_channel_message",
|
|
6089
|
+
"teams_send_channel_message",
|
|
6090
|
+
"teams_send_chat_message"
|
|
6091
|
+
];
|
|
6092
|
+
function teamsIntegration(config = {}) {
|
|
6093
|
+
const oauth = {
|
|
6094
|
+
provider: "teams",
|
|
6095
|
+
clientId: config.clientId ?? getEnv("TEAMS_CLIENT_ID"),
|
|
6096
|
+
clientSecret: config.clientSecret ?? getEnv("TEAMS_CLIENT_SECRET"),
|
|
6097
|
+
scopes: config.scopes ?? [...TEAMS_SCOPES],
|
|
6098
|
+
optionalScopes: config.optionalScopes,
|
|
6099
|
+
redirectUri: config.redirectUri,
|
|
6100
|
+
config: {
|
|
6101
|
+
...config,
|
|
6102
|
+
authorization_endpoint: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
|
|
6103
|
+
token_endpoint: "https://login.microsoftonline.com/common/oauth2/v2.0/token",
|
|
6104
|
+
response_type: "code",
|
|
6105
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
6106
|
+
}
|
|
6107
|
+
};
|
|
6108
|
+
return {
|
|
6109
|
+
id: "teams",
|
|
6110
|
+
name: "Microsoft Teams",
|
|
6111
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/teams.png",
|
|
6112
|
+
description: "Collaborate in Teams channels and chats using Microsoft Graph — teams, channels, messages, and profile.",
|
|
6113
|
+
category: "Communication",
|
|
6114
|
+
tools: [...TEAMS_TOOLS],
|
|
6115
|
+
oauth,
|
|
6116
|
+
async onInit(_client) {
|
|
6117
|
+
logger24.debug("Teams integration initialized");
|
|
6118
|
+
},
|
|
6119
|
+
async onAfterConnect(_client) {
|
|
6120
|
+
logger24.debug("Teams integration connected");
|
|
6121
|
+
}
|
|
6122
|
+
};
|
|
6123
|
+
}
|
|
6124
|
+
// src/integrations/airtable.ts
|
|
6125
|
+
init_logger();
|
|
6126
|
+
var logger25 = createLogger("Airtable");
|
|
6127
|
+
var AIRTABLE_TOOLS = [
|
|
6128
|
+
"airtable_list_bases",
|
|
6129
|
+
"airtable_get_base",
|
|
6130
|
+
"airtable_list_tables",
|
|
6131
|
+
"airtable_get_table",
|
|
6132
|
+
"airtable_list_records",
|
|
6133
|
+
"airtable_get_record",
|
|
6134
|
+
"airtable_create_record",
|
|
6135
|
+
"airtable_update_record",
|
|
6136
|
+
"airtable_search_records",
|
|
6137
|
+
"airtable_delete_record",
|
|
6138
|
+
"airtable_create_base",
|
|
6139
|
+
"airtable_create_table",
|
|
6140
|
+
"airtable_update_table",
|
|
6141
|
+
"airtable_create_field",
|
|
6142
|
+
"airtable_update_field",
|
|
6143
|
+
"airtable_list_comments",
|
|
6144
|
+
"airtable_create_comment",
|
|
6145
|
+
"airtable_update_comment",
|
|
6146
|
+
"airtable_delete_comment",
|
|
6147
|
+
"airtable_list_webhooks",
|
|
6148
|
+
"airtable_create_webhook",
|
|
6149
|
+
"airtable_delete_webhook",
|
|
6150
|
+
"airtable_list_webhook_payloads",
|
|
6151
|
+
"airtable_refresh_webhook"
|
|
6152
|
+
];
|
|
6153
|
+
function airtableIntegration(config = {}) {
|
|
6154
|
+
const oauth = {
|
|
6155
|
+
provider: "airtable",
|
|
6156
|
+
clientId: config.clientId ?? getEnv("AIRTABLE_CLIENT_ID"),
|
|
6157
|
+
clientSecret: config.clientSecret ?? getEnv("AIRTABLE_CLIENT_SECRET"),
|
|
6158
|
+
scopes: config.scopes,
|
|
6159
|
+
optionalScopes: config.optionalScopes,
|
|
6160
|
+
redirectUri: config.redirectUri,
|
|
6161
|
+
config: {
|
|
6162
|
+
...config
|
|
6163
|
+
}
|
|
6164
|
+
};
|
|
6165
|
+
return {
|
|
6166
|
+
id: "airtable",
|
|
6167
|
+
name: "Airtable",
|
|
6168
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/airtable.jpeg",
|
|
6169
|
+
tools: [...AIRTABLE_TOOLS],
|
|
6170
|
+
oauth,
|
|
6171
|
+
async onInit(_client) {
|
|
6172
|
+
logger25.debug("Airtable integration initialized");
|
|
6173
|
+
},
|
|
6174
|
+
async onAfterConnect(_client) {
|
|
6175
|
+
logger25.debug("Airtable integration connected");
|
|
6176
|
+
}
|
|
6177
|
+
};
|
|
6178
|
+
}
|
|
6179
|
+
// src/integrations/auth0.ts
|
|
6180
|
+
init_logger();
|
|
6181
|
+
var logger26 = createLogger("Auth0");
|
|
6182
|
+
var AUTH0_TOOLS = [
|
|
6183
|
+
"auth0_list_users",
|
|
6184
|
+
"auth0_get_user",
|
|
6185
|
+
"auth0_create_user",
|
|
6186
|
+
"auth0_patch_user",
|
|
6187
|
+
"auth0_delete_user",
|
|
6188
|
+
"auth0_list_connections",
|
|
6189
|
+
"auth0_get_connection",
|
|
6190
|
+
"auth0_list_clients",
|
|
6191
|
+
"auth0_get_client",
|
|
6192
|
+
"auth0_create_client",
|
|
6193
|
+
"auth0_patch_client"
|
|
6194
|
+
];
|
|
6195
|
+
function normalizeAuth0Domain(raw) {
|
|
6196
|
+
let s = raw.trim();
|
|
6197
|
+
s = s.replace(/^https?:\/\//i, "");
|
|
6198
|
+
const slash = s.indexOf("/");
|
|
6199
|
+
if (slash >= 0)
|
|
6200
|
+
s = s.slice(0, slash);
|
|
6201
|
+
return s.replace(/\/$/, "");
|
|
6202
|
+
}
|
|
6203
|
+
async function fetchClientCredentialsToken(params) {
|
|
6204
|
+
const tokenUrl = `https://${params.domain}/oauth/token`;
|
|
6205
|
+
const body = new URLSearchParams({
|
|
6206
|
+
grant_type: "client_credentials",
|
|
6207
|
+
client_id: params.clientId,
|
|
6208
|
+
client_secret: params.clientSecret,
|
|
6209
|
+
audience: params.audience
|
|
6210
|
+
});
|
|
6211
|
+
const res = await fetch(tokenUrl, {
|
|
6212
|
+
method: "POST",
|
|
6213
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
6214
|
+
body
|
|
6215
|
+
});
|
|
6216
|
+
const text = await res.text();
|
|
6217
|
+
if (!res.ok) {
|
|
6218
|
+
throw new Error(`Auth0 token request failed (${res.status}): ${text}`);
|
|
6219
|
+
}
|
|
6220
|
+
const data = JSON.parse(text);
|
|
6221
|
+
if (!data.access_token) {
|
|
6222
|
+
throw new Error("Auth0 token response missing access_token");
|
|
6223
|
+
}
|
|
6224
|
+
return data;
|
|
6225
|
+
}
|
|
6226
|
+
function auth0Integration(options) {
|
|
6227
|
+
const domain = normalizeAuth0Domain(options.domain);
|
|
6228
|
+
if (!domain) {
|
|
6229
|
+
throw new Error("auth0Integration requires domain (tenant host)");
|
|
6230
|
+
}
|
|
6231
|
+
const clientId = options.clientId ?? getEnv("AUTH0_CLIENT_ID");
|
|
6232
|
+
const clientSecret = options.clientSecret ?? getEnv("AUTH0_CLIENT_SECRET");
|
|
6233
|
+
const initialToken = options.accessToken ?? getEnv("AUTH0_ACCESS_TOKEN") ?? "";
|
|
6234
|
+
if (!initialToken && (!clientId || !clientSecret)) {
|
|
6235
|
+
throw new Error("auth0Integration requires accessToken (or AUTH0_ACCESS_TOKEN) or both clientId/clientSecret (or AUTH0_CLIENT_ID / AUTH0_CLIENT_SECRET)");
|
|
6236
|
+
}
|
|
6237
|
+
let accessToken = initialToken;
|
|
6238
|
+
let tokenExpiresAtMs = 0;
|
|
6239
|
+
async function ensureFreshToken() {
|
|
6240
|
+
if (!clientId || !clientSecret)
|
|
6241
|
+
return;
|
|
6242
|
+
if (accessToken && Date.now() < tokenExpiresAtMs - 60000)
|
|
6243
|
+
return;
|
|
6244
|
+
const audience = options.audience?.trim() || `https://${domain}/api/v2/`;
|
|
6245
|
+
const tok = await fetchClientCredentialsToken({
|
|
6246
|
+
domain,
|
|
6247
|
+
clientId,
|
|
6248
|
+
clientSecret,
|
|
6249
|
+
audience
|
|
6250
|
+
});
|
|
6251
|
+
accessToken = tok.access_token;
|
|
6252
|
+
const sec = typeof tok.expires_in === "number" && tok.expires_in > 0 ? tok.expires_in : 86400;
|
|
6253
|
+
tokenExpiresAtMs = Date.now() + sec * 1000;
|
|
6254
|
+
}
|
|
6255
|
+
return {
|
|
6256
|
+
id: "auth0",
|
|
6257
|
+
name: "Auth0",
|
|
6258
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/auth0.png",
|
|
6259
|
+
description: "Manage Auth0 users, connections, and applications via the Management API",
|
|
6260
|
+
category: "Engineering",
|
|
6261
|
+
tools: [...AUTH0_TOOLS],
|
|
6262
|
+
authType: "apiKey",
|
|
6263
|
+
getHeaders() {
|
|
6264
|
+
return {
|
|
6265
|
+
Authorization: `Bearer ${accessToken}`,
|
|
6266
|
+
"X-Auth0-Domain": domain
|
|
6267
|
+
};
|
|
6268
|
+
},
|
|
6269
|
+
async onInit() {
|
|
6270
|
+
logger26.debug("Auth0 integration initialized");
|
|
6271
|
+
},
|
|
6272
|
+
async onBeforeConnect() {
|
|
6273
|
+
await ensureFreshToken();
|
|
6274
|
+
if (!accessToken) {
|
|
6275
|
+
throw new Error("Auth0 access token is not configured");
|
|
6276
|
+
}
|
|
6277
|
+
},
|
|
6278
|
+
async onAfterConnect() {
|
|
6279
|
+
logger26.debug("Auth0 integration connected");
|
|
6280
|
+
}
|
|
6281
|
+
};
|
|
6282
|
+
}
|
|
6283
|
+
// src/integrations/astronomer.ts
|
|
6284
|
+
init_logger();
|
|
6285
|
+
var logger27 = createLogger("Astronomer");
|
|
6286
|
+
var ASTRONOMER_TOOLS = [
|
|
6287
|
+
"astronomer_get_self",
|
|
6288
|
+
"astronomer_list_organizations",
|
|
6289
|
+
"astronomer_get_organization",
|
|
6290
|
+
"astronomer_list_workspaces",
|
|
6291
|
+
"astronomer_get_workspace",
|
|
6292
|
+
"astronomer_list_clusters",
|
|
6293
|
+
"astronomer_get_cluster",
|
|
6294
|
+
"astronomer_list_deployments",
|
|
6295
|
+
"astronomer_get_deployment",
|
|
6296
|
+
"astronomer_create_deployment",
|
|
6297
|
+
"astronomer_update_deployment",
|
|
6298
|
+
"astronomer_list_deploys",
|
|
6299
|
+
"astronomer_get_deploy"
|
|
6300
|
+
];
|
|
6301
|
+
function astronomerIntegration(options = {}) {
|
|
6302
|
+
const apiToken = options.apiToken ?? getEnv("ASTRO_API_TOKEN") ?? getEnv("ASTRONOMER_API_TOKEN");
|
|
6303
|
+
if (!apiToken) {
|
|
6304
|
+
throw new Error("astronomerIntegration requires apiToken or ASTRO_API_TOKEN / ASTRONOMER_API_TOKEN environment variable");
|
|
6305
|
+
}
|
|
6306
|
+
return {
|
|
6307
|
+
id: "astronomer",
|
|
6308
|
+
name: "Astronomer",
|
|
6309
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/astronomer.png",
|
|
6310
|
+
description: "Manage Astro organizations, workspaces, deployments, clusters, and deploy history via the Astro API v1",
|
|
6311
|
+
category: "Infrastructure",
|
|
6312
|
+
tools: [...ASTRONOMER_TOOLS],
|
|
6313
|
+
authType: "apiKey",
|
|
6314
|
+
getHeaders() {
|
|
6315
|
+
return {
|
|
6316
|
+
Authorization: `Bearer ${apiToken}`
|
|
6317
|
+
};
|
|
6318
|
+
},
|
|
6319
|
+
async onInit(_client) {
|
|
6320
|
+
logger27.debug("Astronomer integration initialized");
|
|
6321
|
+
},
|
|
6322
|
+
async onAfterConnect(_client) {
|
|
6323
|
+
logger27.debug("Astronomer integration connected");
|
|
6324
|
+
}
|
|
6325
|
+
};
|
|
6326
|
+
}
|
|
6327
|
+
// src/integrations/betterstack.ts
|
|
6328
|
+
init_logger();
|
|
6329
|
+
var logger28 = createLogger("BetterStack");
|
|
6330
|
+
var BETTERSTACK_TOOLS = [
|
|
6331
|
+
"betterstack_list_sources",
|
|
6332
|
+
"betterstack_get_source",
|
|
6333
|
+
"betterstack_create_source",
|
|
6334
|
+
"betterstack_update_source",
|
|
6335
|
+
"betterstack_delete_source",
|
|
6336
|
+
"betterstack_list_source_groups",
|
|
6337
|
+
"betterstack_get_source_group",
|
|
6338
|
+
"betterstack_update_source_group",
|
|
6339
|
+
"betterstack_list_collectors",
|
|
6340
|
+
"betterstack_list_source_metrics",
|
|
6341
|
+
"betterstack_ingest_logs"
|
|
6342
|
+
];
|
|
6343
|
+
function betterstackIntegration(options = {}) {
|
|
6344
|
+
const apiKey = options.apiKey ?? getEnv("BETTERSTACK_API_KEY");
|
|
6345
|
+
if (!apiKey) {
|
|
6346
|
+
throw new Error("betterstackIntegration requires apiKey or BETTERSTACK_API_KEY environment variable");
|
|
6347
|
+
}
|
|
6348
|
+
return {
|
|
6349
|
+
id: "betterstack",
|
|
6350
|
+
name: "Better Stack",
|
|
6351
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/betterstack.png",
|
|
6352
|
+
description: "Ingest and manage log sources, collectors, and metrics with Better Stack Logs (Logtail) Telemetry API",
|
|
6353
|
+
category: "Infrastructure",
|
|
6354
|
+
tools: [...BETTERSTACK_TOOLS],
|
|
6355
|
+
authType: "apiKey",
|
|
6356
|
+
getHeaders() {
|
|
6357
|
+
return {
|
|
6358
|
+
Authorization: `Bearer ${apiKey}`
|
|
6359
|
+
};
|
|
6360
|
+
},
|
|
6361
|
+
async onInit(_client) {
|
|
6362
|
+
logger28.debug("Better Stack integration initialized");
|
|
6363
|
+
},
|
|
6364
|
+
async onAfterConnect(_client) {
|
|
6365
|
+
logger28.debug("Better Stack integration connected");
|
|
6366
|
+
}
|
|
6367
|
+
};
|
|
6368
|
+
}
|
|
6369
|
+
// src/integrations/todoist.ts
|
|
6370
|
+
init_logger();
|
|
6371
|
+
var logger29 = createLogger("Todoist");
|
|
6372
|
+
var TODOIST_TOOLS = [
|
|
6373
|
+
"todoist_list_projects",
|
|
6374
|
+
"todoist_get_project",
|
|
6375
|
+
"todoist_create_project",
|
|
6376
|
+
"todoist_update_project",
|
|
6377
|
+
"todoist_delete_project",
|
|
6378
|
+
"todoist_archive_project",
|
|
5731
6379
|
"todoist_list_tasks",
|
|
5732
6380
|
"todoist_get_task",
|
|
5733
6381
|
"todoist_create_task",
|
|
@@ -5775,16 +6423,16 @@ function todoistIntegration(config = {}) {
|
|
|
5775
6423
|
tools: [...TODOIST_TOOLS],
|
|
5776
6424
|
oauth,
|
|
5777
6425
|
async onInit(_client) {
|
|
5778
|
-
|
|
6426
|
+
logger29.debug("Todoist integration initialized");
|
|
5779
6427
|
},
|
|
5780
6428
|
async onAfterConnect(_client) {
|
|
5781
|
-
|
|
6429
|
+
logger29.debug("Todoist integration connected");
|
|
5782
6430
|
}
|
|
5783
6431
|
};
|
|
5784
6432
|
}
|
|
5785
6433
|
// src/integrations/whatsapp.ts
|
|
5786
6434
|
init_logger();
|
|
5787
|
-
var
|
|
6435
|
+
var logger30 = createLogger("WhatsApp");
|
|
5788
6436
|
var WHATSAPP_TOOLS = [
|
|
5789
6437
|
"whatsapp_send_message",
|
|
5790
6438
|
"whatsapp_reply_message",
|
|
@@ -5808,7 +6456,10 @@ var WHATSAPP_TOOLS = [
|
|
|
5808
6456
|
"whatsapp_update_profile",
|
|
5809
6457
|
"whatsapp_get_message_status",
|
|
5810
6458
|
"whatsapp_create_qr_code",
|
|
5811
|
-
"
|
|
6459
|
+
"whatsapp_update_qr_code",
|
|
6460
|
+
"whatsapp_list_qr_codes",
|
|
6461
|
+
"whatsapp_get_qr_code",
|
|
6462
|
+
"whatsapp_delete_qr_code"
|
|
5812
6463
|
];
|
|
5813
6464
|
function whatsappIntegration(config = {}) {
|
|
5814
6465
|
const oauth = {
|
|
@@ -5830,16 +6481,16 @@ function whatsappIntegration(config = {}) {
|
|
|
5830
6481
|
tools: [...WHATSAPP_TOOLS],
|
|
5831
6482
|
oauth,
|
|
5832
6483
|
async onInit(_client) {
|
|
5833
|
-
|
|
6484
|
+
logger30.debug("WhatsApp Business integration initialized");
|
|
5834
6485
|
},
|
|
5835
6486
|
async onAfterConnect(_client) {
|
|
5836
|
-
|
|
6487
|
+
logger30.debug("WhatsApp Business integration connected");
|
|
5837
6488
|
}
|
|
5838
6489
|
};
|
|
5839
6490
|
}
|
|
5840
6491
|
// src/integrations/calcom.ts
|
|
5841
6492
|
init_logger();
|
|
5842
|
-
var
|
|
6493
|
+
var logger31 = createLogger("Cal.com");
|
|
5843
6494
|
var CALCOM_TOOLS = [
|
|
5844
6495
|
"calcom_list_bookings",
|
|
5845
6496
|
"calcom_get_booking",
|
|
@@ -5915,16 +6566,16 @@ function calcomIntegration(config = {}) {
|
|
|
5915
6566
|
tools: [...CALCOM_TOOLS],
|
|
5916
6567
|
oauth,
|
|
5917
6568
|
async onInit(_client) {
|
|
5918
|
-
|
|
6569
|
+
logger31.debug("Cal.com integration initialized");
|
|
5919
6570
|
},
|
|
5920
6571
|
async onAfterConnect(_client) {
|
|
5921
|
-
|
|
6572
|
+
logger31.debug("Cal.com integration connected");
|
|
5922
6573
|
}
|
|
5923
6574
|
};
|
|
5924
6575
|
}
|
|
5925
6576
|
// src/integrations/ramp.ts
|
|
5926
6577
|
init_logger();
|
|
5927
|
-
var
|
|
6578
|
+
var logger32 = createLogger("Ramp");
|
|
5928
6579
|
var RAMP_TOOLS = [
|
|
5929
6580
|
"ramp_list_transactions",
|
|
5930
6581
|
"ramp_get_transaction",
|
|
@@ -5956,24 +6607,27 @@ function rampIntegration(config = {}) {
|
|
|
5956
6607
|
tools: [...RAMP_TOOLS],
|
|
5957
6608
|
oauth,
|
|
5958
6609
|
async onInit(_client) {
|
|
5959
|
-
|
|
6610
|
+
logger32.debug("Ramp integration initialized");
|
|
5960
6611
|
},
|
|
5961
6612
|
async onAfterConnect(_client) {
|
|
5962
|
-
|
|
6613
|
+
logger32.debug("Ramp integration connected");
|
|
5963
6614
|
}
|
|
5964
6615
|
};
|
|
5965
6616
|
}
|
|
5966
6617
|
// src/integrations/onedrive.ts
|
|
5967
6618
|
init_logger();
|
|
5968
|
-
var
|
|
6619
|
+
var logger33 = createLogger("OneDrive");
|
|
5969
6620
|
var ONEDRIVE_TOOLS = [
|
|
5970
|
-
"
|
|
5971
|
-
"onedrive_get_file",
|
|
5972
|
-
"onedrive_download_file",
|
|
5973
|
-
"onedrive_upload_file",
|
|
6621
|
+
"onedrive_create_folder",
|
|
5974
6622
|
"onedrive_delete_file",
|
|
6623
|
+
"onedrive_download_file",
|
|
6624
|
+
"onedrive_get_file",
|
|
6625
|
+
"onedrive_list_files",
|
|
6626
|
+
"onedrive_list_permissions",
|
|
6627
|
+
"onedrive_remove_permission",
|
|
5975
6628
|
"onedrive_search_files",
|
|
5976
|
-
"onedrive_share_file"
|
|
6629
|
+
"onedrive_share_file",
|
|
6630
|
+
"onedrive_upload_file"
|
|
5977
6631
|
];
|
|
5978
6632
|
function onedriveIntegration(config = {}) {
|
|
5979
6633
|
const oauth = {
|
|
@@ -5994,16 +6648,96 @@ function onedriveIntegration(config = {}) {
|
|
|
5994
6648
|
tools: [...ONEDRIVE_TOOLS],
|
|
5995
6649
|
oauth,
|
|
5996
6650
|
async onInit(_client) {
|
|
5997
|
-
|
|
6651
|
+
logger33.debug("OneDrive integration initialized");
|
|
6652
|
+
},
|
|
6653
|
+
async onAfterConnect(_client) {
|
|
6654
|
+
logger33.debug("OneDrive integration connected");
|
|
6655
|
+
}
|
|
6656
|
+
};
|
|
6657
|
+
}
|
|
6658
|
+
// src/integrations/planner.ts
|
|
6659
|
+
var PLANNER_TOOLS = [
|
|
6660
|
+
"planner_create_bucket",
|
|
6661
|
+
"planner_create_plan",
|
|
6662
|
+
"planner_create_task",
|
|
6663
|
+
"planner_delete_task",
|
|
6664
|
+
"planner_get_plan",
|
|
6665
|
+
"planner_get_task",
|
|
6666
|
+
"planner_get_task_details",
|
|
6667
|
+
"planner_list_buckets",
|
|
6668
|
+
"planner_list_group_plans",
|
|
6669
|
+
"planner_list_my_plans",
|
|
6670
|
+
"planner_list_my_tasks",
|
|
6671
|
+
"planner_list_plan_tasks",
|
|
6672
|
+
"planner_update_task"
|
|
6673
|
+
];
|
|
6674
|
+
function plannerIntegration(config = {}) {
|
|
6675
|
+
const oauth = {
|
|
6676
|
+
provider: "planner",
|
|
6677
|
+
clientId: config.clientId ?? getEnv("PLANNER_CLIENT_ID"),
|
|
6678
|
+
clientSecret: config.clientSecret ?? getEnv("PLANNER_CLIENT_SECRET"),
|
|
6679
|
+
scopes: config.scopes ?? ["Tasks.ReadWrite", "Group.Read.All", "offline_access"],
|
|
6680
|
+
optionalScopes: config.optionalScopes,
|
|
6681
|
+
redirectUri: config.redirectUri
|
|
6682
|
+
};
|
|
6683
|
+
return {
|
|
6684
|
+
id: "planner",
|
|
6685
|
+
name: "Microsoft Planner",
|
|
6686
|
+
tools: [...PLANNER_TOOLS],
|
|
6687
|
+
oauth
|
|
6688
|
+
};
|
|
6689
|
+
}
|
|
6690
|
+
// src/integrations/sharepoint.ts
|
|
6691
|
+
init_logger();
|
|
6692
|
+
var logger34 = createLogger("SharePoint");
|
|
6693
|
+
var SHAREPOINT_SCOPES = ["Sites.ReadWrite.All", "Files.ReadWrite.All", "offline_access"];
|
|
6694
|
+
var SHAREPOINT_TOOLS = [
|
|
6695
|
+
"sharepoint_create_folder",
|
|
6696
|
+
"sharepoint_delete_item",
|
|
6697
|
+
"sharepoint_get_item",
|
|
6698
|
+
"sharepoint_get_site",
|
|
6699
|
+
"sharepoint_list_drives",
|
|
6700
|
+
"sharepoint_list_items",
|
|
6701
|
+
"sharepoint_search_files",
|
|
6702
|
+
"sharepoint_search_sites",
|
|
6703
|
+
"sharepoint_share_item",
|
|
6704
|
+
"sharepoint_update_item",
|
|
6705
|
+
"sharepoint_upload_file"
|
|
6706
|
+
];
|
|
6707
|
+
function sharepointIntegration(config = {}) {
|
|
6708
|
+
const oauth = {
|
|
6709
|
+
provider: "sharepoint",
|
|
6710
|
+
clientId: config.clientId ?? getEnv("SHAREPOINT_CLIENT_ID"),
|
|
6711
|
+
clientSecret: config.clientSecret ?? getEnv("SHAREPOINT_CLIENT_SECRET"),
|
|
6712
|
+
scopes: config.scopes ?? [...SHAREPOINT_SCOPES],
|
|
6713
|
+
optionalScopes: config.optionalScopes,
|
|
6714
|
+
redirectUri: config.redirectUri,
|
|
6715
|
+
config: {
|
|
6716
|
+
authorization_endpoint: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
|
|
6717
|
+
token_endpoint: "https://login.microsoftonline.com/common/oauth2/v2.0/token",
|
|
6718
|
+
response_type: "code",
|
|
6719
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
6720
|
+
}
|
|
6721
|
+
};
|
|
6722
|
+
return {
|
|
6723
|
+
id: "sharepoint",
|
|
6724
|
+
name: "SharePoint",
|
|
6725
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/sharepoint.png",
|
|
6726
|
+
description: "Search SharePoint sites and manage drives, files, folders, and sharing links",
|
|
6727
|
+
category: "Productivity",
|
|
6728
|
+
tools: [...SHAREPOINT_TOOLS],
|
|
6729
|
+
oauth,
|
|
6730
|
+
async onInit(_client) {
|
|
6731
|
+
logger34.debug("SharePoint integration initialized");
|
|
5998
6732
|
},
|
|
5999
6733
|
async onAfterConnect(_client) {
|
|
6000
|
-
|
|
6734
|
+
logger34.debug("SharePoint integration connected");
|
|
6001
6735
|
}
|
|
6002
6736
|
};
|
|
6003
6737
|
}
|
|
6004
6738
|
// src/integrations/dropbox.ts
|
|
6005
6739
|
init_logger();
|
|
6006
|
-
var
|
|
6740
|
+
var logger35 = createLogger("Dropbox");
|
|
6007
6741
|
var DROPBOX_TOOLS = [
|
|
6008
6742
|
"dropbox_get_current_account",
|
|
6009
6743
|
"dropbox_get_space_usage",
|
|
@@ -6045,34 +6779,90 @@ function dropboxIntegration(options = {}) {
|
|
|
6045
6779
|
authType: "oauth",
|
|
6046
6780
|
oauth,
|
|
6047
6781
|
async onInit(_client) {
|
|
6048
|
-
|
|
6782
|
+
logger35.debug("Dropbox integration initialized");
|
|
6049
6783
|
},
|
|
6050
6784
|
async onAfterConnect(_client) {
|
|
6051
|
-
|
|
6785
|
+
logger35.debug("Dropbox integration connected");
|
|
6052
6786
|
}
|
|
6053
6787
|
};
|
|
6054
6788
|
}
|
|
6055
|
-
// src/integrations/
|
|
6789
|
+
// src/integrations/paper.ts
|
|
6056
6790
|
init_logger();
|
|
6057
|
-
var
|
|
6058
|
-
var
|
|
6059
|
-
"
|
|
6060
|
-
"
|
|
6061
|
-
"
|
|
6062
|
-
"
|
|
6063
|
-
"word_delete",
|
|
6064
|
-
"word_share"
|
|
6791
|
+
var logger36 = createLogger("Paper");
|
|
6792
|
+
var PAPER_SCOPES = [
|
|
6793
|
+
"account_info.read",
|
|
6794
|
+
"files.metadata.read",
|
|
6795
|
+
"files.content.read",
|
|
6796
|
+
"files.content.write"
|
|
6065
6797
|
];
|
|
6066
|
-
|
|
6798
|
+
var PAPER_TOOLS = [
|
|
6799
|
+
"paper_create_doc",
|
|
6800
|
+
"paper_update_doc",
|
|
6801
|
+
"paper_export_doc"
|
|
6802
|
+
];
|
|
6803
|
+
function resolveClientId(config) {
|
|
6804
|
+
return config.clientId ?? getEnv("PAPER_CLIENT_ID") ?? getEnv("DROPBOX_CLIENT_ID");
|
|
6805
|
+
}
|
|
6806
|
+
function resolveClientSecret(config) {
|
|
6807
|
+
return config.clientSecret ?? getEnv("PAPER_CLIENT_SECRET") ?? getEnv("DROPBOX_CLIENT_SECRET");
|
|
6808
|
+
}
|
|
6809
|
+
function paperIntegration(config = {}) {
|
|
6810
|
+
if (config.scopes !== undefined && (!Array.isArray(config.scopes) || config.scopes.some((scope) => typeof scope !== "string"))) {
|
|
6811
|
+
throw new Error("paperIntegration scopes must be an array of strings");
|
|
6812
|
+
}
|
|
6067
6813
|
const oauth = {
|
|
6068
|
-
provider: "
|
|
6069
|
-
clientId: config
|
|
6070
|
-
clientSecret: config
|
|
6071
|
-
scopes: config.scopes,
|
|
6814
|
+
provider: "paper",
|
|
6815
|
+
clientId: resolveClientId(config),
|
|
6816
|
+
clientSecret: resolveClientSecret(config),
|
|
6817
|
+
scopes: config.scopes ?? [...PAPER_SCOPES],
|
|
6072
6818
|
optionalScopes: config.optionalScopes,
|
|
6073
6819
|
redirectUri: config.redirectUri,
|
|
6074
|
-
config
|
|
6075
|
-
|
|
6820
|
+
config: {
|
|
6821
|
+
authorization_endpoint: "https://www.dropbox.com/oauth2/authorize",
|
|
6822
|
+
token_endpoint: "https://api.dropboxapi.com/oauth2/token",
|
|
6823
|
+
response_type: "code",
|
|
6824
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
6825
|
+
}
|
|
6826
|
+
};
|
|
6827
|
+
return {
|
|
6828
|
+
id: "paper",
|
|
6829
|
+
name: "Dropbox Paper",
|
|
6830
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/paper.png",
|
|
6831
|
+
description: "Create, update, and export Dropbox Paper documents",
|
|
6832
|
+
category: "Productivity",
|
|
6833
|
+
tools: [...PAPER_TOOLS],
|
|
6834
|
+
authType: "oauth",
|
|
6835
|
+
oauth,
|
|
6836
|
+
async onInit(_client) {
|
|
6837
|
+
logger36.debug("Paper integration initialized");
|
|
6838
|
+
},
|
|
6839
|
+
async onAfterConnect(_client) {
|
|
6840
|
+
logger36.debug("Paper integration connected");
|
|
6841
|
+
}
|
|
6842
|
+
};
|
|
6843
|
+
}
|
|
6844
|
+
// src/integrations/word.ts
|
|
6845
|
+
init_logger();
|
|
6846
|
+
var logger37 = createLogger("Word");
|
|
6847
|
+
var WORD_TOOLS = [
|
|
6848
|
+
"word_copy",
|
|
6849
|
+
"word_create",
|
|
6850
|
+
"word_delete",
|
|
6851
|
+
"word_get",
|
|
6852
|
+
"word_list",
|
|
6853
|
+
"word_share",
|
|
6854
|
+
"word_update_content"
|
|
6855
|
+
];
|
|
6856
|
+
function wordIntegration(config = {}) {
|
|
6857
|
+
const oauth = {
|
|
6858
|
+
provider: "word",
|
|
6859
|
+
clientId: config.clientId ?? getEnv("WORD_CLIENT_ID"),
|
|
6860
|
+
clientSecret: config.clientSecret ?? getEnv("WORD_CLIENT_SECRET"),
|
|
6861
|
+
scopes: config.scopes,
|
|
6862
|
+
optionalScopes: config.optionalScopes,
|
|
6863
|
+
redirectUri: config.redirectUri,
|
|
6864
|
+
config
|
|
6865
|
+
};
|
|
6076
6866
|
return {
|
|
6077
6867
|
id: "word",
|
|
6078
6868
|
name: "Word",
|
|
@@ -6080,33 +6870,33 @@ function wordIntegration(config = {}) {
|
|
|
6080
6870
|
tools: [...WORD_TOOLS],
|
|
6081
6871
|
oauth,
|
|
6082
6872
|
async onInit(_client) {
|
|
6083
|
-
|
|
6873
|
+
logger37.debug("Word integration initialized");
|
|
6084
6874
|
},
|
|
6085
6875
|
async onAfterConnect(_client) {
|
|
6086
|
-
|
|
6876
|
+
logger37.debug("Word integration connected");
|
|
6087
6877
|
}
|
|
6088
6878
|
};
|
|
6089
6879
|
}
|
|
6090
6880
|
// src/integrations/excel.ts
|
|
6091
6881
|
init_logger();
|
|
6092
|
-
var
|
|
6882
|
+
var logger38 = createLogger("Excel");
|
|
6093
6883
|
var EXCEL_TOOLS = [
|
|
6094
|
-
"
|
|
6095
|
-
"
|
|
6884
|
+
"excel_add_table_rows",
|
|
6885
|
+
"excel_add_worksheet",
|
|
6886
|
+
"excel_clear_range",
|
|
6096
6887
|
"excel_create",
|
|
6888
|
+
"excel_create_table",
|
|
6097
6889
|
"excel_delete",
|
|
6098
|
-
"excel_share",
|
|
6099
|
-
"excel_list_worksheets",
|
|
6100
|
-
"excel_add_worksheet",
|
|
6101
6890
|
"excel_delete_worksheet",
|
|
6891
|
+
"excel_get",
|
|
6102
6892
|
"excel_get_range",
|
|
6103
|
-
"
|
|
6104
|
-
"excel_clear_range",
|
|
6893
|
+
"excel_get_table_rows",
|
|
6105
6894
|
"excel_get_used_range",
|
|
6895
|
+
"excel_list",
|
|
6106
6896
|
"excel_list_tables",
|
|
6107
|
-
"
|
|
6108
|
-
"
|
|
6109
|
-
"
|
|
6897
|
+
"excel_list_worksheets",
|
|
6898
|
+
"excel_share",
|
|
6899
|
+
"excel_update_range"
|
|
6110
6900
|
];
|
|
6111
6901
|
function excelIntegration(config = {}) {
|
|
6112
6902
|
const oauth = {
|
|
@@ -6125,23 +6915,24 @@ function excelIntegration(config = {}) {
|
|
|
6125
6915
|
tools: [...EXCEL_TOOLS],
|
|
6126
6916
|
oauth,
|
|
6127
6917
|
async onInit(_client) {
|
|
6128
|
-
|
|
6918
|
+
logger38.debug("Excel integration initialized");
|
|
6129
6919
|
},
|
|
6130
6920
|
async onAfterConnect(_client) {
|
|
6131
|
-
|
|
6921
|
+
logger38.debug("Excel integration connected");
|
|
6132
6922
|
}
|
|
6133
6923
|
};
|
|
6134
6924
|
}
|
|
6135
6925
|
// src/integrations/powerpoint.ts
|
|
6136
6926
|
init_logger();
|
|
6137
|
-
var
|
|
6927
|
+
var logger39 = createLogger("PowerPoint");
|
|
6138
6928
|
var POWERPOINT_TOOLS = [
|
|
6139
|
-
"powerpoint_list",
|
|
6140
|
-
"powerpoint_get",
|
|
6141
|
-
"powerpoint_create",
|
|
6142
6929
|
"powerpoint_copy",
|
|
6930
|
+
"powerpoint_create",
|
|
6143
6931
|
"powerpoint_delete",
|
|
6144
|
-
"
|
|
6932
|
+
"powerpoint_get",
|
|
6933
|
+
"powerpoint_list",
|
|
6934
|
+
"powerpoint_share",
|
|
6935
|
+
"powerpoint_update_content"
|
|
6145
6936
|
];
|
|
6146
6937
|
function powerpointIntegration(config = {}) {
|
|
6147
6938
|
const oauth = {
|
|
@@ -6160,21 +6951,26 @@ function powerpointIntegration(config = {}) {
|
|
|
6160
6951
|
tools: [...POWERPOINT_TOOLS],
|
|
6161
6952
|
oauth,
|
|
6162
6953
|
async onInit(_client) {
|
|
6163
|
-
|
|
6954
|
+
logger39.debug("PowerPoint integration initialized");
|
|
6164
6955
|
},
|
|
6165
6956
|
async onAfterConnect(_client) {
|
|
6166
|
-
|
|
6957
|
+
logger39.debug("PowerPoint integration connected");
|
|
6167
6958
|
}
|
|
6168
6959
|
};
|
|
6169
6960
|
}
|
|
6170
6961
|
// src/integrations/gdocs.ts
|
|
6171
6962
|
init_logger();
|
|
6172
|
-
var
|
|
6963
|
+
var logger40 = createLogger("Google Docs");
|
|
6173
6964
|
var GDOCS_TOOLS = [
|
|
6174
|
-
"gdocs_list",
|
|
6175
|
-
"gdocs_get",
|
|
6176
|
-
"gdocs_create",
|
|
6177
6965
|
"gdocs_append_text",
|
|
6966
|
+
"gdocs_batch_update",
|
|
6967
|
+
"gdocs_create",
|
|
6968
|
+
"gdocs_create_comment",
|
|
6969
|
+
"gdocs_delete",
|
|
6970
|
+
"gdocs_delete_comment",
|
|
6971
|
+
"gdocs_get",
|
|
6972
|
+
"gdocs_list",
|
|
6973
|
+
"gdocs_list_comments",
|
|
6178
6974
|
"gdocs_replace_text"
|
|
6179
6975
|
];
|
|
6180
6976
|
function gdocsIntegration(config = {}) {
|
|
@@ -6194,31 +6990,31 @@ function gdocsIntegration(config = {}) {
|
|
|
6194
6990
|
tools: [...GDOCS_TOOLS],
|
|
6195
6991
|
oauth,
|
|
6196
6992
|
async onInit(_client) {
|
|
6197
|
-
|
|
6993
|
+
logger40.debug("Google Docs integration initialized");
|
|
6198
6994
|
},
|
|
6199
6995
|
async onAfterConnect(_client) {
|
|
6200
|
-
|
|
6996
|
+
logger40.debug("Google Docs integration connected");
|
|
6201
6997
|
}
|
|
6202
6998
|
};
|
|
6203
6999
|
}
|
|
6204
7000
|
// src/integrations/gdrive.ts
|
|
6205
7001
|
init_logger();
|
|
6206
|
-
var
|
|
7002
|
+
var logger41 = createLogger("Google Drive");
|
|
6207
7003
|
var GDRIVE_TOOLS = [
|
|
6208
|
-
"gdrive_list_files",
|
|
6209
|
-
"gdrive_get_file",
|
|
6210
|
-
"gdrive_create_folder",
|
|
6211
|
-
"gdrive_rename_file",
|
|
6212
|
-
"gdrive_move_file",
|
|
6213
7004
|
"gdrive_copy_file",
|
|
7005
|
+
"gdrive_create_folder",
|
|
6214
7006
|
"gdrive_delete_file",
|
|
6215
|
-
"gdrive_trash_file",
|
|
6216
|
-
"gdrive_upload_text_file",
|
|
6217
7007
|
"gdrive_download_file",
|
|
7008
|
+
"gdrive_get_about",
|
|
7009
|
+
"gdrive_get_file",
|
|
7010
|
+
"gdrive_list_files",
|
|
6218
7011
|
"gdrive_list_permissions",
|
|
6219
|
-
"
|
|
7012
|
+
"gdrive_move_file",
|
|
6220
7013
|
"gdrive_remove_permission",
|
|
6221
|
-
"
|
|
7014
|
+
"gdrive_rename_file",
|
|
7015
|
+
"gdrive_share_file",
|
|
7016
|
+
"gdrive_trash_file",
|
|
7017
|
+
"gdrive_upload_text_file"
|
|
6222
7018
|
];
|
|
6223
7019
|
function gdriveIntegration(config = {}) {
|
|
6224
7020
|
const oauth = {
|
|
@@ -6237,25 +7033,27 @@ function gdriveIntegration(config = {}) {
|
|
|
6237
7033
|
tools: [...GDRIVE_TOOLS],
|
|
6238
7034
|
oauth,
|
|
6239
7035
|
async onInit(_client) {
|
|
6240
|
-
|
|
7036
|
+
logger41.debug("Google Drive integration initialized");
|
|
6241
7037
|
},
|
|
6242
7038
|
async onAfterConnect(_client) {
|
|
6243
|
-
|
|
7039
|
+
logger41.debug("Google Drive integration connected");
|
|
6244
7040
|
}
|
|
6245
7041
|
};
|
|
6246
7042
|
}
|
|
6247
7043
|
// src/integrations/gsheets.ts
|
|
6248
7044
|
init_logger();
|
|
6249
|
-
var
|
|
7045
|
+
var logger42 = createLogger("Google Sheets");
|
|
6250
7046
|
var GSHEETS_TOOLS = [
|
|
6251
|
-
"gsheets_list",
|
|
6252
|
-
"gsheets_get",
|
|
6253
|
-
"gsheets_get_values",
|
|
6254
|
-
"gsheets_update_values",
|
|
6255
|
-
"gsheets_create",
|
|
6256
7047
|
"gsheets_append_values",
|
|
7048
|
+
"gsheets_batch_update",
|
|
7049
|
+
"gsheets_batch_update_values",
|
|
6257
7050
|
"gsheets_clear_values",
|
|
6258
|
-
"
|
|
7051
|
+
"gsheets_create",
|
|
7052
|
+
"gsheets_delete",
|
|
7053
|
+
"gsheets_get",
|
|
7054
|
+
"gsheets_get_values",
|
|
7055
|
+
"gsheets_list",
|
|
7056
|
+
"gsheets_update_values"
|
|
6259
7057
|
];
|
|
6260
7058
|
function gsheetsIntegration(config = {}) {
|
|
6261
7059
|
const oauth = {
|
|
@@ -6274,23 +7072,25 @@ function gsheetsIntegration(config = {}) {
|
|
|
6274
7072
|
tools: [...GSHEETS_TOOLS],
|
|
6275
7073
|
oauth,
|
|
6276
7074
|
async onInit(_client) {
|
|
6277
|
-
|
|
7075
|
+
logger42.debug("Google Sheets integration initialized");
|
|
6278
7076
|
},
|
|
6279
7077
|
async onAfterConnect(_client) {
|
|
6280
|
-
|
|
7078
|
+
logger42.debug("Google Sheets integration connected");
|
|
6281
7079
|
}
|
|
6282
7080
|
};
|
|
6283
7081
|
}
|
|
6284
7082
|
// src/integrations/gslides.ts
|
|
6285
7083
|
init_logger();
|
|
6286
|
-
var
|
|
7084
|
+
var logger43 = createLogger("Google Slides");
|
|
6287
7085
|
var GSLIDES_TOOLS = [
|
|
6288
|
-
"gslides_list",
|
|
6289
|
-
"gslides_get",
|
|
6290
|
-
"gslides_get_page",
|
|
6291
|
-
"gslides_create",
|
|
6292
7086
|
"gslides_add_slide",
|
|
7087
|
+
"gslides_batch_update",
|
|
7088
|
+
"gslides_create",
|
|
7089
|
+
"gslides_delete",
|
|
6293
7090
|
"gslides_delete_slide",
|
|
7091
|
+
"gslides_get",
|
|
7092
|
+
"gslides_get_page",
|
|
7093
|
+
"gslides_list",
|
|
6294
7094
|
"gslides_update_text"
|
|
6295
7095
|
];
|
|
6296
7096
|
function gslidesIntegration(config = {}) {
|
|
@@ -6310,16 +7110,16 @@ function gslidesIntegration(config = {}) {
|
|
|
6310
7110
|
tools: [...GSLIDES_TOOLS],
|
|
6311
7111
|
oauth,
|
|
6312
7112
|
async onInit(_client) {
|
|
6313
|
-
|
|
7113
|
+
logger43.debug("Google Slides integration initialized");
|
|
6314
7114
|
},
|
|
6315
7115
|
async onAfterConnect(_client) {
|
|
6316
|
-
|
|
7116
|
+
logger43.debug("Google Slides integration connected");
|
|
6317
7117
|
}
|
|
6318
7118
|
};
|
|
6319
7119
|
}
|
|
6320
7120
|
// src/integrations/polar.ts
|
|
6321
7121
|
init_logger();
|
|
6322
|
-
var
|
|
7122
|
+
var logger44 = createLogger("Polar");
|
|
6323
7123
|
var POLAR_TOOLS = [
|
|
6324
7124
|
"polar_list_products",
|
|
6325
7125
|
"polar_get_product",
|
|
@@ -6376,16 +7176,47 @@ function polarIntegration(config = {}) {
|
|
|
6376
7176
|
tools: [...POLAR_TOOLS],
|
|
6377
7177
|
oauth,
|
|
6378
7178
|
async onInit(_client) {
|
|
6379
|
-
|
|
7179
|
+
logger44.debug("Polar integration initialized");
|
|
7180
|
+
},
|
|
7181
|
+
async onAfterConnect(_client) {
|
|
7182
|
+
logger44.debug("Polar integration connected");
|
|
7183
|
+
}
|
|
7184
|
+
};
|
|
7185
|
+
}
|
|
7186
|
+
// src/integrations/phantom.ts
|
|
7187
|
+
init_logger();
|
|
7188
|
+
var logger45 = createLogger("Phantom");
|
|
7189
|
+
var PHANTOM_TOOLS = [
|
|
7190
|
+
"phantom_build_browse_deeplink",
|
|
7191
|
+
"phantom_deeplink_provider_reference"
|
|
7192
|
+
];
|
|
7193
|
+
function buildPhantomBrowseDeeplink(params) {
|
|
7194
|
+
const target = new URL(params.url);
|
|
7195
|
+
const ref = new URL(params.ref);
|
|
7196
|
+
if (target.protocol !== "https:" || ref.protocol !== "https:") {
|
|
7197
|
+
throw new Error("Phantom browse deeplinks require https url and ref values");
|
|
7198
|
+
}
|
|
7199
|
+
return `https://phantom.app/ul/browse/${encodeURIComponent(target.toString())}?ref=${encodeURIComponent(ref.toString())}`;
|
|
7200
|
+
}
|
|
7201
|
+
function phantomIntegration(_options = {}) {
|
|
7202
|
+
return {
|
|
7203
|
+
id: "phantom",
|
|
7204
|
+
name: "Phantom",
|
|
7205
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/phantom.png",
|
|
7206
|
+
description: "Build Phantom mobile universal links and expose provider deeplink reference data",
|
|
7207
|
+
category: "Other",
|
|
7208
|
+
tools: [...PHANTOM_TOOLS],
|
|
7209
|
+
async onInit(_client) {
|
|
7210
|
+
logger45.debug("Phantom integration initialized");
|
|
6380
7211
|
},
|
|
6381
7212
|
async onAfterConnect(_client) {
|
|
6382
|
-
|
|
7213
|
+
logger45.debug("Phantom integration connected");
|
|
6383
7214
|
}
|
|
6384
7215
|
};
|
|
6385
7216
|
}
|
|
6386
7217
|
// src/integrations/figma.ts
|
|
6387
7218
|
init_logger();
|
|
6388
|
-
var
|
|
7219
|
+
var logger46 = createLogger("Figma");
|
|
6389
7220
|
var FIGMA_TOOLS = [
|
|
6390
7221
|
"figma_get_file",
|
|
6391
7222
|
"figma_get_file_nodes",
|
|
@@ -6451,16 +7282,16 @@ function figmaIntegration(config = {}) {
|
|
|
6451
7282
|
tools: [...FIGMA_TOOLS],
|
|
6452
7283
|
oauth,
|
|
6453
7284
|
async onInit(_client) {
|
|
6454
|
-
|
|
7285
|
+
logger46.debug("Figma integration initialized");
|
|
6455
7286
|
},
|
|
6456
7287
|
async onAfterConnect(_client) {
|
|
6457
|
-
|
|
7288
|
+
logger46.debug("Figma integration connected");
|
|
6458
7289
|
}
|
|
6459
7290
|
};
|
|
6460
7291
|
}
|
|
6461
7292
|
// src/integrations/intercom.ts
|
|
6462
7293
|
init_logger();
|
|
6463
|
-
var
|
|
7294
|
+
var logger47 = createLogger("Intercom");
|
|
6464
7295
|
var INTERCOM_TOOLS = [
|
|
6465
7296
|
"intercom_list_contacts",
|
|
6466
7297
|
"intercom_get_contact",
|
|
@@ -6491,16 +7322,16 @@ function intercomIntegration(config = {}) {
|
|
|
6491
7322
|
tools: [...INTERCOM_TOOLS],
|
|
6492
7323
|
oauth,
|
|
6493
7324
|
async onInit(_client) {
|
|
6494
|
-
|
|
7325
|
+
logger47.debug("Intercom integration initialized");
|
|
6495
7326
|
},
|
|
6496
7327
|
async onAfterConnect(_client) {
|
|
6497
|
-
|
|
7328
|
+
logger47.debug("Intercom integration connected");
|
|
6498
7329
|
}
|
|
6499
7330
|
};
|
|
6500
7331
|
}
|
|
6501
7332
|
// src/integrations/hubspot.ts
|
|
6502
7333
|
init_logger();
|
|
6503
|
-
var
|
|
7334
|
+
var logger48 = createLogger("HubSpot");
|
|
6504
7335
|
var HUBSPOT_TOOLS = [
|
|
6505
7336
|
"hubspot_list_contacts",
|
|
6506
7337
|
"hubspot_get_contact",
|
|
@@ -6550,40 +7381,40 @@ function hubspotIntegration(config = {}) {
|
|
|
6550
7381
|
tools: [...HUBSPOT_TOOLS],
|
|
6551
7382
|
oauth,
|
|
6552
7383
|
async onInit(_client) {
|
|
6553
|
-
|
|
7384
|
+
logger48.debug("HubSpot integration initialized");
|
|
6554
7385
|
},
|
|
6555
7386
|
async onAfterConnect(_client) {
|
|
6556
|
-
|
|
7387
|
+
logger48.debug("HubSpot integration connected");
|
|
6557
7388
|
}
|
|
6558
7389
|
};
|
|
6559
7390
|
}
|
|
6560
7391
|
// src/integrations/youtube.ts
|
|
6561
7392
|
init_logger();
|
|
6562
|
-
var
|
|
7393
|
+
var logger49 = createLogger("YouTube");
|
|
6563
7394
|
var YOUTUBE_TOOLS = [
|
|
6564
|
-
"
|
|
6565
|
-
"
|
|
6566
|
-
"
|
|
7395
|
+
"youtube_add_comment",
|
|
7396
|
+
"youtube_add_to_playlist",
|
|
7397
|
+
"youtube_create_playlist",
|
|
7398
|
+
"youtube_delete_playlist",
|
|
7399
|
+
"youtube_get_captions",
|
|
6567
7400
|
"youtube_get_channel",
|
|
6568
|
-
"
|
|
6569
|
-
"youtube_get_video_rating",
|
|
6570
|
-
"youtube_list_playlists",
|
|
7401
|
+
"youtube_get_my_channel",
|
|
6571
7402
|
"youtube_get_playlist",
|
|
7403
|
+
"youtube_get_video",
|
|
7404
|
+
"youtube_get_video_rating",
|
|
7405
|
+
"youtube_list_comment_replies",
|
|
7406
|
+
"youtube_list_comments",
|
|
7407
|
+
"youtube_list_my_videos",
|
|
6572
7408
|
"youtube_list_playlist_items",
|
|
7409
|
+
"youtube_list_playlists",
|
|
6573
7410
|
"youtube_list_subscriptions",
|
|
6574
|
-
"youtube_list_comments",
|
|
6575
|
-
"youtube_list_comment_replies",
|
|
6576
|
-
"youtube_get_captions",
|
|
6577
7411
|
"youtube_rate_video",
|
|
7412
|
+
"youtube_remove_from_playlist",
|
|
7413
|
+
"youtube_reply_to_comment",
|
|
7414
|
+
"youtube_search",
|
|
6578
7415
|
"youtube_subscribe",
|
|
6579
7416
|
"youtube_unsubscribe",
|
|
6580
|
-
"youtube_add_comment",
|
|
6581
|
-
"youtube_reply_to_comment",
|
|
6582
|
-
"youtube_create_playlist",
|
|
6583
7417
|
"youtube_update_playlist",
|
|
6584
|
-
"youtube_delete_playlist",
|
|
6585
|
-
"youtube_add_to_playlist",
|
|
6586
|
-
"youtube_remove_from_playlist",
|
|
6587
7418
|
"youtube_update_video"
|
|
6588
7419
|
];
|
|
6589
7420
|
function youtubeIntegration(config = {}) {
|
|
@@ -6605,16 +7436,80 @@ function youtubeIntegration(config = {}) {
|
|
|
6605
7436
|
tools: [...YOUTUBE_TOOLS],
|
|
6606
7437
|
oauth,
|
|
6607
7438
|
async onInit(_client) {
|
|
6608
|
-
|
|
7439
|
+
logger49.debug("YouTube integration initialized");
|
|
7440
|
+
},
|
|
7441
|
+
async onAfterConnect(_client) {
|
|
7442
|
+
logger49.debug("YouTube integration connected");
|
|
7443
|
+
}
|
|
7444
|
+
};
|
|
7445
|
+
}
|
|
7446
|
+
// src/integrations/zoom.ts
|
|
7447
|
+
init_logger();
|
|
7448
|
+
var logger50 = createLogger("Zoom");
|
|
7449
|
+
var ZOOM_TOOLS = [
|
|
7450
|
+
"zoom_get_user",
|
|
7451
|
+
"zoom_list_meetings",
|
|
7452
|
+
"zoom_create_meeting",
|
|
7453
|
+
"zoom_get_meeting",
|
|
7454
|
+
"zoom_update_meeting",
|
|
7455
|
+
"zoom_delete_meeting"
|
|
7456
|
+
];
|
|
7457
|
+
function zoomIntegration(config = {}) {
|
|
7458
|
+
const oauth = {
|
|
7459
|
+
provider: "zoom",
|
|
7460
|
+
clientId: config.clientId ?? getEnv("ZOOM_CLIENT_ID"),
|
|
7461
|
+
clientSecret: config.clientSecret ?? getEnv("ZOOM_CLIENT_SECRET"),
|
|
7462
|
+
scopes: config.scopes,
|
|
7463
|
+
optionalScopes: config.optionalScopes,
|
|
7464
|
+
redirectUri: config.redirectUri,
|
|
7465
|
+
config: { ...config }
|
|
7466
|
+
};
|
|
7467
|
+
return {
|
|
7468
|
+
id: "zoom",
|
|
7469
|
+
name: "Zoom",
|
|
7470
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/zoom.png",
|
|
7471
|
+
tools: [...ZOOM_TOOLS],
|
|
7472
|
+
oauth,
|
|
7473
|
+
async onInit(_client) {
|
|
7474
|
+
logger50.debug("Zoom integration initialized");
|
|
6609
7475
|
},
|
|
6610
7476
|
async onAfterConnect(_client) {
|
|
6611
|
-
|
|
7477
|
+
logger50.debug("Zoom integration connected");
|
|
6612
7478
|
}
|
|
6613
7479
|
};
|
|
6614
7480
|
}
|
|
7481
|
+
// src/integrations/reddit.ts
|
|
7482
|
+
var REDDIT_TOOLS = [
|
|
7483
|
+
"reddit_get_me",
|
|
7484
|
+
"reddit_get_subreddit_about",
|
|
7485
|
+
"reddit_list_subreddit_posts",
|
|
7486
|
+
"reddit_get_post_thread",
|
|
7487
|
+
"reddit_search",
|
|
7488
|
+
"reddit_submit_post",
|
|
7489
|
+
"reddit_comment",
|
|
7490
|
+
"reddit_vote",
|
|
7491
|
+
"reddit_list_my_subreddits",
|
|
7492
|
+
"reddit_list_popular_subreddits"
|
|
7493
|
+
];
|
|
7494
|
+
function redditIntegration(config = {}) {
|
|
7495
|
+
const oauth = {
|
|
7496
|
+
provider: "reddit",
|
|
7497
|
+
clientId: config.clientId ?? getEnv("REDDIT_CLIENT_ID"),
|
|
7498
|
+
clientSecret: config.clientSecret ?? getEnv("REDDIT_CLIENT_SECRET"),
|
|
7499
|
+
scopes: config.scopes ?? ["identity", "read", "submit", "vote", "mysubreddits"],
|
|
7500
|
+
optionalScopes: config.optionalScopes,
|
|
7501
|
+
redirectUri: config.redirectUri
|
|
7502
|
+
};
|
|
7503
|
+
return {
|
|
7504
|
+
id: "reddit",
|
|
7505
|
+
name: "Reddit",
|
|
7506
|
+
tools: [...REDDIT_TOOLS],
|
|
7507
|
+
oauth
|
|
7508
|
+
};
|
|
7509
|
+
}
|
|
6615
7510
|
// src/integrations/cursor.ts
|
|
6616
7511
|
init_logger();
|
|
6617
|
-
var
|
|
7512
|
+
var logger51 = createLogger("Cursor");
|
|
6618
7513
|
var CURSOR_TOOLS = [
|
|
6619
7514
|
"cursor_list_agents",
|
|
6620
7515
|
"cursor_get_agent",
|
|
@@ -6634,16 +7529,72 @@ function cursorIntegration(_config = {}) {
|
|
|
6634
7529
|
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/cursor.jpeg",
|
|
6635
7530
|
tools: [...CURSOR_TOOLS],
|
|
6636
7531
|
async onInit(_client) {
|
|
6637
|
-
|
|
7532
|
+
logger51.debug("Cursor integration initialized");
|
|
7533
|
+
},
|
|
7534
|
+
async onAfterConnect(_client) {
|
|
7535
|
+
logger51.debug("Cursor integration connected");
|
|
7536
|
+
}
|
|
7537
|
+
};
|
|
7538
|
+
}
|
|
7539
|
+
// src/integrations/databricks.ts
|
|
7540
|
+
init_logger();
|
|
7541
|
+
var logger52 = createLogger("Databricks");
|
|
7542
|
+
var DATABRICKS_SCOPES = ["all-apis", "offline_access"];
|
|
7543
|
+
var DATABRICKS_TOOLS = [
|
|
7544
|
+
"databricks_current_user",
|
|
7545
|
+
"databricks_clusters_list",
|
|
7546
|
+
"databricks_clusters_get",
|
|
7547
|
+
"databricks_jobs_list",
|
|
7548
|
+
"databricks_jobs_get",
|
|
7549
|
+
"databricks_jobs_run_now",
|
|
7550
|
+
"databricks_sql_warehouses_list",
|
|
7551
|
+
"databricks_workspace_get_status"
|
|
7552
|
+
];
|
|
7553
|
+
function normalizeDatabricksWorkspaceHost(raw) {
|
|
7554
|
+
const value = (raw ?? "").trim().replace(/\/+$/, "");
|
|
7555
|
+
if (!value) {
|
|
7556
|
+
return "";
|
|
7557
|
+
}
|
|
7558
|
+
return /^https?:\/\//i.test(value) ? value : `https://${value}`;
|
|
7559
|
+
}
|
|
7560
|
+
function databricksIntegration(config = {}) {
|
|
7561
|
+
const host = normalizeDatabricksWorkspaceHost(config.workspaceHost ?? getEnv("DATABRICKS_WORKSPACE_HOST"));
|
|
7562
|
+
const placeholder = "https://workspace-host.invalid";
|
|
7563
|
+
const base = host || placeholder;
|
|
7564
|
+
const oauth = {
|
|
7565
|
+
provider: "databricks",
|
|
7566
|
+
clientId: config.clientId ?? getEnv("DATABRICKS_CLIENT_ID"),
|
|
7567
|
+
clientSecret: config.clientSecret ?? getEnv("DATABRICKS_CLIENT_SECRET"),
|
|
7568
|
+
scopes: config.scopes ?? [...DATABRICKS_SCOPES],
|
|
7569
|
+
redirectUri: config.redirectUri,
|
|
7570
|
+
config: {
|
|
7571
|
+
subdomain: host || undefined,
|
|
7572
|
+
authorization_endpoint: `${base}/oidc/v1/authorize`,
|
|
7573
|
+
token_endpoint: `${base}/oidc/v1/token`,
|
|
7574
|
+
response_type: "code",
|
|
7575
|
+
grant_types_supported: ["authorization_code", "refresh_token"],
|
|
7576
|
+
code_challenge_method: "S256"
|
|
7577
|
+
}
|
|
7578
|
+
};
|
|
7579
|
+
return {
|
|
7580
|
+
id: "databricks",
|
|
7581
|
+
name: "Databricks",
|
|
7582
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/databricks.png",
|
|
7583
|
+
description: "Run Databricks jobs, list clusters and SQL warehouses, and inspect workspace paths",
|
|
7584
|
+
category: "Engineering",
|
|
7585
|
+
tools: [...DATABRICKS_TOOLS],
|
|
7586
|
+
oauth,
|
|
7587
|
+
async onInit(_client) {
|
|
7588
|
+
logger52.debug("Databricks integration initialized");
|
|
6638
7589
|
},
|
|
6639
7590
|
async onAfterConnect(_client) {
|
|
6640
|
-
|
|
7591
|
+
logger52.debug("Databricks integration connected");
|
|
6641
7592
|
}
|
|
6642
7593
|
};
|
|
6643
7594
|
}
|
|
6644
7595
|
// src/integrations/posthog.ts
|
|
6645
7596
|
init_logger();
|
|
6646
|
-
var
|
|
7597
|
+
var logger53 = createLogger("PostHog");
|
|
6647
7598
|
var DEFAULT_POSTHOG_BASE_URL = "https://us.posthog.com";
|
|
6648
7599
|
var POSTHOG_SCOPES = [
|
|
6649
7600
|
"openid",
|
|
@@ -6729,98 +7680,1376 @@ function posthogIntegration(config = {}) {
|
|
|
6729
7680
|
tools: [...POSTHOG_TOOLS],
|
|
6730
7681
|
oauth,
|
|
6731
7682
|
async onInit(_client) {
|
|
6732
|
-
|
|
7683
|
+
logger53.debug("PostHog integration initialized");
|
|
6733
7684
|
},
|
|
6734
7685
|
async onAfterConnect(_client) {
|
|
6735
|
-
|
|
7686
|
+
logger53.debug("PostHog integration connected");
|
|
6736
7687
|
}
|
|
6737
7688
|
};
|
|
6738
7689
|
}
|
|
6739
|
-
// src/integrations/
|
|
6740
|
-
|
|
6741
|
-
|
|
6742
|
-
|
|
6743
|
-
"
|
|
7690
|
+
// src/integrations/postman.ts
|
|
7691
|
+
init_logger();
|
|
7692
|
+
var logger54 = createLogger("Postman");
|
|
7693
|
+
var POSTMAN_TOOLS = [
|
|
7694
|
+
"postman_get_me",
|
|
7695
|
+
"postman_list_workspaces",
|
|
7696
|
+
"postman_get_workspace",
|
|
7697
|
+
"postman_list_collections",
|
|
7698
|
+
"postman_get_collection",
|
|
7699
|
+
"postman_delete_collection",
|
|
7700
|
+
"postman_list_environments",
|
|
7701
|
+
"postman_get_environment",
|
|
7702
|
+
"postman_create_collection"
|
|
6744
7703
|
];
|
|
6745
|
-
function
|
|
6746
|
-
|
|
6747
|
-
|
|
7704
|
+
function postmanIntegration(options = {}) {
|
|
7705
|
+
const apiKey = options.apiKey ?? getEnv("POSTMAN_API_KEY");
|
|
7706
|
+
if (!apiKey) {
|
|
7707
|
+
throw new Error("postmanIntegration requires apiKey or POSTMAN_API_KEY environment variable");
|
|
6748
7708
|
}
|
|
6749
7709
|
return {
|
|
6750
|
-
id: "
|
|
6751
|
-
name: "
|
|
6752
|
-
|
|
7710
|
+
id: "postman",
|
|
7711
|
+
name: "Postman",
|
|
7712
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/postman.png",
|
|
7713
|
+
description: "Manage Postman workspaces, collections, and environments via the Postman API",
|
|
7714
|
+
category: "Engineering",
|
|
7715
|
+
tools: [...POSTMAN_TOOLS],
|
|
6753
7716
|
authType: "apiKey",
|
|
6754
7717
|
getHeaders() {
|
|
6755
7718
|
return {
|
|
6756
|
-
Authorization: `Bearer ${
|
|
7719
|
+
Authorization: `Bearer ${apiKey}`
|
|
6757
7720
|
};
|
|
7721
|
+
},
|
|
7722
|
+
async onInit(_client) {
|
|
7723
|
+
logger54.debug("Postman integration initialized");
|
|
7724
|
+
},
|
|
7725
|
+
async onAfterConnect(_client) {
|
|
7726
|
+
logger54.debug("Postman integration connected");
|
|
6758
7727
|
}
|
|
6759
7728
|
};
|
|
6760
7729
|
}
|
|
6761
|
-
// src/integrations/
|
|
6762
|
-
|
|
6763
|
-
|
|
6764
|
-
|
|
6765
|
-
"
|
|
6766
|
-
"
|
|
6767
|
-
"
|
|
6768
|
-
"
|
|
6769
|
-
"
|
|
6770
|
-
"
|
|
6771
|
-
"
|
|
6772
|
-
|
|
6773
|
-
|
|
6774
|
-
"
|
|
6775
|
-
"
|
|
6776
|
-
"
|
|
6777
|
-
"
|
|
6778
|
-
"
|
|
6779
|
-
"
|
|
6780
|
-
"
|
|
6781
|
-
"
|
|
6782
|
-
"
|
|
6783
|
-
"
|
|
6784
|
-
"
|
|
6785
|
-
"
|
|
6786
|
-
"
|
|
6787
|
-
"
|
|
6788
|
-
|
|
6789
|
-
|
|
6790
|
-
|
|
6791
|
-
|
|
6792
|
-
|
|
6793
|
-
|
|
6794
|
-
|
|
6795
|
-
|
|
6796
|
-
|
|
6797
|
-
|
|
6798
|
-
|
|
6799
|
-
|
|
6800
|
-
|
|
6801
|
-
|
|
6802
|
-
|
|
6803
|
-
|
|
6804
|
-
|
|
6805
|
-
|
|
6806
|
-
|
|
6807
|
-
|
|
6808
|
-
|
|
6809
|
-
|
|
6810
|
-
|
|
6811
|
-
|
|
6812
|
-
|
|
6813
|
-
|
|
6814
|
-
|
|
6815
|
-
|
|
6816
|
-
|
|
6817
|
-
|
|
6818
|
-
|
|
6819
|
-
|
|
6820
|
-
|
|
6821
|
-
|
|
6822
|
-
|
|
6823
|
-
|
|
7730
|
+
// src/integrations/sentry.ts
|
|
7731
|
+
init_logger();
|
|
7732
|
+
var logger55 = createLogger("Sentry");
|
|
7733
|
+
var SENTRY_SCOPES = [
|
|
7734
|
+
"org:read",
|
|
7735
|
+
"project:read",
|
|
7736
|
+
"team:read",
|
|
7737
|
+
"member:read",
|
|
7738
|
+
"event:read",
|
|
7739
|
+
"event:write",
|
|
7740
|
+
"project:releases"
|
|
7741
|
+
];
|
|
7742
|
+
var SENTRY_TOOLS = [
|
|
7743
|
+
"sentry_get_organization",
|
|
7744
|
+
"sentry_list_org_projects",
|
|
7745
|
+
"sentry_list_org_members",
|
|
7746
|
+
"sentry_get_project",
|
|
7747
|
+
"sentry_list_issues",
|
|
7748
|
+
"sentry_get_issue",
|
|
7749
|
+
"sentry_update_issue",
|
|
7750
|
+
"sentry_list_issue_events",
|
|
7751
|
+
"sentry_list_project_events",
|
|
7752
|
+
"sentry_list_releases",
|
|
7753
|
+
"sentry_get_release",
|
|
7754
|
+
"sentry_create_release",
|
|
7755
|
+
"sentry_list_release_commits",
|
|
7756
|
+
"sentry_resolve_short_id"
|
|
7757
|
+
];
|
|
7758
|
+
function sentryIntegration(config = {}) {
|
|
7759
|
+
const oauth = {
|
|
7760
|
+
provider: "sentry",
|
|
7761
|
+
clientId: config.clientId ?? getEnv("SENTRY_CLIENT_ID"),
|
|
7762
|
+
clientSecret: config.clientSecret ?? getEnv("SENTRY_CLIENT_SECRET"),
|
|
7763
|
+
scopes: config.scopes ?? [...SENTRY_SCOPES],
|
|
7764
|
+
redirectUri: config.redirectUri,
|
|
7765
|
+
config: {
|
|
7766
|
+
authorization_endpoint: "https://sentry.io/oauth/authorize/",
|
|
7767
|
+
token_endpoint: "https://sentry.io/oauth/token/",
|
|
7768
|
+
response_type: "code",
|
|
7769
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
7770
|
+
}
|
|
7771
|
+
};
|
|
7772
|
+
return {
|
|
7773
|
+
id: "sentry",
|
|
7774
|
+
name: "Sentry",
|
|
7775
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/sentry.png",
|
|
7776
|
+
description: "Monitor Sentry errors, issues, releases, and projects",
|
|
7777
|
+
category: "Engineering",
|
|
7778
|
+
tools: [...SENTRY_TOOLS],
|
|
7779
|
+
oauth,
|
|
7780
|
+
async onInit(_client) {
|
|
7781
|
+
logger55.debug("Sentry integration initialized");
|
|
7782
|
+
},
|
|
7783
|
+
async onAfterConnect(_client) {
|
|
7784
|
+
logger55.debug("Sentry integration connected");
|
|
7785
|
+
}
|
|
7786
|
+
};
|
|
7787
|
+
}
|
|
7788
|
+
// src/integrations/supabase.ts
|
|
7789
|
+
init_logger();
|
|
7790
|
+
var logger56 = createLogger("Supabase");
|
|
7791
|
+
var SUPABASE_API_BASE = "https://api.supabase.com";
|
|
7792
|
+
var SUPABASE_TOOLS = [
|
|
7793
|
+
"supabase_get_profile",
|
|
7794
|
+
"supabase_list_organizations",
|
|
7795
|
+
"supabase_get_organization",
|
|
7796
|
+
"supabase_list_organization_projects",
|
|
7797
|
+
"supabase_list_projects",
|
|
7798
|
+
"supabase_get_project",
|
|
7799
|
+
"supabase_create_project",
|
|
7800
|
+
"supabase_update_project",
|
|
7801
|
+
"supabase_delete_project",
|
|
7802
|
+
"supabase_list_project_api_keys",
|
|
7803
|
+
"supabase_create_project_api_key",
|
|
7804
|
+
"supabase_delete_project_api_key",
|
|
7805
|
+
"supabase_list_project_secrets",
|
|
7806
|
+
"supabase_list_project_branches",
|
|
7807
|
+
"supabase_get_project_health",
|
|
7808
|
+
"supabase_get_database_postgres_config",
|
|
7809
|
+
"supabase_list_available_regions"
|
|
7810
|
+
];
|
|
7811
|
+
function supabaseIntegration(config = {}) {
|
|
7812
|
+
const pat = config.accessToken ?? getEnv("SUPABASE_ACCESS_TOKEN");
|
|
7813
|
+
if (pat) {
|
|
7814
|
+
return {
|
|
7815
|
+
id: "supabase",
|
|
7816
|
+
name: "Supabase",
|
|
7817
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/supabase.png",
|
|
7818
|
+
description: "Manage Supabase organizations, projects, Postgres settings, API keys, secrets, and branches via the Management API",
|
|
7819
|
+
category: "Infrastructure",
|
|
7820
|
+
tools: [...SUPABASE_TOOLS],
|
|
7821
|
+
authType: "apiKey",
|
|
7822
|
+
getHeaders() {
|
|
7823
|
+
return {
|
|
7824
|
+
Authorization: `Bearer ${pat}`
|
|
7825
|
+
};
|
|
7826
|
+
},
|
|
7827
|
+
async onInit(_client) {
|
|
7828
|
+
logger56.debug("Supabase integration initialized (personal access token)");
|
|
7829
|
+
},
|
|
7830
|
+
async onAfterConnect(_client) {
|
|
7831
|
+
logger56.debug("Supabase integration connected");
|
|
7832
|
+
}
|
|
7833
|
+
};
|
|
7834
|
+
}
|
|
7835
|
+
const oauth = {
|
|
7836
|
+
provider: "supabase",
|
|
7837
|
+
clientId: config.clientId ?? getEnv("SUPABASE_CLIENT_ID"),
|
|
7838
|
+
clientSecret: config.clientSecret ?? getEnv("SUPABASE_CLIENT_SECRET"),
|
|
7839
|
+
scopes: config.scopes ?? [],
|
|
7840
|
+
optionalScopes: config.optionalScopes,
|
|
7841
|
+
redirectUri: config.redirectUri,
|
|
7842
|
+
config: {
|
|
7843
|
+
apiBaseUrl: SUPABASE_API_BASE,
|
|
7844
|
+
authorization_endpoint: `${SUPABASE_API_BASE}/v1/oauth/authorize`,
|
|
7845
|
+
token_endpoint: `${SUPABASE_API_BASE}/v1/oauth/token`,
|
|
7846
|
+
token_auth_method: "client_secret_basic",
|
|
7847
|
+
response_type: "code",
|
|
7848
|
+
grant_types_supported: ["authorization_code", "refresh_token"],
|
|
7849
|
+
code_challenge_method: "S256"
|
|
7850
|
+
}
|
|
7851
|
+
};
|
|
7852
|
+
return {
|
|
7853
|
+
id: "supabase",
|
|
7854
|
+
name: "Supabase",
|
|
7855
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/supabase.png",
|
|
7856
|
+
description: "Manage Supabase organizations, projects, Postgres settings, API keys, secrets, and branches via the Management API",
|
|
7857
|
+
category: "Infrastructure",
|
|
7858
|
+
tools: [...SUPABASE_TOOLS],
|
|
7859
|
+
oauth,
|
|
7860
|
+
async onInit(_client) {
|
|
7861
|
+
logger56.debug("Supabase integration initialized");
|
|
7862
|
+
},
|
|
7863
|
+
async onAfterConnect(_client) {
|
|
7864
|
+
logger56.debug("Supabase integration connected");
|
|
7865
|
+
}
|
|
7866
|
+
};
|
|
7867
|
+
}
|
|
7868
|
+
// src/integrations/netlify.ts
|
|
7869
|
+
init_logger();
|
|
7870
|
+
var logger57 = createLogger("Netlify");
|
|
7871
|
+
var NETLIFY_TOOLS = [
|
|
7872
|
+
"netlify_get_current_user",
|
|
7873
|
+
"netlify_list_accounts",
|
|
7874
|
+
"netlify_get_account",
|
|
7875
|
+
"netlify_list_sites",
|
|
7876
|
+
"netlify_get_site",
|
|
7877
|
+
"netlify_create_site",
|
|
7878
|
+
"netlify_update_site",
|
|
7879
|
+
"netlify_delete_site",
|
|
7880
|
+
"netlify_enable_site",
|
|
7881
|
+
"netlify_disable_site",
|
|
7882
|
+
"netlify_list_deploys",
|
|
7883
|
+
"netlify_get_deploy",
|
|
7884
|
+
"netlify_create_deploy",
|
|
7885
|
+
"netlify_cancel_deploy",
|
|
7886
|
+
"netlify_restore_deploy",
|
|
7887
|
+
"netlify_lock_deploy",
|
|
7888
|
+
"netlify_unlock_deploy",
|
|
7889
|
+
"netlify_list_builds",
|
|
7890
|
+
"netlify_get_build",
|
|
7891
|
+
"netlify_trigger_build",
|
|
7892
|
+
"netlify_list_env_vars",
|
|
7893
|
+
"netlify_get_env_var",
|
|
7894
|
+
"netlify_create_env_vars",
|
|
7895
|
+
"netlify_update_env_var",
|
|
7896
|
+
"netlify_delete_env_var",
|
|
7897
|
+
"netlify_list_build_hooks",
|
|
7898
|
+
"netlify_create_build_hook",
|
|
7899
|
+
"netlify_delete_build_hook",
|
|
7900
|
+
"netlify_list_forms",
|
|
7901
|
+
"netlify_list_form_submissions",
|
|
7902
|
+
"netlify_list_dns_zones",
|
|
7903
|
+
"netlify_get_dns_records",
|
|
7904
|
+
"netlify_create_dns_record",
|
|
7905
|
+
"netlify_delete_dns_record",
|
|
7906
|
+
"netlify_list_functions",
|
|
7907
|
+
"netlify_list_files",
|
|
7908
|
+
"netlify_purge_cache"
|
|
7909
|
+
];
|
|
7910
|
+
function netlifyIntegration(config = {}) {
|
|
7911
|
+
const oauth = {
|
|
7912
|
+
provider: "netlify",
|
|
7913
|
+
clientId: config.clientId ?? getEnv("NETLIFY_CLIENT_ID"),
|
|
7914
|
+
clientSecret: config.clientSecret ?? getEnv("NETLIFY_CLIENT_SECRET"),
|
|
7915
|
+
scopes: [],
|
|
7916
|
+
redirectUri: config.redirectUri,
|
|
7917
|
+
config: {
|
|
7918
|
+
authorization_endpoint: "https://app.netlify.com/authorize",
|
|
7919
|
+
token_endpoint: "https://api.netlify.com/oauth/token",
|
|
7920
|
+
response_type: "code",
|
|
7921
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
7922
|
+
}
|
|
7923
|
+
};
|
|
7924
|
+
return {
|
|
7925
|
+
id: "netlify",
|
|
7926
|
+
name: "Netlify",
|
|
7927
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/netlify.png",
|
|
7928
|
+
description: "Manage Netlify sites, deploys, builds, and environment variables",
|
|
7929
|
+
category: "Infrastructure",
|
|
7930
|
+
tools: [...NETLIFY_TOOLS],
|
|
7931
|
+
oauth,
|
|
7932
|
+
async onInit(_client) {
|
|
7933
|
+
logger57.debug("Netlify integration initialized");
|
|
7934
|
+
},
|
|
7935
|
+
async onAfterConnect(_client) {
|
|
7936
|
+
logger57.debug("Netlify integration connected");
|
|
7937
|
+
}
|
|
7938
|
+
};
|
|
7939
|
+
}
|
|
7940
|
+
// src/integrations/datadog.ts
|
|
7941
|
+
init_logger();
|
|
7942
|
+
var logger58 = createLogger("Datadog");
|
|
7943
|
+
var DATADOG_SCOPES = [
|
|
7944
|
+
"monitors_read",
|
|
7945
|
+
"dashboards_read",
|
|
7946
|
+
"metrics_read",
|
|
7947
|
+
"logs_read_data"
|
|
7948
|
+
];
|
|
7949
|
+
var DATADOG_TOOLS = [
|
|
7950
|
+
"datadog_list_monitors",
|
|
7951
|
+
"datadog_get_monitor",
|
|
7952
|
+
"datadog_list_dashboards",
|
|
7953
|
+
"datadog_get_dashboard",
|
|
7954
|
+
"datadog_search_logs"
|
|
7955
|
+
];
|
|
7956
|
+
function normalizeSite(raw) {
|
|
7957
|
+
const s = (raw ?? "").trim();
|
|
7958
|
+
return s.length > 0 ? s : "datadoghq.com";
|
|
7959
|
+
}
|
|
7960
|
+
function datadogIntegration(config = {}) {
|
|
7961
|
+
const site = normalizeSite(config.site ?? getEnv("DATADOG_SITE"));
|
|
7962
|
+
const apiKey = config.apiKey ?? getEnv("DATADOG_API_KEY");
|
|
7963
|
+
const applicationKey = config.applicationKey ?? getEnv("DATADOG_APPLICATION_KEY");
|
|
7964
|
+
const baseFields = {
|
|
7965
|
+
id: "datadog",
|
|
7966
|
+
name: "Datadog",
|
|
7967
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/datadog.png",
|
|
7968
|
+
description: "List monitors and dashboards and search logs with the Datadog API",
|
|
7969
|
+
category: "Engineering",
|
|
7970
|
+
tools: [...DATADOG_TOOLS],
|
|
7971
|
+
async onInit(_client) {
|
|
7972
|
+
logger58.debug("Datadog integration initialized");
|
|
7973
|
+
},
|
|
7974
|
+
async onAfterConnect(_client) {
|
|
7975
|
+
logger58.debug("Datadog integration connected");
|
|
7976
|
+
}
|
|
7977
|
+
};
|
|
7978
|
+
if (apiKey || applicationKey) {
|
|
7979
|
+
if (!apiKey || !applicationKey) {
|
|
7980
|
+
throw new Error("datadogIntegration: apiKey and applicationKey must both be set for API key authentication");
|
|
7981
|
+
}
|
|
7982
|
+
return {
|
|
7983
|
+
...baseFields,
|
|
7984
|
+
authType: "apiKey",
|
|
7985
|
+
getHeaders() {
|
|
7986
|
+
return {
|
|
7987
|
+
"DD-API-KEY": apiKey,
|
|
7988
|
+
"DD-APPLICATION-KEY": applicationKey,
|
|
7989
|
+
"DD-SITE": site
|
|
7990
|
+
};
|
|
7991
|
+
}
|
|
7992
|
+
};
|
|
7993
|
+
}
|
|
7994
|
+
const clientId = config.clientId ?? getEnv("DATADOG_CLIENT_ID");
|
|
7995
|
+
const clientSecret = config.clientSecret ?? getEnv("DATADOG_CLIENT_SECRET");
|
|
7996
|
+
const oauth = {
|
|
7997
|
+
provider: "datadog",
|
|
7998
|
+
clientId,
|
|
7999
|
+
clientSecret,
|
|
8000
|
+
scopes: config.scopes ?? [...DATADOG_SCOPES],
|
|
8001
|
+
redirectUri: config.redirectUri,
|
|
8002
|
+
config: {
|
|
8003
|
+
authorization_endpoint: "https://app.datadoghq.com/oauth2/v1/authorize",
|
|
8004
|
+
token_endpoint: "https://api.datadoghq.com/oauth2/v1/token",
|
|
8005
|
+
response_type: "code",
|
|
8006
|
+
grant_types_supported: ["authorization_code", "refresh_token"],
|
|
8007
|
+
subdomain: site
|
|
8008
|
+
}
|
|
8009
|
+
};
|
|
8010
|
+
return {
|
|
8011
|
+
...baseFields,
|
|
8012
|
+
oauth
|
|
8013
|
+
};
|
|
8014
|
+
}
|
|
8015
|
+
// src/integrations/redis.ts
|
|
8016
|
+
init_logger();
|
|
8017
|
+
var logger59 = createLogger("Redis Cloud");
|
|
8018
|
+
var REDIS_TOOLS = [
|
|
8019
|
+
"redis_list_subscriptions",
|
|
8020
|
+
"redis_get_subscription",
|
|
8021
|
+
"redis_list_fixed_subscriptions",
|
|
8022
|
+
"redis_get_fixed_subscription",
|
|
8023
|
+
"redis_list_databases",
|
|
8024
|
+
"redis_get_database",
|
|
8025
|
+
"redis_create_database",
|
|
8026
|
+
"redis_update_database",
|
|
8027
|
+
"redis_delete_database",
|
|
8028
|
+
"redis_list_essentials_databases",
|
|
8029
|
+
"redis_get_essentials_database",
|
|
8030
|
+
"redis_create_essentials_database",
|
|
8031
|
+
"redis_update_essentials_database",
|
|
8032
|
+
"redis_delete_essentials_database",
|
|
8033
|
+
"redis_get_task",
|
|
8034
|
+
"redis_list_logs"
|
|
8035
|
+
];
|
|
8036
|
+
function encodeRedisCloudBearerToken(accountKey, secretKey) {
|
|
8037
|
+
const json = JSON.stringify({ account_key: accountKey, secret_key: secretKey });
|
|
8038
|
+
let b64;
|
|
8039
|
+
if (typeof Buffer !== "undefined") {
|
|
8040
|
+
b64 = Buffer.from(json, "utf8").toString("base64");
|
|
8041
|
+
} else {
|
|
8042
|
+
const bytes = new TextEncoder().encode(json);
|
|
8043
|
+
let binary = "";
|
|
8044
|
+
for (let i = 0;i < bytes.length; i++) {
|
|
8045
|
+
binary += String.fromCharCode(bytes[i]);
|
|
8046
|
+
}
|
|
8047
|
+
b64 = btoa(binary);
|
|
8048
|
+
}
|
|
8049
|
+
return `redis_cloud:${b64}`;
|
|
8050
|
+
}
|
|
8051
|
+
function redisIntegration(options = {}) {
|
|
8052
|
+
const accountKey = options.accountKey ?? getEnv("REDIS_CLOUD_ACCOUNT_KEY");
|
|
8053
|
+
const secretKey = options.secretKey ?? getEnv("REDIS_CLOUD_SECRET_KEY");
|
|
8054
|
+
if (!accountKey || !secretKey) {
|
|
8055
|
+
throw new Error("redisIntegration requires accountKey/secretKey or REDIS_CLOUD_ACCOUNT_KEY and REDIS_CLOUD_SECRET_KEY environment variables");
|
|
8056
|
+
}
|
|
8057
|
+
const bearer = encodeRedisCloudBearerToken(accountKey, secretKey);
|
|
8058
|
+
return {
|
|
8059
|
+
id: "redis",
|
|
8060
|
+
name: "Redis Cloud",
|
|
8061
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/redis.png",
|
|
8062
|
+
description: "Manage Redis Cloud subscriptions, databases, async tasks, and audit logs via the REST API",
|
|
8063
|
+
category: "Infrastructure",
|
|
8064
|
+
tools: [...REDIS_TOOLS],
|
|
8065
|
+
authType: "apiKey",
|
|
8066
|
+
getHeaders() {
|
|
8067
|
+
return {
|
|
8068
|
+
Authorization: `Bearer ${bearer}`
|
|
8069
|
+
};
|
|
8070
|
+
},
|
|
8071
|
+
async onInit(_client) {
|
|
8072
|
+
logger59.debug("Redis Cloud integration initialized");
|
|
8073
|
+
},
|
|
8074
|
+
async onAfterConnect(_client) {
|
|
8075
|
+
logger59.debug("Redis Cloud integration connected");
|
|
8076
|
+
}
|
|
8077
|
+
};
|
|
8078
|
+
}
|
|
8079
|
+
// src/integrations/upstash.ts
|
|
8080
|
+
init_logger();
|
|
8081
|
+
var logger60 = createLogger("Upstash");
|
|
8082
|
+
var UPSTASH_TOOLS = [
|
|
8083
|
+
"upstash_redis_run",
|
|
8084
|
+
"upstash_redis_get",
|
|
8085
|
+
"upstash_redis_set",
|
|
8086
|
+
"upstash_redis_del",
|
|
8087
|
+
"upstash_qstash_publish"
|
|
8088
|
+
];
|
|
8089
|
+
function upstashIntegration(options = {}) {
|
|
8090
|
+
const redisUrl = options.redisUrl ?? getEnv("UPSTASH_REDIS_REST_URL");
|
|
8091
|
+
const redisToken = options.redisToken ?? getEnv("UPSTASH_REDIS_REST_TOKEN");
|
|
8092
|
+
const qstashToken = options.qstashToken ?? getEnv("QSTASH_TOKEN");
|
|
8093
|
+
const hasRedis = !!(redisUrl && redisToken);
|
|
8094
|
+
const onlyPartialRedis = !!redisUrl && !redisToken || !redisUrl && !!redisToken;
|
|
8095
|
+
if (onlyPartialRedis) {
|
|
8096
|
+
throw new Error("upstashIntegration requires both redisUrl and redisToken for Redis tools (or omit both for QStash-only)");
|
|
8097
|
+
}
|
|
8098
|
+
if (!hasRedis && !qstashToken) {
|
|
8099
|
+
throw new Error("upstashIntegration requires Redis credentials (UPSTASH_REDIS_REST_URL + UPSTASH_REDIS_REST_TOKEN) and/or QSTASH_TOKEN");
|
|
8100
|
+
}
|
|
8101
|
+
return {
|
|
8102
|
+
id: "upstash",
|
|
8103
|
+
name: "Upstash",
|
|
8104
|
+
logoUrl: "https://avatars.githubusercontent.com/u/74989412?s=200&v=4",
|
|
8105
|
+
description: "Serverless Redis (REST), QStash messaging, and HTTP APIs",
|
|
8106
|
+
category: "Infrastructure",
|
|
8107
|
+
tools: [...UPSTASH_TOOLS],
|
|
8108
|
+
authType: "apiKey",
|
|
8109
|
+
getHeaders() {
|
|
8110
|
+
const headers = {};
|
|
8111
|
+
if (hasRedis) {
|
|
8112
|
+
headers["X-Upstash-Redis-Rest-Url"] = redisUrl;
|
|
8113
|
+
headers["X-Upstash-Redis-Rest-Token"] = redisToken;
|
|
8114
|
+
}
|
|
8115
|
+
if (qstashToken) {
|
|
8116
|
+
headers["X-Qstash-Token"] = qstashToken;
|
|
8117
|
+
}
|
|
8118
|
+
return headers;
|
|
8119
|
+
},
|
|
8120
|
+
async onInit(_client) {
|
|
8121
|
+
logger60.debug("Upstash integration initialized");
|
|
8122
|
+
},
|
|
8123
|
+
async onAfterConnect(_client) {
|
|
8124
|
+
logger60.debug("Upstash integration connected");
|
|
8125
|
+
}
|
|
8126
|
+
};
|
|
8127
|
+
}
|
|
8128
|
+
// src/integrations/webflow.ts
|
|
8129
|
+
init_logger();
|
|
8130
|
+
var logger61 = createLogger("Webflow");
|
|
8131
|
+
var WEBFLOW_TOOLS = [
|
|
8132
|
+
"webflow_token_introspect",
|
|
8133
|
+
"webflow_get_authorized_user",
|
|
8134
|
+
"webflow_list_sites",
|
|
8135
|
+
"webflow_get_site",
|
|
8136
|
+
"webflow_get_site_custom_domains",
|
|
8137
|
+
"webflow_publish_site",
|
|
8138
|
+
"webflow_list_site_pages",
|
|
8139
|
+
"webflow_list_site_collections",
|
|
8140
|
+
"webflow_get_collection",
|
|
8141
|
+
"webflow_list_collection_items",
|
|
8142
|
+
"webflow_list_live_collection_items",
|
|
8143
|
+
"webflow_get_collection_item",
|
|
8144
|
+
"webflow_create_collection_items",
|
|
8145
|
+
"webflow_update_collection_items",
|
|
8146
|
+
"webflow_delete_collection_items",
|
|
8147
|
+
"webflow_publish_collection_items",
|
|
8148
|
+
"webflow_list_site_forms",
|
|
8149
|
+
"webflow_list_site_webhooks"
|
|
8150
|
+
];
|
|
8151
|
+
var DEFAULT_WEBFLOW_SCOPES = [
|
|
8152
|
+
"authorized_user:read",
|
|
8153
|
+
"assets:read",
|
|
8154
|
+
"assets:write",
|
|
8155
|
+
"cms:read",
|
|
8156
|
+
"cms:write",
|
|
8157
|
+
"custom_code:read",
|
|
8158
|
+
"custom_code:write",
|
|
8159
|
+
"forms:read",
|
|
8160
|
+
"forms:write",
|
|
8161
|
+
"pages:read",
|
|
8162
|
+
"pages:write",
|
|
8163
|
+
"sites:read",
|
|
8164
|
+
"sites:write"
|
|
8165
|
+
];
|
|
8166
|
+
function webflowIntegration(config = {}) {
|
|
8167
|
+
const oauth = {
|
|
8168
|
+
provider: "webflow",
|
|
8169
|
+
clientId: config.clientId ?? getEnv("WEBFLOW_CLIENT_ID"),
|
|
8170
|
+
clientSecret: config.clientSecret ?? getEnv("WEBFLOW_CLIENT_SECRET"),
|
|
8171
|
+
scopes: config.scopes ?? [...DEFAULT_WEBFLOW_SCOPES],
|
|
8172
|
+
redirectUri: config.redirectUri,
|
|
8173
|
+
config: {
|
|
8174
|
+
authorization_endpoint: "https://webflow.com/oauth/authorize",
|
|
8175
|
+
token_endpoint: "https://api.webflow.com/oauth/access_token",
|
|
8176
|
+
response_type: "code",
|
|
8177
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
8178
|
+
}
|
|
8179
|
+
};
|
|
8180
|
+
return {
|
|
8181
|
+
id: "webflow",
|
|
8182
|
+
name: "Webflow",
|
|
8183
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/webflow.png",
|
|
8184
|
+
description: "Manage Webflow sites, CMS collections, pages, forms, and publishing",
|
|
8185
|
+
category: "Engineering",
|
|
8186
|
+
tools: [...WEBFLOW_TOOLS],
|
|
8187
|
+
oauth,
|
|
8188
|
+
async onInit(_client) {
|
|
8189
|
+
logger61.debug("Webflow integration initialized");
|
|
8190
|
+
},
|
|
8191
|
+
async onAfterConnect(_client) {
|
|
8192
|
+
logger61.debug("Webflow integration connected");
|
|
8193
|
+
}
|
|
8194
|
+
};
|
|
8195
|
+
}
|
|
8196
|
+
// src/integrations/jira.ts
|
|
8197
|
+
init_logger();
|
|
8198
|
+
var logger62 = createLogger("Jira");
|
|
8199
|
+
var JIRA_SCOPES = [
|
|
8200
|
+
"read:jira-work",
|
|
8201
|
+
"write:jira-work",
|
|
8202
|
+
"read:account",
|
|
8203
|
+
"offline_access"
|
|
8204
|
+
];
|
|
8205
|
+
var JIRA_TOOLS = [
|
|
8206
|
+
"jira_list_projects",
|
|
8207
|
+
"jira_get_project",
|
|
8208
|
+
"jira_get_issue_types",
|
|
8209
|
+
"jira_search_issues",
|
|
8210
|
+
"jira_get_issue",
|
|
8211
|
+
"jira_create_issue",
|
|
8212
|
+
"jira_update_issue",
|
|
8213
|
+
"jira_get_transitions",
|
|
8214
|
+
"jira_transition_issue",
|
|
8215
|
+
"jira_add_comment",
|
|
8216
|
+
"jira_assign_issue",
|
|
8217
|
+
"jira_list_boards",
|
|
8218
|
+
"jira_list_sprints"
|
|
8219
|
+
];
|
|
8220
|
+
function jiraIntegration(config = {}) {
|
|
8221
|
+
const oauth = {
|
|
8222
|
+
provider: "jira",
|
|
8223
|
+
clientId: config.clientId ?? getEnv("JIRA_CLIENT_ID"),
|
|
8224
|
+
clientSecret: config.clientSecret ?? getEnv("JIRA_CLIENT_SECRET"),
|
|
8225
|
+
scopes: config.scopes ?? [...JIRA_SCOPES],
|
|
8226
|
+
redirectUri: config.redirectUri,
|
|
8227
|
+
config: {
|
|
8228
|
+
authorization_endpoint: "https://auth.atlassian.com/authorize",
|
|
8229
|
+
token_endpoint: "https://auth.atlassian.com/oauth/token",
|
|
8230
|
+
response_type: "code",
|
|
8231
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
8232
|
+
}
|
|
8233
|
+
};
|
|
8234
|
+
return {
|
|
8235
|
+
id: "jira",
|
|
8236
|
+
name: "Jira",
|
|
8237
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/jira.png",
|
|
8238
|
+
description: "Manage Jira issues, projects, sprints, and boards",
|
|
8239
|
+
category: "Engineering",
|
|
8240
|
+
tools: [...JIRA_TOOLS],
|
|
8241
|
+
oauth,
|
|
8242
|
+
async onInit(_client) {
|
|
8243
|
+
logger62.debug("Jira integration initialized");
|
|
8244
|
+
},
|
|
8245
|
+
async onAfterConnect(_client) {
|
|
8246
|
+
logger62.debug("Jira integration connected");
|
|
8247
|
+
}
|
|
8248
|
+
};
|
|
8249
|
+
}
|
|
8250
|
+
// src/integrations/salesforce.ts
|
|
8251
|
+
init_logger();
|
|
8252
|
+
var logger63 = createLogger("Salesforce");
|
|
8253
|
+
var SALESFORCE_TOOLS = [
|
|
8254
|
+
"salesforce_query",
|
|
8255
|
+
"salesforce_get_limits",
|
|
8256
|
+
"salesforce_describe_global",
|
|
8257
|
+
"salesforce_sobject_describe",
|
|
8258
|
+
"salesforce_sobject_get",
|
|
8259
|
+
"salesforce_sobject_create",
|
|
8260
|
+
"salesforce_sobject_update",
|
|
8261
|
+
"salesforce_sobject_delete"
|
|
8262
|
+
];
|
|
8263
|
+
function salesforceIntegration(config = {}) {
|
|
8264
|
+
const oauth = {
|
|
8265
|
+
provider: "salesforce",
|
|
8266
|
+
clientId: config.clientId ?? getEnv("SALESFORCE_CLIENT_ID"),
|
|
8267
|
+
clientSecret: config.clientSecret ?? getEnv("SALESFORCE_CLIENT_SECRET"),
|
|
8268
|
+
scopes: config.scopes ?? ["api", "refresh_token", "offline_access"],
|
|
8269
|
+
optionalScopes: config.optionalScopes,
|
|
8270
|
+
redirectUri: config.redirectUri,
|
|
8271
|
+
config: {
|
|
8272
|
+
...config,
|
|
8273
|
+
subdomain: config.subdomain ?? getEnv("SALESFORCE_SUBDOMAIN")
|
|
8274
|
+
}
|
|
8275
|
+
};
|
|
8276
|
+
return {
|
|
8277
|
+
id: "salesforce",
|
|
8278
|
+
name: "Salesforce",
|
|
8279
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/salesforce.png",
|
|
8280
|
+
tools: [...SALESFORCE_TOOLS],
|
|
8281
|
+
oauth,
|
|
8282
|
+
async onInit(_client) {
|
|
8283
|
+
logger63.debug("Salesforce integration initialized");
|
|
8284
|
+
},
|
|
8285
|
+
async onAfterConnect(_client) {
|
|
8286
|
+
logger63.debug("Salesforce integration connected");
|
|
8287
|
+
}
|
|
8288
|
+
};
|
|
8289
|
+
}
|
|
8290
|
+
// src/integrations/zapier.ts
|
|
8291
|
+
init_logger();
|
|
8292
|
+
var logger64 = createLogger("Zapier");
|
|
8293
|
+
var ZAPIER_TOOLS = [
|
|
8294
|
+
"zapier_get_profile",
|
|
8295
|
+
"zapier_list_zaps",
|
|
8296
|
+
"zapier_list_apps",
|
|
8297
|
+
"zapier_list_actions",
|
|
8298
|
+
"zapier_list_authentications",
|
|
8299
|
+
"zapier_list_zap_runs"
|
|
8300
|
+
];
|
|
8301
|
+
function zapierIntegration(config = {}) {
|
|
8302
|
+
const oauth = {
|
|
8303
|
+
provider: "zapier",
|
|
8304
|
+
clientId: config.clientId ?? getEnv("ZAPIER_CLIENT_ID"),
|
|
8305
|
+
clientSecret: config.clientSecret ?? getEnv("ZAPIER_CLIENT_SECRET"),
|
|
8306
|
+
scopes: config.scopes ?? [],
|
|
8307
|
+
redirectUri: config.redirectUri,
|
|
8308
|
+
config: {
|
|
8309
|
+
authorization_endpoint: "https://zapier.com/oauth/authorize/",
|
|
8310
|
+
token_endpoint: "https://zapier.com/oauth/token/",
|
|
8311
|
+
response_type: "code",
|
|
8312
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
8313
|
+
}
|
|
8314
|
+
};
|
|
8315
|
+
return {
|
|
8316
|
+
id: "zapier",
|
|
8317
|
+
name: "Zapier",
|
|
8318
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/zapier.png",
|
|
8319
|
+
description: "List Zaps, browse apps, manage authentications, and inspect Zap runs via the Partner Workflow API",
|
|
8320
|
+
category: "Productivity",
|
|
8321
|
+
tools: [...ZAPIER_TOOLS],
|
|
8322
|
+
oauth,
|
|
8323
|
+
async onInit(_client) {
|
|
8324
|
+
logger64.debug("Zapier integration initialized");
|
|
8325
|
+
},
|
|
8326
|
+
async onAfterConnect(_client) {
|
|
8327
|
+
logger64.debug("Zapier integration connected");
|
|
8328
|
+
}
|
|
8329
|
+
};
|
|
8330
|
+
}
|
|
8331
|
+
// src/integrations/linkedin.ts
|
|
8332
|
+
init_logger();
|
|
8333
|
+
var logger65 = createLogger("LinkedIn");
|
|
8334
|
+
var LINKEDIN_SCOPES = ["openid", "profile", "email", "w_member_social"];
|
|
8335
|
+
var LINKEDIN_TOOLS = ["linkedin_get_userinfo", "linkedin_create_post"];
|
|
8336
|
+
function linkedinIntegration(config = {}) {
|
|
8337
|
+
const oauth = {
|
|
8338
|
+
provider: "linkedin",
|
|
8339
|
+
clientId: config.clientId ?? getEnv("LINKEDIN_CLIENT_ID"),
|
|
8340
|
+
clientSecret: config.clientSecret ?? getEnv("LINKEDIN_CLIENT_SECRET"),
|
|
8341
|
+
scopes: config.scopes ?? [...LINKEDIN_SCOPES],
|
|
8342
|
+
optionalScopes: config.optionalScopes,
|
|
8343
|
+
redirectUri: config.redirectUri,
|
|
8344
|
+
config: {
|
|
8345
|
+
authorization_endpoint: "https://www.linkedin.com/oauth/v2/authorization",
|
|
8346
|
+
token_endpoint: "https://www.linkedin.com/oauth/v2/accessToken",
|
|
8347
|
+
response_type: "code",
|
|
8348
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
8349
|
+
}
|
|
8350
|
+
};
|
|
8351
|
+
return {
|
|
8352
|
+
id: "linkedin",
|
|
8353
|
+
name: "LinkedIn",
|
|
8354
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/linkedin.png",
|
|
8355
|
+
description: "Read LinkedIn OpenID profile data and publish member posts",
|
|
8356
|
+
category: "Social Media",
|
|
8357
|
+
tools: [...LINKEDIN_TOOLS],
|
|
8358
|
+
oauth,
|
|
8359
|
+
async onInit(_client) {
|
|
8360
|
+
logger65.debug("LinkedIn integration initialized");
|
|
8361
|
+
},
|
|
8362
|
+
async onAfterConnect(_client) {
|
|
8363
|
+
logger65.debug("LinkedIn integration connected");
|
|
8364
|
+
}
|
|
8365
|
+
};
|
|
8366
|
+
}
|
|
8367
|
+
// src/integrations/threads.ts
|
|
8368
|
+
init_logger();
|
|
8369
|
+
var logger66 = createLogger("Threads");
|
|
8370
|
+
var THREADS_SCOPES = [
|
|
8371
|
+
"threads_basic",
|
|
8372
|
+
"threads_content_publish",
|
|
8373
|
+
"threads_read_replies",
|
|
8374
|
+
"threads_manage_replies",
|
|
8375
|
+
"threads_manage_insights"
|
|
8376
|
+
];
|
|
8377
|
+
var THREADS_OPTIONAL_SCOPES = [
|
|
8378
|
+
"threads_keyword_search",
|
|
8379
|
+
"threads_profile_discovery",
|
|
8380
|
+
"threads_manage_mentions"
|
|
8381
|
+
];
|
|
8382
|
+
var THREADS_TOOLS = [
|
|
8383
|
+
"threads_get_me",
|
|
8384
|
+
"threads_list_user_media",
|
|
8385
|
+
"threads_get_media",
|
|
8386
|
+
"threads_keyword_search",
|
|
8387
|
+
"threads_create_media_container",
|
|
8388
|
+
"threads_publish_media_container",
|
|
8389
|
+
"threads_get_container_status",
|
|
8390
|
+
"threads_list_replies",
|
|
8391
|
+
"threads_get_conversation",
|
|
8392
|
+
"threads_manage_reply",
|
|
8393
|
+
"threads_repost",
|
|
8394
|
+
"threads_delete_media"
|
|
8395
|
+
];
|
|
8396
|
+
function threadsIntegration(config = {}) {
|
|
8397
|
+
const oauth = {
|
|
8398
|
+
provider: "threads",
|
|
8399
|
+
clientId: config.clientId ?? getEnv("THREADS_CLIENT_ID"),
|
|
8400
|
+
clientSecret: config.clientSecret ?? getEnv("THREADS_CLIENT_SECRET"),
|
|
8401
|
+
scopes: config.scopes ?? [...THREADS_SCOPES],
|
|
8402
|
+
optionalScopes: config.optionalScopes ?? [...THREADS_OPTIONAL_SCOPES],
|
|
8403
|
+
redirectUri: config.redirectUri,
|
|
8404
|
+
config: {
|
|
8405
|
+
authorization_endpoint: "https://threads.net/oauth/authorize",
|
|
8406
|
+
token_endpoint: "https://graph.threads.net/oauth/access_token",
|
|
8407
|
+
response_type: "code",
|
|
8408
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
8409
|
+
}
|
|
8410
|
+
};
|
|
8411
|
+
return {
|
|
8412
|
+
id: "threads",
|
|
8413
|
+
name: "Threads",
|
|
8414
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/threads.png",
|
|
8415
|
+
description: "Publish Threads posts and manage media, replies, conversations, and keyword search",
|
|
8416
|
+
category: "Social Media",
|
|
8417
|
+
tools: [...THREADS_TOOLS],
|
|
8418
|
+
oauth,
|
|
8419
|
+
async onInit(_client) {
|
|
8420
|
+
logger66.debug("Threads integration initialized");
|
|
8421
|
+
},
|
|
8422
|
+
async onAfterConnect(_client) {
|
|
8423
|
+
logger66.debug("Threads integration connected");
|
|
8424
|
+
}
|
|
8425
|
+
};
|
|
8426
|
+
}
|
|
8427
|
+
// src/integrations/tiktok.ts
|
|
8428
|
+
init_logger();
|
|
8429
|
+
var logger67 = createLogger("TikTok");
|
|
8430
|
+
var TIKTOK_SCOPES = ["user.info.basic", "video.list"];
|
|
8431
|
+
var TIKTOK_TOOLS = [
|
|
8432
|
+
"tiktok_get_user_info",
|
|
8433
|
+
"tiktok_list_videos",
|
|
8434
|
+
"tiktok_query_videos"
|
|
8435
|
+
];
|
|
8436
|
+
function tiktokIntegration(config = {}) {
|
|
8437
|
+
const oauth = {
|
|
8438
|
+
provider: "tiktok",
|
|
8439
|
+
clientId: config.clientId ?? getEnv("TIKTOK_CLIENT_ID"),
|
|
8440
|
+
clientSecret: config.clientSecret ?? getEnv("TIKTOK_CLIENT_SECRET"),
|
|
8441
|
+
scopes: config.scopes ?? [...TIKTOK_SCOPES],
|
|
8442
|
+
optionalScopes: config.optionalScopes,
|
|
8443
|
+
redirectUri: config.redirectUri,
|
|
8444
|
+
config: {
|
|
8445
|
+
authorization_endpoint: "https://www.tiktok.com/v2/auth/authorize/",
|
|
8446
|
+
token_endpoint: "https://open.tiktokapis.com/v2/oauth/token/",
|
|
8447
|
+
response_type: "code",
|
|
8448
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
8449
|
+
}
|
|
8450
|
+
};
|
|
8451
|
+
return {
|
|
8452
|
+
id: "tiktok",
|
|
8453
|
+
name: "TikTok",
|
|
8454
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/tiktok.png",
|
|
8455
|
+
description: "Read TikTok user profile data and user-authorized video metadata",
|
|
8456
|
+
category: "Social Media",
|
|
8457
|
+
tools: [...TIKTOK_TOOLS],
|
|
8458
|
+
oauth,
|
|
8459
|
+
async onInit(_client) {
|
|
8460
|
+
logger67.debug("TikTok integration initialized");
|
|
8461
|
+
},
|
|
8462
|
+
async onAfterConnect(_client) {
|
|
8463
|
+
logger67.debug("TikTok integration connected");
|
|
8464
|
+
}
|
|
8465
|
+
};
|
|
8466
|
+
}
|
|
8467
|
+
// src/integrations/trello.ts
|
|
8468
|
+
init_logger();
|
|
8469
|
+
var logger68 = createLogger("Trello");
|
|
8470
|
+
var TRELLO_TOOLS = [
|
|
8471
|
+
"trello_get_member",
|
|
8472
|
+
"trello_list_boards",
|
|
8473
|
+
"trello_get_board",
|
|
8474
|
+
"trello_list_lists",
|
|
8475
|
+
"trello_get_list",
|
|
8476
|
+
"trello_list_cards",
|
|
8477
|
+
"trello_get_card",
|
|
8478
|
+
"trello_create_card",
|
|
8479
|
+
"trello_update_card",
|
|
8480
|
+
"trello_delete_card",
|
|
8481
|
+
"trello_add_card_comment",
|
|
8482
|
+
"trello_search"
|
|
8483
|
+
];
|
|
8484
|
+
function encodeCredential(apiKey, memberToken) {
|
|
8485
|
+
const payload = JSON.stringify({ k: apiKey, t: memberToken });
|
|
8486
|
+
return `trello:${Buffer.from(payload).toString("base64url")}`;
|
|
8487
|
+
}
|
|
8488
|
+
function trelloIntegration(options = {}) {
|
|
8489
|
+
const apiKey = options.apiKey ?? getEnv("TRELLO_API_KEY");
|
|
8490
|
+
const memberToken = options.memberToken ?? getEnv("TRELLO_TOKEN");
|
|
8491
|
+
if (!apiKey || !memberToken) {
|
|
8492
|
+
throw new Error("trelloIntegration requires apiKey/memberToken or TRELLO_API_KEY/TRELLO_TOKEN");
|
|
8493
|
+
}
|
|
8494
|
+
return {
|
|
8495
|
+
id: "trello",
|
|
8496
|
+
name: "Trello",
|
|
8497
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/trello.png",
|
|
8498
|
+
description: "Manage Trello boards, lists, cards, comments, and search",
|
|
8499
|
+
category: "Productivity",
|
|
8500
|
+
tools: [...TRELLO_TOOLS],
|
|
8501
|
+
authType: "apiKey",
|
|
8502
|
+
getHeaders() {
|
|
8503
|
+
return { Authorization: `Bearer ${encodeCredential(apiKey, memberToken)}` };
|
|
8504
|
+
},
|
|
8505
|
+
async onInit(_client) {
|
|
8506
|
+
logger68.debug("Trello integration initialized");
|
|
8507
|
+
},
|
|
8508
|
+
async onAfterConnect(_client) {
|
|
8509
|
+
logger68.debug("Trello integration connected");
|
|
8510
|
+
}
|
|
8511
|
+
};
|
|
8512
|
+
}
|
|
8513
|
+
// src/integrations/typeform.ts
|
|
8514
|
+
init_logger();
|
|
8515
|
+
var logger69 = createLogger("Typeform");
|
|
8516
|
+
var TYPEFORM_SCOPES = [
|
|
8517
|
+
"offline",
|
|
8518
|
+
"accounts:read",
|
|
8519
|
+
"forms:read",
|
|
8520
|
+
"forms:write",
|
|
8521
|
+
"responses:read",
|
|
8522
|
+
"workspaces:read"
|
|
8523
|
+
];
|
|
8524
|
+
var TYPEFORM_TOOLS = [
|
|
8525
|
+
"typeform_get_me",
|
|
8526
|
+
"typeform_list_workspaces",
|
|
8527
|
+
"typeform_get_workspace",
|
|
8528
|
+
"typeform_list_forms",
|
|
8529
|
+
"typeform_get_form",
|
|
8530
|
+
"typeform_create_form",
|
|
8531
|
+
"typeform_update_form",
|
|
8532
|
+
"typeform_delete_form",
|
|
8533
|
+
"typeform_list_responses"
|
|
8534
|
+
];
|
|
8535
|
+
function typeformIntegration(config = {}) {
|
|
8536
|
+
const oauth = {
|
|
8537
|
+
provider: "typeform",
|
|
8538
|
+
clientId: config.clientId ?? getEnv("TYPEFORM_CLIENT_ID"),
|
|
8539
|
+
clientSecret: config.clientSecret ?? getEnv("TYPEFORM_CLIENT_SECRET"),
|
|
8540
|
+
scopes: config.scopes ?? [...TYPEFORM_SCOPES],
|
|
8541
|
+
optionalScopes: config.optionalScopes,
|
|
8542
|
+
redirectUri: config.redirectUri,
|
|
8543
|
+
config: {
|
|
8544
|
+
authorization_endpoint: "https://api.typeform.com/oauth/authorize",
|
|
8545
|
+
token_endpoint: "https://api.typeform.com/oauth/token",
|
|
8546
|
+
response_type: "code",
|
|
8547
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
8548
|
+
}
|
|
8549
|
+
};
|
|
8550
|
+
return {
|
|
8551
|
+
id: "typeform",
|
|
8552
|
+
name: "Typeform",
|
|
8553
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/typeform.png",
|
|
8554
|
+
description: "Manage Typeform workspaces, forms, and responses",
|
|
8555
|
+
category: "Productivity",
|
|
8556
|
+
tools: [...TYPEFORM_TOOLS],
|
|
8557
|
+
oauth,
|
|
8558
|
+
async onInit(_client) {
|
|
8559
|
+
logger69.debug("Typeform integration initialized");
|
|
8560
|
+
},
|
|
8561
|
+
async onAfterConnect(_client) {
|
|
8562
|
+
logger69.debug("Typeform integration connected");
|
|
8563
|
+
}
|
|
8564
|
+
};
|
|
8565
|
+
}
|
|
8566
|
+
// src/integrations/xero.ts
|
|
8567
|
+
init_logger();
|
|
8568
|
+
var logger70 = createLogger("Xero");
|
|
8569
|
+
var XERO_SCOPES = [
|
|
8570
|
+
"openid",
|
|
8571
|
+
"profile",
|
|
8572
|
+
"email",
|
|
8573
|
+
"offline_access",
|
|
8574
|
+
"accounting.settings",
|
|
8575
|
+
"accounting.transactions",
|
|
8576
|
+
"accounting.contacts",
|
|
8577
|
+
"accounting.attachments"
|
|
8578
|
+
];
|
|
8579
|
+
var XERO_TOOLS = [
|
|
8580
|
+
"xero_list_connections",
|
|
8581
|
+
"xero_get_organisation",
|
|
8582
|
+
"xero_list_accounts",
|
|
8583
|
+
"xero_list_contacts",
|
|
8584
|
+
"xero_get_contact",
|
|
8585
|
+
"xero_create_contact",
|
|
8586
|
+
"xero_list_invoices",
|
|
8587
|
+
"xero_get_invoice",
|
|
8588
|
+
"xero_create_invoice",
|
|
8589
|
+
"xero_list_bank_transactions"
|
|
8590
|
+
];
|
|
8591
|
+
function xeroIntegration(config = {}) {
|
|
8592
|
+
const oauth = {
|
|
8593
|
+
provider: "xero",
|
|
8594
|
+
clientId: config.clientId ?? getEnv("XERO_CLIENT_ID"),
|
|
8595
|
+
clientSecret: config.clientSecret ?? getEnv("XERO_CLIENT_SECRET"),
|
|
8596
|
+
scopes: config.scopes ?? [...XERO_SCOPES],
|
|
8597
|
+
optionalScopes: config.optionalScopes,
|
|
8598
|
+
redirectUri: config.redirectUri,
|
|
8599
|
+
config: {
|
|
8600
|
+
authorization_endpoint: "https://login.xero.com/identity/connect/authorize",
|
|
8601
|
+
token_endpoint: "https://identity.xero.com/connect/token",
|
|
8602
|
+
response_type: "code",
|
|
8603
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
8604
|
+
}
|
|
8605
|
+
};
|
|
8606
|
+
return {
|
|
8607
|
+
id: "xero",
|
|
8608
|
+
name: "Xero",
|
|
8609
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/xero.png",
|
|
8610
|
+
description: "Manage Xero organisations, accounts, contacts, invoices, and bank transactions",
|
|
8611
|
+
category: "Finance",
|
|
8612
|
+
tools: [...XERO_TOOLS],
|
|
8613
|
+
oauth,
|
|
8614
|
+
async onInit(_client) {
|
|
8615
|
+
logger70.debug("Xero integration initialized");
|
|
8616
|
+
},
|
|
8617
|
+
async onAfterConnect(_client) {
|
|
8618
|
+
logger70.debug("Xero integration connected");
|
|
8619
|
+
}
|
|
8620
|
+
};
|
|
8621
|
+
}
|
|
8622
|
+
// src/integrations/attio.ts
|
|
8623
|
+
init_logger();
|
|
8624
|
+
var logger71 = createLogger("Attio");
|
|
8625
|
+
var ATTIO_SCOPES = [
|
|
8626
|
+
"record_permission:read-write",
|
|
8627
|
+
"object_configuration:read",
|
|
8628
|
+
"user_management:read",
|
|
8629
|
+
"task:read"
|
|
8630
|
+
];
|
|
8631
|
+
var ATTIO_TOOLS = [
|
|
8632
|
+
"attio_get_self",
|
|
8633
|
+
"attio_query_people",
|
|
8634
|
+
"attio_get_person",
|
|
8635
|
+
"attio_create_person",
|
|
8636
|
+
"attio_update_person",
|
|
8637
|
+
"attio_assert_person",
|
|
8638
|
+
"attio_query_companies",
|
|
8639
|
+
"attio_get_company",
|
|
8640
|
+
"attio_create_company",
|
|
8641
|
+
"attio_update_company",
|
|
8642
|
+
"attio_assert_company",
|
|
8643
|
+
"attio_list_tasks",
|
|
8644
|
+
"attio_get_task"
|
|
8645
|
+
];
|
|
8646
|
+
function attioIntegration(config = {}) {
|
|
8647
|
+
const oauth = {
|
|
8648
|
+
provider: "attio",
|
|
8649
|
+
clientId: config.clientId ?? getEnv("ATTIO_CLIENT_ID"),
|
|
8650
|
+
clientSecret: config.clientSecret ?? getEnv("ATTIO_CLIENT_SECRET"),
|
|
8651
|
+
scopes: config.scopes ?? [...ATTIO_SCOPES],
|
|
8652
|
+
optionalScopes: config.optionalScopes,
|
|
8653
|
+
redirectUri: config.redirectUri,
|
|
8654
|
+
config: {
|
|
8655
|
+
authorization_endpoint: "https://app.attio.com/authorize",
|
|
8656
|
+
token_endpoint: "https://app.attio.com/oauth/token",
|
|
8657
|
+
response_type: "code",
|
|
8658
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
8659
|
+
}
|
|
8660
|
+
};
|
|
8661
|
+
return {
|
|
8662
|
+
id: "attio",
|
|
8663
|
+
name: "Attio",
|
|
8664
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/attio.png",
|
|
8665
|
+
description: "Manage Attio people, companies, records, and tasks",
|
|
8666
|
+
category: "Business",
|
|
8667
|
+
tools: [...ATTIO_TOOLS],
|
|
8668
|
+
oauth,
|
|
8669
|
+
async onInit(_client) {
|
|
8670
|
+
logger71.debug("Attio integration initialized");
|
|
8671
|
+
},
|
|
8672
|
+
async onAfterConnect(_client) {
|
|
8673
|
+
logger71.debug("Attio integration connected");
|
|
8674
|
+
}
|
|
8675
|
+
};
|
|
8676
|
+
}
|
|
8677
|
+
// src/integrations/gchat.ts
|
|
8678
|
+
init_logger();
|
|
8679
|
+
var logger72 = createLogger("Google Chat");
|
|
8680
|
+
var GCHAT_SCOPES = [
|
|
8681
|
+
"https://www.googleapis.com/auth/chat.messages",
|
|
8682
|
+
"https://www.googleapis.com/auth/chat.spaces.readonly"
|
|
8683
|
+
];
|
|
8684
|
+
var GCHAT_TOOLS = [
|
|
8685
|
+
"gchat_delete_message",
|
|
8686
|
+
"gchat_get_message",
|
|
8687
|
+
"gchat_get_space",
|
|
8688
|
+
"gchat_list_members",
|
|
8689
|
+
"gchat_list_messages",
|
|
8690
|
+
"gchat_list_spaces",
|
|
8691
|
+
"gchat_send_message",
|
|
8692
|
+
"gchat_update_message"
|
|
8693
|
+
];
|
|
8694
|
+
function gchatIntegration(config = {}) {
|
|
8695
|
+
const oauth = {
|
|
8696
|
+
provider: "gchat",
|
|
8697
|
+
clientId: config.clientId ?? getEnv("GCHAT_CLIENT_ID"),
|
|
8698
|
+
clientSecret: config.clientSecret ?? getEnv("GCHAT_CLIENT_SECRET"),
|
|
8699
|
+
scopes: config.scopes ?? [...GCHAT_SCOPES],
|
|
8700
|
+
optionalScopes: config.optionalScopes,
|
|
8701
|
+
redirectUri: config.redirectUri,
|
|
8702
|
+
config: {
|
|
8703
|
+
authorization_endpoint: "https://accounts.google.com/o/oauth2/v2/auth",
|
|
8704
|
+
token_endpoint: "https://oauth2.googleapis.com/token",
|
|
8705
|
+
response_type: "code",
|
|
8706
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
8707
|
+
}
|
|
8708
|
+
};
|
|
8709
|
+
return {
|
|
8710
|
+
id: "gchat",
|
|
8711
|
+
name: "Google Chat",
|
|
8712
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/google_chat.png",
|
|
8713
|
+
description: "List Google Chat spaces and manage messages and memberships",
|
|
8714
|
+
category: "Communication",
|
|
8715
|
+
tools: [...GCHAT_TOOLS],
|
|
8716
|
+
oauth,
|
|
8717
|
+
async onInit(_client) {
|
|
8718
|
+
logger72.debug("Google Chat integration initialized");
|
|
8719
|
+
},
|
|
8720
|
+
async onAfterConnect(_client) {
|
|
8721
|
+
logger72.debug("Google Chat integration connected");
|
|
8722
|
+
}
|
|
8723
|
+
};
|
|
8724
|
+
}
|
|
8725
|
+
// src/integrations/shopify.ts
|
|
8726
|
+
init_logger();
|
|
8727
|
+
var logger73 = createLogger("Shopify");
|
|
8728
|
+
var SHOPIFY_SCOPES = [
|
|
8729
|
+
"read_products",
|
|
8730
|
+
"write_products",
|
|
8731
|
+
"read_orders",
|
|
8732
|
+
"write_orders",
|
|
8733
|
+
"read_customers",
|
|
8734
|
+
"write_customers",
|
|
8735
|
+
"read_inventory",
|
|
8736
|
+
"write_inventory",
|
|
8737
|
+
"read_content",
|
|
8738
|
+
"write_content",
|
|
8739
|
+
"read_fulfillments",
|
|
8740
|
+
"write_fulfillments",
|
|
8741
|
+
"read_analytics"
|
|
8742
|
+
];
|
|
8743
|
+
var SHOPIFY_TOOLS = [
|
|
8744
|
+
"shopify_admin_graphql",
|
|
8745
|
+
"shopify_rest_get",
|
|
8746
|
+
"shopify_rest_post",
|
|
8747
|
+
"shopify_rest_put",
|
|
8748
|
+
"shopify_rest_delete",
|
|
8749
|
+
"shopify_get_shop"
|
|
8750
|
+
];
|
|
8751
|
+
function shopifyIntegration(config = {}) {
|
|
8752
|
+
const oauth = {
|
|
8753
|
+
provider: "shopify",
|
|
8754
|
+
clientId: config.clientId ?? getEnv("SHOPIFY_CLIENT_ID"),
|
|
8755
|
+
clientSecret: config.clientSecret ?? getEnv("SHOPIFY_CLIENT_SECRET"),
|
|
8756
|
+
scopes: config.scopes ?? [...SHOPIFY_SCOPES],
|
|
8757
|
+
optionalScopes: config.optionalScopes,
|
|
8758
|
+
redirectUri: config.redirectUri,
|
|
8759
|
+
config: {
|
|
8760
|
+
authorization_endpoint: "https://shopify.oauth.placeholder/admin/oauth/authorize",
|
|
8761
|
+
token_endpoint: "https://shopify.oauth.placeholder/admin/oauth/access_token",
|
|
8762
|
+
response_type: "code",
|
|
8763
|
+
grant_types_supported: ["authorization_code"],
|
|
8764
|
+
subdomain: config.shop ?? getEnv("SHOPIFY_SHOP")
|
|
8765
|
+
}
|
|
8766
|
+
};
|
|
8767
|
+
return {
|
|
8768
|
+
id: "shopify",
|
|
8769
|
+
name: "Shopify",
|
|
8770
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/shopify.png",
|
|
8771
|
+
description: "Route-complete Shopify Admin access through GraphQL and REST tools",
|
|
8772
|
+
category: "Business",
|
|
8773
|
+
tools: [...SHOPIFY_TOOLS],
|
|
8774
|
+
oauth,
|
|
8775
|
+
async onInit(_client) {
|
|
8776
|
+
logger73.debug("Shopify integration initialized");
|
|
8777
|
+
},
|
|
8778
|
+
async onAfterConnect(_client) {
|
|
8779
|
+
logger73.debug("Shopify integration connected");
|
|
8780
|
+
}
|
|
8781
|
+
};
|
|
8782
|
+
}
|
|
8783
|
+
// src/integrations/convex.ts
|
|
8784
|
+
init_logger();
|
|
8785
|
+
var logger74 = createLogger("Convex");
|
|
8786
|
+
var CONVEX_TOOLS = [
|
|
8787
|
+
"convex_management_token_details",
|
|
8788
|
+
"convex_management_list_projects",
|
|
8789
|
+
"convex_management_create_project",
|
|
8790
|
+
"convex_management_get_project",
|
|
8791
|
+
"convex_management_delete_project",
|
|
8792
|
+
"convex_management_list_deployments",
|
|
8793
|
+
"convex_management_list_team_deployments",
|
|
8794
|
+
"convex_management_get_deployment",
|
|
8795
|
+
"convex_management_create_deployment",
|
|
8796
|
+
"convex_management_update_deployment",
|
|
8797
|
+
"convex_management_delete_deployment",
|
|
8798
|
+
"convex_management_list_deployment_regions",
|
|
8799
|
+
"convex_management_list_deployment_classes",
|
|
8800
|
+
"convex_management_list_default_environment_variables",
|
|
8801
|
+
"convex_management_update_default_environment_variables",
|
|
8802
|
+
"convex_deployment_list_environment_variables",
|
|
8803
|
+
"convex_deployment_update_environment_variables"
|
|
8804
|
+
];
|
|
8805
|
+
function convexIntegration(options = {}) {
|
|
8806
|
+
const accessToken = options.accessToken ?? getEnv("CONVEX_ACCESS_TOKEN");
|
|
8807
|
+
if (!accessToken) {
|
|
8808
|
+
throw new Error("convexIntegration requires accessToken or CONVEX_ACCESS_TOKEN");
|
|
8809
|
+
}
|
|
8810
|
+
return {
|
|
8811
|
+
id: "convex",
|
|
8812
|
+
name: "Convex",
|
|
8813
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/convex.png",
|
|
8814
|
+
description: "Manage Convex projects, deployments, regions, classes, and environment variables",
|
|
8815
|
+
category: "Infrastructure",
|
|
8816
|
+
tools: [...CONVEX_TOOLS],
|
|
8817
|
+
authType: "apiKey",
|
|
8818
|
+
getHeaders() {
|
|
8819
|
+
return { Authorization: `Bearer ${accessToken}` };
|
|
8820
|
+
},
|
|
8821
|
+
async onInit(_client) {
|
|
8822
|
+
logger74.debug("Convex integration initialized");
|
|
8823
|
+
},
|
|
8824
|
+
async onAfterConnect(_client) {
|
|
8825
|
+
logger74.debug("Convex integration connected");
|
|
8826
|
+
}
|
|
8827
|
+
};
|
|
8828
|
+
}
|
|
8829
|
+
// src/integrations/etoro.ts
|
|
8830
|
+
init_logger();
|
|
8831
|
+
var logger75 = createLogger("eToro");
|
|
8832
|
+
var ETORO_TOOLS = [
|
|
8833
|
+
"etoro_get_identity",
|
|
8834
|
+
"etoro_get_portfolio",
|
|
8835
|
+
"etoro_search_instruments",
|
|
8836
|
+
"etoro_get_instrument_rates",
|
|
8837
|
+
"etoro_list_trade_history",
|
|
8838
|
+
"etoro_list_watchlists"
|
|
8839
|
+
];
|
|
8840
|
+
function etoroIntegration(options = {}) {
|
|
8841
|
+
const publicApiKey = options.publicApiKey ?? getEnv("ETORO_PUBLIC_API_KEY");
|
|
8842
|
+
const userKey = options.userKey ?? getEnv("ETORO_USER_KEY");
|
|
8843
|
+
if (!publicApiKey || !userKey) {
|
|
8844
|
+
throw new Error("etoroIntegration requires publicApiKey/userKey or ETORO_PUBLIC_API_KEY/ETORO_USER_KEY");
|
|
8845
|
+
}
|
|
8846
|
+
return {
|
|
8847
|
+
id: "etoro",
|
|
8848
|
+
name: "eToro",
|
|
8849
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/etoro.png",
|
|
8850
|
+
description: "Access eToro Public API identity, portfolio, market data, trade history, and watchlists",
|
|
8851
|
+
category: "Finance",
|
|
8852
|
+
tools: [...ETORO_TOOLS],
|
|
8853
|
+
authType: "apiKey",
|
|
8854
|
+
getHeaders() {
|
|
8855
|
+
return {
|
|
8856
|
+
"X-Api-Key": publicApiKey,
|
|
8857
|
+
"X-User-Key": userKey
|
|
8858
|
+
};
|
|
8859
|
+
},
|
|
8860
|
+
async onInit(_client) {
|
|
8861
|
+
logger75.debug("eToro integration initialized");
|
|
8862
|
+
},
|
|
8863
|
+
async onAfterConnect(_client) {
|
|
8864
|
+
logger75.debug("eToro integration connected");
|
|
8865
|
+
}
|
|
8866
|
+
};
|
|
8867
|
+
}
|
|
8868
|
+
// src/integrations/alpaca.ts
|
|
8869
|
+
init_logger();
|
|
8870
|
+
var logger76 = createLogger("Alpaca");
|
|
8871
|
+
var ALPACA_TOOLS = [
|
|
8872
|
+
"alpaca_get_account",
|
|
8873
|
+
"alpaca_list_positions",
|
|
8874
|
+
"alpaca_get_position",
|
|
8875
|
+
"alpaca_list_orders",
|
|
8876
|
+
"alpaca_get_order",
|
|
8877
|
+
"alpaca_create_order",
|
|
8878
|
+
"alpaca_cancel_order",
|
|
8879
|
+
"alpaca_cancel_all_orders",
|
|
8880
|
+
"alpaca_get_clock",
|
|
8881
|
+
"alpaca_get_calendar",
|
|
8882
|
+
"alpaca_list_assets",
|
|
8883
|
+
"alpaca_get_asset",
|
|
8884
|
+
"alpaca_get_portfolio_history"
|
|
8885
|
+
];
|
|
8886
|
+
function alpacaIntegration(options = {}) {
|
|
8887
|
+
const apiKeyId = options.apiKeyId ?? getEnv("ALPACA_API_KEY_ID");
|
|
8888
|
+
const apiSecretKey = options.apiSecretKey ?? getEnv("ALPACA_API_SECRET_KEY");
|
|
8889
|
+
if (!apiKeyId || !apiSecretKey) {
|
|
8890
|
+
throw new Error("alpacaIntegration requires apiKeyId and apiSecretKey (or ALPACA_API_KEY_ID and ALPACA_API_SECRET_KEY)");
|
|
8891
|
+
}
|
|
8892
|
+
const environment = options.environment ?? "paper";
|
|
8893
|
+
return {
|
|
8894
|
+
id: "alpaca",
|
|
8895
|
+
name: "Alpaca",
|
|
8896
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/alpaca.png",
|
|
8897
|
+
description: "Trade US equities and crypto with Alpaca: account, orders, positions, clock, and assets",
|
|
8898
|
+
category: "Finance",
|
|
8899
|
+
tools: [...ALPACA_TOOLS],
|
|
8900
|
+
authType: "apiKey",
|
|
8901
|
+
getHeaders() {
|
|
8902
|
+
const headers = {
|
|
8903
|
+
"APCA-API-KEY-ID": apiKeyId,
|
|
8904
|
+
"APCA-API-SECRET-KEY": apiSecretKey
|
|
8905
|
+
};
|
|
8906
|
+
if (environment === "live") {
|
|
8907
|
+
headers["X-Integrate-Alpaca-Environment"] = "live";
|
|
8908
|
+
}
|
|
8909
|
+
return headers;
|
|
8910
|
+
},
|
|
8911
|
+
async onInit(_client) {
|
|
8912
|
+
logger76.debug("Alpaca integration initialized");
|
|
8913
|
+
},
|
|
8914
|
+
async onAfterConnect(_client) {
|
|
8915
|
+
logger76.debug("Alpaca integration connected");
|
|
8916
|
+
}
|
|
8917
|
+
};
|
|
8918
|
+
}
|
|
8919
|
+
// src/integrations/neon.ts
|
|
8920
|
+
init_logger();
|
|
8921
|
+
var logger77 = createLogger("Neon");
|
|
8922
|
+
var NEON_TOOLS = [
|
|
8923
|
+
"neon_list_api_keys",
|
|
8924
|
+
"neon_create_api_key",
|
|
8925
|
+
"neon_revoke_api_key",
|
|
8926
|
+
"neon_list_organizations",
|
|
8927
|
+
"neon_list_projects",
|
|
8928
|
+
"neon_list_shared_projects",
|
|
8929
|
+
"neon_create_project",
|
|
8930
|
+
"neon_get_project",
|
|
8931
|
+
"neon_update_project",
|
|
8932
|
+
"neon_delete_project",
|
|
8933
|
+
"neon_recover_project",
|
|
8934
|
+
"neon_list_branches",
|
|
8935
|
+
"neon_create_branch",
|
|
8936
|
+
"neon_get_branch",
|
|
8937
|
+
"neon_delete_branch",
|
|
8938
|
+
"neon_list_operations",
|
|
8939
|
+
"neon_get_operation",
|
|
8940
|
+
"neon_get_connection_uri"
|
|
8941
|
+
];
|
|
8942
|
+
function neonIntegration(options = {}) {
|
|
8943
|
+
const apiKey = options.apiKey ?? getEnv("NEON_API_KEY");
|
|
8944
|
+
if (!apiKey) {
|
|
8945
|
+
throw new Error("neonIntegration requires apiKey or NEON_API_KEY environment variable");
|
|
8946
|
+
}
|
|
8947
|
+
return {
|
|
8948
|
+
id: "neon",
|
|
8949
|
+
name: "Neon",
|
|
8950
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/neon.png",
|
|
8951
|
+
description: "Manage Neon Postgres projects, branches, API keys, and connection strings",
|
|
8952
|
+
category: "Infrastructure",
|
|
8953
|
+
tools: [...NEON_TOOLS],
|
|
8954
|
+
authType: "apiKey",
|
|
8955
|
+
getHeaders() {
|
|
8956
|
+
return {
|
|
8957
|
+
Authorization: `Bearer ${apiKey}`
|
|
8958
|
+
};
|
|
8959
|
+
},
|
|
8960
|
+
async onInit(_client) {
|
|
8961
|
+
logger77.debug("Neon integration initialized");
|
|
8962
|
+
},
|
|
8963
|
+
async onAfterConnect(_client) {
|
|
8964
|
+
logger77.debug("Neon integration connected");
|
|
8965
|
+
}
|
|
8966
|
+
};
|
|
8967
|
+
}
|
|
8968
|
+
// src/integrations/granola.ts
|
|
8969
|
+
var GRANOLA_TOOLS = [
|
|
8970
|
+
"granola_list_notes",
|
|
8971
|
+
"granola_get_note",
|
|
8972
|
+
"granola_list_folders"
|
|
8973
|
+
];
|
|
8974
|
+
function granolaIntegration(options) {
|
|
8975
|
+
if (!options.apiKey) {
|
|
8976
|
+
throw new Error("granolaIntegration requires an apiKey");
|
|
8977
|
+
}
|
|
8978
|
+
return {
|
|
8979
|
+
id: "granola",
|
|
8980
|
+
name: "Granola",
|
|
8981
|
+
tools: [...GRANOLA_TOOLS],
|
|
8982
|
+
authType: "apiKey",
|
|
8983
|
+
getHeaders() {
|
|
8984
|
+
return {
|
|
8985
|
+
Authorization: `Bearer ${options.apiKey}`
|
|
8986
|
+
};
|
|
8987
|
+
}
|
|
8988
|
+
};
|
|
8989
|
+
}
|
|
8990
|
+
// src/integrations/mercury.ts
|
|
8991
|
+
var MERCURY_TOOLS = [
|
|
8992
|
+
"mercury_get_organization",
|
|
8993
|
+
"mercury_list_accounts",
|
|
8994
|
+
"mercury_get_account",
|
|
8995
|
+
"mercury_get_account_cards",
|
|
8996
|
+
"mercury_list_account_transactions",
|
|
8997
|
+
"mercury_get_account_transaction",
|
|
8998
|
+
"mercury_list_account_statements",
|
|
8999
|
+
"mercury_download_statement_pdf",
|
|
9000
|
+
"mercury_list_transactions",
|
|
9001
|
+
"mercury_get_transaction",
|
|
9002
|
+
"mercury_update_transaction",
|
|
9003
|
+
"mercury_upload_transaction_attachment",
|
|
9004
|
+
"mercury_list_cards",
|
|
9005
|
+
"mercury_get_card",
|
|
9006
|
+
"mercury_create_card",
|
|
9007
|
+
"mercury_update_card",
|
|
9008
|
+
"mercury_freeze_card",
|
|
9009
|
+
"mercury_unfreeze_card",
|
|
9010
|
+
"mercury_cancel_card",
|
|
9011
|
+
"mercury_list_categories",
|
|
9012
|
+
"mercury_create_category",
|
|
9013
|
+
"mercury_update_category",
|
|
9014
|
+
"mercury_list_credit_accounts",
|
|
9015
|
+
"mercury_list_users",
|
|
9016
|
+
"mercury_get_user",
|
|
9017
|
+
"mercury_list_recipients",
|
|
9018
|
+
"mercury_get_recipient",
|
|
9019
|
+
"mercury_create_recipient",
|
|
9020
|
+
"mercury_update_recipient",
|
|
9021
|
+
"mercury_list_recipient_attachments",
|
|
9022
|
+
"mercury_upload_recipient_attachment",
|
|
9023
|
+
"mercury_list_customers",
|
|
9024
|
+
"mercury_get_customer",
|
|
9025
|
+
"mercury_create_customer",
|
|
9026
|
+
"mercury_update_customer",
|
|
9027
|
+
"mercury_delete_customer",
|
|
9028
|
+
"mercury_list_invoices",
|
|
9029
|
+
"mercury_get_invoice",
|
|
9030
|
+
"mercury_create_invoice",
|
|
9031
|
+
"mercury_update_invoice",
|
|
9032
|
+
"mercury_cancel_invoice",
|
|
9033
|
+
"mercury_list_invoice_attachments",
|
|
9034
|
+
"mercury_get_attachment",
|
|
9035
|
+
"mercury_download_invoice_pdf",
|
|
9036
|
+
"mercury_list_treasury_accounts",
|
|
9037
|
+
"mercury_list_treasury_transactions",
|
|
9038
|
+
"mercury_list_treasury_statements",
|
|
9039
|
+
"mercury_list_events",
|
|
9040
|
+
"mercury_get_event",
|
|
9041
|
+
"mercury_list_send_money_requests",
|
|
9042
|
+
"mercury_get_send_money_request",
|
|
9043
|
+
"mercury_list_safe_requests",
|
|
9044
|
+
"mercury_get_safe_request",
|
|
9045
|
+
"mercury_download_safe_request_document",
|
|
9046
|
+
"mercury_list_webhooks",
|
|
9047
|
+
"mercury_get_webhook",
|
|
9048
|
+
"mercury_create_webhook",
|
|
9049
|
+
"mercury_update_webhook",
|
|
9050
|
+
"mercury_delete_webhook",
|
|
9051
|
+
"mercury_verify_webhook",
|
|
9052
|
+
"mercury_create_internal_transfer",
|
|
6824
9053
|
"mercury_send_money",
|
|
6825
9054
|
"mercury_request_send_money"
|
|
6826
9055
|
];
|
|
@@ -6840,6 +9069,746 @@ function mercuryIntegration(options) {
|
|
|
6840
9069
|
}
|
|
6841
9070
|
};
|
|
6842
9071
|
}
|
|
9072
|
+
// src/integrations/aws.ts
|
|
9073
|
+
init_logger();
|
|
9074
|
+
var logger78 = createLogger("AWS");
|
|
9075
|
+
var AWS_TOOLS = [
|
|
9076
|
+
"aws_sts_get_caller_identity",
|
|
9077
|
+
"aws_ec2_describe_regions",
|
|
9078
|
+
"aws_ec2_describe_instances",
|
|
9079
|
+
"aws_s3_list_buckets",
|
|
9080
|
+
"aws_lambda_list_functions",
|
|
9081
|
+
"aws_cloudformation_list_stacks",
|
|
9082
|
+
"aws_iam_list_account_aliases"
|
|
9083
|
+
];
|
|
9084
|
+
function resolveCredentials(opts) {
|
|
9085
|
+
const c = opts.credentials;
|
|
9086
|
+
const accessKeyId = c?.accessKeyId ?? getEnv("AWS_ACCESS_KEY_ID");
|
|
9087
|
+
const secretAccessKey = c?.secretAccessKey ?? getEnv("AWS_SECRET_ACCESS_KEY");
|
|
9088
|
+
if (!accessKeyId || !secretAccessKey) {
|
|
9089
|
+
throw new Error("awsIntegration requires accessKeyId and secretAccessKey (or AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY)");
|
|
9090
|
+
}
|
|
9091
|
+
return {
|
|
9092
|
+
accessKeyId,
|
|
9093
|
+
secretAccessKey,
|
|
9094
|
+
sessionToken: c?.sessionToken ?? getEnv("AWS_SESSION_TOKEN"),
|
|
9095
|
+
region: c?.region ?? getEnv("AWS_REGION") ?? getEnv("AWS_DEFAULT_REGION")
|
|
9096
|
+
};
|
|
9097
|
+
}
|
|
9098
|
+
function encodeAwsCredentialsPayload(c) {
|
|
9099
|
+
const o = {
|
|
9100
|
+
accessKeyId: c.accessKeyId,
|
|
9101
|
+
secretAccessKey: c.secretAccessKey
|
|
9102
|
+
};
|
|
9103
|
+
if (c.sessionToken) {
|
|
9104
|
+
o.sessionToken = c.sessionToken;
|
|
9105
|
+
}
|
|
9106
|
+
if (c.region) {
|
|
9107
|
+
o.region = c.region;
|
|
9108
|
+
}
|
|
9109
|
+
return JSON.stringify(o);
|
|
9110
|
+
}
|
|
9111
|
+
function awsIntegration(options = {}) {
|
|
9112
|
+
const creds = resolveCredentials(options);
|
|
9113
|
+
return {
|
|
9114
|
+
id: "aws",
|
|
9115
|
+
name: "Amazon Web Services",
|
|
9116
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/aws.png",
|
|
9117
|
+
description: "Query AWS accounts and resources using SigV4 (control-plane read APIs: STS, EC2, S3, Lambda, CloudFormation, IAM).",
|
|
9118
|
+
category: "Infrastructure",
|
|
9119
|
+
tools: [...AWS_TOOLS],
|
|
9120
|
+
authType: "apiKey",
|
|
9121
|
+
getHeaders() {
|
|
9122
|
+
return {
|
|
9123
|
+
Authorization: `Bearer ${encodeAwsCredentialsPayload(creds)}`
|
|
9124
|
+
};
|
|
9125
|
+
},
|
|
9126
|
+
async onInit(_client) {
|
|
9127
|
+
logger78.debug("AWS integration initialized");
|
|
9128
|
+
},
|
|
9129
|
+
async onAfterConnect(_client) {
|
|
9130
|
+
logger78.debug("AWS integration connected");
|
|
9131
|
+
}
|
|
9132
|
+
};
|
|
9133
|
+
}
|
|
9134
|
+
// src/integrations/wix.ts
|
|
9135
|
+
init_logger();
|
|
9136
|
+
var logger79 = createLogger("Wix");
|
|
9137
|
+
var WIX_TOOLS = [
|
|
9138
|
+
"wix_query_products",
|
|
9139
|
+
"wix_get_product",
|
|
9140
|
+
"wix_create_product",
|
|
9141
|
+
"wix_update_product",
|
|
9142
|
+
"wix_search_orders",
|
|
9143
|
+
"wix_get_order"
|
|
9144
|
+
];
|
|
9145
|
+
function wixIntegration(options = {}) {
|
|
9146
|
+
const apiKey = options.apiKey ?? getEnv("WIX_API_KEY");
|
|
9147
|
+
const siteId = options.siteId ?? getEnv("WIX_SITE_ID");
|
|
9148
|
+
if (!apiKey) {
|
|
9149
|
+
throw new Error("wixIntegration requires apiKey or WIX_API_KEY environment variable");
|
|
9150
|
+
}
|
|
9151
|
+
if (!siteId) {
|
|
9152
|
+
throw new Error("wixIntegration requires siteId or WIX_SITE_ID environment variable");
|
|
9153
|
+
}
|
|
9154
|
+
return {
|
|
9155
|
+
id: "wix",
|
|
9156
|
+
name: "Wix",
|
|
9157
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/wix.png",
|
|
9158
|
+
description: "Manage Wix site stores, products, and e-commerce orders via REST",
|
|
9159
|
+
category: "Business",
|
|
9160
|
+
tools: [...WIX_TOOLS],
|
|
9161
|
+
authType: "apiKey",
|
|
9162
|
+
getHeaders() {
|
|
9163
|
+
return {
|
|
9164
|
+
Authorization: apiKey,
|
|
9165
|
+
"wix-site-id": siteId
|
|
9166
|
+
};
|
|
9167
|
+
},
|
|
9168
|
+
async onInit(_client) {
|
|
9169
|
+
logger79.debug("Wix integration initialized");
|
|
9170
|
+
},
|
|
9171
|
+
async onAfterConnect(_client) {
|
|
9172
|
+
logger79.debug("Wix integration connected");
|
|
9173
|
+
}
|
|
9174
|
+
};
|
|
9175
|
+
}
|
|
9176
|
+
// src/integrations/mailchimp.ts
|
|
9177
|
+
var MAILCHIMP_TOOLS = [
|
|
9178
|
+
"mailchimp_ping",
|
|
9179
|
+
"mailchimp_list_audiences",
|
|
9180
|
+
"mailchimp_get_audience",
|
|
9181
|
+
"mailchimp_list_members",
|
|
9182
|
+
"mailchimp_get_member",
|
|
9183
|
+
"mailchimp_add_or_update_member",
|
|
9184
|
+
"mailchimp_archive_member",
|
|
9185
|
+
"mailchimp_list_campaigns"
|
|
9186
|
+
];
|
|
9187
|
+
function mailchimpIntegration(config = {}) {
|
|
9188
|
+
const oauth = {
|
|
9189
|
+
provider: "mailchimp",
|
|
9190
|
+
clientId: config.clientId ?? getEnv("MAILCHIMP_CLIENT_ID"),
|
|
9191
|
+
clientSecret: config.clientSecret ?? getEnv("MAILCHIMP_CLIENT_SECRET"),
|
|
9192
|
+
scopes: config.scopes ?? [],
|
|
9193
|
+
optionalScopes: config.optionalScopes,
|
|
9194
|
+
redirectUri: config.redirectUri
|
|
9195
|
+
};
|
|
9196
|
+
return {
|
|
9197
|
+
id: "mailchimp",
|
|
9198
|
+
name: "Mailchimp",
|
|
9199
|
+
tools: [...MAILCHIMP_TOOLS],
|
|
9200
|
+
oauth
|
|
9201
|
+
};
|
|
9202
|
+
}
|
|
9203
|
+
// src/integrations/monday.ts
|
|
9204
|
+
init_logger();
|
|
9205
|
+
var logger80 = createLogger("Monday");
|
|
9206
|
+
var MONDAY_TOOLS = [
|
|
9207
|
+
"monday_me",
|
|
9208
|
+
"monday_list_workspaces",
|
|
9209
|
+
"monday_list_boards",
|
|
9210
|
+
"monday_get_board",
|
|
9211
|
+
"monday_list_board_items",
|
|
9212
|
+
"monday_next_items_page",
|
|
9213
|
+
"monday_get_items",
|
|
9214
|
+
"monday_create_item",
|
|
9215
|
+
"monday_update_item_columns",
|
|
9216
|
+
"monday_create_update",
|
|
9217
|
+
"monday_delete_item"
|
|
9218
|
+
];
|
|
9219
|
+
function mondayIntegration(config = {}) {
|
|
9220
|
+
const oauth = {
|
|
9221
|
+
provider: "monday",
|
|
9222
|
+
clientId: config.clientId ?? getEnv("MONDAY_CLIENT_ID"),
|
|
9223
|
+
clientSecret: config.clientSecret ?? getEnv("MONDAY_CLIENT_SECRET"),
|
|
9224
|
+
scopes: config.scopes ?? [],
|
|
9225
|
+
redirectUri: config.redirectUri,
|
|
9226
|
+
config: {
|
|
9227
|
+
authorization_endpoint: "https://auth.monday.com/oauth2/authorize",
|
|
9228
|
+
token_endpoint: "https://auth.monday.com/oauth2/token",
|
|
9229
|
+
response_type: "code",
|
|
9230
|
+
grant_types_supported: ["authorization_code"]
|
|
9231
|
+
}
|
|
9232
|
+
};
|
|
9233
|
+
return {
|
|
9234
|
+
id: "monday",
|
|
9235
|
+
name: "Monday.com",
|
|
9236
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/monday.png",
|
|
9237
|
+
description: "Manage Monday.com boards, items, columns, and updates",
|
|
9238
|
+
category: "Productivity",
|
|
9239
|
+
tools: [...MONDAY_TOOLS],
|
|
9240
|
+
oauth,
|
|
9241
|
+
async onInit(_client) {
|
|
9242
|
+
logger80.debug("Monday.com integration initialized");
|
|
9243
|
+
},
|
|
9244
|
+
async onAfterConnect(_client) {
|
|
9245
|
+
logger80.debug("Monday.com integration connected");
|
|
9246
|
+
}
|
|
9247
|
+
};
|
|
9248
|
+
}
|
|
9249
|
+
// src/integrations/binance.ts
|
|
9250
|
+
init_logger();
|
|
9251
|
+
var logger81 = createLogger("Binance");
|
|
9252
|
+
var BINANCE_TOOLS = [
|
|
9253
|
+
"binance_ping",
|
|
9254
|
+
"binance_get_server_time",
|
|
9255
|
+
"binance_get_exchange_info",
|
|
9256
|
+
"binance_get_ticker_price",
|
|
9257
|
+
"binance_get_ticker_24hr",
|
|
9258
|
+
"binance_get_order_book",
|
|
9259
|
+
"binance_get_recent_trades",
|
|
9260
|
+
"binance_get_klines",
|
|
9261
|
+
"binance_get_account",
|
|
9262
|
+
"binance_get_open_orders",
|
|
9263
|
+
"binance_get_all_orders",
|
|
9264
|
+
"binance_get_my_trades"
|
|
9265
|
+
];
|
|
9266
|
+
function normalizeBaseUrl(url) {
|
|
9267
|
+
const u = (url ?? "").trim().replace(/\/+$/, "");
|
|
9268
|
+
return u || "https://api.binance.com";
|
|
9269
|
+
}
|
|
9270
|
+
function binanceIntegration(options = {}) {
|
|
9271
|
+
const apiKey = options.apiKey ?? getEnv("BINANCE_API_KEY");
|
|
9272
|
+
const secret = options.secret ?? getEnv("BINANCE_SECRET_KEY");
|
|
9273
|
+
if (!apiKey || !secret) {
|
|
9274
|
+
throw new Error("binanceIntegration requires apiKey and secret (or BINANCE_API_KEY and BINANCE_SECRET_KEY environment variables)");
|
|
9275
|
+
}
|
|
9276
|
+
const baseUrl = normalizeBaseUrl(options.baseUrl);
|
|
9277
|
+
return {
|
|
9278
|
+
id: "binance",
|
|
9279
|
+
name: "Binance",
|
|
9280
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/binance.png",
|
|
9281
|
+
description: "Read Binance Spot market data and account information with API keys scoped to reading only",
|
|
9282
|
+
category: "Finance",
|
|
9283
|
+
tools: [...BINANCE_TOOLS],
|
|
9284
|
+
authType: "apiKey",
|
|
9285
|
+
getHeaders() {
|
|
9286
|
+
return {
|
|
9287
|
+
Authorization: `Bearer ${apiKey}`,
|
|
9288
|
+
"X-MBX-APIKEY": apiKey,
|
|
9289
|
+
"X-Binance-Api-Secret": secret,
|
|
9290
|
+
"X-Binance-Base-Url": baseUrl
|
|
9291
|
+
};
|
|
9292
|
+
},
|
|
9293
|
+
async onInit(_client) {
|
|
9294
|
+
logger81.debug("Binance integration initialized");
|
|
9295
|
+
},
|
|
9296
|
+
async onAfterConnect(_client) {
|
|
9297
|
+
logger81.debug("Binance integration connected");
|
|
9298
|
+
}
|
|
9299
|
+
};
|
|
9300
|
+
}
|
|
9301
|
+
// src/integrations/canva.ts
|
|
9302
|
+
init_logger();
|
|
9303
|
+
var logger82 = createLogger("Canva");
|
|
9304
|
+
var CANVA_TOOLS = [
|
|
9305
|
+
"canva_get_me",
|
|
9306
|
+
"canva_get_profile",
|
|
9307
|
+
"canva_list_designs",
|
|
9308
|
+
"canva_get_design",
|
|
9309
|
+
"canva_get_design_export_formats",
|
|
9310
|
+
"canva_create_design",
|
|
9311
|
+
"canva_get_folder",
|
|
9312
|
+
"canva_list_folder_items",
|
|
9313
|
+
"canva_create_folder",
|
|
9314
|
+
"canva_update_folder",
|
|
9315
|
+
"canva_delete_folder",
|
|
9316
|
+
"canva_list_brand_templates",
|
|
9317
|
+
"canva_get_brand_template",
|
|
9318
|
+
"canva_create_export_job",
|
|
9319
|
+
"canva_get_export_job"
|
|
9320
|
+
];
|
|
9321
|
+
function canvaIntegration(config = {}) {
|
|
9322
|
+
const oauth = {
|
|
9323
|
+
provider: "canva",
|
|
9324
|
+
clientId: config.clientId ?? getEnv("CANVA_CLIENT_ID"),
|
|
9325
|
+
clientSecret: config.clientSecret ?? getEnv("CANVA_CLIENT_SECRET"),
|
|
9326
|
+
scopes: config.scopes,
|
|
9327
|
+
optionalScopes: config.optionalScopes,
|
|
9328
|
+
redirectUri: config.redirectUri,
|
|
9329
|
+
config: { ...config }
|
|
9330
|
+
};
|
|
9331
|
+
return {
|
|
9332
|
+
id: "canva",
|
|
9333
|
+
name: "Canva",
|
|
9334
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/canva.png",
|
|
9335
|
+
description: "List and create Canva designs, manage folders, and export assets",
|
|
9336
|
+
category: "Productivity",
|
|
9337
|
+
tools: [...CANVA_TOOLS],
|
|
9338
|
+
oauth,
|
|
9339
|
+
async onInit(_client) {
|
|
9340
|
+
logger82.debug("Canva integration initialized");
|
|
9341
|
+
},
|
|
9342
|
+
async onAfterConnect(_client) {
|
|
9343
|
+
logger82.debug("Canva integration connected");
|
|
9344
|
+
}
|
|
9345
|
+
};
|
|
9346
|
+
}
|
|
9347
|
+
// src/integrations/clerk.ts
|
|
9348
|
+
init_logger();
|
|
9349
|
+
var logger83 = createLogger("Clerk");
|
|
9350
|
+
var CLERK_TOOLS = [
|
|
9351
|
+
"clerk_list_users",
|
|
9352
|
+
"clerk_get_user",
|
|
9353
|
+
"clerk_create_user",
|
|
9354
|
+
"clerk_update_user",
|
|
9355
|
+
"clerk_delete_user",
|
|
9356
|
+
"clerk_list_organizations",
|
|
9357
|
+
"clerk_get_organization",
|
|
9358
|
+
"clerk_create_organization",
|
|
9359
|
+
"clerk_update_organization",
|
|
9360
|
+
"clerk_delete_organization",
|
|
9361
|
+
"clerk_list_sessions",
|
|
9362
|
+
"clerk_get_session",
|
|
9363
|
+
"clerk_revoke_session"
|
|
9364
|
+
];
|
|
9365
|
+
function clerkIntegration(options = {}) {
|
|
9366
|
+
const secretKey = options.secretKey ?? getEnv("CLERK_SECRET_KEY");
|
|
9367
|
+
if (!secretKey) {
|
|
9368
|
+
throw new Error("clerkIntegration requires secretKey or CLERK_SECRET_KEY environment variable");
|
|
9369
|
+
}
|
|
9370
|
+
return {
|
|
9371
|
+
id: "clerk",
|
|
9372
|
+
name: "Clerk",
|
|
9373
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/clerk.png",
|
|
9374
|
+
description: "Manage Clerk users, organizations, and sessions via the Backend API",
|
|
9375
|
+
category: "Business",
|
|
9376
|
+
tools: [...CLERK_TOOLS],
|
|
9377
|
+
authType: "apiKey",
|
|
9378
|
+
getHeaders() {
|
|
9379
|
+
return {
|
|
9380
|
+
Authorization: `Bearer ${secretKey}`
|
|
9381
|
+
};
|
|
9382
|
+
},
|
|
9383
|
+
async onInit(_client) {
|
|
9384
|
+
logger83.debug("Clerk integration initialized");
|
|
9385
|
+
},
|
|
9386
|
+
async onAfterConnect(_client) {
|
|
9387
|
+
logger83.debug("Clerk integration connected");
|
|
9388
|
+
}
|
|
9389
|
+
};
|
|
9390
|
+
}
|
|
9391
|
+
// src/integrations/clickup.ts
|
|
9392
|
+
init_logger();
|
|
9393
|
+
var logger84 = createLogger("ClickUp");
|
|
9394
|
+
var CLICKUP_TOOLS = [
|
|
9395
|
+
"clickup_get_authorized_user",
|
|
9396
|
+
"clickup_list_teams",
|
|
9397
|
+
"clickup_list_spaces",
|
|
9398
|
+
"clickup_list_folders",
|
|
9399
|
+
"clickup_list_lists_in_folder",
|
|
9400
|
+
"clickup_list_folderless_lists",
|
|
9401
|
+
"clickup_list_tasks",
|
|
9402
|
+
"clickup_get_task",
|
|
9403
|
+
"clickup_create_task",
|
|
9404
|
+
"clickup_update_task",
|
|
9405
|
+
"clickup_delete_task",
|
|
9406
|
+
"clickup_list_task_comments",
|
|
9407
|
+
"clickup_create_task_comment"
|
|
9408
|
+
];
|
|
9409
|
+
function clickupIntegration(config = {}) {
|
|
9410
|
+
const oauth = {
|
|
9411
|
+
provider: "clickup",
|
|
9412
|
+
clientId: config.clientId ?? getEnv("CLICKUP_CLIENT_ID"),
|
|
9413
|
+
clientSecret: config.clientSecret ?? getEnv("CLICKUP_CLIENT_SECRET"),
|
|
9414
|
+
scopes: config.scopes ?? [],
|
|
9415
|
+
optionalScopes: config.optionalScopes,
|
|
9416
|
+
redirectUri: config.redirectUri,
|
|
9417
|
+
config: {
|
|
9418
|
+
authorization_endpoint: "https://app.clickup.com/api",
|
|
9419
|
+
token_endpoint: "https://api.clickup.com/api/v2/oauth/token"
|
|
9420
|
+
}
|
|
9421
|
+
};
|
|
9422
|
+
return {
|
|
9423
|
+
id: "clickup",
|
|
9424
|
+
name: "ClickUp",
|
|
9425
|
+
tools: [...CLICKUP_TOOLS],
|
|
9426
|
+
oauth,
|
|
9427
|
+
async onInit(_client) {
|
|
9428
|
+
logger84.debug("ClickUp integration initialized");
|
|
9429
|
+
},
|
|
9430
|
+
async onAfterConnect(_client) {
|
|
9431
|
+
logger84.debug("ClickUp integration connected");
|
|
9432
|
+
}
|
|
9433
|
+
};
|
|
9434
|
+
}
|
|
9435
|
+
// src/integrations/cloudflare.ts
|
|
9436
|
+
init_logger();
|
|
9437
|
+
var logger85 = createLogger("Cloudflare");
|
|
9438
|
+
var CLOUDFLARE_TOOLS = [
|
|
9439
|
+
"cloudflare_verify_token",
|
|
9440
|
+
"cloudflare_get_user",
|
|
9441
|
+
"cloudflare_list_accounts",
|
|
9442
|
+
"cloudflare_get_account",
|
|
9443
|
+
"cloudflare_list_zones",
|
|
9444
|
+
"cloudflare_get_zone",
|
|
9445
|
+
"cloudflare_list_dns_records",
|
|
9446
|
+
"cloudflare_create_dns_record",
|
|
9447
|
+
"cloudflare_update_dns_record",
|
|
9448
|
+
"cloudflare_delete_dns_record",
|
|
9449
|
+
"cloudflare_purge_zone_cache",
|
|
9450
|
+
"cloudflare_list_worker_scripts"
|
|
9451
|
+
];
|
|
9452
|
+
var DEFAULT_SCOPES = [
|
|
9453
|
+
"account:read",
|
|
9454
|
+
"user:read",
|
|
9455
|
+
"zone:read",
|
|
9456
|
+
"workers:read",
|
|
9457
|
+
"workers:write",
|
|
9458
|
+
"pages:write",
|
|
9459
|
+
"offline_access"
|
|
9460
|
+
];
|
|
9461
|
+
function cloudflareIntegration(config = {}) {
|
|
9462
|
+
const apiToken = config.apiToken ?? getEnv("CLOUDFLARE_API_TOKEN");
|
|
9463
|
+
if (apiToken && apiToken.trim() !== "") {
|
|
9464
|
+
return {
|
|
9465
|
+
id: "cloudflare",
|
|
9466
|
+
name: "Cloudflare",
|
|
9467
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/cloudflare.png",
|
|
9468
|
+
description: "Manage Cloudflare zones, DNS, cache, and Workers via the Cloudflare API",
|
|
9469
|
+
category: "Infrastructure",
|
|
9470
|
+
tools: [...CLOUDFLARE_TOOLS],
|
|
9471
|
+
authType: "apiKey",
|
|
9472
|
+
getHeaders() {
|
|
9473
|
+
return { Authorization: `Bearer ${apiToken.trim()}` };
|
|
9474
|
+
},
|
|
9475
|
+
async onInit(_client) {
|
|
9476
|
+
logger85.debug("Cloudflare integration initialized (API token)");
|
|
9477
|
+
},
|
|
9478
|
+
async onAfterConnect(_client) {
|
|
9479
|
+
logger85.debug("Cloudflare integration connected");
|
|
9480
|
+
}
|
|
9481
|
+
};
|
|
9482
|
+
}
|
|
9483
|
+
const oauth = {
|
|
9484
|
+
provider: "cloudflare",
|
|
9485
|
+
clientId: config.clientId ?? getEnv("CLOUDFLARE_CLIENT_ID"),
|
|
9486
|
+
clientSecret: config.clientSecret ?? getEnv("CLOUDFLARE_CLIENT_SECRET"),
|
|
9487
|
+
scopes: config.scopes?.length ? config.scopes : [...DEFAULT_SCOPES],
|
|
9488
|
+
redirectUri: config.redirectUri,
|
|
9489
|
+
config: {
|
|
9490
|
+
authorization_endpoint: "https://dash.cloudflare.com/oauth2/auth",
|
|
9491
|
+
token_endpoint: "https://dash.cloudflare.com/oauth2/token",
|
|
9492
|
+
response_type: "code",
|
|
9493
|
+
grant_types_supported: ["authorization_code", "refresh_token"]
|
|
9494
|
+
}
|
|
9495
|
+
};
|
|
9496
|
+
return {
|
|
9497
|
+
id: "cloudflare",
|
|
9498
|
+
name: "Cloudflare",
|
|
9499
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/cloudflare.png",
|
|
9500
|
+
description: "Manage Cloudflare zones, DNS, cache, and Workers via the Cloudflare API",
|
|
9501
|
+
category: "Infrastructure",
|
|
9502
|
+
tools: [...CLOUDFLARE_TOOLS],
|
|
9503
|
+
oauth,
|
|
9504
|
+
async onInit(_client) {
|
|
9505
|
+
logger85.debug("Cloudflare integration initialized (OAuth)");
|
|
9506
|
+
},
|
|
9507
|
+
async onAfterConnect(_client) {
|
|
9508
|
+
logger85.debug("Cloudflare integration connected");
|
|
9509
|
+
}
|
|
9510
|
+
};
|
|
9511
|
+
}
|
|
9512
|
+
// src/integrations/instagram.ts
|
|
9513
|
+
init_logger();
|
|
9514
|
+
var logger86 = createLogger("Instagram");
|
|
9515
|
+
var INSTAGRAM_SCOPES = [
|
|
9516
|
+
"pages_show_list",
|
|
9517
|
+
"pages_read_engagement",
|
|
9518
|
+
"instagram_basic",
|
|
9519
|
+
"instagram_manage_insights",
|
|
9520
|
+
"instagram_manage_comments",
|
|
9521
|
+
"instagram_content_publish"
|
|
9522
|
+
];
|
|
9523
|
+
var INSTAGRAM_TOOLS = [
|
|
9524
|
+
"instagram_list_pages",
|
|
9525
|
+
"instagram_get_profile",
|
|
9526
|
+
"instagram_list_media",
|
|
9527
|
+
"instagram_get_media",
|
|
9528
|
+
"instagram_list_comments",
|
|
9529
|
+
"instagram_reply_comment",
|
|
9530
|
+
"instagram_delete_comment",
|
|
9531
|
+
"instagram_hide_comment",
|
|
9532
|
+
"instagram_get_media_insights",
|
|
9533
|
+
"instagram_get_user_insights",
|
|
9534
|
+
"instagram_create_media_container",
|
|
9535
|
+
"instagram_publish_media",
|
|
9536
|
+
"instagram_list_stories",
|
|
9537
|
+
"instagram_list_tagged_media"
|
|
9538
|
+
];
|
|
9539
|
+
function instagramIntegration(config = {}) {
|
|
9540
|
+
const oauth = {
|
|
9541
|
+
provider: "instagram",
|
|
9542
|
+
clientId: config.clientId ?? getEnv("INSTAGRAM_CLIENT_ID"),
|
|
9543
|
+
clientSecret: config.clientSecret ?? getEnv("INSTAGRAM_CLIENT_SECRET"),
|
|
9544
|
+
scopes: config.scopes ?? [...INSTAGRAM_SCOPES],
|
|
9545
|
+
optionalScopes: config.optionalScopes,
|
|
9546
|
+
redirectUri: config.redirectUri,
|
|
9547
|
+
config: {
|
|
9548
|
+
authorization_endpoint: "https://www.facebook.com/v21.0/dialog/oauth",
|
|
9549
|
+
token_endpoint: "https://graph.facebook.com/v21.0/oauth/access_token",
|
|
9550
|
+
response_type: "code",
|
|
9551
|
+
grant_types_supported: ["authorization_code", "refresh_token"],
|
|
9552
|
+
...config
|
|
9553
|
+
}
|
|
9554
|
+
};
|
|
9555
|
+
return {
|
|
9556
|
+
id: "instagram",
|
|
9557
|
+
name: "Instagram",
|
|
9558
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/instagram.png",
|
|
9559
|
+
description: "Instagram Graph API for professional accounts — pages, media, comments, insights, stories, and publishing.",
|
|
9560
|
+
category: "Social Media",
|
|
9561
|
+
tools: [...INSTAGRAM_TOOLS],
|
|
9562
|
+
oauth,
|
|
9563
|
+
async onInit(_client) {
|
|
9564
|
+
logger86.debug("Instagram integration initialized");
|
|
9565
|
+
},
|
|
9566
|
+
async onAfterConnect(_client) {
|
|
9567
|
+
logger86.debug("Instagram integration connected");
|
|
9568
|
+
}
|
|
9569
|
+
};
|
|
9570
|
+
}
|
|
9571
|
+
// src/integrations/facebook.ts
|
|
9572
|
+
init_logger();
|
|
9573
|
+
var logger87 = createLogger("Facebook");
|
|
9574
|
+
var FACEBOOK_SCOPES = [
|
|
9575
|
+
"public_profile",
|
|
9576
|
+
"email",
|
|
9577
|
+
"pages_show_list",
|
|
9578
|
+
"pages_read_engagement",
|
|
9579
|
+
"pages_manage_posts",
|
|
9580
|
+
"pages_read_user_content",
|
|
9581
|
+
"pages_manage_engagement"
|
|
9582
|
+
];
|
|
9583
|
+
var FACEBOOK_TOOLS = [
|
|
9584
|
+
"facebook_get_me",
|
|
9585
|
+
"facebook_list_pages",
|
|
9586
|
+
"facebook_list_page_posts",
|
|
9587
|
+
"facebook_get_object",
|
|
9588
|
+
"facebook_create_page_post",
|
|
9589
|
+
"facebook_delete_object",
|
|
9590
|
+
"facebook_list_comments",
|
|
9591
|
+
"facebook_publish_comment",
|
|
9592
|
+
"facebook_get_insights",
|
|
9593
|
+
"facebook_set_comment_visibility",
|
|
9594
|
+
"facebook_like_object"
|
|
9595
|
+
];
|
|
9596
|
+
function facebookIntegration(config = {}) {
|
|
9597
|
+
const oauth = {
|
|
9598
|
+
provider: "facebook",
|
|
9599
|
+
clientId: config.clientId ?? getEnv("FACEBOOK_CLIENT_ID"),
|
|
9600
|
+
clientSecret: config.clientSecret ?? getEnv("FACEBOOK_CLIENT_SECRET"),
|
|
9601
|
+
scopes: config.scopes ?? [...FACEBOOK_SCOPES],
|
|
9602
|
+
redirectUri: config.redirectUri,
|
|
9603
|
+
config: {
|
|
9604
|
+
authorization_endpoint: "https://www.facebook.com/v18.0/dialog/oauth",
|
|
9605
|
+
token_endpoint: "https://graph.facebook.com/v18.0/oauth/access_token",
|
|
9606
|
+
response_type: "code",
|
|
9607
|
+
grant_types_supported: ["authorization_code"]
|
|
9608
|
+
}
|
|
9609
|
+
};
|
|
9610
|
+
return {
|
|
9611
|
+
id: "facebook",
|
|
9612
|
+
name: "Facebook",
|
|
9613
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/facebook.png",
|
|
9614
|
+
description: "Manage Facebook Page posts, comments, reactions, and insights via the Graph API",
|
|
9615
|
+
category: "Social Media",
|
|
9616
|
+
tools: [...FACEBOOK_TOOLS],
|
|
9617
|
+
oauth,
|
|
9618
|
+
async onInit(_client) {
|
|
9619
|
+
logger87.debug("Facebook integration initialized");
|
|
9620
|
+
},
|
|
9621
|
+
async onAfterConnect(_client) {
|
|
9622
|
+
logger87.debug("Facebook integration connected");
|
|
9623
|
+
}
|
|
9624
|
+
};
|
|
9625
|
+
}
|
|
9626
|
+
// src/integrations/ga4.ts
|
|
9627
|
+
var GA4_TOOLS = [
|
|
9628
|
+
"ga4_batch_run_reports",
|
|
9629
|
+
"ga4_get_property",
|
|
9630
|
+
"ga4_list_account_summaries",
|
|
9631
|
+
"ga4_run_realtime_report",
|
|
9632
|
+
"ga4_run_report"
|
|
9633
|
+
];
|
|
9634
|
+
function ga4Integration(config = {}) {
|
|
9635
|
+
const oauth = {
|
|
9636
|
+
provider: "ga4",
|
|
9637
|
+
clientId: config.clientId ?? getEnv("GA4_CLIENT_ID"),
|
|
9638
|
+
clientSecret: config.clientSecret ?? getEnv("GA4_CLIENT_SECRET"),
|
|
9639
|
+
scopes: config.scopes ?? ["https://www.googleapis.com/auth/analytics.readonly"],
|
|
9640
|
+
optionalScopes: config.optionalScopes,
|
|
9641
|
+
redirectUri: config.redirectUri
|
|
9642
|
+
};
|
|
9643
|
+
return {
|
|
9644
|
+
id: "ga4",
|
|
9645
|
+
name: "Google Analytics 4",
|
|
9646
|
+
tools: [...GA4_TOOLS],
|
|
9647
|
+
oauth
|
|
9648
|
+
};
|
|
9649
|
+
}
|
|
9650
|
+
// src/integrations/resend.ts
|
|
9651
|
+
init_logger();
|
|
9652
|
+
var logger88 = createLogger("Resend");
|
|
9653
|
+
var RESEND_TOOLS = [
|
|
9654
|
+
"resend_list_domains",
|
|
9655
|
+
"resend_get_domain",
|
|
9656
|
+
"resend_create_domain",
|
|
9657
|
+
"resend_delete_domain",
|
|
9658
|
+
"resend_verify_domain",
|
|
9659
|
+
"resend_send_email",
|
|
9660
|
+
"resend_get_email",
|
|
9661
|
+
"resend_cancel_scheduled_email"
|
|
9662
|
+
];
|
|
9663
|
+
function resendIntegration(options = {}) {
|
|
9664
|
+
const apiKey = options.apiKey ?? getEnv("RESEND_API_KEY");
|
|
9665
|
+
if (!apiKey) {
|
|
9666
|
+
throw new Error("resendIntegration requires apiKey or RESEND_API_KEY");
|
|
9667
|
+
}
|
|
9668
|
+
return {
|
|
9669
|
+
id: "resend",
|
|
9670
|
+
name: "Resend",
|
|
9671
|
+
tools: [...RESEND_TOOLS],
|
|
9672
|
+
authType: "apiKey",
|
|
9673
|
+
getHeaders() {
|
|
9674
|
+
return { Authorization: `Bearer ${apiKey}` };
|
|
9675
|
+
},
|
|
9676
|
+
async onInit(_client) {
|
|
9677
|
+
logger88.debug("Resend integration initialized");
|
|
9678
|
+
},
|
|
9679
|
+
async onAfterConnect(_client) {
|
|
9680
|
+
logger88.debug("Resend integration connected");
|
|
9681
|
+
}
|
|
9682
|
+
};
|
|
9683
|
+
}
|
|
9684
|
+
// src/integrations/tldraw.ts
|
|
9685
|
+
var TLDRAW_TOOLS = [
|
|
9686
|
+
"tldraw_unfurl_url",
|
|
9687
|
+
"tldraw_create_room_snapshot",
|
|
9688
|
+
"tldraw_get_room_snapshot",
|
|
9689
|
+
"tldraw_get_published_snapshot",
|
|
9690
|
+
"tldraw_get_readonly_slug"
|
|
9691
|
+
];
|
|
9692
|
+
function tldrawIntegration(options = {}) {
|
|
9693
|
+
const apiKey = options.apiKey ?? getEnv("TLDRAW_API_KEY");
|
|
9694
|
+
return {
|
|
9695
|
+
id: "tldraw",
|
|
9696
|
+
name: "tldraw",
|
|
9697
|
+
tools: [...TLDRAW_TOOLS],
|
|
9698
|
+
authType: apiKey ? "apiKey" : undefined,
|
|
9699
|
+
getHeaders: apiKey ? () => ({ Authorization: `Bearer ${apiKey}` }) : undefined
|
|
9700
|
+
};
|
|
9701
|
+
}
|
|
9702
|
+
// src/integrations/workday.ts
|
|
9703
|
+
init_logger();
|
|
9704
|
+
var logger89 = createLogger("Workday");
|
|
9705
|
+
var WORKDAY_TOOLS = [
|
|
9706
|
+
"workday_list_workers",
|
|
9707
|
+
"workday_get_worker"
|
|
9708
|
+
];
|
|
9709
|
+
function workdayIntegration(config = {}) {
|
|
9710
|
+
const oauth = {
|
|
9711
|
+
provider: "workday",
|
|
9712
|
+
clientId: config.clientId ?? getEnv("WORKDAY_CLIENT_ID"),
|
|
9713
|
+
clientSecret: config.clientSecret ?? getEnv("WORKDAY_CLIENT_SECRET"),
|
|
9714
|
+
scopes: config.scopes,
|
|
9715
|
+
redirectUri: config.redirectUri,
|
|
9716
|
+
config: {
|
|
9717
|
+
subdomain: config.subdomain ?? getEnv("WORKDAY_TENANT_DESCRIPTOR")
|
|
9718
|
+
}
|
|
9719
|
+
};
|
|
9720
|
+
return {
|
|
9721
|
+
id: "workday",
|
|
9722
|
+
name: "Workday",
|
|
9723
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/workday.png",
|
|
9724
|
+
description: "Query Workday workers via the tenant REST API",
|
|
9725
|
+
category: "Business",
|
|
9726
|
+
tools: [...WORKDAY_TOOLS],
|
|
9727
|
+
oauth,
|
|
9728
|
+
async onInit(_client) {
|
|
9729
|
+
logger89.debug("Workday integration initialized");
|
|
9730
|
+
},
|
|
9731
|
+
async onAfterConnect(_client) {
|
|
9732
|
+
logger89.debug("Workday integration connected");
|
|
9733
|
+
}
|
|
9734
|
+
};
|
|
9735
|
+
}
|
|
9736
|
+
// src/integrations/workos.ts
|
|
9737
|
+
init_logger();
|
|
9738
|
+
var logger90 = createLogger("WorkOS");
|
|
9739
|
+
var WORKOS_TOOLS = [
|
|
9740
|
+
"workos_list_organizations",
|
|
9741
|
+
"workos_get_organization",
|
|
9742
|
+
"workos_create_organization",
|
|
9743
|
+
"workos_update_organization",
|
|
9744
|
+
"workos_list_users",
|
|
9745
|
+
"workos_get_user",
|
|
9746
|
+
"workos_list_organization_memberships",
|
|
9747
|
+
"workos_list_directories",
|
|
9748
|
+
"workos_get_directory",
|
|
9749
|
+
"workos_list_directory_users",
|
|
9750
|
+
"workos_get_directory_user"
|
|
9751
|
+
];
|
|
9752
|
+
function workosIntegration(options = {}) {
|
|
9753
|
+
const apiKey = options.apiKey ?? getEnv("WORKOS_API_KEY");
|
|
9754
|
+
if (!apiKey) {
|
|
9755
|
+
throw new Error("workosIntegration requires apiKey or WORKOS_API_KEY environment variable");
|
|
9756
|
+
}
|
|
9757
|
+
return {
|
|
9758
|
+
id: "workos",
|
|
9759
|
+
name: "WorkOS",
|
|
9760
|
+
logoUrl: "https://wdvtnli2jn3texa6.public.blob.vercel-storage.com/workos.png",
|
|
9761
|
+
description: "Manage WorkOS organizations, AuthKit users, memberships, and directory sync",
|
|
9762
|
+
category: "Infrastructure",
|
|
9763
|
+
tools: [...WORKOS_TOOLS],
|
|
9764
|
+
authType: "apiKey",
|
|
9765
|
+
getHeaders() {
|
|
9766
|
+
return {
|
|
9767
|
+
Authorization: `Bearer ${apiKey}`
|
|
9768
|
+
};
|
|
9769
|
+
},
|
|
9770
|
+
async onInit(_client) {
|
|
9771
|
+
logger90.debug("WorkOS integration initialized");
|
|
9772
|
+
},
|
|
9773
|
+
async onAfterConnect(_client) {
|
|
9774
|
+
logger90.debug("WorkOS integration connected");
|
|
9775
|
+
}
|
|
9776
|
+
};
|
|
9777
|
+
}
|
|
9778
|
+
// src/integrations/planetscale.ts
|
|
9779
|
+
var PLANETSCALE_TOOLS = [
|
|
9780
|
+
"planetscale_get_current_user",
|
|
9781
|
+
"planetscale_list_organizations",
|
|
9782
|
+
"planetscale_get_organization",
|
|
9783
|
+
"planetscale_list_databases",
|
|
9784
|
+
"planetscale_get_database",
|
|
9785
|
+
"planetscale_list_branches",
|
|
9786
|
+
"planetscale_get_branch",
|
|
9787
|
+
"planetscale_list_deploy_requests",
|
|
9788
|
+
"planetscale_get_deploy_request"
|
|
9789
|
+
];
|
|
9790
|
+
function planetscaleIntegration(config = {}) {
|
|
9791
|
+
const oauth = {
|
|
9792
|
+
provider: "planetscale",
|
|
9793
|
+
clientId: config.clientId ?? getEnv("PLANETSCALE_CLIENT_ID"),
|
|
9794
|
+
clientSecret: config.clientSecret ?? getEnv("PLANETSCALE_CLIENT_SECRET"),
|
|
9795
|
+
scopes: config.scopes ?? ["database:read_branches", "database:read_deploy_requests", "organization:read"],
|
|
9796
|
+
optionalScopes: config.optionalScopes,
|
|
9797
|
+
redirectUri: config.redirectUri,
|
|
9798
|
+
config: {
|
|
9799
|
+
authorization_endpoint: "https://auth.planetscale.com/oauth/authorize",
|
|
9800
|
+
token_endpoint: "https://auth.planetscale.com/oauth/token",
|
|
9801
|
+
apiBaseUrl: config.apiBaseUrl ?? "https://api.planetscale.com/v1"
|
|
9802
|
+
}
|
|
9803
|
+
};
|
|
9804
|
+
return {
|
|
9805
|
+
id: "planetscale",
|
|
9806
|
+
name: "PlanetScale",
|
|
9807
|
+
category: "Infrastructure",
|
|
9808
|
+
tools: [...PLANETSCALE_TOOLS],
|
|
9809
|
+
oauth
|
|
9810
|
+
};
|
|
9811
|
+
}
|
|
6843
9812
|
// src/integrations/generic.ts
|
|
6844
9813
|
function genericOAuthIntegration(config) {
|
|
6845
9814
|
const providerUpper = config.provider.toUpperCase().replace(/[^A-Z0-9]/g, "_");
|
|
@@ -13008,7 +15977,7 @@ function convertJsonSchemaToGoogleSchema(jsonSchema, TypeEnum) {
|
|
|
13008
15977
|
}
|
|
13009
15978
|
// src/server.ts
|
|
13010
15979
|
var SERVER_LOG_CONTEXT3 = "server";
|
|
13011
|
-
var
|
|
15980
|
+
var logger93 = createLogger("MCPServer", SERVER_LOG_CONTEXT3);
|
|
13012
15981
|
var globalServerConfig = null;
|
|
13013
15982
|
var globalMCPHandler = null;
|
|
13014
15983
|
var codeVerifierStorage = new Map;
|
|
@@ -13114,7 +16083,7 @@ function createMCPServer(config) {
|
|
|
13114
16083
|
if (integration.oauth) {
|
|
13115
16084
|
const { clientId, clientSecret, redirectUri: integrationRedirectUri, config: oauthConfig } = integration.oauth;
|
|
13116
16085
|
if (!clientId || !clientSecret) {
|
|
13117
|
-
|
|
16086
|
+
logger93.warn(`Warning: Integration "${integration.id}" is missing OAuth credentials. ` + `Provide clientId and clientSecret in the integration configuration.`);
|
|
13118
16087
|
return integration;
|
|
13119
16088
|
}
|
|
13120
16089
|
const redirectUri = integrationRedirectUri || config.redirectUri || getDefaultRedirectUri();
|
|
@@ -13291,7 +16260,7 @@ function createMCPServer(config) {
|
|
|
13291
16260
|
}
|
|
13292
16261
|
return response2;
|
|
13293
16262
|
} catch (error) {
|
|
13294
|
-
|
|
16263
|
+
logger93.error("[MCP Tool Call] Error:", error);
|
|
13295
16264
|
return Response.json({ error: error.message || "Failed to execute tool call" }, { status: error.statusCode || 500 });
|
|
13296
16265
|
}
|
|
13297
16266
|
}
|
|
@@ -13340,7 +16309,7 @@ function createMCPServer(config) {
|
|
|
13340
16309
|
});
|
|
13341
16310
|
return Response.json(result, { status: result.success ? 200 : 500 });
|
|
13342
16311
|
} catch (error) {
|
|
13343
|
-
|
|
16312
|
+
logger93.error("[Code Mode] Error:", error);
|
|
13344
16313
|
return Response.json({ error: error?.message || "Failed to execute code" }, { status: 500 });
|
|
13345
16314
|
}
|
|
13346
16315
|
}
|
|
@@ -13398,7 +16367,7 @@ function createMCPServer(config) {
|
|
|
13398
16367
|
error: executionResult.error
|
|
13399
16368
|
});
|
|
13400
16369
|
} catch (error) {
|
|
13401
|
-
|
|
16370
|
+
logger93.error("[Trigger Notify] Error:", error);
|
|
13402
16371
|
return Response.json({ error: error.message || "Failed to execute trigger" }, { status: 500 });
|
|
13403
16372
|
}
|
|
13404
16373
|
}
|
|
@@ -13462,7 +16431,7 @@ function createMCPServer(config) {
|
|
|
13462
16431
|
})
|
|
13463
16432
|
});
|
|
13464
16433
|
} catch (scheduleError) {
|
|
13465
|
-
|
|
16434
|
+
logger93.error("[Trigger] Failed to register with scheduler:", scheduleError);
|
|
13466
16435
|
}
|
|
13467
16436
|
return Response.json(created, { status: 201 });
|
|
13468
16437
|
}
|
|
@@ -13497,7 +16466,7 @@ function createMCPServer(config) {
|
|
|
13497
16466
|
body: JSON.stringify({ triggerId })
|
|
13498
16467
|
});
|
|
13499
16468
|
} catch (error) {
|
|
13500
|
-
|
|
16469
|
+
logger93.error("[Trigger] Failed to pause in scheduler:", error);
|
|
13501
16470
|
}
|
|
13502
16471
|
return Response.json(updated);
|
|
13503
16472
|
} else if (subAction === "resume" && method === "POST") {
|
|
@@ -13525,7 +16494,7 @@ function createMCPServer(config) {
|
|
|
13525
16494
|
body: JSON.stringify({ triggerId })
|
|
13526
16495
|
});
|
|
13527
16496
|
} catch (error) {
|
|
13528
|
-
|
|
16497
|
+
logger93.error("[Trigger] Failed to resume in scheduler:", error);
|
|
13529
16498
|
}
|
|
13530
16499
|
return Response.json(updated);
|
|
13531
16500
|
} else if (subAction === "run" && method === "POST") {
|
|
@@ -13596,7 +16565,7 @@ function createMCPServer(config) {
|
|
|
13596
16565
|
})
|
|
13597
16566
|
});
|
|
13598
16567
|
} catch (error) {
|
|
13599
|
-
|
|
16568
|
+
logger93.error("[Trigger] Failed to update scheduler:", error);
|
|
13600
16569
|
}
|
|
13601
16570
|
}
|
|
13602
16571
|
return Response.json(updated);
|
|
@@ -13613,14 +16582,14 @@ function createMCPServer(config) {
|
|
|
13613
16582
|
body: JSON.stringify({ triggerId })
|
|
13614
16583
|
});
|
|
13615
16584
|
} catch (error) {
|
|
13616
|
-
|
|
16585
|
+
logger93.error("[Trigger] Failed to unregister from scheduler:", error);
|
|
13617
16586
|
}
|
|
13618
16587
|
return new Response(null, { status: 204 });
|
|
13619
16588
|
}
|
|
13620
16589
|
}
|
|
13621
16590
|
return Response.json({ error: "Invalid trigger route or method" }, { status: 404 });
|
|
13622
16591
|
} catch (error) {
|
|
13623
|
-
|
|
16592
|
+
logger93.error("[Trigger] Error:", error);
|
|
13624
16593
|
return Response.json({ error: error.message || "Failed to process trigger request" }, { status: error.statusCode || 500 });
|
|
13625
16594
|
}
|
|
13626
16595
|
}
|
|
@@ -13646,11 +16615,11 @@ function createMCPServer(config) {
|
|
|
13646
16615
|
const errorRedirectUrl = "/auth-error";
|
|
13647
16616
|
if (error) {
|
|
13648
16617
|
const errorMsg = errorDescription || error;
|
|
13649
|
-
|
|
16618
|
+
logger93.error("[OAuth Redirect] Error:", errorMsg);
|
|
13650
16619
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, webRequest.url));
|
|
13651
16620
|
}
|
|
13652
16621
|
if (!code || !state) {
|
|
13653
|
-
|
|
16622
|
+
logger93.error("[OAuth Redirect] Missing code or state parameter");
|
|
13654
16623
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, webRequest.url));
|
|
13655
16624
|
}
|
|
13656
16625
|
let returnUrl = defaultRedirectUrl;
|
|
@@ -13727,7 +16696,7 @@ function createMCPServer(config) {
|
|
|
13727
16696
|
frontendUrl.hash = `oauth_callback=${encodeURIComponent(JSON.stringify({ code, state, tokenData }))}`;
|
|
13728
16697
|
return Response.redirect(frontendUrl);
|
|
13729
16698
|
} catch (error2) {
|
|
13730
|
-
|
|
16699
|
+
logger93.error("[OAuth Backend Callback] Error:", error2);
|
|
13731
16700
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, webRequest.url));
|
|
13732
16701
|
}
|
|
13733
16702
|
} else {
|
|
@@ -14006,40 +16975,77 @@ init_type_generator();
|
|
|
14006
16975
|
init_executor();
|
|
14007
16976
|
init_tool_builder();
|
|
14008
16977
|
export {
|
|
16978
|
+
zoomIntegration,
|
|
14009
16979
|
zendeskIntegration,
|
|
16980
|
+
zapierIntegration,
|
|
14010
16981
|
youtubeIntegration,
|
|
16982
|
+
xeroIntegration,
|
|
16983
|
+
workosIntegration,
|
|
16984
|
+
workdayIntegration,
|
|
14011
16985
|
wordIntegration,
|
|
16986
|
+
wixIntegration,
|
|
14012
16987
|
whatsappIntegration,
|
|
16988
|
+
webflowIntegration,
|
|
14013
16989
|
vercelIntegration,
|
|
16990
|
+
upstashIntegration,
|
|
16991
|
+
typeformIntegration,
|
|
16992
|
+
trelloIntegration,
|
|
14014
16993
|
todoistIntegration,
|
|
14015
16994
|
toWebRequest,
|
|
14016
16995
|
toTanStackStartHandler,
|
|
14017
16996
|
toSvelteKitHandler,
|
|
14018
16997
|
toSolidStartHandler,
|
|
14019
16998
|
toNextJsHandler,
|
|
16999
|
+
tldrawIntegration,
|
|
17000
|
+
tiktokIntegration,
|
|
17001
|
+
threadsIntegration,
|
|
17002
|
+
teamsIntegration,
|
|
14020
17003
|
svelteKitHandler,
|
|
17004
|
+
supabaseIntegration,
|
|
14021
17005
|
stripeIntegration,
|
|
14022
17006
|
storeCodeVerifier,
|
|
14023
17007
|
slackIntegration,
|
|
17008
|
+
shopifyIntegration,
|
|
17009
|
+
sharepointIntegration,
|
|
17010
|
+
sentryIntegration,
|
|
14024
17011
|
sendWebResponse,
|
|
17012
|
+
salesforceIntegration,
|
|
17013
|
+
resendIntegration,
|
|
17014
|
+
redisIntegration,
|
|
17015
|
+
redditIntegration,
|
|
14025
17016
|
rampIntegration,
|
|
14026
17017
|
railwayIntegration,
|
|
14027
17018
|
powerpointIntegration,
|
|
17019
|
+
postmanIntegration,
|
|
14028
17020
|
posthogIntegration,
|
|
14029
17021
|
polarIntegration,
|
|
17022
|
+
plannerIntegration,
|
|
17023
|
+
planetscaleIntegration,
|
|
17024
|
+
phantomIntegration,
|
|
17025
|
+
paperIntegration,
|
|
14030
17026
|
outlookIntegration,
|
|
14031
17027
|
onedriveIntegration,
|
|
14032
17028
|
notionIntegration,
|
|
17029
|
+
netlifyIntegration,
|
|
17030
|
+
neonIntegration,
|
|
17031
|
+
mondayIntegration,
|
|
14033
17032
|
mercuryIntegration,
|
|
17033
|
+
mailchimpIntegration,
|
|
17034
|
+
linkedinIntegration,
|
|
14034
17035
|
linearIntegration,
|
|
17036
|
+
jiraIntegration,
|
|
14035
17037
|
intercomIntegration,
|
|
17038
|
+
instagramIntegration,
|
|
14036
17039
|
hubspotIntegration,
|
|
14037
17040
|
handleOpenAIResponse,
|
|
14038
17041
|
handleAnthropicMessage,
|
|
17042
|
+
gtasksIntegration,
|
|
14039
17043
|
gslidesIntegration,
|
|
14040
17044
|
gsheetsIntegration,
|
|
14041
17045
|
granolaIntegration,
|
|
17046
|
+
gmeetIntegration,
|
|
14042
17047
|
gmailIntegration,
|
|
17048
|
+
gitlabIntegration,
|
|
14043
17049
|
githubIntegration,
|
|
14044
17050
|
getVercelAITools,
|
|
14045
17051
|
getOpenAITools,
|
|
@@ -14050,21 +17056,43 @@ export {
|
|
|
14050
17056
|
generateCodeModeTypes,
|
|
14051
17057
|
gdriveIntegration,
|
|
14052
17058
|
gdocsIntegration,
|
|
17059
|
+
gcontactsIntegration,
|
|
17060
|
+
gchatIntegration,
|
|
14053
17061
|
gcalIntegration,
|
|
17062
|
+
ga4Integration,
|
|
14054
17063
|
fromNodeHeaders,
|
|
14055
17064
|
figmaIntegration,
|
|
17065
|
+
facebookIntegration,
|
|
14056
17066
|
executeSandboxCode,
|
|
14057
17067
|
executeGoogleFunctionCalls,
|
|
14058
17068
|
excelIntegration,
|
|
17069
|
+
etoroIntegration,
|
|
17070
|
+
encodeRedisCloudBearerToken,
|
|
14059
17071
|
dropboxIntegration,
|
|
17072
|
+
discordIntegration,
|
|
17073
|
+
datadogIntegration,
|
|
17074
|
+
databricksIntegration,
|
|
14060
17075
|
cursorIntegration,
|
|
14061
17076
|
createTriggerTools,
|
|
14062
17077
|
createTanStackOAuthHandler,
|
|
14063
17078
|
createSimpleIntegration,
|
|
14064
17079
|
createNextOAuthHandler,
|
|
14065
17080
|
createMCPServer,
|
|
17081
|
+
convexIntegration,
|
|
17082
|
+
cloudflareIntegration,
|
|
17083
|
+
clickupIntegration,
|
|
17084
|
+
clerkIntegration,
|
|
17085
|
+
canvaIntegration,
|
|
14066
17086
|
calcomIntegration,
|
|
17087
|
+
buildPhantomBrowseDeeplink,
|
|
14067
17088
|
buildCodeModeTool,
|
|
17089
|
+
binanceIntegration,
|
|
17090
|
+
betterstackIntegration,
|
|
17091
|
+
awsIntegration,
|
|
17092
|
+
auth0Integration,
|
|
17093
|
+
attioIntegration,
|
|
17094
|
+
astronomerIntegration,
|
|
17095
|
+
alpacaIntegration,
|
|
14068
17096
|
airtableIntegration,
|
|
14069
17097
|
__resetUnauthenticatedCodeModeWarnings,
|
|
14070
17098
|
RUNTIME_STUB_SOURCE,
|