@apteva/integrations 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/apps/index.d.ts +25 -0
  2. package/dist/apps/index.d.ts.map +1 -0
  3. package/dist/apps/index.js +51 -0
  4. package/dist/apps/index.js.map +1 -0
  5. package/dist/http-executor.d.ts +21 -0
  6. package/dist/http-executor.d.ts.map +1 -0
  7. package/dist/http-executor.js +191 -0
  8. package/dist/http-executor.js.map +1 -0
  9. package/dist/index.d.ts +12 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +13 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/mcp-generator.d.ts +8 -0
  14. package/dist/mcp-generator.d.ts.map +1 -0
  15. package/dist/mcp-generator.js +108 -0
  16. package/dist/mcp-generator.js.map +1 -0
  17. package/dist/oauth.d.ts +49 -0
  18. package/dist/oauth.d.ts.map +1 -0
  19. package/dist/oauth.js +119 -0
  20. package/dist/oauth.js.map +1 -0
  21. package/dist/providers/local.d.ts +55 -0
  22. package/dist/providers/local.d.ts.map +1 -0
  23. package/dist/providers/local.js +209 -0
  24. package/dist/providers/local.js.map +1 -0
  25. package/dist/triggers/local.d.ts +55 -0
  26. package/dist/triggers/local.d.ts.map +1 -0
  27. package/dist/triggers/local.js +103 -0
  28. package/dist/triggers/local.js.map +1 -0
  29. package/dist/types.d.ts +96 -0
  30. package/dist/types.d.ts.map +1 -0
  31. package/dist/types.js +3 -0
  32. package/dist/types.js.map +1 -0
  33. package/package.json +42 -0
  34. package/src/apps/github.json +96 -0
  35. package/src/apps/gmail.json +62 -0
  36. package/src/apps/google-calendar.json +68 -0
  37. package/src/apps/linear.json +85 -0
  38. package/src/apps/notion.json +102 -0
  39. package/src/apps/pushover.json +56 -0
  40. package/src/apps/sendgrid.json +63 -0
  41. package/src/apps/slack.json +74 -0
  42. package/src/apps/stripe.json +85 -0
@@ -0,0 +1,96 @@
1
+ {
2
+ "slug": "github",
3
+ "name": "GitHub",
4
+ "description": "Code hosting, issues, pull requests, and repository management",
5
+ "logo": null,
6
+ "categories": ["developer-tools", "version-control"],
7
+ "base_url": "https://api.github.com",
8
+ "auth": {
9
+ "types": ["bearer", "oauth2"],
10
+ "headers": { "Authorization": "Bearer {{token}}", "Accept": "application/vnd.github+json" },
11
+ "oauth2": {
12
+ "authorize_url": "https://github.com/login/oauth/authorize",
13
+ "token_url": "https://github.com/login/oauth/access_token",
14
+ "scopes": ["repo", "read:user", "read:org"],
15
+ "client_id_required": true,
16
+ "pkce": false
17
+ }
18
+ },
19
+ "tools": [
20
+ {
21
+ "name": "list_repos",
22
+ "description": "List repositories for the authenticated user",
23
+ "method": "GET",
24
+ "path": "/user/repos",
25
+ "input_schema": {
26
+ "type": "object",
27
+ "properties": {
28
+ "sort": { "type": "string", "enum": ["created", "updated", "pushed", "full_name"], "description": "Sort field" },
29
+ "per_page": { "type": "number", "description": "Results per page (max 100)", "default": 30 }
30
+ }
31
+ }
32
+ },
33
+ {
34
+ "name": "get_repo",
35
+ "description": "Get a repository by owner and name",
36
+ "method": "GET",
37
+ "path": "/repos/{owner}/{repo}",
38
+ "input_schema": {
39
+ "type": "object",
40
+ "properties": {
41
+ "owner": { "type": "string", "description": "Repository owner" },
42
+ "repo": { "type": "string", "description": "Repository name" }
43
+ },
44
+ "required": ["owner", "repo"]
45
+ }
46
+ },
47
+ {
48
+ "name": "list_issues",
49
+ "description": "List issues for a repository",
50
+ "method": "GET",
51
+ "path": "/repos/{owner}/{repo}/issues",
52
+ "input_schema": {
53
+ "type": "object",
54
+ "properties": {
55
+ "owner": { "type": "string", "description": "Repository owner" },
56
+ "repo": { "type": "string", "description": "Repository name" },
57
+ "state": { "type": "string", "enum": ["open", "closed", "all"], "default": "open" },
58
+ "per_page": { "type": "number", "default": 30 }
59
+ },
60
+ "required": ["owner", "repo"]
61
+ }
62
+ },
63
+ {
64
+ "name": "create_issue",
65
+ "description": "Create an issue in a repository",
66
+ "method": "POST",
67
+ "path": "/repos/{owner}/{repo}/issues",
68
+ "input_schema": {
69
+ "type": "object",
70
+ "properties": {
71
+ "owner": { "type": "string", "description": "Repository owner" },
72
+ "repo": { "type": "string", "description": "Repository name" },
73
+ "title": { "type": "string", "description": "Issue title" },
74
+ "body": { "type": "string", "description": "Issue body (markdown)" },
75
+ "labels": { "type": "array", "items": { "type": "string" }, "description": "Label names" }
76
+ },
77
+ "required": ["owner", "repo", "title"]
78
+ }
79
+ },
80
+ {
81
+ "name": "list_pull_requests",
82
+ "description": "List pull requests for a repository",
83
+ "method": "GET",
84
+ "path": "/repos/{owner}/{repo}/pulls",
85
+ "input_schema": {
86
+ "type": "object",
87
+ "properties": {
88
+ "owner": { "type": "string", "description": "Repository owner" },
89
+ "repo": { "type": "string", "description": "Repository name" },
90
+ "state": { "type": "string", "enum": ["open", "closed", "all"], "default": "open" }
91
+ },
92
+ "required": ["owner", "repo"]
93
+ }
94
+ }
95
+ ]
96
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "slug": "gmail",
3
+ "name": "Gmail",
4
+ "description": "Email sending, reading, and management via Gmail API",
5
+ "logo": null,
6
+ "categories": ["communication", "email"],
7
+ "base_url": "https://gmail.googleapis.com/gmail/v1",
8
+ "auth": {
9
+ "types": ["oauth2"],
10
+ "headers": { "Authorization": "Bearer {{token}}", "Content-Type": "application/json" },
11
+ "oauth2": {
12
+ "authorize_url": "https://accounts.google.com/o/oauth2/v2/auth",
13
+ "token_url": "https://oauth2.googleapis.com/token",
14
+ "scopes": ["https://www.googleapis.com/auth/gmail.readonly", "https://www.googleapis.com/auth/gmail.send"],
15
+ "client_id_required": true,
16
+ "pkce": false
17
+ }
18
+ },
19
+ "tools": [
20
+ {
21
+ "name": "list_messages",
22
+ "description": "List messages in the mailbox",
23
+ "method": "GET",
24
+ "path": "/users/me/messages",
25
+ "input_schema": {
26
+ "type": "object",
27
+ "properties": {
28
+ "q": { "type": "string", "description": "Gmail search query (e.g. 'from:user@example.com')" },
29
+ "maxResults": { "type": "number", "default": 10 },
30
+ "labelIds": { "type": "array", "items": { "type": "string" }, "description": "Filter by label" }
31
+ }
32
+ }
33
+ },
34
+ {
35
+ "name": "get_message",
36
+ "description": "Get a specific email message",
37
+ "method": "GET",
38
+ "path": "/users/me/messages/{id}",
39
+ "input_schema": {
40
+ "type": "object",
41
+ "properties": {
42
+ "id": { "type": "string", "description": "Message ID" },
43
+ "format": { "type": "string", "enum": ["full", "metadata", "minimal"], "default": "full" }
44
+ },
45
+ "required": ["id"]
46
+ }
47
+ },
48
+ {
49
+ "name": "send_message",
50
+ "description": "Send an email message",
51
+ "method": "POST",
52
+ "path": "/users/me/messages/send",
53
+ "input_schema": {
54
+ "type": "object",
55
+ "properties": {
56
+ "raw": { "type": "string", "description": "Base64url-encoded RFC 2822 email message" }
57
+ },
58
+ "required": ["raw"]
59
+ }
60
+ }
61
+ ]
62
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "slug": "google-calendar",
3
+ "name": "Google Calendar",
4
+ "description": "Calendar events, scheduling, and availability management",
5
+ "logo": null,
6
+ "categories": ["productivity", "calendar"],
7
+ "base_url": "https://www.googleapis.com/calendar/v3",
8
+ "auth": {
9
+ "types": ["oauth2"],
10
+ "headers": { "Authorization": "Bearer {{token}}", "Content-Type": "application/json" },
11
+ "oauth2": {
12
+ "authorize_url": "https://accounts.google.com/o/oauth2/v2/auth",
13
+ "token_url": "https://oauth2.googleapis.com/token",
14
+ "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.events"],
15
+ "client_id_required": true,
16
+ "pkce": false
17
+ }
18
+ },
19
+ "tools": [
20
+ {
21
+ "name": "list_calendars",
22
+ "description": "List all calendars for the user",
23
+ "method": "GET",
24
+ "path": "/users/me/calendarList",
25
+ "input_schema": {
26
+ "type": "object",
27
+ "properties": {
28
+ "maxResults": { "type": "number", "default": 50 }
29
+ }
30
+ }
31
+ },
32
+ {
33
+ "name": "list_events",
34
+ "description": "List upcoming events from a calendar",
35
+ "method": "GET",
36
+ "path": "/calendars/{calendarId}/events",
37
+ "input_schema": {
38
+ "type": "object",
39
+ "properties": {
40
+ "calendarId": { "type": "string", "description": "Calendar ID", "default": "primary" },
41
+ "maxResults": { "type": "number", "default": 10 },
42
+ "timeMin": { "type": "string", "description": "Start time (RFC3339)" },
43
+ "timeMax": { "type": "string", "description": "End time (RFC3339)" },
44
+ "orderBy": { "type": "string", "default": "startTime" },
45
+ "singleEvents": { "type": "boolean", "default": true }
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "name": "create_event",
51
+ "description": "Create a new calendar event",
52
+ "method": "POST",
53
+ "path": "/calendars/{calendarId}/events",
54
+ "input_schema": {
55
+ "type": "object",
56
+ "properties": {
57
+ "calendarId": { "type": "string", "default": "primary" },
58
+ "summary": { "type": "string", "description": "Event title" },
59
+ "description": { "type": "string", "description": "Event description" },
60
+ "start": { "type": "object", "description": "Start time { dateTime, timeZone }" },
61
+ "end": { "type": "object", "description": "End time { dateTime, timeZone }" },
62
+ "attendees": { "type": "array", "items": { "type": "object" }, "description": "Attendee list" }
63
+ },
64
+ "required": ["summary", "start", "end"]
65
+ }
66
+ }
67
+ ]
68
+ }
@@ -0,0 +1,85 @@
1
+ {
2
+ "slug": "linear",
3
+ "name": "Linear",
4
+ "description": "Issue tracking and project management for software teams",
5
+ "logo": null,
6
+ "categories": ["project-management", "developer-tools"],
7
+ "base_url": "https://api.linear.app",
8
+ "auth": {
9
+ "types": ["bearer", "oauth2"],
10
+ "headers": { "Authorization": "Bearer {{token}}", "Content-Type": "application/json" },
11
+ "oauth2": {
12
+ "authorize_url": "https://linear.app/oauth/authorize",
13
+ "token_url": "https://api.linear.app/oauth/token",
14
+ "scopes": ["read", "write", "issues:create"],
15
+ "client_id_required": true,
16
+ "pkce": false
17
+ }
18
+ },
19
+ "tools": [
20
+ {
21
+ "name": "list_issues",
22
+ "description": "List issues (GraphQL query)",
23
+ "method": "POST",
24
+ "path": "/graphql",
25
+ "input_schema": {
26
+ "type": "object",
27
+ "properties": {
28
+ "query": {
29
+ "type": "string",
30
+ "default": "{ issues(first: 20) { nodes { id title state { name } assignee { name } priority createdAt } } }",
31
+ "description": "GraphQL query"
32
+ }
33
+ }
34
+ }
35
+ },
36
+ {
37
+ "name": "create_issue",
38
+ "description": "Create a new issue",
39
+ "method": "POST",
40
+ "path": "/graphql",
41
+ "input_schema": {
42
+ "type": "object",
43
+ "properties": {
44
+ "query": {
45
+ "type": "string",
46
+ "default": "mutation($input: IssueCreateInput!) { issueCreate(input: $input) { success issue { id title url } } }",
47
+ "description": "GraphQL mutation"
48
+ },
49
+ "variables": {
50
+ "type": "object",
51
+ "description": "Variables: { input: { title, description, teamId, priority } }",
52
+ "properties": {
53
+ "input": {
54
+ "type": "object",
55
+ "properties": {
56
+ "title": { "type": "string" },
57
+ "description": { "type": "string" },
58
+ "teamId": { "type": "string" },
59
+ "priority": { "type": "number" }
60
+ },
61
+ "required": ["title", "teamId"]
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
67
+ },
68
+ {
69
+ "name": "list_teams",
70
+ "description": "List teams",
71
+ "method": "POST",
72
+ "path": "/graphql",
73
+ "input_schema": {
74
+ "type": "object",
75
+ "properties": {
76
+ "query": {
77
+ "type": "string",
78
+ "default": "{ teams { nodes { id name key } } }",
79
+ "description": "GraphQL query"
80
+ }
81
+ }
82
+ }
83
+ }
84
+ ]
85
+ }
@@ -0,0 +1,102 @@
1
+ {
2
+ "slug": "notion",
3
+ "name": "Notion",
4
+ "description": "Workspace for notes, docs, databases, and project management",
5
+ "logo": null,
6
+ "categories": ["productivity", "project-management"],
7
+ "base_url": "https://api.notion.com/v1",
8
+ "auth": {
9
+ "types": ["bearer", "oauth2"],
10
+ "headers": { "Authorization": "Bearer {{token}}", "Notion-Version": "2022-06-28", "Content-Type": "application/json" },
11
+ "oauth2": {
12
+ "authorize_url": "https://api.notion.com/v1/oauth/authorize",
13
+ "token_url": "https://api.notion.com/v1/oauth/token",
14
+ "scopes": [],
15
+ "client_id_required": true,
16
+ "pkce": false
17
+ }
18
+ },
19
+ "tools": [
20
+ {
21
+ "name": "search",
22
+ "description": "Search pages and databases in the workspace",
23
+ "method": "POST",
24
+ "path": "/search",
25
+ "input_schema": {
26
+ "type": "object",
27
+ "properties": {
28
+ "query": { "type": "string", "description": "Search query" },
29
+ "filter": {
30
+ "type": "object",
31
+ "description": "Filter by object type",
32
+ "properties": {
33
+ "value": { "type": "string", "enum": ["page", "database"] },
34
+ "property": { "type": "string", "default": "object" }
35
+ }
36
+ },
37
+ "page_size": { "type": "number", "description": "Max results", "default": 10 }
38
+ }
39
+ }
40
+ },
41
+ {
42
+ "name": "get_page",
43
+ "description": "Get a page by ID",
44
+ "method": "GET",
45
+ "path": "/pages/{page_id}",
46
+ "input_schema": {
47
+ "type": "object",
48
+ "properties": {
49
+ "page_id": { "type": "string", "description": "Page ID" }
50
+ },
51
+ "required": ["page_id"]
52
+ }
53
+ },
54
+ {
55
+ "name": "create_page",
56
+ "description": "Create a new page in a database or as a child of another page",
57
+ "method": "POST",
58
+ "path": "/pages",
59
+ "input_schema": {
60
+ "type": "object",
61
+ "properties": {
62
+ "parent": { "type": "object", "description": "Parent (database_id or page_id)" },
63
+ "properties": { "type": "object", "description": "Page properties" }
64
+ },
65
+ "required": ["parent", "properties"]
66
+ }
67
+ },
68
+ {
69
+ "name": "query_database",
70
+ "description": "Query a database with optional filters and sorts",
71
+ "method": "POST",
72
+ "path": "/databases/{database_id}/query",
73
+ "input_schema": {
74
+ "type": "object",
75
+ "properties": {
76
+ "database_id": { "type": "string", "description": "Database ID" },
77
+ "filter": { "type": "object", "description": "Filter conditions" },
78
+ "sorts": { "type": "array", "description": "Sort conditions" },
79
+ "page_size": { "type": "number", "description": "Max results", "default": 10 }
80
+ },
81
+ "required": ["database_id"]
82
+ }
83
+ },
84
+ {
85
+ "name": "list_databases",
86
+ "description": "List all databases shared with the integration",
87
+ "method": "POST",
88
+ "path": "/search",
89
+ "input_schema": {
90
+ "type": "object",
91
+ "properties": {
92
+ "filter": {
93
+ "type": "object",
94
+ "description": "Filter to databases only",
95
+ "default": { "value": "database", "property": "object" }
96
+ },
97
+ "page_size": { "type": "number", "default": 50 }
98
+ }
99
+ }
100
+ }
101
+ ]
102
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "slug": "pushover",
3
+ "name": "Pushover",
4
+ "description": "Real-time push notifications to mobile and desktop devices",
5
+ "logo": null,
6
+ "categories": ["communication", "notifications"],
7
+ "base_url": "https://api.pushover.net/1",
8
+ "auth": {
9
+ "types": ["api_key"],
10
+ "query_params": { "token": "{{api_key}}" }
11
+ },
12
+ "tools": [
13
+ {
14
+ "name": "send_notification",
15
+ "description": "Send a push notification to a user or group",
16
+ "method": "POST",
17
+ "path": "/messages.json",
18
+ "input_schema": {
19
+ "type": "object",
20
+ "properties": {
21
+ "user": { "type": "string", "description": "User or group key to send the notification to" },
22
+ "message": { "type": "string", "description": "Notification message body" },
23
+ "title": { "type": "string", "description": "Notification title" },
24
+ "priority": { "type": "number", "description": "Priority: -2 (lowest) to 2 (emergency)", "default": 0 },
25
+ "sound": { "type": "string", "description": "Sound name (e.g. pushover, bike, bugle)" },
26
+ "url": { "type": "string", "description": "Supplementary URL to show with the message" },
27
+ "url_title": { "type": "string", "description": "Title for the supplementary URL" }
28
+ },
29
+ "required": ["user", "message"]
30
+ }
31
+ },
32
+ {
33
+ "name": "validate_user",
34
+ "description": "Validate a user or group key",
35
+ "method": "POST",
36
+ "path": "/users/validate.json",
37
+ "input_schema": {
38
+ "type": "object",
39
+ "properties": {
40
+ "user": { "type": "string", "description": "User or group key to validate" }
41
+ },
42
+ "required": ["user"]
43
+ }
44
+ },
45
+ {
46
+ "name": "list_sounds",
47
+ "description": "List available notification sounds",
48
+ "method": "GET",
49
+ "path": "/sounds.json",
50
+ "input_schema": {
51
+ "type": "object",
52
+ "properties": {}
53
+ }
54
+ }
55
+ ]
56
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "slug": "sendgrid",
3
+ "name": "SendGrid",
4
+ "description": "Email delivery and marketing campaigns",
5
+ "logo": null,
6
+ "categories": ["communication", "email"],
7
+ "base_url": "https://api.sendgrid.com/v3",
8
+ "auth": {
9
+ "types": ["bearer"],
10
+ "headers": { "Authorization": "Bearer {{token}}", "Content-Type": "application/json" }
11
+ },
12
+ "tools": [
13
+ {
14
+ "name": "send_email",
15
+ "description": "Send an email",
16
+ "method": "POST",
17
+ "path": "/mail/send",
18
+ "input_schema": {
19
+ "type": "object",
20
+ "properties": {
21
+ "personalizations": {
22
+ "type": "array",
23
+ "items": {
24
+ "type": "object",
25
+ "properties": {
26
+ "to": { "type": "array", "items": { "type": "object", "properties": { "email": { "type": "string" }, "name": { "type": "string" } } } },
27
+ "subject": { "type": "string" }
28
+ }
29
+ },
30
+ "description": "Recipients and personalization"
31
+ },
32
+ "from": {
33
+ "type": "object",
34
+ "properties": { "email": { "type": "string" }, "name": { "type": "string" } },
35
+ "description": "Sender"
36
+ },
37
+ "content": {
38
+ "type": "array",
39
+ "items": {
40
+ "type": "object",
41
+ "properties": {
42
+ "type": { "type": "string", "default": "text/plain" },
43
+ "value": { "type": "string" }
44
+ }
45
+ },
46
+ "description": "Email content"
47
+ }
48
+ },
49
+ "required": ["personalizations", "from", "content"]
50
+ }
51
+ },
52
+ {
53
+ "name": "list_contacts",
54
+ "description": "List marketing contacts",
55
+ "method": "GET",
56
+ "path": "/marketing/contacts",
57
+ "input_schema": {
58
+ "type": "object",
59
+ "properties": {}
60
+ }
61
+ }
62
+ ]
63
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "slug": "slack",
3
+ "name": "Slack",
4
+ "description": "Team messaging, channels, and workspace management",
5
+ "logo": null,
6
+ "categories": ["communication", "productivity"],
7
+ "base_url": "https://slack.com/api",
8
+ "auth": {
9
+ "types": ["bearer", "oauth2"],
10
+ "headers": { "Authorization": "Bearer {{token}}", "Content-Type": "application/json" },
11
+ "oauth2": {
12
+ "authorize_url": "https://slack.com/oauth/v2/authorize",
13
+ "token_url": "https://slack.com/api/oauth.v2.access",
14
+ "scopes": ["chat:write", "channels:read", "channels:history", "users:read"],
15
+ "client_id_required": true,
16
+ "pkce": false
17
+ }
18
+ },
19
+ "tools": [
20
+ {
21
+ "name": "send_message",
22
+ "description": "Send a message to a Slack channel",
23
+ "method": "POST",
24
+ "path": "/chat.postMessage",
25
+ "input_schema": {
26
+ "type": "object",
27
+ "properties": {
28
+ "channel": { "type": "string", "description": "Channel ID or name" },
29
+ "text": { "type": "string", "description": "Message text" }
30
+ },
31
+ "required": ["channel", "text"]
32
+ }
33
+ },
34
+ {
35
+ "name": "list_channels",
36
+ "description": "List public channels in the workspace",
37
+ "method": "GET",
38
+ "path": "/conversations.list",
39
+ "input_schema": {
40
+ "type": "object",
41
+ "properties": {
42
+ "limit": { "type": "number", "description": "Max channels to return", "default": 100 },
43
+ "types": { "type": "string", "description": "Channel types", "default": "public_channel" }
44
+ }
45
+ }
46
+ },
47
+ {
48
+ "name": "get_channel_history",
49
+ "description": "Get message history for a channel",
50
+ "method": "GET",
51
+ "path": "/conversations.history",
52
+ "input_schema": {
53
+ "type": "object",
54
+ "properties": {
55
+ "channel": { "type": "string", "description": "Channel ID" },
56
+ "limit": { "type": "number", "description": "Max messages", "default": 20 }
57
+ },
58
+ "required": ["channel"]
59
+ }
60
+ },
61
+ {
62
+ "name": "list_users",
63
+ "description": "List users in the workspace",
64
+ "method": "GET",
65
+ "path": "/users.list",
66
+ "input_schema": {
67
+ "type": "object",
68
+ "properties": {
69
+ "limit": { "type": "number", "description": "Max users to return", "default": 100 }
70
+ }
71
+ }
72
+ }
73
+ ]
74
+ }