matimo 0.1.0-alpha.2 → 0.1.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +80 -26
- package/dist/core/schema.d.ts +1 -1
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +8 -3
- package/dist/core/schema.js.map +1 -1
- package/dist/core/tool-loader.d.ts.map +1 -1
- package/dist/core/tool-loader.js +15 -4
- package/dist/core/tool-loader.js.map +1 -1
- package/dist/core/tool-registry.d.ts.map +1 -1
- package/dist/core/tool-registry.js +5 -1
- package/dist/core/tool-registry.js.map +1 -1
- package/dist/decorators/tool-decorator.d.ts.map +1 -1
- package/dist/decorators/tool-decorator.js +7 -4
- package/dist/decorators/tool-decorator.js.map +1 -1
- package/dist/encodings/parameter-encoding.d.ts.map +1 -1
- package/dist/encodings/parameter-encoding.js +9 -2
- package/dist/encodings/parameter-encoding.js.map +1 -1
- package/dist/executors/command-executor.d.ts.map +1 -1
- package/dist/executors/command-executor.js +5 -1
- package/dist/executors/command-executor.js.map +1 -1
- package/dist/executors/http-executor.d.ts.map +1 -1
- package/dist/executors/http-executor.js +5 -1
- package/dist/executors/http-executor.js.map +1 -1
- package/package.json +4 -8
- package/tools/calculator/calculator.ts +78 -0
- package/tools/calculator/definition.yaml +71 -0
- package/tools/echo-tool/definition.yaml +35 -0
- package/tools/examples/calculator.yaml +54 -0
- package/tools/examples/echo-tool.yaml +35 -0
- package/tools/examples/http-client.yaml +66 -0
- package/tools/github/definition.yaml +41 -0
- package/tools/gmail/README.md +1189 -0
- package/tools/gmail/create-draft/definition.yaml +99 -0
- package/tools/gmail/definition.yaml +49 -0
- package/tools/gmail/delete-message/definition.yaml +42 -0
- package/tools/gmail/get-message/definition.yaml +89 -0
- package/tools/gmail/list-messages/definition.yaml +84 -0
- package/tools/gmail/send-email/definition.yaml +95 -0
- package/tools/http-client/definition.yaml +73 -0
- package/tools/slack/README.md +200 -0
- package/tools/slack/assets/icon.svg +9 -0
- package/tools/slack/assets/logo-dark.svg +14 -0
- package/tools/slack/assets/logo-light.svg +14 -0
- package/tools/slack/assets/logo.svg +14 -0
- package/tools/slack/definition.yaml +54 -0
- package/tools/slack/get-user/definition.yaml +31 -0
- package/tools/slack/list-channels/definition.yaml +46 -0
- package/tools/slack/send-message/definition.yaml +30 -0
- package/tools/slack/slack_add_reaction/definition.yaml +45 -0
- package/tools/slack/slack_create_channel/definition.yaml +41 -0
- package/tools/slack/slack_get_channel_history/definition.yaml +58 -0
- package/tools/slack/slack_get_reactions/definition.yaml +36 -0
- package/tools/slack/slack_get_thread_replies/definition.yaml +45 -0
- package/tools/slack/slack_get_user_info/definition.yaml +32 -0
- package/tools/slack/slack_join_channel/definition.yaml +35 -0
- package/tools/slack/slack_reply_to_message/definition.yaml +49 -0
- package/tools/slack/slack_search_messages/definition.yaml +46 -0
- package/tools/slack/slack_send_channel_message/definition.yaml +34 -0
- package/tools/slack/slack_send_dm/definition.yaml +37 -0
- package/tools/slack/slack_set_channel_topic/definition.yaml +40 -0
- package/tools/slack/slack_upload_file/definition.yaml +152 -0
- package/docs/Gemfile +0 -5
- package/docs/RELEASES.md +0 -90
- package/docs/ROADMAP.md +0 -138
- package/docs/_config.yml +0 -27
- package/docs/api-reference/ERRORS.md +0 -445
- package/docs/api-reference/SDK.md +0 -582
- package/docs/api-reference/TYPES.md +0 -415
- package/docs/architecture/OAUTH.md +0 -1366
- package/docs/architecture/OVERVIEW.md +0 -564
- package/docs/assets/logo.png +0 -0
- package/docs/community/COMMIT_GUIDELINES.md +0 -552
- package/docs/framework-integrations/LANGCHAIN.md +0 -286
- package/docs/getting-started/QUICK_START.md +0 -212
- package/docs/getting-started/YOUR_FIRST_TOOL.md +0 -217
- package/docs/getting-started/installation.md +0 -124
- package/docs/index.md +0 -289
- package/docs/tool-development/DECORATOR_GUIDE.md +0 -633
- package/docs/tool-development/OAUTH_LINK.md +0 -5
- package/docs/tool-development/PROVIDER_CONFIGURATION.md +0 -458
- package/docs/tool-development/TESTING.md +0 -412
- package/docs/tool-development/TOOL_SPECIFICATION.md +0 -793
- package/docs/tool-development/YAML_TOOLS.md +0 -65
- package/docs/troubleshooting/FAQ.md +0 -391
- package/docs/user-guide/AUTHENTICATION.md +0 -255
- package/docs/user-guide/DEVELOPMENT_STANDARDS.md +0 -698
- package/docs/user-guide/SDK_PATTERNS.md +0 -316
- package/docs/user-guide/TOOL_DISCOVERY.md +0 -209
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
name: gmail-create-draft
|
|
2
|
+
description: Create a draft email in Gmail without sending it
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
|
|
5
|
+
parameters:
|
|
6
|
+
to:
|
|
7
|
+
type: string
|
|
8
|
+
description: Email address of the recipient(s), comma-separated for multiple recipients
|
|
9
|
+
required: true
|
|
10
|
+
example: 'user@example.com'
|
|
11
|
+
|
|
12
|
+
subject:
|
|
13
|
+
type: string
|
|
14
|
+
description: Subject line of the draft email
|
|
15
|
+
required: true
|
|
16
|
+
example: 'Draft Email'
|
|
17
|
+
|
|
18
|
+
body:
|
|
19
|
+
type: string
|
|
20
|
+
description: Email body content (plain text or HTML)
|
|
21
|
+
required: true
|
|
22
|
+
example: 'This is a draft email'
|
|
23
|
+
|
|
24
|
+
cc:
|
|
25
|
+
type: string
|
|
26
|
+
description: CC email addresses, comma-separated
|
|
27
|
+
required: false
|
|
28
|
+
example: 'cc@example.com'
|
|
29
|
+
|
|
30
|
+
bcc:
|
|
31
|
+
type: string
|
|
32
|
+
description: BCC email addresses, comma-separated
|
|
33
|
+
required: false
|
|
34
|
+
example: 'bcc@example.com'
|
|
35
|
+
|
|
36
|
+
is_html:
|
|
37
|
+
type: boolean
|
|
38
|
+
description: Whether the body content is HTML (default is plain text)
|
|
39
|
+
required: false
|
|
40
|
+
default: false
|
|
41
|
+
|
|
42
|
+
raw:
|
|
43
|
+
type: string
|
|
44
|
+
description: 'Base64url-encoded MIME message (RFC 2822 format). If provided, overrides to/subject/body/cc/bcc parameters.'
|
|
45
|
+
required: false
|
|
46
|
+
example: 'VG8...'
|
|
47
|
+
|
|
48
|
+
execution:
|
|
49
|
+
type: http
|
|
50
|
+
method: POST
|
|
51
|
+
url: 'https://www.googleapis.com/gmail/v1/users/me/drafts'
|
|
52
|
+
headers:
|
|
53
|
+
Content-Type: 'application/json'
|
|
54
|
+
Authorization: 'Bearer {GMAIL_ACCESS_TOKEN}'
|
|
55
|
+
|
|
56
|
+
# Parameter encoding: automatically convert to/subject/body to MIME format
|
|
57
|
+
parameter_encoding:
|
|
58
|
+
- source: [to, subject, body, cc, bcc, is_html]
|
|
59
|
+
target: raw
|
|
60
|
+
encoding: mime_rfc2822_base64url
|
|
61
|
+
|
|
62
|
+
body:
|
|
63
|
+
message:
|
|
64
|
+
raw: '{raw}'
|
|
65
|
+
|
|
66
|
+
authentication:
|
|
67
|
+
type: oauth2
|
|
68
|
+
provider: google
|
|
69
|
+
scopes:
|
|
70
|
+
- 'https://www.googleapis.com/auth/gmail.compose'
|
|
71
|
+
|
|
72
|
+
output_schema:
|
|
73
|
+
type: object
|
|
74
|
+
properties:
|
|
75
|
+
id:
|
|
76
|
+
type: string
|
|
77
|
+
description: Draft ID
|
|
78
|
+
message:
|
|
79
|
+
type: object
|
|
80
|
+
description: The created message object
|
|
81
|
+
properties:
|
|
82
|
+
id:
|
|
83
|
+
type: string
|
|
84
|
+
threadId:
|
|
85
|
+
type: string
|
|
86
|
+
labelIds:
|
|
87
|
+
type: array
|
|
88
|
+
items:
|
|
89
|
+
type: string
|
|
90
|
+
|
|
91
|
+
error_handling:
|
|
92
|
+
retry: 3
|
|
93
|
+
backoff_type: exponential
|
|
94
|
+
initial_delay_ms: 1000
|
|
95
|
+
retryable_status_codes:
|
|
96
|
+
- 429
|
|
97
|
+
- 500
|
|
98
|
+
- 502
|
|
99
|
+
- 503
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Google OAuth2 Provider Definition
|
|
2
|
+
#
|
|
3
|
+
# This file defines the OAuth2 configuration for Google.
|
|
4
|
+
# All Gmail tools reference this provider definition.
|
|
5
|
+
#
|
|
6
|
+
# Users can override these endpoints via:
|
|
7
|
+
# 1. Runtime config (highest priority)
|
|
8
|
+
# 2. Environment variables: OAUTH_GOOGLE_AUTH_URL, OAUTH_GOOGLE_TOKEN_URL, etc.
|
|
9
|
+
# 3. This YAML definition (lowest priority)
|
|
10
|
+
#
|
|
11
|
+
# Pattern: Define once, use everywhere
|
|
12
|
+
|
|
13
|
+
name: google-provider
|
|
14
|
+
type: provider
|
|
15
|
+
version: '1.0.0'
|
|
16
|
+
|
|
17
|
+
description: |
|
|
18
|
+
Google OAuth2 Provider Configuration
|
|
19
|
+
|
|
20
|
+
All Gmail tools and Google-dependent tools use these endpoints.
|
|
21
|
+
|
|
22
|
+
Setup:
|
|
23
|
+
1. Create Google Cloud project
|
|
24
|
+
2. Enable Gmail API
|
|
25
|
+
3. Create OAuth2 credentials (web application)
|
|
26
|
+
4. Set GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET environment variables
|
|
27
|
+
5. Set GOOGLE_REDIRECT_URI to your callback URL
|
|
28
|
+
|
|
29
|
+
provider:
|
|
30
|
+
name: google
|
|
31
|
+
displayName: Google
|
|
32
|
+
|
|
33
|
+
# OAuth2 Endpoints
|
|
34
|
+
# Standard Google OAuth2 endpoints - change only if using custom proxy
|
|
35
|
+
endpoints:
|
|
36
|
+
authorizationUrl: https://accounts.google.com/o/oauth2/v2/auth
|
|
37
|
+
tokenUrl: https://oauth2.googleapis.com/token
|
|
38
|
+
revokeUrl: https://oauth2.googleapis.com/revoke
|
|
39
|
+
|
|
40
|
+
# Standard scopes for Gmail access
|
|
41
|
+
# Tools can override with their own scopes
|
|
42
|
+
defaultScopes:
|
|
43
|
+
- https://www.googleapis.com/auth/gmail.readonly
|
|
44
|
+
- https://www.googleapis.com/auth/gmail.send
|
|
45
|
+
- https://www.googleapis.com/auth/gmail.compose
|
|
46
|
+
|
|
47
|
+
# Additional metadata
|
|
48
|
+
documentation: https://developers.google.com/gmail/api
|
|
49
|
+
learnMore: https://developers.google.com/oauthplayground
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: gmail-delete-message
|
|
2
|
+
description: Permanently delete a message from Gmail (cannot be undone)
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
|
|
5
|
+
parameters:
|
|
6
|
+
message_id:
|
|
7
|
+
type: string
|
|
8
|
+
description: ID of the message to delete
|
|
9
|
+
required: true
|
|
10
|
+
example: '187a65b7f3f2f11e'
|
|
11
|
+
|
|
12
|
+
execution:
|
|
13
|
+
type: http
|
|
14
|
+
method: DELETE
|
|
15
|
+
url: 'https://www.googleapis.com/gmail/v1/users/me/messages/{message_id}'
|
|
16
|
+
headers:
|
|
17
|
+
Authorization: 'Bearer {GMAIL_ACCESS_TOKEN}'
|
|
18
|
+
note: 'Immediately and permanently deletes the message. This operation cannot be undone. Use trash instead if you want to allow recovery.'
|
|
19
|
+
|
|
20
|
+
authentication:
|
|
21
|
+
type: oauth2
|
|
22
|
+
provider: google
|
|
23
|
+
scopes:
|
|
24
|
+
- 'https://www.googleapis.com/auth/gmail.modify'
|
|
25
|
+
|
|
26
|
+
output_schema:
|
|
27
|
+
type: object
|
|
28
|
+
description: Empty response on successful deletion (204 No Content)
|
|
29
|
+
properties:
|
|
30
|
+
success:
|
|
31
|
+
type: boolean
|
|
32
|
+
description: Whether the message was successfully deleted
|
|
33
|
+
|
|
34
|
+
error_handling:
|
|
35
|
+
retry: 3
|
|
36
|
+
backoff_type: exponential
|
|
37
|
+
initial_delay_ms: 1000
|
|
38
|
+
retryable_status_codes:
|
|
39
|
+
- 429
|
|
40
|
+
- 500
|
|
41
|
+
- 502
|
|
42
|
+
- 503
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
name: gmail-get-message
|
|
2
|
+
description: Get full details of a specific Gmail message including headers and body
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
|
|
5
|
+
parameters:
|
|
6
|
+
message_id:
|
|
7
|
+
type: string
|
|
8
|
+
description: ID of the message to retrieve
|
|
9
|
+
required: true
|
|
10
|
+
example: '187a65b7f3f2f11e'
|
|
11
|
+
|
|
12
|
+
format:
|
|
13
|
+
type: string
|
|
14
|
+
enum:
|
|
15
|
+
- minimal
|
|
16
|
+
- full
|
|
17
|
+
- raw
|
|
18
|
+
description: Format of the message to return
|
|
19
|
+
required: false
|
|
20
|
+
default: full
|
|
21
|
+
example: full
|
|
22
|
+
|
|
23
|
+
metadata_headers:
|
|
24
|
+
type: string
|
|
25
|
+
description: Comma-separated headers to include in metadata (when format=minimal)
|
|
26
|
+
required: false
|
|
27
|
+
example: 'From,Subject,Date'
|
|
28
|
+
|
|
29
|
+
execution:
|
|
30
|
+
type: http
|
|
31
|
+
method: GET
|
|
32
|
+
url: 'https://www.googleapis.com/gmail/v1/users/me/messages/{message_id}?format={format}&metadataHeaders={metadata_headers}'
|
|
33
|
+
headers:
|
|
34
|
+
Authorization: 'Bearer {GMAIL_ACCESS_TOKEN}'
|
|
35
|
+
Accept: 'application/json'
|
|
36
|
+
|
|
37
|
+
authentication:
|
|
38
|
+
type: oauth2
|
|
39
|
+
provider: google
|
|
40
|
+
scopes:
|
|
41
|
+
- 'https://www.googleapis.com/auth/gmail.readonly'
|
|
42
|
+
client_id_env: GMAIL_CLIENT_ID
|
|
43
|
+
client_secret_env: GMAIL_CLIENT_SECRET
|
|
44
|
+
|
|
45
|
+
output_schema:
|
|
46
|
+
type: object
|
|
47
|
+
properties:
|
|
48
|
+
id:
|
|
49
|
+
type: string
|
|
50
|
+
description: Message ID
|
|
51
|
+
thread_id:
|
|
52
|
+
type: string
|
|
53
|
+
description: Thread ID
|
|
54
|
+
label_ids:
|
|
55
|
+
type: array
|
|
56
|
+
items:
|
|
57
|
+
type: string
|
|
58
|
+
description: Array of label IDs applied to this message
|
|
59
|
+
snippet:
|
|
60
|
+
type: string
|
|
61
|
+
description: Short snippet of the message text
|
|
62
|
+
size_estimate:
|
|
63
|
+
type: number
|
|
64
|
+
description: Estimated size of the message in bytes
|
|
65
|
+
headers:
|
|
66
|
+
type: object
|
|
67
|
+
description: Message headers (From, To, Subject, Date, etc.)
|
|
68
|
+
body:
|
|
69
|
+
type: object
|
|
70
|
+
description: Message body with data and mimeType
|
|
71
|
+
properties:
|
|
72
|
+
mime_type:
|
|
73
|
+
type: string
|
|
74
|
+
data:
|
|
75
|
+
type: string
|
|
76
|
+
description: Message body data (base64 encoded if raw format)
|
|
77
|
+
error:
|
|
78
|
+
type: string
|
|
79
|
+
description: Error message if request failed
|
|
80
|
+
|
|
81
|
+
error_handling:
|
|
82
|
+
retry: 3
|
|
83
|
+
backoff_type: exponential
|
|
84
|
+
initial_delay_ms: 1000
|
|
85
|
+
retryable_status_codes:
|
|
86
|
+
- 429
|
|
87
|
+
- 500
|
|
88
|
+
- 502
|
|
89
|
+
- 503
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
name: gmail-list-messages
|
|
2
|
+
description: List messages from Gmail mailbox with filtering and pagination
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
|
|
5
|
+
parameters:
|
|
6
|
+
query:
|
|
7
|
+
type: string
|
|
8
|
+
description: Gmail search query (e.g., 'from:user@example.com', 'subject:hello', 'is:unread')
|
|
9
|
+
required: false
|
|
10
|
+
example: 'is:unread'
|
|
11
|
+
|
|
12
|
+
maxResults:
|
|
13
|
+
type: number
|
|
14
|
+
description: Maximum number of messages to return (1-500, defaults to 100)
|
|
15
|
+
required: false
|
|
16
|
+
default: 100
|
|
17
|
+
example: 20
|
|
18
|
+
|
|
19
|
+
pageToken:
|
|
20
|
+
type: string
|
|
21
|
+
description: Page token for pagination
|
|
22
|
+
required: false
|
|
23
|
+
example: 'NEXT_PAGE_TOKEN'
|
|
24
|
+
|
|
25
|
+
includeSpamTrash:
|
|
26
|
+
type: boolean
|
|
27
|
+
description: Include spam and trash in results (defaults to false)
|
|
28
|
+
required: false
|
|
29
|
+
default: false
|
|
30
|
+
|
|
31
|
+
labelIds:
|
|
32
|
+
type: string
|
|
33
|
+
description: Comma-separated label IDs to filter by
|
|
34
|
+
required: false
|
|
35
|
+
example: 'INBOX,IMPORTANT'
|
|
36
|
+
|
|
37
|
+
execution:
|
|
38
|
+
type: http
|
|
39
|
+
method: GET
|
|
40
|
+
url: 'https://www.googleapis.com/gmail/v1/users/me/messages'
|
|
41
|
+
query_params:
|
|
42
|
+
q: '{query}'
|
|
43
|
+
maxResults: '{maxResults}'
|
|
44
|
+
pageToken: '{pageToken}'
|
|
45
|
+
includeSpamTrash: '{includeSpamTrash}'
|
|
46
|
+
labelIds: '{labelIds}'
|
|
47
|
+
headers:
|
|
48
|
+
Authorization: 'Bearer {GMAIL_ACCESS_TOKEN}'
|
|
49
|
+
|
|
50
|
+
authentication:
|
|
51
|
+
type: oauth2
|
|
52
|
+
provider: google
|
|
53
|
+
scopes:
|
|
54
|
+
- 'https://www.googleapis.com/auth/gmail.readonly'
|
|
55
|
+
|
|
56
|
+
output_schema:
|
|
57
|
+
type: object
|
|
58
|
+
properties:
|
|
59
|
+
messages:
|
|
60
|
+
type: array
|
|
61
|
+
description: List of message objects (contains only id and threadId)
|
|
62
|
+
items:
|
|
63
|
+
type: object
|
|
64
|
+
properties:
|
|
65
|
+
id:
|
|
66
|
+
type: string
|
|
67
|
+
threadId:
|
|
68
|
+
type: string
|
|
69
|
+
nextPageToken:
|
|
70
|
+
type: string
|
|
71
|
+
description: Token for fetching next page of results
|
|
72
|
+
resultSizeEstimate:
|
|
73
|
+
type: number
|
|
74
|
+
description: Estimated total number of results
|
|
75
|
+
|
|
76
|
+
error_handling:
|
|
77
|
+
retry: 3
|
|
78
|
+
backoff_type: exponential
|
|
79
|
+
initial_delay_ms: 1000
|
|
80
|
+
retryable_status_codes:
|
|
81
|
+
- 429
|
|
82
|
+
- 500
|
|
83
|
+
- 502
|
|
84
|
+
- 503
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
name: gmail-send-email
|
|
2
|
+
description: Send an email using Gmail API with MIME format encoding
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
|
|
5
|
+
parameters:
|
|
6
|
+
to:
|
|
7
|
+
type: string
|
|
8
|
+
description: Email address of the recipient(s), comma-separated for multiple recipients
|
|
9
|
+
required: true
|
|
10
|
+
example: 'user@example.com'
|
|
11
|
+
|
|
12
|
+
subject:
|
|
13
|
+
type: string
|
|
14
|
+
description: Subject line of the email
|
|
15
|
+
required: true
|
|
16
|
+
example: 'Hello from Matimo'
|
|
17
|
+
|
|
18
|
+
body:
|
|
19
|
+
type: string
|
|
20
|
+
description: Email body content (plain text or HTML)
|
|
21
|
+
required: true
|
|
22
|
+
example: 'This is a test email from Matimo'
|
|
23
|
+
|
|
24
|
+
cc:
|
|
25
|
+
type: string
|
|
26
|
+
description: CC email addresses, comma-separated
|
|
27
|
+
required: false
|
|
28
|
+
example: 'cc@example.com'
|
|
29
|
+
|
|
30
|
+
bcc:
|
|
31
|
+
type: string
|
|
32
|
+
description: BCC email addresses, comma-separated
|
|
33
|
+
required: false
|
|
34
|
+
example: 'bcc@example.com'
|
|
35
|
+
|
|
36
|
+
is_html:
|
|
37
|
+
type: boolean
|
|
38
|
+
description: Whether the body content is HTML (default is plain text)
|
|
39
|
+
required: false
|
|
40
|
+
default: false
|
|
41
|
+
|
|
42
|
+
raw:
|
|
43
|
+
type: string
|
|
44
|
+
description: 'Base64url-encoded MIME message (RFC 2822 format). If provided, overrides to/subject/body/cc/bcc parameters.'
|
|
45
|
+
required: false
|
|
46
|
+
example: 'VG8...'
|
|
47
|
+
|
|
48
|
+
execution:
|
|
49
|
+
type: http
|
|
50
|
+
method: POST
|
|
51
|
+
url: 'https://www.googleapis.com/gmail/v1/users/me/messages/send'
|
|
52
|
+
headers:
|
|
53
|
+
Content-Type: 'application/json'
|
|
54
|
+
Authorization: 'Bearer {GMAIL_ACCESS_TOKEN}'
|
|
55
|
+
|
|
56
|
+
# Parameter encoding: automatically convert to/subject/body to MIME format
|
|
57
|
+
parameter_encoding:
|
|
58
|
+
- source: [to, subject, body, cc, bcc, is_html]
|
|
59
|
+
target: raw
|
|
60
|
+
encoding: mime_rfc2822_base64url
|
|
61
|
+
|
|
62
|
+
body:
|
|
63
|
+
raw: '{raw}'
|
|
64
|
+
|
|
65
|
+
authentication:
|
|
66
|
+
type: oauth2
|
|
67
|
+
provider: google
|
|
68
|
+
scopes:
|
|
69
|
+
- 'https://www.googleapis.com/auth/gmail.send'
|
|
70
|
+
|
|
71
|
+
output_schema:
|
|
72
|
+
type: object
|
|
73
|
+
properties:
|
|
74
|
+
id:
|
|
75
|
+
type: string
|
|
76
|
+
description: Message ID of the sent email
|
|
77
|
+
threadId:
|
|
78
|
+
type: string
|
|
79
|
+
description: Thread ID of the sent email
|
|
80
|
+
labelIds:
|
|
81
|
+
type: array
|
|
82
|
+
items:
|
|
83
|
+
type: string
|
|
84
|
+
description: Label IDs applied to the message
|
|
85
|
+
|
|
86
|
+
error_handling:
|
|
87
|
+
retry: 3
|
|
88
|
+
backoff_type: exponential
|
|
89
|
+
initial_delay_ms: 1000
|
|
90
|
+
max_delay_ms: 10000
|
|
91
|
+
retryable_status_codes:
|
|
92
|
+
- 429
|
|
93
|
+
- 500
|
|
94
|
+
- 502
|
|
95
|
+
- 503
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
name: http-client
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: "Generic HTTP client for making API requests"
|
|
4
|
+
|
|
5
|
+
parameters:
|
|
6
|
+
url:
|
|
7
|
+
type: string
|
|
8
|
+
description: "The URL to request"
|
|
9
|
+
required: true
|
|
10
|
+
method:
|
|
11
|
+
type: string
|
|
12
|
+
description: "HTTP method: GET, POST, PUT, DELETE"
|
|
13
|
+
required: false
|
|
14
|
+
default: "GET"
|
|
15
|
+
enum: [GET, POST, PUT, DELETE, PATCH]
|
|
16
|
+
headers:
|
|
17
|
+
type: object
|
|
18
|
+
description: "HTTP headers as key-value pairs"
|
|
19
|
+
required: false
|
|
20
|
+
body:
|
|
21
|
+
type: object
|
|
22
|
+
description: "Request body (for POST/PUT/PATCH)"
|
|
23
|
+
required: false
|
|
24
|
+
|
|
25
|
+
execution:
|
|
26
|
+
type: http
|
|
27
|
+
method: GET
|
|
28
|
+
url: "{url}"
|
|
29
|
+
headers:
|
|
30
|
+
"Content-Type": "application/json"
|
|
31
|
+
body: "{body}"
|
|
32
|
+
|
|
33
|
+
output_schema:
|
|
34
|
+
type: object
|
|
35
|
+
properties:
|
|
36
|
+
status:
|
|
37
|
+
type: number
|
|
38
|
+
description: "HTTP status code"
|
|
39
|
+
statusText:
|
|
40
|
+
type: string
|
|
41
|
+
headers:
|
|
42
|
+
type: object
|
|
43
|
+
data:
|
|
44
|
+
type: object
|
|
45
|
+
description: "Response body"
|
|
46
|
+
|
|
47
|
+
error_handling:
|
|
48
|
+
retry: 3
|
|
49
|
+
backoff_type: exponential
|
|
50
|
+
initial_delay_ms: 1000
|
|
51
|
+
max_delay_ms: 10000
|
|
52
|
+
|
|
53
|
+
rate_limiting:
|
|
54
|
+
enabled: true
|
|
55
|
+
requests_per_minute: 60
|
|
56
|
+
|
|
57
|
+
examples:
|
|
58
|
+
- name: "Fetch GitHub user"
|
|
59
|
+
description: "Fetch GitHub user profile"
|
|
60
|
+
params:
|
|
61
|
+
url: "https://api.github.com/users/octocat"
|
|
62
|
+
method: "GET"
|
|
63
|
+
- name: "Post JSON data"
|
|
64
|
+
description: "POST JSON to an API endpoint"
|
|
65
|
+
params:
|
|
66
|
+
url: "https://jsonplaceholder.typicode.com/posts"
|
|
67
|
+
method: "POST"
|
|
68
|
+
body:
|
|
69
|
+
title: "Test"
|
|
70
|
+
body: "This is a test"
|
|
71
|
+
userId: 1
|
|
72
|
+
|
|
73
|
+
tags: [http, api, network, client]
|